feat(lang): add nushell language support (#2225)

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
This commit is contained in:
Justin Ma 2022-04-22 22:37:51 +08:00 committed by GitHub
parent 3c250b7528
commit 5c2570582b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 88 additions and 0 deletions

View File

@ -50,6 +50,7 @@
| mint | | | | `mint` |
| nickel | ✓ | | ✓ | `nls` |
| nix | ✓ | | ✓ | `rnix-lsp` |
| nu | ✓ | | | |
| ocaml | ✓ | | ✓ | `ocamllsp` |
| ocaml-interface | ✓ | | | `ocamllsp` |
| org | ✓ | | | |

View File

@ -1210,3 +1210,16 @@ indent = { tab-width = 4, unit = " " }
[[grammar]]
name = "gdscript"
source = { git = "https://github.com/PrestonKnopp/tree-sitter-gdscript", rev = "2a6abdaa47fcb91397e09a97c7433fd995ea46c6" }
[[language]]
name = "nu"
scope = "source.nu"
injection-regex = "nu"
file-types = ["nu"]
roots = []
comment-token = "#"
indent = { tab-width = 2, unit = " " }
[[grammar]]
name = "nu"
source = { git = "https://github.com/LhKipp/tree-sitter-nu", rev = "db4e990b78824c8abef3618e0f93b7fe1e8f4c0d" }

View File

@ -0,0 +1,4 @@
[
(function_definition)
(block)
] @fold

View File

@ -0,0 +1,55 @@
(string) @string
(type) @type
(value_path) @variable
(comment) @comment
(number_literal) @constant.numeric
(range from: (number_literal) @constant.numeric)
(range to: (number_literal) @constant.numeric)
(command cmd_name: (identifier) @function)
(function_definition func_name: (identifier) @function)
[
(variable_declaration name: (identifier))
(parameter (identifier))
(flag (flag_name))
(flag (flag_shorthand_name))
(record_entry entry_name: (identifier))
(block_args block_param: (identifier))
] @variable.other.member
; (parameter (identifier) @variable.parameter) ; -- alternative highlighting group?
(cmd_invocation) @embedded
((identifier) @constant
(#match? @constant "^[A-Z][A-Z\\d_]*$"))
[
"if"
"else"
"let"
"def"
"export"
] @keyword
[
; "/" Not making / an operator may lead to better highlighting?
"$"
"|"
"+"
"-"
"*"
"="
"!="
"&&"
"||"
"=="
">"
] @operator
["."
","
";"
] @punctuation.delimiter

View File

@ -0,0 +1,2 @@
((comment) @injection.content
(#set! injection.language "comment"))

View File

@ -0,0 +1,13 @@
; Scopes
(function_definition) @scope
; Definitions
(variable_declaration
name: (identifier) @definition.var)
(function_definition
func_name: (identifier) @definition.function)
; References
(value_path) @reference
(word) @reference