| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
also fixes the memoize_by_buf_tick function
|
|
The following query will result in matches with only one node though it
requires two nodes to be a match.
```scheme
(function_definition
(comment) @function.inner.start
body: (block) @function.inner)
```
Why? First `insert_to_path` is called for `@function.inner.start` which
will result int the following table.
```lua
{ function = { inner = { start { node } } } }
```
`insert_to_path` will overwrite the result
```lua
{ function = { inner = { node } } }
```
Related #552
|
|
|
|
This implements https://github.com/neovim/neovim/pull/13059#issuecomment-704414189
This behaves like modelines and remove the use of the base_language map.
Also, this allows to fine-tune what we actually want to include per
query, which is better IMO.
|
|
The files have the mli extension. The parser grammar uses the name
ocaml_interface, but since vim the underscore has a special meaning
ocamlinterface is used as the filetype.
|
|
We use plural names for all query files except folds.
|
|
Even if it's an empty iterator.
|
|
|
|
These two are doing the same currently.
|
|
|
|
|
|
|
|
Textobjects submodules
|
|
- compute query language extensions *after* default ones
(jsx after javascript)
- remove outdated ts_utils functions from docs
- add better regex detection to javascript
- javascriptreact to use javascript queries
- add javascript.jsx to javascript queries
- write jsx.scm hl file
|
|
|
|
|
|
fix: refactor after upstream refactor
|
|
Starting now, runtime queries will be sourced in this order :
- Queries that are not in any `after` folder, will serve as a base, with
each occurence overwriting the others (that is, .config/nvim/queries has
the highest priority)
- Queries within the `after` directory will be sourced one after the
other.
The rationale is that this reminds all the `.vim` files (ftplugin) for
example, and this allows both to experiment and to override queries
easily.
|
|
|
|
|
|
|
|
|
|
- shared query group stuff -> query.lua
- local-specific stuff from ts_utils -> locals.lua
|
|
|
|
|
|
Allows using another query file for a language, or use a query file
from another language
|
|
|
|
|
|
|
|
- move parser list in `parsers.lua`
- most `ft` variable where changed to `lang`, `ft` is only used on
autocmd binding, and lang is used for everything else. Functions have
been defined to make the switch between `ft` and `lang`
|
|
Use same argument for nvim_get_runtime_file for base language
|
|
Some treesitter grammars just extend another treesitter grammar.
This enables us to use the C queries also for C++.
We only need to put additional queries in the C++ files.
|
|
|
|
features:
- node_movement is moving between scopes.
- add selection initialization from normal mode
- add a decremental selection
improvements:
- attach to buffer to run tree parsing on change
- run state update on CursorMoved
- the buffer state is:
```
{
cursor_pos = { row=row, col=col },
current_node = node_under_cursor,
selection = {
range = nil, -- activates when starting a selection
nodes = {} -- filling up when starting an incremental selection
},
parser = parser, -- parser for current buffer
}
```
- refacto all the modules reliant on parsing the tree, update the current nodes, get the current nodes...
fixes:
- fix has_parser to look for .so libraries
- fix should select the whole file when selection root in selection
|
|
|
|
|
|
The `parsers` module manages parsers for us, for now only in a really
basic way.
iter_prepared_mathes iters on an enhanced versions of the matches, where
captures are directly accessible via their names to allow things like :
((itentifier) @def.first (identifier) @def.last)
To be handled like this in lua:
match.def.first
match.def.last
Also adds a `set!` predicate to allow setting data within the prepared
match (see queries/lua/locals.scm) for examples.
|