mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-26 07:12:03 +03:00
Add protobuf support (#6748)
Release Notes: - Added protobuf syntax highlighting ([#5160](https://github.com/zed-industries/zed/issues/5160)).
This commit is contained in:
parent
dfbcaf36fc
commit
7bfa584eb6
10
Cargo.lock
generated
10
Cargo.lock
generated
@ -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",
|
||||
|
@ -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" }
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
12
crates/zed/src/languages/proto/config.toml
Normal file
12
crates/zed/src/languages/proto/config.toml
Normal 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"] },
|
||||
]
|
61
crates/zed/src/languages/proto/highlights.scm
Normal file
61
crates/zed/src/languages/proto/highlights.scm
Normal 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
|
19
crates/zed/src/languages/proto/outline.scm
Normal file
19
crates/zed/src/languages/proto/outline.scm
Normal 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
|
4
docs/src/languages/proto.md
Normal file
4
docs/src/languages/proto.md
Normal file
@ -0,0 +1,4 @@
|
||||
# Proto
|
||||
|
||||
- Tree-Sitter: [tree-sitter-proto](https://github.com/rewinfrey/tree-sitter-proto)
|
||||
- Language-Server: N/A
|
Loading…
Reference in New Issue
Block a user