mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-01 19:17:02 -04:00
feat(tcl): add parser and queries
This commit is contained in:
parent
51d15ef5da
commit
b8840a426e
6 changed files with 143 additions and 0 deletions
|
|
@ -394,6 +394,7 @@ We are looking for maintainers to add more parsers and to write query files for
|
|||
- [x] [t32](https://gitlab.com/xasc/tree-sitter-t32.git) (maintained by @xasc)
|
||||
- [x] [tablegen](https://github.com/amaanq/tree-sitter-tablegen) (maintained by @amaanq)
|
||||
- [x] [teal](https://github.com/euclidianAce/tree-sitter-teal) (maintained by @euclidianAce)
|
||||
- [x] [tcl](https://github.com/tree-sitter-grammars/tree-sitter-tcl) (maintained by @lewis6991)
|
||||
- [x] [templ](https://github.com/vrischmann/tree-sitter-templ) (maintained by @vrischmann)
|
||||
- [x] [terraform](https://github.com/MichaHoffmann/tree-sitter-hcl) (maintained by @MichaHoffmann)
|
||||
- [x] [textproto](https://github.com/PorterAtGoogle/tree-sitter-textproto) (maintained by @Porter)
|
||||
|
|
|
|||
|
|
@ -662,6 +662,9 @@
|
|||
"teal": {
|
||||
"revision": "33482c92a0dfa694491d34e167a1d2f52b0dccb1"
|
||||
},
|
||||
"tcl": {
|
||||
"revision": "ca2643e3cd818771635a152899fb70b6b37d648a"
|
||||
},
|
||||
"templ": {
|
||||
"revision": "592faa3186ef857c92e4bd1c31d73c07a4a334db"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1934,6 +1934,14 @@ list.teal = {
|
|||
maintainers = { "@euclidianAce" },
|
||||
}
|
||||
|
||||
list.tcl = {
|
||||
install_info = {
|
||||
url = "https://github.com/tree-sitter-grammars/tree-sitter-tcl",
|
||||
files = { "src/parser.c", "src/scanner.c" },
|
||||
},
|
||||
maintainers = { "@lewis6991" },
|
||||
}
|
||||
|
||||
list.terraform = {
|
||||
install_info = {
|
||||
url = "https://github.com/MichaHoffmann/tree-sitter-hcl",
|
||||
|
|
|
|||
1
queries/tcl/folds.scm
Normal file
1
queries/tcl/folds.scm
Normal file
|
|
@ -0,0 +1 @@
|
|||
(braced_word) @fold
|
||||
105
queries/tcl/highlights.scm
Normal file
105
queries/tcl/highlights.scm
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
(comment) @comment @spell
|
||||
|
||||
(command
|
||||
name: (simple_word) @function)
|
||||
|
||||
"proc" @keyword.function
|
||||
|
||||
(procedure
|
||||
name: (_) @variable)
|
||||
|
||||
(set
|
||||
(simple_word) @variable)
|
||||
|
||||
(argument
|
||||
name: (_) @variable.parameter)
|
||||
|
||||
((simple_word) @variable.builtin
|
||||
(#any-of? @variable.builtin "argc" "argv" "argv0" "auto_path" "env" "errorCode" "errorInfo" "tcl_interactive" "tcl_library" "tcl_nonwordchars" "tcl_patchLevel" "tcl_pkgPath" "tcl_platform" "tcl_precision" "tcl_rcFileName" "tcl_traceCompile" "tcl_traceExec" "tcl_wordchars" "tcl_version"))
|
||||
|
||||
"expr" @function.builtin
|
||||
|
||||
(command
|
||||
name: (simple_word) @function.builtin
|
||||
(#any-of? @function.builtin "cd" "exec" "exit" "incr" "info" "join" "puts" "regexp" "regsub" "split" "subst" "trace" "source"))
|
||||
|
||||
(command
|
||||
name: (simple_word) @keyword
|
||||
(#any-of? @keyword "append" "break" "catch" "continue" "default" "dict" "error" "eval" "global" "lappend" "lassign" "lindex" "linsert" "list" "llength" "lmap" "lrange" "lrepeat" "lreplace" "lreverse" "lsearch" "lset" "lsort" "package" "return" "switch" "throw" "unset" "variable"))
|
||||
|
||||
[
|
||||
"error"
|
||||
"namespace"
|
||||
"on"
|
||||
"set"
|
||||
"try"
|
||||
] @keyword
|
||||
|
||||
(unpack) @operator
|
||||
|
||||
[
|
||||
"while"
|
||||
"foreach"
|
||||
] @keyword.repeat
|
||||
|
||||
[
|
||||
"if"
|
||||
"else"
|
||||
"elseif"
|
||||
] @keyword.conditional
|
||||
|
||||
[
|
||||
"**"
|
||||
"/"
|
||||
"*"
|
||||
"%"
|
||||
"+"
|
||||
"-"
|
||||
"<<"
|
||||
">>"
|
||||
">"
|
||||
"<"
|
||||
">="
|
||||
"<="
|
||||
"=="
|
||||
"!="
|
||||
"eq"
|
||||
"ne"
|
||||
"in"
|
||||
"ni"
|
||||
"&"
|
||||
"^"
|
||||
"|"
|
||||
"&&"
|
||||
"||"
|
||||
] @operator
|
||||
|
||||
(variable_substitution) @variable
|
||||
|
||||
(quoted_word) @string
|
||||
|
||||
(escaped_character) @string.escape
|
||||
|
||||
[
|
||||
"{"
|
||||
"}"
|
||||
"["
|
||||
"]"
|
||||
";"
|
||||
] @punctuation.delimiter
|
||||
|
||||
((simple_word) @number
|
||||
(#lua-match? @number "^[0-9]+$"))
|
||||
|
||||
((simple_word) @boolean
|
||||
(#any-of? @boolean "true" "false"))
|
||||
|
||||
; after apply array auto_execok auto_import auto_load auto_mkindex auto_qualify
|
||||
; auto_reset bgerror binary chan clock close coroutine dde encoding eof fblocked
|
||||
; fconfigure fcopy file fileevent filename flush format gets glob history http
|
||||
; interp load mathfunc mathop memory msgcat my next nextto open parray pid
|
||||
; pkg::create pkg_mkIndex platform platform::shell pwd re_syntax read refchan
|
||||
; registry rename safe scan seek self socket source string tailcall tcl::prefix
|
||||
; tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord
|
||||
; tcl_wordBreakAfter tcl_wordBreakBefore tcltest tell time timerate tm
|
||||
; transchan unknown unload update uplevel upvar vwait yield yieldto zlib
|
||||
25
queries/tcl/indents.scm
Normal file
25
queries/tcl/indents.scm
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
[
|
||||
(braced_word_simple)
|
||||
(namespace)
|
||||
(command)
|
||||
(conditional)
|
||||
(foreach)
|
||||
(while)
|
||||
(try)
|
||||
(procedure)
|
||||
(command_substitution)
|
||||
] @indent.begin
|
||||
|
||||
(quoted_word) @indent.align
|
||||
|
||||
([
|
||||
(expr)
|
||||
(arguments)
|
||||
] @indent.align
|
||||
(#set! "indent.open_delimiter" "{")
|
||||
(#set! "indent.close_delimiter" "}"))
|
||||
|
||||
[
|
||||
"}"
|
||||
"]"
|
||||
] @indent.branch @indent.end
|
||||
Loading…
Add table
Add a link
Reference in a new issue