From 0da809c981d2c0ce77fe828b4d66c995cf2ad56b Mon Sep 17 00:00:00 2001 From: Gary Miller Date: Mon, 8 Apr 2024 12:45:20 +1000 Subject: [PATCH] feat: Add ADL language support (#10029) * feat: Add ADL language support * removed error match & change captures to match https://docs.helix-editor.com/master/themes.html\#syntax-highlighting * fixes to grammar, highlight changes based on PR and grammar fixes --- book/src/generated/lang-support.md | 1 + languages.toml | 18 ++++++++++++++ runtime/queries/adl/highlights.scm | 37 +++++++++++++++++++++++++++++ runtime/queries/adl/indents.scm | 12 ++++++++++ runtime/queries/adl/textobjects.scm | 1 + 5 files changed, 69 insertions(+) create mode 100644 runtime/queries/adl/highlights.scm create mode 100644 runtime/queries/adl/indents.scm create mode 100644 runtime/queries/adl/textobjects.scm diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 156898d45..4cd67bc5c 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -1,6 +1,7 @@ | Language | Syntax Highlighting | Treesitter Textobjects | Auto Indent | Default LSP | | --- | --- | --- | --- | --- | | ada | ✓ | ✓ | | `ada_language_server`, `ada_language_server` | +| adl | ✓ | ✓ | ✓ | | | agda | ✓ | | | | | astro | ✓ | | | | | awk | ✓ | ✓ | | `awk-language-server` | diff --git a/languages.toml b/languages.toml index 87778c996..b700c3265 100644 --- a/languages.toml +++ b/languages.toml @@ -3479,3 +3479,21 @@ language-servers = ["earthlyls"] [[grammar]] name = "earthfile" source = { git = "https://github.com/glehmann/tree-sitter-earthfile", rev = "2a6ab191f5f962562e495a818aa4e7f45f8a556a" } + +[[language]] +name = "adl" +scope = "source.adl" +injection-regex = "adl" +file-types = ["adl"] +roots = [] +comment-token = "//" +indent = { tab-width = 2, unit = " " } + +[language.auto-pairs] +'"' = '"' +'{' = '}' +'<' = '>' + +[[grammar]] +name = "adl" +source = { git = "https://github.com/adl-lang/tree-sitter-adl", rev = "2787d04beadfbe154d3f2da6e98dc45a1b134bbf" } diff --git a/runtime/queries/adl/highlights.scm b/runtime/queries/adl/highlights.scm new file mode 100644 index 000000000..88e00ad7f --- /dev/null +++ b/runtime/queries/adl/highlights.scm @@ -0,0 +1,37 @@ +; adl + +[ +"module" +"struct" +"union" +"type" +"newtype" +"annotation" +] @keyword + +(adl (scoped_name)) @namespace +(comment) @comment +(doc_comment) @comment.block.documentation +(name) @type + +(fname) @variable.other.member + +(type_expr (scoped_name) @type) + +(type_expr_params (param (scoped_name) @type.parameter)) + +; json +(key) @string.special + +(string) @string + +(number) @constant.numeric + +[ + (null) + (true) + (false) +] @constant.builtin + +(escape_sequence) @constant.character.escape + diff --git a/runtime/queries/adl/indents.scm b/runtime/queries/adl/indents.scm new file mode 100644 index 000000000..1200d4d42 --- /dev/null +++ b/runtime/queries/adl/indents.scm @@ -0,0 +1,12 @@ +[ + (struct) + (union) + + (array) + (object) +] @indent + +; [ +; "}" +; "]" +; ] @outdent diff --git a/runtime/queries/adl/textobjects.scm b/runtime/queries/adl/textobjects.scm new file mode 100644 index 000000000..36e39a2d4 --- /dev/null +++ b/runtime/queries/adl/textobjects.scm @@ -0,0 +1 @@ +(struct (_) @function.inside) @funtion.around