Add tree-sitter-nix
This commit is contained in:
parent
e0915190d4
commit
fe388ed71e
6 changed files with 119 additions and 0 deletions
10
Cargo.lock
generated
10
Cargo.lock
generated
|
@ -8065,6 +8065,15 @@ dependencies = [
|
||||||
"tree-sitter",
|
"tree-sitter",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tree-sitter-nix"
|
||||||
|
version = "0.0.1"
|
||||||
|
source = "git+https://github.com/nix-community/tree-sitter-nix?rev=66e3e9ce9180ae08fc57372061006ef83f0abde7#66e3e9ce9180ae08fc57372061006ef83f0abde7"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"tree-sitter",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tree-sitter-php"
|
name = "tree-sitter-php"
|
||||||
version = "0.19.1"
|
version = "0.19.1"
|
||||||
|
@ -9550,6 +9559,7 @@ dependencies = [
|
||||||
"tree-sitter-json 0.20.0",
|
"tree-sitter-json 0.20.0",
|
||||||
"tree-sitter-lua",
|
"tree-sitter-lua",
|
||||||
"tree-sitter-markdown",
|
"tree-sitter-markdown",
|
||||||
|
"tree-sitter-nix",
|
||||||
"tree-sitter-php",
|
"tree-sitter-php",
|
||||||
"tree-sitter-python",
|
"tree-sitter-python",
|
||||||
"tree-sitter-racket",
|
"tree-sitter-racket",
|
||||||
|
|
|
@ -129,6 +129,7 @@ tree-sitter-svelte = { git = "https://github.com/Himujjal/tree-sitter-svelte", r
|
||||||
tree-sitter-racket = { git = "https://github.com/zed-industries/tree-sitter-racket", rev = "eb010cf2c674c6fd9a6316a84e28ef90190fe51a"}
|
tree-sitter-racket = { git = "https://github.com/zed-industries/tree-sitter-racket", rev = "eb010cf2c674c6fd9a6316a84e28ef90190fe51a"}
|
||||||
tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", rev = "f545a41f57502e1b5ddf2a6668896c1b0620f930"}
|
tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", rev = "f545a41f57502e1b5ddf2a6668896c1b0620f930"}
|
||||||
tree-sitter-lua = "0.0.14"
|
tree-sitter-lua = "0.0.14"
|
||||||
|
tree-sitter-nix = { git = "https://github.com/nix-community/tree-sitter-nix", rev = "66e3e9ce9180ae08fc57372061006ef83f0abde7" }
|
||||||
|
|
||||||
[patch.crates-io]
|
[patch.crates-io]
|
||||||
tree-sitter = { git = "https://github.com/tree-sitter/tree-sitter", rev = "49226023693107fba9a1191136a4f47f38cdca73" }
|
tree-sitter = { git = "https://github.com/tree-sitter/tree-sitter", rev = "49226023693107fba9a1191136a4f47f38cdca73" }
|
||||||
|
|
|
@ -126,6 +126,7 @@ tree-sitter-svelte.workspace = true
|
||||||
tree-sitter-racket.workspace = true
|
tree-sitter-racket.workspace = true
|
||||||
tree-sitter-yaml.workspace = true
|
tree-sitter-yaml.workspace = true
|
||||||
tree-sitter-lua.workspace = true
|
tree-sitter-lua.workspace = true
|
||||||
|
tree-sitter-nix.workspace = true
|
||||||
|
|
||||||
url = "2.2"
|
url = "2.2"
|
||||||
urlencoding = "2.1.2"
|
urlencoding = "2.1.2"
|
||||||
|
|
|
@ -152,6 +152,7 @@ pub fn init(languages: Arc<LanguageRegistry>, node_runtime: Arc<NodeRuntime>) {
|
||||||
tree_sitter_php::language(),
|
tree_sitter_php::language(),
|
||||||
vec![Arc::new(php::IntelephenseLspAdapter::new(node_runtime))],
|
vec![Arc::new(php::IntelephenseLspAdapter::new(node_runtime))],
|
||||||
);
|
);
|
||||||
|
language("nix", tree_sitter_nix::language(), vec![])
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(test, feature = "test-support"))]
|
#[cfg(any(test, feature = "test-support"))]
|
||||||
|
|
11
crates/zed/src/languages/nix/config.toml
Normal file
11
crates/zed/src/languages/nix/config.toml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
name = "Nix"
|
||||||
|
path_suffixes = ["nix"]
|
||||||
|
line_comment = "# "
|
||||||
|
block_comment = ["/* ", " */"]
|
||||||
|
autoclose_before = ";:.,=}])>` \n\t\""
|
||||||
|
brackets = [
|
||||||
|
{ start = "{", end = "}", close = true, newline = true },
|
||||||
|
{ start = "[", end = "]", close = true, newline = true },
|
||||||
|
{ start = "(", end = ")", close = true, newline = true },
|
||||||
|
{ start = "<", end = ">", close = true, newline = true },
|
||||||
|
]
|
95
crates/zed/src/languages/nix/highlights.scm
Normal file
95
crates/zed/src/languages/nix/highlights.scm
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
(comment) @comment
|
||||||
|
|
||||||
|
[
|
||||||
|
"if"
|
||||||
|
"then"
|
||||||
|
"else"
|
||||||
|
"let"
|
||||||
|
"inherit"
|
||||||
|
"in"
|
||||||
|
"rec"
|
||||||
|
"with"
|
||||||
|
"assert"
|
||||||
|
"or"
|
||||||
|
] @keyword
|
||||||
|
|
||||||
|
[
|
||||||
|
(string_expression)
|
||||||
|
(indented_string_expression)
|
||||||
|
] @string
|
||||||
|
|
||||||
|
[
|
||||||
|
(path_expression)
|
||||||
|
(hpath_expression)
|
||||||
|
(spath_expression)
|
||||||
|
] @string.special.path
|
||||||
|
|
||||||
|
(uri_expression) @link_uri
|
||||||
|
|
||||||
|
[
|
||||||
|
(integer_expression)
|
||||||
|
(float_expression)
|
||||||
|
] @number
|
||||||
|
|
||||||
|
(interpolation
|
||||||
|
"${" @punctuation.special
|
||||||
|
"}" @punctuation.special) @embedded
|
||||||
|
|
||||||
|
(escape_sequence) @escape
|
||||||
|
(dollar_escape) @escape
|
||||||
|
|
||||||
|
(function_expression
|
||||||
|
universal: (identifier) @parameter
|
||||||
|
)
|
||||||
|
|
||||||
|
(formal
|
||||||
|
name: (identifier) @parameter
|
||||||
|
"?"? @punctuation.delimiter)
|
||||||
|
|
||||||
|
(select_expression
|
||||||
|
attrpath: (attrpath (identifier)) @property)
|
||||||
|
|
||||||
|
(apply_expression
|
||||||
|
function: [
|
||||||
|
(variable_expression (identifier)) @function
|
||||||
|
(select_expression
|
||||||
|
attrpath: (attrpath
|
||||||
|
attr: (identifier) @function .))])
|
||||||
|
|
||||||
|
(unary_expression
|
||||||
|
operator: _ @operator)
|
||||||
|
|
||||||
|
(binary_expression
|
||||||
|
operator: _ @operator)
|
||||||
|
|
||||||
|
(variable_expression (identifier) @variable)
|
||||||
|
|
||||||
|
(binding
|
||||||
|
attrpath: (attrpath (identifier)) @property)
|
||||||
|
|
||||||
|
"=" @operator
|
||||||
|
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
"."
|
||||||
|
","
|
||||||
|
] @punctuation.delimiter
|
||||||
|
|
||||||
|
[
|
||||||
|
"("
|
||||||
|
")"
|
||||||
|
"["
|
||||||
|
"]"
|
||||||
|
"{"
|
||||||
|
"}"
|
||||||
|
] @punctuation.bracket
|
||||||
|
|
||||||
|
(identifier) @variable
|
||||||
|
|
||||||
|
((identifier) @function.builtin
|
||||||
|
(#match? @function.builtin "^(__add|__addErrorContext|__all|__any|__appendContext|__attrNames|__attrValues|__bitAnd|__bitOr|__bitXor|__catAttrs|__compareVersions|__concatLists|__concatMap|__concatStringsSep|__deepSeq|__div|__elem|__elemAt|__fetchurl|__filter|__filterSource|__findFile|__foldl'|__fromJSON|__functionArgs|__genList|__genericClosure|__getAttr|__getContext|__getEnv|__hasAttr|__hasContext|__hashFile|__hashString|__head|__intersectAttrs|__isAttrs|__isBool|__isFloat|__isFunction|__isInt|__isList|__isPath|__isString|__langVersion|__length|__lessThan|__listToAttrs|__mapAttrs|__match|__mul|__parseDrvName|__partition|__path|__pathExists|__readDir|__readFile|__replaceStrings|__seq|__sort|__split|__splitVersion|__storePath|__stringLength|__sub|__substring|__tail|__toFile|__toJSON|__toPath|__toXML|__trace|__tryEval|__typeOf|__unsafeDiscardOutputDependency|__unsafeDiscardStringContext|__unsafeGetAttrPos|__valueSize|abort|baseNameOf|derivation|derivationStrict|dirOf|fetchGit|fetchMercurial|fetchTarball|fromTOML|import|isNull|map|placeholder|removeAttrs|scopedImport|throw|toString)$")
|
||||||
|
(#is-not? local))
|
||||||
|
|
||||||
|
((identifier) @variable.builtin
|
||||||
|
(#match? @variable.builtin "^(__currentSystem|__currentTime|__nixPath|__nixVersion|__storeDir|builtins|false|null|true)$")
|
||||||
|
(#is-not? local))
|
Loading…
Add table
Add a link
Reference in a new issue