Commit graph

1230 commits

Author SHA1 Message Date
Christian Clason
188bbf7a09 fix(ci): update to changed neovim release name 2025-05-12 18:43:40 +02:00
Christian Clason
aaf5b7fdf7 fix(install): return error code in callback 2025-05-12 18:43:40 +02:00
Christian Clason
a2841d29d7 feat(install)!: bump minimum tree-sitter version to 0.24 2025-05-12 18:43:40 +02:00
Christian Clason
c5a8c9d01a ci(tests): add optional workflow for generating grammars
run on PR by adding label `ci:generate` or manually
2025-05-12 18:43:40 +02:00
Christian Clason
83dae49a10 feat(install): allow specifying max jobs 2025-05-12 18:43:40 +02:00
Christian Clason
ab230eadd4 feat(config)!: remove auto_install
use https://github.com/lewis6991/ts-install.nvim instead
2025-05-12 18:43:40 +02:00
Christian Clason
a8677385b7 feat(install)!: drop support for git
Problem: Using git for installing parsers can lead to data loss if in a
git commit buffer.

Solution: Only support downloading via curl+tar, which are installed on
all supported platforms (since Windows 10). Curl will also be required
for WASM parsers (and for `vim.net.download()`).
2025-05-12 18:43:40 +02:00
Christian Clason
214cfcf851 feat!: use tree-sitter build 2025-05-12 18:43:40 +02:00
Christian Clason
c17de56890 feat!: track parser revision in Lua
Problem: Tracking parser revision in lockfile and allowing override
through the parsers module complicates the code. In addition, only
revision changes are handled robustly, not changes to other installation
info.

Solution: Track parser revision in the parsers module directly. Reload
parser table on every install or update call. Support modifying parser
table in a `User TSUpdate` autocommand.
2025-05-12 18:43:40 +02:00
Christian Clason
054080bf59 fix: vim.tbl_flatten is deprecated 2025-05-12 18:43:40 +02:00
Christian Clason
5a38df5627 feat(install)!: generate from json instead of requiring node
Problem: Many parsers require node/npm to evaluate the `grammar.js`
before being able to generate a parser from it.

Solution: Generate from `grammar.json` instead, which is fully resolved.
Drops `node` and `npm` as (optional) requirements for nvim-treesitter.

