{ "Query Metadata": { "prefix": "querymetadata", "body": [ "/**", " * @name $1", " * @description $2", " * @kind $3", " * @id $4", " * @tags $5", " */" ], "description": "Metadata for a query" }, "Class": { "prefix": "class", "body": ["class $1 extends $2 {", "\t$0", "}"], "description": "A class" }, "From/Where/Select": { "prefix": "from", "body": ["from $1", "where $2", "select $3"], "description": "A from/where/select statement" }, "Predicate": { "prefix": "predicate", "body": ["predicate $1($2) {", "\t$0", "}"], "description": "A predicate" }, "Dataflow Tracking Class": { "prefix": "dataflowtracking", "body": [ "module $1 implements DataFlow::ConfigSig {", "\tpredicate isSource(DataFlow::Node node) {", "\t\t${2:none()}", "\t}", "", "\tpredicate isSink(DataFlow::Node node) {", "\t\t${3:none()}", "\t}", "}", "", "module ${4:Flow} = DataFlow::Global<$1>;" ], "description": "Boilerplate for a dataflow tracking class" }, "Taint Tracking Class": { "prefix": "tainttracking", "body": [ "module $1 implements DataFlow::ConfigSig {", "\tpredicate isSource(DataFlow::Node node) {", "\t\t${2:none()}", "\t}", "", "\tpredicate isSink(DataFlow::Node node) {", "\t\t${3:none()}", "\t}", "}", "", "module ${4:Flow} = TaintTracking::Global<$1>;" ], "description": "Boilerplate for a taint tracking class" }, "Count": { "prefix": "count", "body": ["count($1 | $2 | $3)"], "description": "A count aggregate" }, "Max": { "prefix": "max", "body": ["max($1 | $2 | $3)"], "description": "A max aggregate" }, "Min": { "prefix": "min", "body": ["min($1 | $2 | $3)"], "description": "A min aggregate" }, "Average": { "prefix": "avg", "body": ["avg($1 | $2 | $3)"], "description": "An average aggregate" }, "Sum": { "prefix": "sum", "body": ["sum($1 | $2 | $3)"], "description": "A sum aggregate" }, "Concatenation": { "prefix": "concat", "body": ["concat($1 | $2 | $3)"], "description": "A concatenation aggregate" }, "Rank": { "prefix": "rank", "body": ["rank[$1]($2 | $3 | $4)"], "description": "A rank aggregate" }, "Strict Sum": { "prefix": "strictsum", "body": ["strictsum($1 | $2 | $3)"], "description": "A strict sum aggregate" }, "Strict Concatenation": { "prefix": "strictconcat", "body": ["strictconcat($1 | $2 | $3)"], "description": "A strict concatenation aggregate" }, "Strict Count": { "prefix": "strictcount", "body": ["strictcount($1 | $2 | $3)"], "description": "A strict count aggregate" }, "Unique": { "prefix": "unique", "body": ["unique($1 | $2 | $3)"], "description": "A unique aggregate" }, "Exists": { "prefix": "exists", "body": ["exists($1 | $2 | $3)"], "description": "An exists quantifier" }, "For All": { "prefix": "forall", "body": ["forall($1 | $2 | $3)"], "description": "A for all quantifier" }, "For All and Exists": { "prefix": "forex", "body": ["forex($1 | $2 | $3)"], "description": "A for all and exists quantifier" } }