aboutsummaryrefslogtreecommitdiff
path: root/runtime/queries/gn
diff options
context:
space:
mode:
authorDan Field2023-11-18 08:11:18 +0000
committerGitHub2023-11-18 08:11:18 +0000
commitb306b25e82a33b4704846ab4fce9b10b2ee7f67c (patch)
tree8b01712f83992e30da8a0ffc8b307b6a59d68f1b /runtime/queries/gn
parent6bf5548dbdfd1df6abe6323bd46b6e051168d94e (diff)
GN language support (#6969)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
Diffstat (limited to 'runtime/queries/gn')
-rw-r--r--runtime/queries/gn/highlights.scm42
-rw-r--r--runtime/queries/gn/injections.scm15
-rw-r--r--runtime/queries/gn/locals.scm16
3 files changed, 73 insertions, 0 deletions
diff --git a/runtime/queries/gn/highlights.scm b/runtime/queries/gn/highlights.scm
new file mode 100644
index 00000000..ff619db1
--- /dev/null
+++ b/runtime/queries/gn/highlights.scm
@@ -0,0 +1,42 @@
+; Copyright (C) 2021 Will Cassella (github@willcassella.com)
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+; http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+(identifier) @variable.builtin
+
+(scope_access field: (_) @variable.other.member)
+
+(call target: (_) @function)
+
+[ "if" "else" ] @keyword.control.conditional
+
+[
+ (assign_op)
+ (arithmetic_binary_op)
+ (comparison_binary_op)
+ (equivalence_binary_op)
+ (logical_and_binary_op)
+ (logical_or_binary_op)
+ (negation_unary_op)
+] @operator
+
+[ "(" ")" "[" "]" "{" "}" ] @punctuation.bracket
+[ "." "," ] @punctuation.delimiter
+
+(string) @string
+(string_escape) @constant.character.escape
+(string_expansion [ "$" "${" "}" ] @constant.character.escape)
+[ (integer) (hex) ] @constant.numeric
+(boolean) @constant.builtin.boolean
+
+(comment) @comment
diff --git a/runtime/queries/gn/injections.scm b/runtime/queries/gn/injections.scm
new file mode 100644
index 00000000..55864c29
--- /dev/null
+++ b/runtime/queries/gn/injections.scm
@@ -0,0 +1,15 @@
+; Copyright (C) 2021 Will Cassella (github@willcassella.com)
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+; http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+((comment) @injection.content (#set! injection.language "comment"))
diff --git a/runtime/queries/gn/locals.scm b/runtime/queries/gn/locals.scm
new file mode 100644
index 00000000..e8bd995c
--- /dev/null
+++ b/runtime/queries/gn/locals.scm
@@ -0,0 +1,16 @@
+; Copyright (C) 2021 Will Cassella (github@willcassella.com)
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+; http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+(source_file) @local.scope
+(assignment target: (identifier) @local.definition)