Skip to content

Commit b95ce2b

Browse files
committed
feat(svelte): add queries for template blocks and directives
1 parent ab0950c commit b95ce2b

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

queries/svelte/textobjects.scm

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
; inherits: html
2+
3+
; Svelte-specific text objects
4+
; based on grammar defined at
5+
; https://github.com/tree-sitter-grammars/tree-sitter-svelte
6+
; directives
7+
(attribute
8+
(attribute_name) @_name
9+
(expression)? @svelte.directive.inner
10+
(#match? @_name "^(bind|use|transition|in|out|animate|style|class):.*$")) @svelte.directive.outer
11+
12+
; if block
13+
(if_statement) @svelte.block.outer @svelte.if.outer @conditional.outer
14+
15+
(if_statement
16+
(if_start)
17+
.
18+
(_) @_start
19+
(_)? @_end
20+
.
21+
(if_end)
22+
(#make-range! "svelte.block.inner" @_start @_end)
23+
(#make-range! "svelte.if.inner" @_start @_end)
24+
(#make-range! "conditional.inner" @_start @_end))
25+
26+
; each block
27+
(each_statement) @svelte.block.outer @svelte.each.outer @loop.outer
28+
29+
(each_statement
30+
(each_start)
31+
.
32+
(_) @_start
33+
(_)? @_end
34+
.
35+
(each_end)
36+
(#make-range! "svelte.block.inner" @_start @_end)
37+
(#make-range! "svelte.each.inner" @_start @_end)
38+
(#make-range! "loop.inner" @_start @_end))
39+
40+
; key block
41+
(key_statement) @svelte.block.outer @svelte.key.outer
42+
43+
(key_statement
44+
(key_start)
45+
.
46+
(_) @_start
47+
(_)? @_end
48+
.
49+
(key_end)
50+
(#make-range! "svelte.block.inner" @_start @_end)
51+
(#make-range! "svelte.key.inner" @_start @_end))
52+
53+
; await block
54+
(await_statement) @svelte.block.outer @svelte.await.outer
55+
56+
(await_statement
57+
(await_start)
58+
.
59+
(_) @_start
60+
(_)? @_end
61+
.
62+
(await_end)
63+
(#make-range! "svelte.block.inner" @_start @_end)
64+
(#make-range! "svelte.await.inner" @_start @_end))
65+
66+
; snippet block
67+
(snippet_statement) @svelte.block.outer @svelte.snippet.outer
68+
69+
(snippet_statement
70+
(snippet_start)
71+
.
72+
(_) @_start
73+
(_)? @_end
74+
.
75+
(snippet_end)
76+
(#make-range! "svelte.block.inner" @_start @_end)
77+
(#make-range! "svelte.snippet.inner" @_start @_end))

0 commit comments

Comments
 (0)