Skip to content

Commit 7de8764

Browse files
committed
ci: add query validation job
1 parent e91e1f9 commit 7de8764

File tree

6 files changed

+81
-25
lines changed

6 files changed

+81
-25
lines changed

.github/workflows/ci.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,26 @@ jobs:
7272
if: steps.scanner-changes.outputs.changed == 'true'
7373
with:
7474
directory: ${{matrix.parser}}
75+
76+
query:
77+
name: Validate queries
78+
runs-on: ubuntu-latest
79+
strategy:
80+
fail-fast: false
81+
matrix:
82+
parser: [markdown, markdown-inline]
83+
steps:
84+
- name: Set up repository
85+
uses: actions/checkout@v6
86+
87+
- name: Set up tree-sitter
88+
uses: tree-sitter/setup-action/cli@v2
89+
90+
- name: Build parser
91+
run: tree-sitter build tree-sitter-${{matrix.parser}}
92+
93+
- name: Set up ts_query_ls
94+
run: curl -fL https://github.com/ribru17/ts_query_ls/releases/latest/download/ts_query_ls-x86_64-unknown-linux-gnu.tar.gz | tar -xz
95+
96+
- name: Check queries
97+
run: ./ts_query_ls check -f tree-sitter-${{matrix.parser}}/queries/

.tsqueryrc.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/ribru17/ts_query_ls/refs/heads/master/schemas/config.json",
3+
"parser_install_directories": ["."],
4+
"language_retrieval_patterns": ["tree-sitter-([^/]+)/queries/[^/]+\\.scm$"]
5+
}

tree-sitter-markdown-inline/queries/highlights.scm

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
;; From nvim-treesitter/nvim-treesitter
1+
; From nvim-treesitter/nvim-treesitter
22
[
33
(code_span)
44
(link_title)
@@ -29,9 +29,28 @@
2929
(hard_line_break)
3030
] @string.escape
3131

32-
(image ["!" "[" "]" "(" ")"] @punctuation.delimiter)
33-
(inline_link ["[" "]" "(" ")"] @punctuation.delimiter)
34-
(shortcut_link ["[" "]"] @punctuation.delimiter)
32+
(image
33+
[
34+
"!"
35+
"["
36+
"]"
37+
"("
38+
")"
39+
] @punctuation.delimiter)
40+
41+
(inline_link
42+
[
43+
"["
44+
"]"
45+
"("
46+
")"
47+
] @punctuation.delimiter)
48+
49+
(shortcut_link
50+
[
51+
"["
52+
"]"
53+
] @punctuation.delimiter)
3554

3655
; NOTE: extension not enabled by default
3756
; (wiki_link ["[" "|" "]"] @punctuation.delimiter)
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1-
((html_tag) @injection.content (#set! injection.language "html"))
2-
((latex_block) @injection.content (#set! injection.language "latex"))
1+
((html_tag) @injection.content
2+
(#set! injection.language "html"))
3+
4+
((latex_block) @injection.content
5+
(#set! injection.language "latex"))

tree-sitter-markdown/queries/highlights.scm

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
;From nvim-treesitter/nvim-treesitter
2-
(atx_heading (inline) @text.title)
3-
(setext_heading (paragraph) @text.title)
2+
(atx_heading
3+
(inline) @text.title)
4+
5+
(setext_heading
6+
(paragraph) @text.title)
47

58
[
69
(atx_h1_marker)
@@ -19,19 +22,13 @@
1922
(fenced_code_block)
2023
] @text.literal
2124

22-
[
23-
(fenced_code_block_delimiter)
24-
] @punctuation.delimiter
25+
(fenced_code_block_delimiter) @punctuation.delimiter
2526

2627
(code_fence_content) @none
2728

28-
[
29-
(link_destination)
30-
] @text.uri
29+
(link_destination) @text.uri
3130

32-
[
33-
(link_label)
34-
] @text.reference
31+
(link_label) @text.reference
3532

3633
[
3734
(list_marker_plus)
@@ -47,6 +44,4 @@
4744
(block_quote_marker)
4845
] @punctuation.special
4946

50-
[
51-
(backslash_escape)
52-
] @string.escape
47+
(backslash_escape) @string.escape

tree-sitter-markdown/queries/injections.scm

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,23 @@
33
(language) @injection.language)
44
(code_fence_content) @injection.content)
55

6-
((html_block) @injection.content (#set! injection.language "html"))
6+
((html_block) @injection.content
7+
(#set! injection.language "html"))
78

8-
(document . (section . (thematic_break) (_) @injection.content (thematic_break)) (#set! injection.language "yaml"))
9+
(document
10+
.
11+
(section
12+
.
13+
(thematic_break)
14+
(_) @injection.content
15+
(thematic_break))
16+
(#set! injection.language "yaml"))
917

10-
((minus_metadata) @injection.content (#set! injection.language "yaml"))
18+
((minus_metadata) @injection.content
19+
(#set! injection.language "yaml"))
1120

12-
((plus_metadata) @injection.content (#set! injection.language "toml"))
21+
((plus_metadata) @injection.content
22+
(#set! injection.language "toml"))
1323

14-
((inline) @injection.content (#set! injection.language "markdown_inline"))
24+
((inline) @injection.content
25+
(#set! injection.language "markdown_inline"))

0 commit comments

Comments
 (0)