add languages r
and rmarkdown
(#1998)
* add languages `r` and `rmarkdown` * r: fix highlights * rmarkdown: add eof in queries * rmarkdown: update lang-support.md * r: fix highlight query precedence
This commit is contained in:
parent
d37369c1e0
commit
31c468ab95
7 changed files with 169 additions and 0 deletions
|
@ -50,9 +50,11 @@
|
|||
| prolog | | | | `swipl` |
|
||||
| protobuf | ✓ | | ✓ | |
|
||||
| python | ✓ | ✓ | ✓ | `pylsp` |
|
||||
| r | ✓ | | | `R` |
|
||||
| racket | | | | `racket` |
|
||||
| regex | ✓ | | | |
|
||||
| rescript | ✓ | ✓ | | `rescript-language-server` |
|
||||
| rmarkdown | ✓ | | ✓ | `R` |
|
||||
| ron | ✓ | | ✓ | |
|
||||
| ruby | ✓ | | ✓ | `solargraph` |
|
||||
| rust | ✓ | ✓ | ✓ | `rust-analyzer` |
|
||||
|
|
|
@ -1038,3 +1038,28 @@ roots = []
|
|||
comment-token = "//"
|
||||
indent = { tab-width = 4, unit = " " }
|
||||
grammar = "rust"
|
||||
|
||||
[[language]]
|
||||
name = "r"
|
||||
scope = "source.r"
|
||||
injection-regex = "(r|R)"
|
||||
file-types = ["r", "R"]
|
||||
shebangs = ["r", "R"]
|
||||
roots = []
|
||||
comment-token = "#"
|
||||
indent = { tab-width = 2, unit = " " }
|
||||
language-server = { command = "R", args = ["--slave", "-e", "languageserver::run()"] }
|
||||
|
||||
[[grammar]]
|
||||
name = "r"
|
||||
source = { git = "https://github.com/r-lib/tree-sitter-r", rev = "cc04302e1bff76fa02e129f332f44636813b0c3c" }
|
||||
|
||||
[[language]]
|
||||
name = "rmarkdown"
|
||||
scope = "source.rmd"
|
||||
injection-regex = "(r|R)md"
|
||||
file-types = ["rmd", "Rmd"]
|
||||
roots = []
|
||||
indent = { tab-width = 2, unit = " " }
|
||||
grammar = "markdown"
|
||||
language-server = { command = "R", args = ["--slave", "-e", "languageserver::run()"] }
|
||||
|
|
128
runtime/queries/r/highlights.scm
Normal file
128
runtime/queries/r/highlights.scm
Normal file
|
@ -0,0 +1,128 @@
|
|||
; highlights.scm
|
||||
|
||||
|
||||
; Literals
|
||||
|
||||
(integer) @constant.numeric.integer
|
||||
|
||||
(float) @constant.numeric.float
|
||||
|
||||
(complex) @constant.numeric.integer
|
||||
|
||||
(string) @string
|
||||
(string (escape_sequence) @constant.character.escape)
|
||||
|
||||
(comment) @comment
|
||||
|
||||
(formal_parameters (identifier) @variable.parameter)
|
||||
(formal_parameters (default_parameter (identifier) @variable.parameter))
|
||||
|
||||
; Operators
|
||||
[
|
||||
"="
|
||||
"<-"
|
||||
"<<-"
|
||||
"->>"
|
||||
"->"
|
||||
] @operator
|
||||
|
||||
(unary operator: [
|
||||
"-"
|
||||
"+"
|
||||
"!"
|
||||
"~"
|
||||
] @operator)
|
||||
|
||||
(binary operator: [
|
||||
"-"
|
||||
"+"
|
||||
"*"
|
||||
"/"
|
||||
"^"
|
||||
"<"
|
||||
">"
|
||||
"<="
|
||||
">="
|
||||
"=="
|
||||
"!="
|
||||
"||"
|
||||
"|"
|
||||
"&&"
|
||||
"&"
|
||||
":"
|
||||
"~"
|
||||
] @operator)
|
||||
|
||||
[
|
||||
"|>"
|
||||
(special)
|
||||
] @operator
|
||||
|
||||
(lambda_function "\\" @operator)
|
||||
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"["
|
||||
"]"
|
||||
"{"
|
||||
"}"
|
||||
] @punctuation.bracket
|
||||
|
||||
(dollar "$" @operator)
|
||||
|
||||
(subset2
|
||||
[
|
||||
"[["
|
||||
"]]"
|
||||
] @punctuation.bracket)
|
||||
|
||||
[
|
||||
"in"
|
||||
(dots)
|
||||
(break)
|
||||
(next)
|
||||
(inf)
|
||||
] @keyword
|
||||
|
||||
[
|
||||
(nan)
|
||||
(na)
|
||||
(null)
|
||||
] @type.builtin
|
||||
|
||||
[
|
||||
"if"
|
||||
"else"
|
||||
"switch"
|
||||
] @keyword.control.conditional
|
||||
|
||||
[
|
||||
"while"
|
||||
"repeat"
|
||||
"for"
|
||||
] @keyword.control.repeat
|
||||
|
||||
[
|
||||
(true)
|
||||
(false)
|
||||
] @constant.builtin.boolean
|
||||
|
||||
"function" @keyword.function
|
||||
|
||||
(call function: (identifier) @function)
|
||||
(default_argument name: (identifier) @variable.parameter)
|
||||
|
||||
|
||||
(namespace_get namespace: (identifier) @namespace
|
||||
"::" @operator)
|
||||
(namespace_get_internal namespace: (identifier) @namespace
|
||||
":::" @operator)
|
||||
|
||||
(namespace_get function: (identifier) @function.method)
|
||||
(namespace_get_internal function: (identifier) @function.method)
|
||||
|
||||
(identifier) @variable
|
||||
|
||||
; Error
|
||||
(ERROR) @error
|
11
runtime/queries/r/locals.scm
Normal file
11
runtime/queries/r/locals.scm
Normal file
|
@ -0,0 +1,11 @@
|
|||
; locals.scm
|
||||
|
||||
(function_definition) @local.scope
|
||||
|
||||
(formal_parameters (identifier) @local.definition)
|
||||
|
||||
(left_assignment name: (identifier) @local.definition)
|
||||
(equals_assignment name: (identifier) @local.definition)
|
||||
(right_assignment name: (identifier) @local.definition)
|
||||
|
||||
(identifier) @local.reference
|
1
runtime/queries/rmarkdown/highlights.scm
Normal file
1
runtime/queries/rmarkdown/highlights.scm
Normal file
|
@ -0,0 +1 @@
|
|||
; inherits: markdown
|
1
runtime/queries/rmarkdown/indents.scm
Normal file
1
runtime/queries/rmarkdown/indents.scm
Normal file
|
@ -0,0 +1 @@
|
|||
; inherits: markdown
|
1
runtime/queries/rmarkdown/injections.scm
Normal file
1
runtime/queries/rmarkdown/injections.scm
Normal file
|
@ -0,0 +1 @@
|
|||
; inherits: markdown
|
Loading…
Add table
Reference in a new issue