* fix(julia): treesitter queries changed upstream
* fix(julia): for fully qualified functions show entire expression
* fix(julia): fix short function definitions
* fix(julia): show all of the function definition expression because just the name is useless with multiple dispatch
* fix(julia): update tests to match new function symbol names
When opening nvim in diffview (`nvim -c DiffviewOpen`) and then toggeling aerial,
aerial errors when trying to call `vim.api.nvim_win_is_valid(bufdata.last_win)`
as bufdata.last_win == nil. This change adds a check and returns in case of a nil
value.
Co-authored-by: Linus Boehm <linusboehm@gmail.com>
Some LSP servers are less than consistent with pushing diagnostics. For
this and other reasons, I think tying the symbol refresh to diagnostics
is maybe not the best move. The first step I'm going to take is to make
the default behavior use a simple change listener, like the treesitter
backend. I may eventually deprecate and remove this behavior entirely.
On Neovim 0.10, calling timer:stop() is not canceling the callback.
There appears to be some minimum amount of buffer time remaining in the
timer in order for it to be able to be canceled correctly. I'm getting
around this by adding a simple guard statement
When moving away from nvim-treesitter helpers, I overlooked the caching
they were performing. This means that currently on every symbols
refetch, neovim scans filesystem and gets all queries. Definitely useful
when writing new queries, but slow nonetheless.
This commit introduces a simple query cache and an API method to clear
said cache. With this, performance should improve, yet a way to iterate
over query design remains accessible.
* Process scope captures
This lets us avoid complex querying when extracting scope.
As long as the capture includes a scoping node in a `@scope` capture,
its text will be extracted and used as a scope value.
If "public" is named differently in some language,
`#set @scope "text" "public"` will do the trick for a cost of an
additional query.
* Add basic query documentation to readme and vimdoc
* Add reusable language extensions info to readme
* chore: Fix markdown tests
Recent update to nvim-treesitter breaks aerial.nvim tests.
Specifically:
- nvim-treesitter/nvim-treesitter@96f55f3043
- MDeiml/tree-sitter-markdown@cd705f1591
Manually poking around, the behaviour remains the same
* chore: Regenerate ruby symbol snapshots
Prior version held a bunch of data written by hand. This commit updates
it to avoid false alarms when generating symbols for new or updated
queries.
Expectations are not changed, only the order of keys in individual
tables was updated.
* chore: Option to run tests on nvim-treesitter main
While nvim-treesitter is not a strict requirement for aerial.nvim, it
is used to install parsers and it updates nvim default language to
parser assignments with practical values. This commit adds an ability to
run tests against `main` branch by providing `--test-main` option to
`run_tests.sh`.
* chore: Add neorg parser config to main branch
Use C++14 compatible compiler when running tests with `--test-main`,
otherwise parser compilation will fail.