Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tcl highlighting #9837

Merged
merged 2 commits into from
Apr 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@
| tablegen | ✓ | ✓ | ✓ | |
| tact | ✓ | ✓ | ✓ | |
| task | ✓ | | | |
| tcl | ✓ | | ✓ | |
| templ | ✓ | | | `templ` |
| tfvars | ✓ | | ✓ | `terraform-ls` |
| todotxt | ✓ | | | |
Expand Down
12 changes: 12 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3341,6 +3341,18 @@ grammar = "hyprlang"
name = "hyprlang"
source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-hyprlang", rev = "27af9b74acf89fa6bed4fb8cb8631994fcb2e6f3"}

[[language]]
name = "tcl"
scope = "source.tcl"
injection-regex = "tcl"
file-types = [ "tcl" ]
shebangs = [ "tclish", "jimsh", "wish" ]
comment-token = '#'

[[grammar]]
name = "tcl"
source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-tcl", rev = "56ad1fa6a34ba800e5495d1025a9b0fda338d5b8" }

[[language]]
name = "supercollider"
scope = "source.supercollider"
Expand Down
1 change: 1 addition & 0 deletions runtime/queries/tcl/folds.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(braced_word) @fold
153 changes: 153 additions & 0 deletions runtime/queries/tcl/highlights.scm
the-mikedavis marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@

(comment) @comment

(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"
; "for"
] @keyword.control.repeat

[
"if"
"else"
"elseif"
] @keyword.control.conditional

[
"**"
"/" "*" "%" "+" "-"
"<<" ">>"
">" "<" ">=" "<="
"==" "!="
"eq" "ne"
"in" "ni"
"&"
"^"
"|"
"&&"
"||"
] @operator

(variable_substitution) @variable
(quoted_word) @string
(escaped_character) @constant.character.escape

[
"{" "}"
"[" "]"
";"
] @punctuation.delimiter

((simple_word) @constant.numeric
(#match? @constant.numeric "^[0-9]+$"))

((simple_word) @constant.builtin.boolean
(#any-of? @constant.builtin.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
13 changes: 13 additions & 0 deletions runtime/queries/tcl/indents.scm
the-mikedavis marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[
(braced_word_simple)
(namespace)
(command)
(conditional)
(foreach)
(while)
(try)
(procedure)
(command_substitution)
] @indent

[ "}" "]" ] @outdent
Loading