diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index a4e2a84a2123..1d4bcb17fa70 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 b047b83ebe1d..4e2be820c27d 100644 --- a/languages.toml +++ b/languages.toml @@ -3460,3 +3460,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 000000000000..88e00ad7ff6f --- /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 000000000000..1200d4d420ac --- /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 000000000000..36e39a2d46d6 --- /dev/null +++ b/runtime/queries/adl/textobjects.scm @@ -0,0 +1 @@ +(struct (_) @function.inside) @funtion.around