Skip to content

test: properly check treesitter lang and only install parser when needed #583

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

PeterCardenas
Copy link
Contributor

Because of the way we were checking the treesitter lang, we were relying
on the parser to already be installed for the test to not be skipped.
Now we check it via an nvim-treesitter API that does not require the
parser to be installed. This results in all the parsers to be installed
even when the related tests won't be run, so we do a lazy setup here as
well.

Followup to #568

Because of the way we were checking the treesitter lang, we were relying
on the parser to already be installed for the test to not be skipped.
Now we check it via an `nvim-treesitter` API that does not require the
parser to be installed. This results in all the parsers to be installed
even when the related tests won't be run, so we do a lazy setup here as
well.
return nil
end
return parser:lang()
return require('nvim-treesitter.parsers').get_buf_lang(...)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nvim-treesitter is going to be replaced with the main branch soon enough, so I'd like to minimise relying on any it's API.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so looks like in main we register the filetype to lang mappings immediately instead of lazily in which case we can use vim.treesitter.language.get_lang directly. we could change it to that anticipatorily, just that this PR won't work until main is swapped in

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can safely switch to main in this repo even though it isn't default yet.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like the main branch is using an incompatible vim.validate signature than the one the runner is using. the runner expects a table, but we're giving a string

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can update the runner to 0.11.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you mean explicitly only 0.11? because the vim.validate usage is not compatible with 0.10.2

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We only have 1 runner version and several test versions. The runner version should ideally be the latest release.

@lewis6991
Copy link
Member

Sorry, I don't understand what problem this PR is solving.

@PeterCardenas
Copy link
Contributor Author

so right now if you run a test with no populated deps directory, it'll skip the tests pretending that they passed. this is particularly useful for the make test FILTER=test.<ft> workflow where you just end up installing the parsers you need for the test you write

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants