diff options
author | Riley Bruins <ribru17@hotmail.com> | 2024-08-17 21:05:09 -0700 |
---|---|---|
committer | Riley Bruins <ribru17@hotmail.com> | 2024-12-06 08:36:08 -0800 |
commit | b8c75a31e6f4716f542cd2000e4a7c19c1ae9d70 (patch) | |
tree | ad6d600790a0ee1ddab5ec367729689f73a29c44 /runtime/doc | |
parent | 1077843b9bee550fe2ae1e3e700a9c135005d593 (diff) | |
download | rneovim-b8c75a31e6f4716f542cd2000e4a7c19c1ae9d70.tar.gz rneovim-b8c75a31e6f4716f542cd2000e4a7c19c1ae9d70.tar.bz2 rneovim-b8c75a31e6f4716f542cd2000e4a7c19c1ae9d70.zip |
feat(treesitter): #trim! can trim all whitespace
This commit also implements more generic trimming, acting on all
whitespace (charwise) rather than just empty lines.
It will unblock
https://github.com/nvim-treesitter/nvim-treesitter/pull/3442 and allow
for properly concealing markdown bullet markers regardless of indent
width, e.g.
Diffstat (limited to 'runtime/doc')
-rw-r--r-- | runtime/doc/news.txt | 2 | ||||
-rw-r--r-- | runtime/doc/treesitter.txt | 27 |
2 files changed, 24 insertions, 5 deletions
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 58fe2e02e8..5a8075d36c 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -280,6 +280,8 @@ TREESITTER • |LanguageTree:node_for_range()| gets anonymous and named nodes for a range • |vim.treesitter.get_node()| now takes an option `include_anonymous`, default false, which allows it to return anonymous nodes as well as named nodes. +• |treesitter-directive-trim!| can trim all whitespace (not just empty lines) + from both sides of a node. TUI diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt index 5fc6429f7a..877d90a3b7 100644 --- a/runtime/doc/treesitter.txt +++ b/runtime/doc/treesitter.txt @@ -245,15 +245,32 @@ The following directives are built in: (#gsub! @_node ".*%.(.*)" "%1") < `trim!` *treesitter-directive-trim!* - Trim blank lines from the end of the node. This will set a new - `metadata[capture_id].range`. + Trims whitespace from the node. Sets a new + `metadata[capture_id].range`. Takes a capture ID and, optionally, four + integers to customize trimming behavior (`1` meaning trim, `0` meaning + don't trim). When only given a capture ID, trims blank lines (lines + that contain only whitespace, or are empty) from the end of the node + (for backwards compatibility). Can trim all whitespace from both sides + of the node if parameters are given. + Examples: >query + ; only trim blank lines from the end of the node + ; (equivalent to (#trim! @fold 0 0 1 0)) + (#trim! @fold) + + ; trim blank lines from both sides of the node + (#trim! @fold 1 0 1 0) + + ; trim all whitespace around the node + (#trim! @fold 1 1 1 1) +< Parameters: ~ {capture_id} + {trim_start_linewise} + {trim_start_charwise} + {trim_end_linewise} (default `1` if only given {capture_id}) + {trim_end_charwise} - Example: >query - (#trim! @fold) -< Further directives can be added via |vim.treesitter.query.add_directive()|. Use |vim.treesitter.query.list_directives()| to list all available directives. |