Commit graph

630 commits

Author SHA1 Message Date
Christian Clason
086c400917 feat(html): use gsub for mimetype lookup 2025-04-30 11:48:30 +02:00
Christian Clason
f3e4b6d820 fix(install): skip tier 4 parsers when installing and updating 2025-04-30 11:48:30 +02:00
Christian Clason
1de4e3fee1 fix(formatter): increase match limit
Problem: Some very long patterns were not formatted correctly.

Solution: Increase the match limit when iterating to 1024.
2025-04-30 11:48:30 +02:00
przepompownia
d402cb9818 feat(install): allow pass callback to update()
Problem: cannot run `:TSUpdate synchronously`

Solution: pass callback used after exiting jobs
(like in `install-parsers`).
2025-04-30 11:48:30 +02:00
Sebastian Lyng Johansen
4eb1923759 fix(install): early return if parser_info does not exist 2025-04-30 11:48:30 +02:00
Christian Clason
3be8b2a31f feat(parsers): rework tiers
* stable: updates follow semver releases (todo)
* unstable: updates follow HEAD (default)
* unmaintained: no automatic updates
* unsupported: no updates, cannot be installed
2025-04-30 11:48:30 +02:00
Christian Clason
86a7cdde19 fix(ci): update to changed neovim release name 2025-04-30 11:48:30 +02:00
Christian Clason
0767b79904 fix(install): return error code in callback 2025-04-30 11:48:30 +02:00
Christian Clason
6fed522113 feat(install)!: bump minimum tree-sitter version to 0.24 2025-04-30 11:48:30 +02:00
Christian Clason
3f54b58fed ci(tests): add optional workflow for generating grammars
run on PR by adding label `ci:generate` or manually
2025-04-30 11:48:30 +02:00
Christian Clason
4883846099 feat(config)!: remove auto_install
use https://github.com/lewis6991/ts-install.nvim instead
2025-04-30 11:48:30 +02:00
Christian Clason
6a143e48a4 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-04-30 11:48:30 +02:00
Christian Clason
3632923e78 feat!: use tree-sitter build 2025-04-30 11:48:30 +02:00
Christian Clason
7fea2eefd7 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-04-30 11:48:30 +02:00
Christian Clason
0db2935a1f 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-04-30 11:48:30 +02:00
Christian Clason
82ca00ed97 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-04-30 11:48:30 +02:00
Lewis Russell
4c3e77db67 fix: do not use vim.iter (#6469) 2025-04-30 11:48:30 +02:00
Lewis Russell
c65460a40c feat: allow a custom revision in install_info 2025-04-30 11:48:30 +02:00
TheLeoP
c5831004fc fix: check if config has install_info in filter 2025-04-30 11:48:30 +02:00
Christian Clason
b46ddb22aa 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-04-30 11:48:30 +02:00
Christian Clason
538149000e 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-04-30 11:48:30 +02:00
Lewis Russell
2575fb6aa8 refactor: use vim.system (#4923) 2025-04-30 11:48:30 +02:00
Christian Clason
0bcb12375c fix: install dependencies 2025-04-30 11:48:30 +02:00
Lewis Russell
3bbb0fc05a refactor: rewrite installation using jobs and async
Replace sync variants with callback support
2025-04-30 11:48:30 +02:00
Christian Clason
ae239f89cc feat!: drop modules, general refactor and cleanup 2025-04-30 11:48:30 +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
Serhii Khoma
8758abeb4d
feat(idris): add parser and queries (#7274) 2025-01-16 17:34:37 +01:00
Serhii Khoma
f87c8956ae
feat(ipkg): add parser and queries (#7277)
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2024-12-30 08:48:20 -08:00
Alexandr Martirosyan
be17791f86
feat(circom): add parser and queries 2024-12-06 18:41:37 +01:00
Christian Clason
efb2e9c607 docs(parser): add maintainer for julia 2024-11-23 11:24:39 +01:00
nvim-treesitter-bot[bot]
305c265bdb bot(lockfile): update fortran, nu, r 2024-11-23 09:41:10 +00:00
Christian Clason
98b3825999 docs(parser): mark julia as unmaintained 2024-11-06 23:05:20 +01:00
David Lysenko
7c5a4632c4
feat(runescript): add parser and queries (#7305) 2024-11-06 17:09:38 +00:00
Abhishek Singh
604aa5a7c8
feat(nu): add parser and queries (#7267) 2024-11-05 15:25:42 +01:00
Riley Bruins
8fadb18430 feat: sway programming language 2024-11-04 08:36:41 +01:00
Riley Bruins
d3d4c1411c fix(cooklang): apply correct filetype
`Cooklang` files are recognized as `cook` in vim. This prevents the parser
from attaching since it is looking for `cooklang` files, so we have to
specify the `filetype` here.
2024-11-04 08:19:28 +01:00
Elliot Fontaine
92d2501d69
feat(cylc): add parser and queries (#7225) 2024-10-31 17:56:58 +01:00
Omar Valdez
0a9108a7e4
feat(desktop): desktop parser and queries (#7282) 2024-10-26 10:06:22 +02:00