Add protobuf support (#6748)

Release Notes:

- Added protobuf syntax highlighting
([#5160](https://github.com/zed-industries/zed/issues/5160)).
This commit is contained in:
Derrick Laird 2024-01-30 12:08:10 -07:00 committed by GitHub
parent dfbcaf36fc
commit 7bfa584eb6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 109 additions and 0 deletions

10
Cargo.lock generated
View File

@ -8665,6 +8665,15 @@ dependencies = [
"tree-sitter",
]
[[package]]
name = "tree-sitter-proto"
version = "0.0.2"
source = "git+https://github.com/rewinfrey/tree-sitter-proto?rev=36d54f288aee112f13a67b550ad32634d0c2cb52#36d54f288aee112f13a67b550ad32634d0c2cb52"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-purescript"
version = "1.0.0"
@ -9876,6 +9885,7 @@ dependencies = [
"tree-sitter-nix",
"tree-sitter-nu",
"tree-sitter-php",
"tree-sitter-proto",
"tree-sitter-purescript",
"tree-sitter-python",
"tree-sitter-racket",

View File

@ -149,6 +149,7 @@ tree-sitter-json = { git = "https://github.com/tree-sitter/tree-sitter-json", re
tree-sitter-rust = "0.20.3"
tree-sitter-markdown = { git = "https://github.com/MDeiml/tree-sitter-markdown", rev = "330ecab87a3e3a7211ac69bbadc19eabecdb1cca" }
tree-sitter-php = "0.21.1"
tree-sitter-proto = {git = "https://github.com/rewinfrey/tree-sitter-proto", rev = "36d54f288aee112f13a67b550ad32634d0c2cb52"}
tree-sitter-purescript = { git = "https://github.com/ivanmoreau/tree-sitter-purescript", rev = "a37140f0c7034977b90faa73c94fcb8a5e45ed08" }
tree-sitter-python = "0.20.2"
tree-sitter-toml = { git = "https://github.com/tree-sitter/tree-sitter-toml", rev = "342d9be207c2dba869b9967124c679b5e6fd0ebe" }

View File

@ -127,6 +127,7 @@ tree-sitter-heex.workspace = true
tree-sitter-json.workspace = true
tree-sitter-rust.workspace = true
tree-sitter-markdown.workspace = true
tree-sitter-proto.workspace = true
tree-sitter-python.workspace = true
tree-sitter-toml.workspace = true
tree-sitter-typescript.workspace = true

View File

@ -295,6 +295,7 @@ pub fn init(
tree_sitter_uiua::language(),
vec![Arc::new(uiua::UiuaLanguageServer {})],
);
language("proto", tree_sitter_proto::language(), vec![]);
if let Ok(children) = std::fs::read_dir(&*PLUGINS_DIR) {
for child in children {

View File

@ -0,0 +1,12 @@
name = "proto"
path_suffixes = ["proto"]
line_comments = ["// "]
autoclose_before = ";:.,=}])>"
brackets = [
{ start = "{", end = "}", close = true, newline = true },
{ start = "[", end = "]", close = true, newline = true },
{ start = "(", end = ")", close = true, newline = true },
{ start = "\"", end = "\"", close = true, newline = false, not_in = ["comment", "string"] },
{ start = "'", end = "'", close = true, newline = false, not_in = ["comment", "string"] },
{ start = "/*", end = " */", close = true, newline = false, not_in = ["comment", "string"] },
]

View File

@ -0,0 +1,61 @@
[
"syntax"
"package"
"option"
"optional"
"import"
"service"
"rpc"
"returns"
"message"
"enum"
"oneof"
"repeated"
"reserved"
"to"
] @keyword
[
(key_type)
(type)
(message_name)
(enum_name)
(service_name)
(rpc_name)
(message_or_enum_type)
] @type
(enum_field
(identifier) @constant)
[
(string)
"\"proto3\""
] @string
(int_lit) @number
[
(true)
(false)
] @boolean
(comment) @comment
[
"("
")"
"["
"]"
"{"
"}"
"<"
">"
] @punctuation.bracket
[
";"
","
] @punctuation.delimiter
"=" @operator

View File

@ -0,0 +1,19 @@
(message
"message" @context
(message_name
(identifier) @name)) @item
(service
"service" @context
(service_name
(identifier) @name)) @item
(rpc
"rpc" @context
(rpc_name
(identifier) @name)) @item
(enum
"enum" @context
(enum_name
(identifier) @name)) @item

View File

@ -0,0 +1,4 @@
# Proto
- Tree-Sitter: [tree-sitter-proto](https://github.com/rewinfrey/tree-sitter-proto)
- Language-Server: N/A