diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index c5f79aa292a4..2d02d8749a01 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -202,6 +202,7 @@ | task | ✓ | | | | | tcl | ✓ | | ✓ | | | templ | ✓ | | | `templ` | +| textproto | ✓ | ✓ | ✓ | | | tfvars | ✓ | | ✓ | `terraform-ls` | | thrift | ✓ | | | | | todotxt | ✓ | | | | diff --git a/languages.toml b/languages.toml index 72b976dd0389..231a9892092c 100644 --- a/languages.toml +++ b/languages.toml @@ -343,6 +343,19 @@ indent = { tab-width = 2, unit = " " } name = "protobuf" source = { git = "https://github.com/yusdacra/tree-sitter-protobuf", rev = "19c211a01434d9f03efff99f85e19f967591b175"} +[[language]] +name = "textproto" +file-types = ["txtpb", "textpb", "textproto"] +comment-token = "#" +scope = "source.textproto" +indent = { tab-width = 2, unit = " " } +formatter = { command = "txtpbfmt" } +auto-format = true + +[[grammar]] +name = "textproto" +source = { git = "https://github.com/PorterAtGoogle/tree-sitter-textproto", rev = "d900077aef9f5dcb0d47c86be33585013ed5db9a"} + [[language]] name = "elixir" scope = "source.elixir" diff --git a/runtime/queries/textproto/highlights.scm b/runtime/queries/textproto/highlights.scm new file mode 100644 index 000000000000..766897f44f11 --- /dev/null +++ b/runtime/queries/textproto/highlights.scm @@ -0,0 +1,22 @@ +(string) @string + +(field_name) @variable.other.member + +(comment) @comment + +(number) @constant.numeric +; covers e.g. booleans and "inf" +(scalar_value (identifier)) @constant +; Covers "-inf" +(scalar_value (signed_identifier)) @constant.numeric + +[ + (open_squiggly) + (close_squiggly) + (open_square) + (close_square) + (open_arrow) + (close_arrow) +] @punctuation.bracket + +"," @punctuation.delimiter diff --git a/runtime/queries/textproto/indents.scm b/runtime/queries/textproto/indents.scm new file mode 100644 index 000000000000..ebea3ff39523 --- /dev/null +++ b/runtime/queries/textproto/indents.scm @@ -0,0 +1,11 @@ +[ + (message_value) + (message_list) + (scalar_list) +] @indent + +[ + (close_arrow) + (close_square) + (close_squiggly) +] @outdent diff --git a/runtime/queries/textproto/textobjects.scm b/runtime/queries/textproto/textobjects.scm new file mode 100644 index 000000000000..9cc428c6a2a1 --- /dev/null +++ b/runtime/queries/textproto/textobjects.scm @@ -0,0 +1,12 @@ +(message_field + (_) @entry.inside) @entry.around + +(scalar_field + (_) @entry.inside) @entry.around + +(message_list + (_) @entry.around) + +(scalar_list + (_) @entry.around) +