Skip to content

Commit

Permalink
GN language support (#6969)
Browse files Browse the repository at this point in the history
Co-authored-by: Michael Davis <[email protected]>
  • Loading branch information
dnfield and the-mikedavis committed Nov 18, 2023
1 parent 6bf5548 commit b306b25
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 0 deletions.
1 change: 1 addition & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
| git-rebase || | | |
| gleam ||| | `gleam` |
| glsl |||| |
| gn || | | |
| go |||| `gopls`, `golangci-lint-langserver` |
| godot-resource || | | |
| gomod || | | `gopls` |
Expand Down
14 changes: 14 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2740,6 +2740,20 @@ indent = { tab-width = 4, unit = "\t" }
name = "just"
source = { git = "https://github.com/IndianBoy42/tree-sitter-just", rev = "8af0aab79854aaf25b620a52c39485849922f766" }

[[language]]
name = "gn"
scope = "source.gn"
injection-regex = "gn"
file-types = ["gn", "gni"]
roots = []
comment-token = "#"
indent = { tab-width = 2, unit = " " }
formatter = { command = "gn", args = ["format", "--stdin"] }

[[grammar]]
name = "gn"
source = { git = "https://github.com/willcassella/tree-sitter-gn", rev = "e18d6e36a79b20dafb58f19d407bd38b0e60260e" }

[[language]]
name = "blueprint"
scope = "source.blueprint"
Expand Down
42 changes: 42 additions & 0 deletions runtime/queries/gn/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
; Copyright (C) 2021 Will Cassella ([email protected])
;
; 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
15 changes: 15 additions & 0 deletions runtime/queries/gn/injections.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
; Copyright (C) 2021 Will Cassella ([email protected])
;
; 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"))
16 changes: 16 additions & 0 deletions runtime/queries/gn/locals.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
; Copyright (C) 2021 Will Cassella ([email protected])
;
; 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)

0 comments on commit b306b25

Please sign in to comment.