feat(slim): add parser and queries (#7425)

This commit is contained in:
Théo Reichel 2025-01-21 09:25:08 +01:00 committed by GitHub
parent 65c466178e
commit 1c67567464
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 144 additions and 0 deletions

View file

@ -704,6 +704,9 @@
"slang": {
"revision": "3ed23c04a412a0559162d9cadf96dfff7cb36079"
},
"slim": {
"revision": "23c9917c649659ae8ddf6d88fb9e9c6cfd80b8e0"
},
"slint": {
"revision": "f11da7e62051ba8b9d4faa299c26de8aeedfc1cd"
},

View file

@ -2042,6 +2042,14 @@ list.slang = {
experimental = true,
}
list.slim = {
install_info = {
url = "https://github.com/theoo/tree-sitter-slim",
files = { "src/parser.c", "src/scanner.c" },
},
maintainers = { "@theoo" },
}
list.slint = {
install_info = {
url = "https://github.com/slint-ui/tree-sitter-slint",

1
queries/slim/folds.scm Normal file
View file

@ -0,0 +1 @@
(child) @fold

View file

@ -0,0 +1,82 @@
(comment) @comment @spell
(tag_id) @keyword.function
(tag_class) @keyword.type
(injector) @keyword.import
(directive_sign) @keyword.directive
[
(string_start)
(string_content)
(string_end)
] @string
(bracket) @punctuation.bracket
[
"#{"
"}"
] @punctuation.special
(delimiter) @tag.delimiter
(parameter_name) @variable.parameter
(parameter_value) @tag.attribute
[
(text_inline)
(text_block)
] @markup.raw.block
; Markup tags
; https://developer.mozilla.org/en-US/docs/Web/HTML/Element
(tag_name) @tag
((tag_name) @tag.builtin
(#any-of? @tag.builtin
"doctype" "html" "head" "title" "base" "link" "meta" "style" "body" "article" "section" "nav"
"aside" "hgroup" "footer" "address" "p" "hr" "pre" "blockquote" "menu" "figure" "figcaption"
"main" "div" "small" "s" "cite" "q" "dfn" "abbr" "rt" "rp" "data" "time" "code" "var" "samp"
"kbd" "sub" "sup" "u" "mark" "bdi" "bdo" "span" "br" "wbr" "ins" "del" "picture" "source" "img"
"iframe" "embed" "object" "param" "video" "audio" "track" "map" "area" "table" "caption"
"colgroup" "col" "tbody" "thead" "tfoot" "tr" "td" "th" "form" "label" "input" "button" "select"
"datalist" "optgroup" "option" "textarea" "output" "progress" "meter" "fieldset" "legend"
"details" "summary" "dialog" "script" "noscript" "template" "slot" "canvas"))
((tag_name) @markup.strong
(#any-of? @markup.strong "b" "strong"))
((tag_name) @markup.italic
(#any-of? @markup.italic "i" "em"))
((tag_name) @markup.link
(#any-of? @markup.link "a"))
; Headings
((tag_name) @markup.heading
(#any-of? @markup.heading "header"))
((tag_name) @markup.heading.1
(#any-of? @markup.heading.1 "h1"))
((tag_name) @markup.heading.2
(#any-of? @markup.heading.2 "h2"))
((tag_name) @markup.heading.3
(#any-of? @markup.heading.3 "h3"))
((tag_name) @markup.heading.4
(#any-of? @markup.heading.4 "h4"))
((tag_name) @markup.heading.5
(#any-of? @markup.heading.5 "h5"))
((tag_name) @markup.heading.6
(#any-of? @markup.heading.6 "h6"))
((tag_name) @markup.list
(#any-of? @markup.list "ul" "ol" "li" "dl" "dt" "dd"))

4
queries/slim/indents.scm Normal file
View file

@ -0,0 +1,4 @@
(tag) @indent.begin
((tag) @indent.zero
(#any-of? @indent.zero "doctype" "html"))

View file

@ -0,0 +1,39 @@
((ruby_inline) @injection.content
(#set! injection.language "ruby"))
((ruby_lang) @injection.content
(#set! injection.language "ruby")
(#set! injection.combined))
((javascript_lang) @injection.content
(#set! injection.language "javascript")
(#set! injection.combined))
((css_lang) @injection.content
(#set! injection.language "css")
(#set! injection.combined))
((sass_lang) @injection.content
(#set! injection.language "sass")
(#set! injection.combined))
((scss_lang) @injection.content
(#set! injection.language "scss")
(#set! injection.combined))
((less_lang) @injection.content
(#set! injection.language "less")
(#set! injection.combined))
((scss_lang) @injection.content
(#set! injection.language "scss")
(#set! injection.combined))
((markdown_lang) @injection.content
(#set! injection.language "markdown"))
((rdoc_lang) @injection.content
(#set! injection.language "rdoc"))
((comment) @injection.content
(#set! injection.language "comment"))

7
queries/slim/locals.scm Normal file
View file

@ -0,0 +1,7 @@
(child) @local.scope
(tag_name) @local.definition.function
(tag_class) @local.definition.parameter
(tag_id) @local.definition.constant