diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index ca2be23b0f37..5c5ecaafe57c 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -6,6 +6,7 @@ | cairo | ✓ | | | | | cmake | ✓ | ✓ | ✓ | `cmake-language-server` | | comment | ✓ | | | | +| cpon | ✓ | | ✓ | | | cpp | ✓ | ✓ | ✓ | `clangd` | | css | ✓ | | | `vscode-css-language-server` | | dart | ✓ | | ✓ | `dart` | diff --git a/languages.toml b/languages.toml index f065b1099bd4..10f8f8441493 100644 --- a/languages.toml +++ b/languages.toml @@ -1289,3 +1289,17 @@ indent = { tab-width = 4, unit = " " } [[grammar]] name = "cairo" source = { git = "https://github.com/archseer/tree-sitter-cairo", rev = "5155c6eb40db6d437f4fa41b8bcd8890a1c91716" } + +[[language]] +name = "cpon" +scope = "scope.cpon" +injection-regex = "^cpon$" +file-types = ["cpon", "cp"] +roots = [] +auto-format = true +comment-token = "//" +indent = { tab-width = 2, unit = " " } + +[[grammar]] +name = "cpon" +source = { git = "https://github.com/fvacek/tree-sitter-cpon", rev = "11ba46a4de3eb86934003133099c9963a60f9687" } diff --git a/runtime/queries/cpon/highlights.scm b/runtime/queries/cpon/highlights.scm new file mode 100644 index 000000000000..f85caf4696ca --- /dev/null +++ b/runtime/queries/cpon/highlights.scm @@ -0,0 +1,26 @@ +[ + (true) + (false) +] @constant.builtin.boolean +(null) @constant.builtin +(number) @constant.numeric +(pair + key: (_) @keyword) +(ipair + key: (_) @keyword) +(mpair + key: (_) @keyword) + +(string) @string +(escape_sequence) @constant.character.escape +(ERROR) @error + +"," @punctuation.delimiter +[ + "[" + "]" + "{" + "}" + "<" + ">" +] @punctuation.bracket diff --git a/runtime/queries/cpon/indents.scm b/runtime/queries/cpon/indents.scm new file mode 100644 index 000000000000..53c82767578b --- /dev/null +++ b/runtime/queries/cpon/indents.scm @@ -0,0 +1,12 @@ +[ + (meta) + (map) + (imap) + (array) +] @indent + +[ + "]" + "}" + ">" +] @outdent