aboutsummaryrefslogtreecommitdiffstats
path: root/lua
Commit message (Collapse)AuthorAgeFilesLines
...
* feat(gdscript)!: update parser and queriesChristian Clason2025-05-121-1/+1
| | | | `(underscore)` node was removed
* feat(parsers): update robot, earthfile, racket, javadoc, scheme, t32, tact, ↵Christian Clason2025-05-121-12/+12
| | | | templ, kotlin, tcl, meson, mlir
* fix(indent): don't skip parsing for yamlChristian Clason2025-05-121-12/+2
|
* refactor(lua): fix some luals warningsChristian Clason2025-05-125-29/+28
|
* feat(install)!: always generate from json if possibleChristian Clason2025-05-123-44/+12
|
* feat(setup)!: remove ensure_install fieldChristian Clason2025-05-122-13/+12
| | | | | | | | Instead, call `require('nvim-treesitter').install( { ... } )` manually. This gives users full control over how they want to install parsers (sync, from grammar, limited concurrency) and obviates the need for calling `setup` for most users.
* feat(parsers): update swift, tact, tcl, templ, mlir, kotlin, koto, elixir, ↵Christian Clason2025-05-121-19/+19
| | | | php_only, ocaml, ocaml_interface, php, astro, slang, slim, blade, gleam, v, ledger
* feat(parsers): update ziggy, ziggy_schema, bibtex, latexChristian Clason2025-05-121-4/+4
|
* feat(tcl)!: update parser and queriesChristian Clason2025-05-121-1/+1
|
* feat(julia)!: update parser and queriesChristian Clason2025-05-121-1/+1
|
* feat(parsers): update nickel, sql, devicetree, dhall, htmldjango, t32, gap, ↵Christian Clason2025-05-121-36/+36
| | | | javadoc, templ, jinja, tera, verilog, meson, mlir, typespec, wit, phpdoc, superhtml, git_config, swift, terraform, vim, koto, rasi, rescript, bp, enforce, erlang, jinja_inline, cmake, fennel, comment, slint, elm, rust, hcl
* feat(html): use gsub for mimetype lookupChristian Clason2025-05-121-1/+1
|
* fix(install): skip tier 4 parsers when installing and updatingChristian Clason2025-05-126-40/+51
|
* fix(install): don't prompt on installed parsers (skip)Christian Clason2025-05-122-11/+3
| | | | Use `:TSInstall!` or `force = true` to reinstall.
* fix(formatter): increase match limitChristian Clason2025-05-121-49/+49
| | | | | | Problem: Some very long patterns were not formatted correctly. Solution: Increase the match limit when iterating to 1024.
* feat(install): allow pass callback to `update()`przepompownia2025-05-122-36/+39
| | | | | | | Problem: cannot run `:TSUpdate synchronously` Solution: pass callback used after exiting jobs (like in `install-parsers`).
* fix(install): early return if parser_info does not existSebastian Lyng Johansen2025-05-122-38/+39
|
* feat(parsers): rework tiersChristian Clason2025-05-123-242/+242
| | | | | | | * stable: updates follow semver releases (todo) * unstable: updates follow HEAD (default) * unmaintained: no automatic updates * unsupported: no updates, cannot be installed
* fix(ci): update to changed neovim release nameChristian Clason2025-05-121-64/+63
|
* fix(install): return error code in callbackChristian Clason2025-05-123-173/+174
|
* feat(install)!: bump minimum tree-sitter version to 0.24Christian Clason2025-05-123-25/+24
|
* ci(tests): add optional workflow for generating grammarsChristian Clason2025-05-121-104/+102
| | | | run on PR by adding label `ci:generate` or manually
* feat(install): allow specifying max jobsChristian Clason2025-05-121-2/+3
|
* feat(config)!: remove auto_installChristian Clason2025-05-122-78/+55
| | | | use https://github.com/lewis6991/ts-install.nvim instead
* feat(install)!: drop support for gitChristian Clason2025-05-123-270/+261
| | | | | | | | | 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()`).
* feat!: use tree-sitter buildChristian Clason2025-05-125-527/+141
|
* feat!: track parser revision in LuaChristian Clason2025-05-125-808/+779
| | | | | | | | | | | 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.
* fix: vim.tbl_flatten is deprecatedChristian Clason2025-05-121-1/+1
|
* feat(install)!: generate from json instead of requiring nodeChristian Clason2025-05-123-186/+195
| | | | | | | | | | | | 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).
* feat(install)!: add explicit path field to parser info (#6476)Christian Clason2025-05-122-77/+54
| | | | | | | | | | | | | | | 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>
* fix: do not use vim.iter (#6469)Lewis Russell2025-05-123-29/+57
|
* feat: improve logging of failed installsLewis Russell2025-05-122-135/+108
|
* feat(install)!: remove support for C++ scannersChristian Clason2025-05-121-15/+1
|
* refactor: pull out predicate functionLewis Russell2025-05-121-11/+9
|
* fix: update vim.system typesLewis Russell2025-05-121-2/+2
|
* feat: allow a custom revision in install_infoLewis Russell2025-05-122-0/+6
|
* fix: cleanup diagnosticsLewis Russell2025-05-122-49/+39
|
* fix: add stricter cc options (#5063)Lewis Russell2025-05-121-2/+30
|
* fix: always normalize pathsTheLeoP2025-05-122-2/+2
| | | | | | 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.
* fix: check if config has install_info in filterTheLeoP2025-05-121-1/+2
|
* fix: check queries in needs_update()Lewis Russell2025-05-121-1/+10
|
* fix: filter languages through parser.configsLewis Russell2025-05-121-2/+6
|
* feat: add parser tiersChristian Clason2025-05-123-22/+166
| | | | | | | | | | 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
* feat!: drop makefile support, norg parserChristian Clason2025-05-122-24/+2
| | | | | | | | | 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.
* refactor: use vim.system (#4923)Lewis Russell2025-05-125-191/+63
|
* fix: expand tiers in ignore_installChristian Clason2025-05-121-13/+17
|
* feat: drop `TSInstallInfo` in favor of better `checkhealth`Christian Clason2025-05-122-76/+67
| | | | also fixes the hole in install.compilers
* refactor: use `vim.uv`Christian Clason2025-05-125-8/+8
|
* fix: install dependenciesChristian Clason2025-05-124-81/+152
|
* refactor: rewrite installation using jobs and asyncLewis Russell2025-05-129-650/+930
| | | | Replace sync variants with callback support