diff options
author | unrelentingtech | 2022-05-11 01:06:37 +0000 |
---|---|---|
committer | GitHub | 2022-05-11 01:06:37 +0000 |
commit | 2cb1ea7127122bbcb0f05dfbb7959334c751c3d7 (patch) | |
tree | 9988931531685e6362dee38e9bf6b58670ca13ea | |
parent | 807cdc60bf060bdbff95c2ab44c4f2ce0cf66e83 (diff) |
feat(lang): add Meson language support (#2314)
https://mesonbuild.com/Syntax.html
-rw-r--r-- | book/src/generated/lang-support.md | 1 | ||||
-rw-r--r-- | languages.toml | 13 | ||||
-rw-r--r-- | runtime/queries/meson/highlights.scm | 62 | ||||
-rw-r--r-- | runtime/queries/meson/indents.scm | 16 |
4 files changed, 92 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 68163e08..95cf91a4 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -53,6 +53,7 @@ | lua | ✓ | | ✓ | | | make | ✓ | | | | | markdown | ✓ | | | | +| meson | ✓ | | ✓ | | | mint | | | | `mint` | | nickel | ✓ | | ✓ | `nls` | | nix | ✓ | | ✓ | `rnix-lsp` | diff --git a/languages.toml b/languages.toml index bda195f2..bedde5a2 100644 --- a/languages.toml +++ b/languages.toml @@ -1342,3 +1342,16 @@ indent = { tab-width = 4, unit = " " } [[grammar]] name = "odin" source = { git = "https://github.com/MineBill/tree-sitter-odin", rev = "da885f4a387f169b9b69fe0968259ee257a8f69a" } + +[[language]] +name = "meson" +scope = "source.meson" +injection-regex = "meson" +file-types = ["meson.build"] +roots = [] +comment-token = "#" +indent = { tab-width = 2, unit = " " } + +[[grammar]] +name = "meson" +source = { git = "https://github.com/bearcove/tree-sitter-meson", rev = "feea83be9225842490066522ced2d13eb9cce0bd" } diff --git a/runtime/queries/meson/highlights.scm b/runtime/queries/meson/highlights.scm new file mode 100644 index 00000000..01df8f27 --- /dev/null +++ b/runtime/queries/meson/highlights.scm @@ -0,0 +1,62 @@ +(string_literal) @string + +(boolean_literal) @constant.builtin.boolean +(integer_literal) @constant.numeric.integer + +(comment) @comment.line +(function_id) @function +(keyword_arg_key) @variable.other.member +(id_expression) @variable + +[ + "if" + "elif" + "else" + "endif" +] @keyword.control.conditional + +[ + "foreach" + "endforeach" +] @keyword.control.repeat + +[ + "break" + "continue" +] @keyword.control + +[ + "not" + "in" + "and" + "or" +] @keyword.operator + +[ + "!" + "+" + "-" + "*" + "/" + "%" + "==" + "!=" + ">" + "<" + ">=" + "<=" +] @operator + +[ + ":" + "," +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket diff --git a/runtime/queries/meson/indents.scm b/runtime/queries/meson/indents.scm new file mode 100644 index 00000000..a1c7b3fa --- /dev/null +++ b/runtime/queries/meson/indents.scm @@ -0,0 +1,16 @@ +[ + (method_expression) + (function_expression) + (array_literal) + (dictionary_literal) + (selection_statement) + (iteration_statement) +] @indent + +[ + ")" + "]" + "}" + "endif" + "endforeach" +] @outdent |