feat: add indentation queries for angular

This commit is contained in:
Dennis van den Berg 2024-07-16 20:29:19 +02:00 committed by 再生花
parent 276c343b6b
commit 0d5e1214a5
6 changed files with 127 additions and 0 deletions

View file

@ -1 +1,16 @@
; inherits: html_tags
[
(statement_block)
(switch_statement)
] @indent.begin
(statement_block
"{" @indent.branch)
(statement_block
"}" @indent.end)
"}" @indent.branch
"}" @indent.end

View file

@ -0,0 +1,9 @@
@defer (on viewport) {
<calendar-cmp />
} @placeholder (minimum 100ms) {
<small-component />
} @loading (after 100s; minimum 200ms){
<loading-spinner />
} @error {
<error-message />
}

View file

@ -0,0 +1,5 @@
@for (item of items; track item.id) {
<li>{{ item.name }}</li>
} @empty {
<p>No items</p>
}

View file

@ -0,0 +1,15 @@
@if (someCondition) {
<p>someCondition is true</p>
} @else {
<p>someCondition is false</p>
}
<div>
@if (someOther) {
<span>True</span>
@if (nestedCondition) {
<span>Nested</span>
}
}
</div>

View file

@ -0,0 +1,13 @@
<div>
@switch (obj.property) {
@case (1) {
<p>Case 1</p>
}
@case (2) {
<p>Case 2</p>
}
@default {
<p>Default</p>
}
}
</div>

View file

@ -0,0 +1,70 @@
local Runner = require("tests.indent.common").Runner
local runner = Runner:new(it, "tests/indent/angular", {
tabstop = 2,
shiftwidth = 2,
expandtab = true,
filetype = "htmlangular",
})
describe("indent HTML Angular:", function()
describe("whole file:", function()
runner:whole_file "."
end)
describe("new line:", function()
for _, info in ipairs {
{ 1, 2 },
{ 2, 2 },
{ 3, 2 },
{ 4, 2 },
{ 6, 0 },
{ 7, 2 },
{ 8, 4 },
{ 10, 4 },
{ 11, 6 },
{ 12, 6 },
{ 13, 4 },
{ 14, 2 },
} do
runner:new_line("if-else.html", { on_line = info[1], text = "//", indent = info[2] })
end
for _, info in ipairs {
{ 1, 2 },
{ 2, 4 },
{ 3, 6 },
{ 4, 6 },
{ 6, 6 },
{ 7, 6 },
{ 9, 6 },
{ 10, 6 },
{ 12, 2 },
} do
runner:new_line("switch-case.html", { on_line = info[1], text = "//", indent = info[2] })
end
for _, info in ipairs {
{ 1, 2 },
{ 2, 2 },
{ 3, 2 },
{ 4, 2 },
{ 5, 0 },
} do
runner:new_line("for.html", { on_line = info[1], text = "//", indent = info[2] })
end
for _, info in ipairs {
{ 1, 2 },
{ 2, 2 },
{ 3, 2 },
{ 4, 2 },
{ 5, 2 },
{ 6, 2 },
{ 7, 2 },
{ 8, 2 },
{ 9, 0 },
} do
runner:new_line("defer.html", { on_line = info[1], text = "//", indent = info[2] })
end
end)
end)