diff options
| author | Amaan Qureshi <amaanq12@gmail.com> | 2023-02-23 16:06:47 -0500 |
|---|---|---|
| committer | ObserverOfTime <chronobserver@disroot.org> | 2023-02-24 09:10:11 +0200 |
| commit | fceb4ed0ecaf56bac750a39fb0d05a6aa9a749c0 (patch) | |
| tree | 9dfed28bd785e27897326ec95314758eeb71e959 | |
| parent | Extend injections for Lua to use query parser (diff) | |
| download | nvim-treesitter-fceb4ed0ecaf56bac750a39fb0d05a6aa9a749c0.tar nvim-treesitter-fceb4ed0ecaf56bac750a39fb0d05a6aa9a749c0.tar.gz nvim-treesitter-fceb4ed0ecaf56bac750a39fb0d05a6aa9a749c0.tar.bz2 nvim-treesitter-fceb4ed0ecaf56bac750a39fb0d05a6aa9a749c0.tar.lz nvim-treesitter-fceb4ed0ecaf56bac750a39fb0d05a6aa9a749c0.tar.xz nvim-treesitter-fceb4ed0ecaf56bac750a39fb0d05a6aa9a749c0.tar.zst nvim-treesitter-fceb4ed0ecaf56bac750a39fb0d05a6aa9a749c0.zip | |
feat: add dhall
| -rw-r--r-- | lockfile.json | 3 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 8 | ||||
| -rw-r--r-- | queries/dhall/folds.scm | 14 | ||||
| -rw-r--r-- | queries/dhall/highlights.scm | 171 | ||||
| -rw-r--r-- | queries/dhall/injections.scm | 4 |
5 files changed, 200 insertions, 0 deletions
diff --git a/lockfile.json b/lockfile.json index ad0a4f7ba..1b9623cdb 100644 --- a/lockfile.json +++ b/lockfile.json @@ -71,6 +71,9 @@ "devicetree": { "revision": "ea30a05d0f0446a96d8b096ad11828ad4f8ad849" }, + "dhall": { + "revision": "affb6ee38d629c9296749767ab832d69bb0d9ea8" + }, "diff": { "revision": "f69bde8e56f431863eba2fe4bab23e7d9692855f" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 7074cc363..7cd8c1e24 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -275,6 +275,14 @@ list.devicetree = { maintainers = { "@jedrzejboczar" }, } +list.dhall = { + install_info = { + url = "https://github.com/jbellerb/tree-sitter-dhall", + files = { "src/parser.c", "src/scanner.c" }, + }, + maintainers = { "@amaanq" }, +} + list.diff = { install_info = { url = "https://github.com/the-mikedavis/tree-sitter-diff", diff --git a/queries/dhall/folds.scm b/queries/dhall/folds.scm new file mode 100644 index 000000000..305079aa8 --- /dev/null +++ b/queries/dhall/folds.scm @@ -0,0 +1,14 @@ +[ + (let_binding) + + (application_expression) + (lambda_expression) + + (record_type) + (union_type) + + (list_literal) + (record_literal) + + (block_comment) +] @fold diff --git a/queries/dhall/highlights.scm b/queries/dhall/highlights.scm new file mode 100644 index 000000000..4bf79d090 --- /dev/null +++ b/queries/dhall/highlights.scm @@ -0,0 +1,171 @@ +;; Text + +;; Imports + +(missing_import) @include + +(local_import) @string.special.path + +(http_import) @string @text.uri + +[ + (env_variable) + (import_hash) +] @string.special + +[ (import_as_location) (import_as_text) ] @type + +;; Types + +([ + (let_binding (label) @type) + (union_type_entry (label) @type) +] (#match? @type "^[A-Z]")) + +((primitive_expression + (identifier (label) @type) + (selector (label) @type)) @variable + (#vim-match? @variable "^[A-Z][^.]*$")) + +;; Parameters + +(lambda_expression label: (label) @parameter) + +;; Variables + +(label) @variable + +(identifier [ + (label) @variable + (de_bruijn_index) @operator +]) + +(let_binding label: (label) @variable) + +; Fields + +(record_literal_entry (label) @field) + +(record_type_entry (label) @field) + +(selector + (selector_dot) + (_) @field) + +;; Keywords + +(env_import) @keyword + +[ + "let" + "in" + "assert" +] @keyword + +[ + "using" + "as" + "with" +] @keyword.operator + +;; Operators + +[ + (type_operator) + (assign_operator) + (lambda_operator) + (arrow_operator) + (infix_operator) + (completion_operator) + (assert_operator) + (forall_operator) + (empty_record_literal) +] @operator + +;; Builtins + +(builtin_function) @function.builtin +(builtin [ + "Natural" + "Natural/build" + "Natural/fold" + "Natural/isZero" + "Natural/even" + "Natural/odd" + "Natural/subtract" + "Natural/toInteger" + "Natural/show" + "Integer" + "Integer/toDouble" + "Integer/show" + "Integer/negate" + "Integer/clamp" + "Double" + "Double/show" + "List" + "List/build" + "List/fold" + "List/length" + "List/head" + "List/last" + "List/indexed" + "List/reverse" + "Text" + "Text/show" + "Text/replace" + "Optional" + "Date" + "Time" + "TimeZone" + "Type" + "Kind" + "Sort" +] @type.builtin) + +;; Punctuation + +[ "," "|" ] @punctuation.delimiter +(selector_dot) @punctuation.delimiter + +[ "{" "}" ] @punctuation.bracket + +[ "[" "]" ] @punctuation.bracket + +[ "(" ")" ] @punctuation.bracket + +[ "<" ">" ] @punctuation.bracket + +;; Conditionals + +[ + "if" + "then" + "else" +] @conditional + +;; Literals + +(text_literal) @string +(interpolation "}" @string) +[ + (double_quote_escaped) + (single_quote_escaped) +] @string.escape + +[ + (integer_literal) + (natural_literal) +] @number + +(double_literal) @float + +(boolean_literal) @boolean + +(builtin "None") @constant.builtin + +;; Comments + +[ + (line_comment) + (block_comment) +] @comment @spell diff --git a/queries/dhall/injections.scm b/queries/dhall/injections.scm new file mode 100644 index 000000000..e48ce9af3 --- /dev/null +++ b/queries/dhall/injections.scm @@ -0,0 +1,4 @@ +[ + (line_comment) + (block_comment) +] @comment |
