update docs

This commit is contained in:
kiyan42 2020-06-19 13:51:09 +02:00
parent 38af29a912
commit cabe61ac19
3 changed files with 33 additions and 50 deletions

View file

@ -131,19 +131,13 @@ Some of these features are :
You can find the roadmap [here](https://github.com/nvim-treesitter/nvim-treesitter/projects/1). You can find the roadmap [here](https://github.com/nvim-treesitter/nvim-treesitter/projects/1).
The roadmap and all features of this plugin are open to change, and any suggestion will be highly appreciated! The roadmap and all features of this plugin are open to change, and any suggestion will be highly appreciated!
## Api ## Utils
Nvim-treesitter exposes an api to extend node capabilites. You can retrieve the api like this: you can get some utility functions with
```lua ```lua
local ts_node_api = require 'nvim-treesitter'.get_node_api() local ts_utils = require 'nvim-treesitter.ts_utils'
``` ```
More information is available in neovim documentation (`:help nvim-treesitter-utils`).
You can also retrieve the current state of the current buffer with:
```lua
local buf_state = require'nvim-treesitter'.get_buf_state()
```
More information is available in neovim documentation (`:help nvim-treesitter-api`).
## Supported Languages ## Supported Languages

View file

@ -91,26 +91,28 @@ A list of languages can be found at |:TSInstallInfo|
List modules state for the current session. List modules state for the current session.
============================================================================== ==============================================================================
API *nvim-treesitter-api* UTILS *nvim-treesitter-utils*
Nvim treesitter exposes extended functions to use on nodes and scopes. Nvim treesitter has some wrapper functions that you can retrieve with:
you can retrieve the api with:
> >
local ts_node_api = require 'nvim-treesitter'.get_node_api() local ts_utils = require 'nvim-treesitter.ts_utils'
< <
Methods Methods
get_node_text(node, bufnr) *ts_api.get_node_text* get_node_at_cursor() *ts_utils.get_node_at_cursor*
returns the node under the cursor
get_node_text(node, bufnr) *ts_utils.get_node_text*
return the text content of a node return the text content of a node
is_parent(dest, source) *ts_api.is_parent* is_parent(dest, source) *ts_utils.is_parent*
determines wether `dest` is a parent of `source` determines wether `dest` is a parent of `source`
return a boolean return a boolean
get_named_children(node) *ts_api.get_named_children* get_named_children(node) *ts_utils.get_named_children*
return a table of named children of `node` return a table of named children of `node`
get_next_node(node, allow_switch_parent, allow_next_parent) *ts_api.get_next_node* get_next_node(node, allow_switch_parent, allow_next_parent) *ts_utils.get_next_node*
return the next node within the same parent. return the next node within the same parent.
if no node is found, returns `nil`. if no node is found, returns `nil`.
if `allow_switch_parent` is true, it will allow switching parent if `allow_switch_parent` is true, it will allow switching parent
@ -118,42 +120,28 @@ get_next_node(node, allow_switch_parent, allow_next_parent) *ts_api.get_next_nod
if `allow_next_parent` is true, it will allow next parent if if `allow_next_parent` is true, it will allow next parent if
the node is the last node and the next parent doesn't have children. the node is the last node and the next parent doesn't have children.
get_previous_node(node, allow_switch_parents, allow_prev_parent) *ts_api.get_previous_node* get_previous_node(node, allow_switch_parents, allow_prev_parent) *ts_utils.get_previous_node*
return the previous node within the same parent. return the previous node within the same parent.
`allow_switch_parent` and `allow_prev_parent` follow the same rule `allow_switch_parent` and `allow_prev_parent` follow the same rule
as |ts_api.get_next_node| but if the node is the first node. as |ts_utils.get_next_node| but if the node is the first node.
containing_scope(node) *ts_api.containing_scope* containing_scope(node) *ts_utils.containing_scope*
return the smallest scope containing the node return the smallest scope containing the node
parent_scope(node, cursor_pos) *ts_api.parent_scope* parent_scope(node, cursor_pos) *ts_utils.parent_scope*
return the parent scope of the current scope that contains the node. return the parent scope of the current scope that contains the node.
`cursor_pos` should be `{ row = number, col = number }` `cursor_pos` should be `{ row = number, col = number }`
you can retrieve the cursor_pos with the buffer state
nested_scope(node, cursor_pos) *ts_api.nested_scope* nested_scope(node, cursor_pos) *ts_utils.nested_scope*
return the first scope within current scope that contains the node. return the first scope within current scope that contains the node.
`cursor_pos` should be `{ row = number, col = number }` `cursor_pos` should be `{ row = number, col = number }`
you can retrieve the cursor_pos with the buffer state
next_scope(node) *ts_api.next_scope* next_scope(node) *ts_utils.next_scope*
return the neighbour scope of the current node return the neighbour scope of the current node
previous_scope(node) *ts_api.previous_scope* previous_scope(node) *ts_utils.previous_scope*
return the previous neighbour scope of the current node return the previous neighbour scope of the current node
Nvim-treesitter also provides access to the state of the current buffer:
>
local cur_buf_state = require'nvim-treesitter'.get_buf_state()
print(vim.inspect(cur_buf_state))
--[[
{
cursor_pos = { row = number, col = number }, (current cursor pos in the buffer)
current_node = tsnode (smallest node the cursor is on)
}
]]--
<
============================================================================== ==============================================================================
FUNCTIONS *nvim-treesitter-functions* FUNCTIONS *nvim-treesitter-functions*

View file

@ -6,20 +6,21 @@
:TSInstallInfo nvim-treesitter.txt /*:TSInstallInfo* :TSInstallInfo nvim-treesitter.txt /*:TSInstallInfo*
:TSModuleInfo nvim-treesitter.txt /*:TSModuleInfo* :TSModuleInfo nvim-treesitter.txt /*:TSModuleInfo*
nvim-treesitter nvim-treesitter.txt /*nvim-treesitter* nvim-treesitter nvim-treesitter.txt /*nvim-treesitter*
nvim-treesitter-api nvim-treesitter.txt /*nvim-treesitter-api*
nvim-treesitter-commands nvim-treesitter.txt /*nvim-treesitter-commands* nvim-treesitter-commands nvim-treesitter.txt /*nvim-treesitter-commands*
nvim-treesitter-functions nvim-treesitter.txt /*nvim-treesitter-functions* nvim-treesitter-functions nvim-treesitter.txt /*nvim-treesitter-functions*
nvim-treesitter-intro nvim-treesitter.txt /*nvim-treesitter-intro* nvim-treesitter-intro nvim-treesitter.txt /*nvim-treesitter-intro*
nvim-treesitter-quickstart nvim-treesitter.txt /*nvim-treesitter-quickstart* nvim-treesitter-quickstart nvim-treesitter.txt /*nvim-treesitter-quickstart*
nvim-treesitter-utils nvim-treesitter.txt /*nvim-treesitter-utils*
nvim_treesitter#foldexpr() nvim-treesitter.txt /*nvim_treesitter#foldexpr()* nvim_treesitter#foldexpr() nvim-treesitter.txt /*nvim_treesitter#foldexpr()*
nvim_treesitter#statusline() nvim-treesitter.txt /*nvim_treesitter#statusline()* nvim_treesitter#statusline() nvim-treesitter.txt /*nvim_treesitter#statusline()*
ts_api.containing_scope nvim-treesitter.txt /*ts_api.containing_scope* ts_utils.containing_scope nvim-treesitter.txt /*ts_utils.containing_scope*
ts_api.get_named_children nvim-treesitter.txt /*ts_api.get_named_children* ts_utils.get_named_children nvim-treesitter.txt /*ts_utils.get_named_children*
ts_api.get_next_node nvim-treesitter.txt /*ts_api.get_next_node* ts_utils.get_next_node nvim-treesitter.txt /*ts_utils.get_next_node*
ts_api.get_node_text nvim-treesitter.txt /*ts_api.get_node_text* ts_utils.get_node_at_cursor nvim-treesitter.txt /*ts_utils.get_node_at_cursor*
ts_api.get_previous_node nvim-treesitter.txt /*ts_api.get_previous_node* ts_utils.get_node_text nvim-treesitter.txt /*ts_utils.get_node_text*
ts_api.is_parent nvim-treesitter.txt /*ts_api.is_parent* ts_utils.get_previous_node nvim-treesitter.txt /*ts_utils.get_previous_node*
ts_api.nested_scope nvim-treesitter.txt /*ts_api.nested_scope* ts_utils.is_parent nvim-treesitter.txt /*ts_utils.is_parent*
ts_api.next_scope nvim-treesitter.txt /*ts_api.next_scope* ts_utils.nested_scope nvim-treesitter.txt /*ts_utils.nested_scope*
ts_api.parent_scope nvim-treesitter.txt /*ts_api.parent_scope* ts_utils.next_scope nvim-treesitter.txt /*ts_utils.next_scope*
ts_api.previous_scope nvim-treesitter.txt /*ts_api.previous_scope* ts_utils.parent_scope nvim-treesitter.txt /*ts_utils.parent_scope*
ts_utils.previous_scope nvim-treesitter.txt /*ts_utils.previous_scope*