Commit graph

6367 commits

Author SHA1 Message Date
Thomas Vigouroux
d25549917d perf: don't compute locals on buffer updates
Instead we lazily evaluate them on request.
This allow two things :
    * better performances
    * being sure the locas are up to date
2020-04-19 20:16:03 +02:00
Thomas Vigouroux
d169c0614c fix: prepare injections mechanism 2020-04-19 17:55:38 +02:00
Thomas Vigouroux
5783e7d248 style: avoid overindenting things 2020-04-19 17:31:00 +02:00
Thomas Vigouroux
51ca6a5069 fix(matches): better storage of nodes 2020-04-19 17:28:59 +02:00
Thomas Vigouroux
6cab5c2d75 feat: create NvimTreesitter augroup at startup 2020-04-19 17:28:59 +02:00
Thomas Vigouroux
b2b6e51a7c feat: add locals to setup procedure 2020-04-19 17:28:59 +02:00
Thomas Vigouroux
0d5ef2f980 fix: add plugin file 2020-04-19 17:28:52 +02:00
Thomas Vigouroux
b706c4e8ed feat: first version of locals
Locals will be the main interface to treesitter, through some functions:
    get_definitions(bufnr) : returns all the definitions in bufnr
    get_scopes(bufnr): returns all definitions in bufnr
    get_references(bufnr): returns all references in bufnr
2020-04-19 17:28:52 +02:00
Thomas Vigouroux
f784a0adda
Merge pull request #2 from kyazdani42/install-parser
feat: add parser installer
2020-04-19 15:18:19 +02:00
kiyan42
2967ca5203 add parser installer 2020-04-19 15:13:38 +02:00
Thomas Vigouroux
ac3c2ec2ec
Merge pull request #1 from vigoux/master
Initialize the repo
2020-04-19 09:50:39 +02:00
Thomas Vigouroux
2526baf4cc feat: add parsers module and better match iter
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.
2020-04-19 09:45:54 +02:00
Thomas Vigouroux
5897d72b07 feat: add empty setup function
Will be used later to setup everything so that a language works properly
in each situation.
2020-04-18 19:32:51 +02:00
Thomas Vigouroux
00f871ab51 feat: add an example locals query
This will be the guide for the implementation of locals extraction,
which is treesitters name of definition/scope.
2020-04-18 19:21:01 +02:00
Thomas Vigouroux
e51b25dce2 feat: add some utils to read queries 2020-04-18 17:40:26 +02:00
Thomas Vigouroux
e647356210 style: add editorconfig 2020-04-18 17:39:03 +02:00
Thomas Vigouroux
3ca9471db6
Create README.md 2020-04-18 17:32:14 +02:00