diff options
| author | Riley Bruins <ribru17@hotmail.com> | 2024-02-21 01:47:09 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-21 18:47:09 +0900 |
| commit | 455f6586bae558f99b51c0b07d46adc736f3822c (patch) | |
| tree | a2f5091bd44cc51794c85dd0d86846bd8398d9f4 /tests/indent | |
| parent | highlights(slang): add support for `where` (diff) | |
| download | nvim-treesitter-455f6586bae558f99b51c0b07d46adc736f3822c.tar nvim-treesitter-455f6586bae558f99b51c0b07d46adc736f3822c.tar.gz nvim-treesitter-455f6586bae558f99b51c0b07d46adc736f3822c.tar.bz2 nvim-treesitter-455f6586bae558f99b51c0b07d46adc736f3822c.tar.lz nvim-treesitter-455f6586bae558f99b51c0b07d46adc736f3822c.tar.xz nvim-treesitter-455f6586bae558f99b51c0b07d46adc736f3822c.tar.zst nvim-treesitter-455f6586bae558f99b51c0b07d46adc736f3822c.zip | |
feat(query): indents that reflect the formatter (#6154)
* feat(query): indents that reflect the formatter
Indentation queries that reflect the query formatter. Only applicable if `lispoptions=expr:1`
Diffstat (limited to 'tests/indent')
| -rw-r--r-- | tests/indent/common.lua | 2 | ||||
| -rw-r--r-- | tests/indent/query/test.scm | 41 | ||||
| -rw-r--r-- | tests/indent/query_spec.lua | 25 |
3 files changed, 67 insertions, 1 deletions
diff --git a/tests/indent/common.lua b/tests/indent/common.lua index 451d2f626..1ddd91a40 100644 --- a/tests/indent/common.lua +++ b/tests/indent/common.lua @@ -83,7 +83,7 @@ local function compare_indent(before, after, xfail) end local function set_buf_indent_opts(opts) - local optnames = { "tabstop", "shiftwidth", "softtabstop", "expandtab", "filetype" } + local optnames = { "tabstop", "shiftwidth", "softtabstop", "expandtab", "filetype", "lispoptions" } for _, opt in ipairs(optnames) do if opts[opt] ~= nil then vim.bo[opt] = opts[opt] diff --git a/tests/indent/query/test.scm b/tests/indent/query/test.scm new file mode 100644 index 000000000..62b94417c --- /dev/null +++ b/tests/indent/query/test.scm @@ -0,0 +1,41 @@ +; vim:ft=query +; format-ignore +(fenced_code_block (fenced_code_block_delimiter) @label + (info_string + (language) @_lang) + (#offset! @label 0 1 0 -1) + (#ft-conceal! @_lang)) + +([ + (list_marker_minus) + (list_marker_plus) + (list_marker_star) +] @markup.list + (#offset-first-n! @markup.list 1) + (#set! conceal "•")) + +(list + (list_item + (list + (list_item + ([ + (list_marker_minus) + (list_marker_plus) + (list_marker_star) + ] @markup.list + (#offset-first-n! @markup.list 1) + (#set! conceal "◦")))))) + +; comment +(while_statement + [ + "while" + "do" + ] @open.loop + "end" @close.loop) @scope.loop + +[ + "toplevel" + "list" +] @variable +(( diff --git a/tests/indent/query_spec.lua b/tests/indent/query_spec.lua new file mode 100644 index 000000000..1f9c2315d --- /dev/null +++ b/tests/indent/query_spec.lua @@ -0,0 +1,25 @@ +local Runner = require("tests.indent.common").Runner + +local run = Runner:new(it, "tests/indent/query", { + tabstop = 2, + shiftwidth = 2, + softtabstop = 2, + expandtab = true, + lispoptions = "expr:1", +}) + +describe("indent Query:", function() + describe("whole file:", function() + run:whole_file(".", {}) + end) + describe("new line:", function() + run:new_line("test.scm", { on_line = 3, text = "(node)", indent = 2 }) + run:new_line("test.scm", { on_line = 5, text = "(node)", indent = 2 }) + run:new_line("test.scm", { on_line = 12, text = "(node)", indent = 2 }) + run:new_line("test.scm", { on_line = 25, text = "(#my-directive!)", indent = 10 }) + run:new_line("test.scm", { on_line = 34, text = '"more"', indent = 2 }) + run:new_line("test.scm", { on_line = 35, text = "(node)", indent = 0 }) + run:new_line("test.scm", { on_line = 40, text = "(node)", indent = 0 }) + run:new_line("test.scm", { on_line = 41, text = "node_name", indent = 2 }) + end) +end) |
