GN language support (#6969)

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
This commit is contained in:
Dan Field 2023-11-18 00:11:18 -08:00 committed by GitHub
parent 6bf5548dbd
commit b306b25e82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 88 additions and 0 deletions

View File

@ -54,6 +54,7 @@
| git-rebase | ✓ | | | |
| gleam | ✓ | ✓ | | `gleam` |
| glsl | ✓ | ✓ | ✓ | |
| gn | ✓ | | | |
| go | ✓ | ✓ | ✓ | `gopls`, `golangci-lint-langserver` |
| godot-resource | ✓ | | | |
| gomod | ✓ | | | `gopls` |

View File

@ -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"

View File

@ -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

View File

@ -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"))

View File

@ -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)