Skip to content

Commit

Permalink
Add Vlang tree-sitter in the languages.toml
Browse files Browse the repository at this point in the history
* $ cargo xtask docgen
* Name it v instead of vlang and add highlights.scm
* Setup tabstop and vls
  • Loading branch information
radare committed May 26, 2022
1 parent efae761 commit 0eacb2f
Show file tree
Hide file tree
Showing 3 changed files with 163 additions and 0 deletions.
1 change: 1 addition & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
| tsx || | | `typescript-language-server` |
| twig || | | |
| typescript || || `typescript-language-server` |
| v || | | |
| vala || | | `vala-language-server` |
| verilog ||| | `svlangserver` |
| vue || | | `vls` |
Expand Down
15 changes: 15 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1381,6 +1381,21 @@ indent = { tab-width = 2, unit = " " }
name = "scheme"
source = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "27fb77db05f890c2823b4bd751c6420378df146b" }

[[language]]
name = "v"
scope = "source.v"
file-types = ["v", "vv"]
shebangs = ["v run"]
roots = ["v.mod"]
language-server = { command = "vls", args = [] }
auto-format = true
comment-token = "//"
indent = { tab-width = 4, unit = "\t" }

[[grammar]]
name = "v"
source = { git = "https://github.com/vlang/vls", subpath = "tree_sitter_v", rev = "3e8124ea4ab80aa08ec77f03df53f577902a0cdd" }

[[language]]
name = "verilog"
scope = "source.verilog"
Expand Down
147 changes: 147 additions & 0 deletions runtime/queries/v/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
(ERROR) @error
(comment) @comment

(identifier) @variable
(module_identifier) @variable
(import_path) @variable

(parameter_declaration
name: (identifier) @parameter)
(function_declaration
name: (identifier) @function)
(function_declaration
receiver: (parameter_list)
name: (identifier) @method)

(call_expression
function: (identifier) @function)
(call_expression
function: (selector_expression
field: (identifier) @method))

(type_identifier) @type
(builtin_type) @type
(pointer_type) @type
(array_type) @type

(field_identifier) @property
(selector_expression
field: (identifier) @property)

(int_literal) @number
(interpreted_string_literal) @string
(rune_literal) @string
(escape_sequence) @string.escape

[
"as"
"asm"
"assert"
;"atomic"
;"break"
"const"
;"continue"
"defer"
"else"
"enum"
"fn"
"for"
"$for"
"go"
"goto"
"if"
"$if"
"import"
"in"
"!in"
"interface"
"is"
"!is"
"lock"
"match"
"module"
"mut"
"or"
"pub"
"return"
"rlock"
"select"
;"shared"
;"static"
"struct"
"type"
;"union"
"unsafe"
] @keyword

[
(true)
(false)
] @boolean

[
"."
","
":"
";"
] @punctuation.delimiter

[
"("
")"
"{"
"}"
"["
"]"
] @punctuation.bracket

(array) @punctuation.bracket

[
"++"
"--"

"+"
"-"
"*"
"/"
"%"

"~"
"&"
"|"
"^"

"!"
"&&"
"||"
"!="

"<<"
">>"

"<"
">"
"<="
">="

"+="
"-="
"*="
"/="
"&="
"|="
"^="
"<<="
">>="

"="
":="
"=="

"?"
"<-"
"$"
".."
"..."
] @operator

0 comments on commit 0eacb2f

Please sign in to comment.