Note that this requires parsers to commit the generated json iff the
grammar requires evaluation (which is currently the case for all tracked
languages).
2025-05-12 18:43:40 +02:00
Christian Clason
c70daa36dc feat(install)!: add explicit path field to parser info (#6476)
Problem: Using `url` for both remote repo and local path complicates the
code.

Solution: Add `path` field that overrides `url` and bypasses
git-specific manipulations, i.e., the contents of the `path` are used
as-is (no git repo needed).

This means `:TSUpdate` will skip such parsers; use `:TSInstall!` instead
after making local changes.

---------

Co-authored-by: Lewis Russell <lewis6991@gmail.com>
2025-05-12 18:43:40 +02:00
Lewis Russell
0bb981c876 fix: do not use vim.iter (#6469) 2025-05-12 18:43:40 +02:00
Lewis Russell
421e2fb7b2 feat: improve logging of failed installs 2025-05-12 18:43:40 +02:00
Christian Clason
a8f5641ab3 feat(install)!: remove support for C++ scanners 2025-05-12 18:43:40 +02:00
Lewis Russell
5f2c6c0c83 refactor: pull out predicate function 2025-05-12 18:43:40 +02:00
Lewis Russell
59f5d64a61 fix: update vim.system types 2025-05-12 18:43:40 +02:00
Lewis Russell
1bec16362f feat: allow a custom revision in install_info 2025-05-12 18:43:40 +02:00
Lewis Russell
b5a3f5c286 fix: cleanup diagnostics 2025-05-12 18:43:40 +02:00
Lewis Russell
26302f412f fix: add stricter cc options (#5063) 2025-05-12 18:43:40 +02:00
TheLeoP
dd6ec13268 fix: always normalize paths
Not doing this results in paths with a mix of '\\' and '/' for Windows.
This isn't a problem when dealing with Neovim/luv APIs, but it is a
problem when comparing strings.
2025-05-12 18:43:40 +02:00
TheLeoP
b4c9c81a80 fix: check if config has install_info in filter 2025-05-12 18:43:40 +02:00
Lewis Russell
934b751f9d fix: check queries in needs_update() 2025-05-12 18:43:40 +02:00
Lewis Russell
041f117fb1 fix: filter languages through parser.configs 2025-05-12 18:43:40 +02:00
Christian Clason
bae77b87b1 feat: add parser tiers
Tier 1: Stable
Tier 2: Core (maintained by org members)
Tier 3: Community (maintained by external contributors, to varying
degree)
Tier 4: Unsupported (lacking active maintainer or declared
experimental); skipped in lockfile update and ignored for automatic
install by default
2025-05-12 18:43:40 +02:00
Christian Clason
f0a984347c feat!: drop makefile support, norg parser
Norg install_info and queries are maintained by neorg.

All other parsers are compatible with C++11, so fix that as standard.
(Can be bumped if all supported platforms support C++14.)

Remove Makefile support, as it's no longer needed.
2025-05-12 18:43:40 +02:00
Lewis Russell
c5152f3e83 refactor: use vim.system (#4923) 2025-05-12 18:43:40 +02:00
Christian Clason
68508631de fix: expand tiers in ignore_install 2025-05-12 18:43:40 +02:00
Christian Clason
5a70048116 feat: drop TSInstallInfo in favor of better checkhealth
also fixes the hole in install.compilers
2025-05-12 18:43:40 +02:00
Christian Clason
37957d6bcf refactor: use vim.uv 2025-05-12 18:43:40 +02:00
Christian Clason
cd2c826972 fix: install dependencies 2025-05-12 18:43:40 +02:00
Lewis Russell
cde679e435 refactor: rewrite installation using jobs and async
Replace sync variants with callback support
2025-05-12 18:43:40 +02:00
Christian Clason
5aa2984a02 refactor: use vim.fs.joinpath 2025-05-12 18:43:40 +02:00
Christian Clason
5817ff01b5 feat(locals)!: refactor locals.lua into standalone
Co-authored-by: TheLeoP <eugenio2305@hotmail.com>
2025-05-12 18:43:40 +02:00
Christian Clason
692b051b09 feat!: drop modules, general refactor and cleanup 2025-05-12 18:43:40 +02:00
AJ Delcimmuto
7bbed4b548
feat(brightscript): brightscript parser and queries (#7780) 2025-04-13 13:20:09 -07:00
Vladimir Levin
9399bfd816
feat(caddy): add parser and queries (#7588)
---------

Co-authored-by: Christian Clason <c.clason@uni-graz.at>
2025-03-23 16:04:41 +00:00
Robert Muir
652da0b40f
feat(javadoc): add parser and queries (#7749)
Previously java was configured to use doxygen parser for documentation
comments, but javadocs are not doxygen. Inline tags have a different
syntax, block tags are not recognized, and doxygen creates a lot of
errors during highlighting.

Add parser for javadoc comments, with queries for highlights and
injections.
2025-03-23 16:44:12 +01:00
Caleb White
548ed98f8a
feat(blade): add laravel blade parser and queries (#7693) 2025-03-12 18:47:19 +01:00
uncenter
f840ab9f72
feat(tera): add parser and queries 2025-03-09 18:44:59 +01:00
Bert Baron
376a46ccec
feat(kdl): parser and queries (#7657) 2025-02-27 09:54:26 +01:00
Christian Clason
b9a3588ee8 fix(earthfile): adapt to new default branch (with external scanner) 2025-02-19 15:02:54 +01:00
Christian Clason
b08ae25c47 feat(parsers)!: drop org
The parser has neither queries nor a listed maintainer here and hasn't
seen updates in two years.
2025-02-16 13:53:28 +01:00
Amaan Qureshi
3973f53d7a fix(razor): mark npm as required for generating from source 2025-02-08 19:40:12 +01:00
loongtao.zhang
cbd48fac13
feat(jinja): add parser and queries (#7573)
Signed-off-by: loongtao.zhang <loongtao.zhang@outlook.com>
Co-authored-by: Riley Bruins <ribru17@hotmail.com>
2025-02-08 10:38:50 +01:00
simonvic
e8ccc339a3
feat(enforce): add parser and queries (#7626) 2025-02-08 10:38:13 +01:00
Tristan Knight
39bf51ff68
feat(razor): add parser and queries (#7545) 2025-02-01 20:06:26 +01:00
Théo Reichel
1c67567464
feat(slim): add parser and queries (#7425) 2025-01-21 09:25:08 +01:00
Gabriel Holodak
0fb02ac5c3 fix(install): use std=c11 2025-01-20 08:50:52 +01:00
Gabriel Holodak
82939d5941 fix(install): preserve command return code on Windows
`:TSInstallSync` relies on the `:system()` command to set
`v:shell_error` when an error code is returned during installation. On
Windows, the error code was always overwritten by `popd`'s return code.
2025-01-20 08:50:52 +01:00