aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/treesitter.lua
Commit message (Collapse)AuthorAge
...
* refactor(treesitter): simplify some range functionsLewis Russell2023-03-06
|
* fix(treesitter): break early from loop when match is found (#22499)Gregory Anders2023-03-03
| | | Fixup to #22484.
* Merge pull request #22484 from gpanders/inspect-tree-fix-cursorChristian Clason2023-03-03
|\ | | | | fix(treesitter): maintain cursor position when toggling anonymous nodes
| * fix(treesitter): maintain cursor position when toggling anonymous nodesGregory Anders2023-03-02
| | | | | | | | | | | | When toggling anonymous nodes in the :InspectTree window, keep the cursor fixed relative to the node within the tree. This prevents the cursor from jumping.
* | fix(treesitter): disallow empty filetypesLewis Russell2023-03-03
|/ | | Fixes #22473
* feat(treesitter): add :InspectTree command (#22477)Christian Clason2023-03-02
|
* refactor: rename show_tree => inspect_tree #22474Justin M. Keyes2023-03-02
| | | | | | | | | | | | | | | | Problem: "show" is potentially a new verb that we can avoid (there is already "open" and "echo"). Even if we can't avoid it, the behavior of `show_tree` fits well in the "inspect" family of functions: a way for users to introspect/reflect on the state of Nvim. Existing "inspect" functions: vim.inspect() vim.inspect_pos() vim.treesitter.inspect_language() nvim__inspect_cell Solution: Rename `show_tree` to `inspect_tree`.
* feat(treesitter): upstream foldexpr from nvim-treesitterLewis Russell2023-02-23
|
* docs: fix more treesitter parsing errorsChristian Clason2023-02-23
|
* docs(treesitter): fix parse errorsChristian Clason2023-02-23
|
* refactor(treesitter): Add vim.treesitter.get_node() (#22360)Gregory Anders2023-02-22
| | | | | | | | | | | | This function replaces both vim.treesitter.get_node_at_pos() and vim.treesitter.get_node_at_cursor(). These two functions are similar enough that they don't need separate interfaces. Even worse, get_node_at_pos() returns a TSNode while get_node_at_cursor() returns a string, so the two functions behave slightly differently. vim.treesitter.get_node() combines these two into a more streamlined interface. With no arguments, it returns the node under the cursor in the current buffer. Optionally, it can accept a buffer number or a position to get the node at a given position in a given buffer.
* feat(treesitter): add filetype -> lang APILewis Russell2023-02-21
| | | | | | | | | | | | | | | | | | Problem: vim.treesitter does not know how to map a specific filetype to a parser. This creates problems since in a few places (including in vim.treesitter itself), the filetype is incorrectly used in place of lang. Solution: Add an API to enable this: - Add vim.treesitter.language.add() as a replacement for vim.treesitter.language.require_language(). - Optional arguments are now passed via an opts table. - Also takes a filetype (or list of filetypes) so we can keep track of what filetypes are associated with which langs. - Deprecated vim.treesitter.language.require_language(). - Add vim.treesitter.language.get_lang() which returns the associated lang for a given filetype. - Add vim.treesitter.language.register() to associate filetypes to a lang without loading the parser.
* fix(treesitter): don't trample parsers when filetype!=langLewis Russell2023-02-10
| | | | | This allows vim.treesitter.show_tree() to work on buffers where the filetype does not match the parser language name e.g, bash/sh.
* feat(treesitter): playground improvementsLewis Russell2023-02-10
| | | | | | - Render node ranges as virtual text - Set filettype=query. The virtual text is to avoid parsing errors. - Make sure highlights text is always in view.
* fix(treesitter): fix most diagnosticsLewis Russell2023-02-04
|
* Merge pull request #21393 from folke/highlight_showChristian Clason2022-12-17
|\ | | | | | | feat(lsp): add function to get semantic tokens at cursor feat: `vim.inspect_pos()`, `vim.show_pos()` and `:Inspect[!]`
| * feat: `vim.inspect_pos`, `vim.show_pos`, `:Inspect`Folke Lemaitre2022-12-17
| |
* | fix(treesitter): properly restore `'syntax'` (#21358)Lewis Russell2022-12-14
|/
* feat(treesitter): add 'lang' option to show_tree() (#21341)Gregory Anders2022-12-08
| | | | This is necessary for now to support filetypes that use a parser with a different name (e.g. the "terraform" filetype uses the "hcl" parser).
* feat(treesitter): add vim.treesitter.show_tree() (#21322)Gregory Anders2022-12-08
| | | | | | | Add a "show_tree" function to view a textual representation of the nodes in a language tree in a window. Moving the cursor in the window highlights the corresponding text in the source buffer, and moving the cursor in the source buffer highlights the corresponding nodes in the window.
* docs(gen): support language annotation in docstringsChristian Clason2022-12-02
|
* refactor(treesitter): rename x_position => x_posJustin M. Keyes2022-09-25
| | | | | "pos" has a long precedent as "position" in vim, and there is no reason to use a verbose name here.
* fix(treesitter): return full metadata for get_captures_at_position (#20203)Christian Clason2022-09-16
| | | | | | | | fix(treesitter): get_captures_at_position returns metadata Return the full `metadata` table for the capture instead of just the priority. Further cleanup of related docs.
* docs(treesitter): clean up and update treesitter.txt (#20142)Christian Clason2022-09-14
| | | | | * add type annotations to code * clean up and expand static documentation * consistent use of tags for static and generated docs
* Merge pull request #20093 from neovim/upstream-ts-utilChristian Clason2022-09-08
|\ | | | | | | * feat(treesitter): upstream get_{node,captures} utility functions * refactor(treesitter): get_{nodes,captures}_at_{position,cursor}
| * refactor(treesitter): get_{nodes,captures}_at_{position,cursor}Christian Clason2022-09-06
| |
| * feat(treesitter): upstream get_node_at_cursor()Quentin Rasmont2022-09-06
| | | | | | | | Util from the nvim-treesitter project.
* | docs(treesitter): fix doxygenzeertzjq2022-09-08
| |
* | Use weak tables in tree-sitter code (#17117)Thomas Vigouroux2022-09-07
| | | | | | | | | | | | feat(treesitter): use weak tables when possible Also add the defaulttable function to create a table whose values are created when a key is missing.
* | fix(treesitter): don't support legacy syntax in start()Christian Clason2022-09-06
|/
* feat(treesitter): add vim.treesitter.start(), enable for LuaChristian Clason2022-09-06
| | | | | | | | | | * Add vim.treesitter.start() for starting treesitter highlighting via ftplugin or autocommand (can be extended later for fold, indent, matchpairs, ...) * Add vim.treesitter.stop() for manually stopping treesitter highlighting * Enable treesitter highlighting for Lua if `vim.g.ts_highlight_lua = true` is set in `init.lua`
* fix(treesitter): make it get_captures_at_positionbfredl2022-08-26
|
* feat(treesitter): upstream get_hl_groups_at_position()Quentin Rasmont2022-08-26
| | | | Util from the nvim-treesitter project.
* feat(treesitter): clarify similar 'get_node_range' functionsQuentin Rasmont2022-08-25
| | | | | | | | | The private 'get_node_range' function from the languagetree module has been renamed and remains private as it serve a purpose that is only relevant inside the languagetree module. The 'get_node_range' upstreamed from nvim-treesitter in the treesitter module has been made public as it is in itself a utlity function.
* feat(treesitter): upstream node_contains()Quentin Rasmont2022-08-25
| | | | Util from the nvim-treesitter project.
* feat(treesitter): upstream is_parent()Quentin Rasmont2022-08-25
| | | | | Util from the nvim-treesitter project. Renamed is_parent to is_ancestor for clarity.
* chore: format runtime with styluaChristian Clason2022-05-09
|
* fix(treesitter): create new parser if language is not the same as cached ↵Chinmay Dalal2022-04-22
| | | | parser (#18149)
* feat(ts): expose minimum language version to lua (#17186)Thomas Vigouroux2022-01-27
|
* chore: fix typos (#16361)dundargoc2021-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Brede Yabo Sherling Kristensen <bredeyabo@hotmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: István Donkó <istvan.donko@gmail.com> Co-authored-by: Julian Berman <Julian@GrayVines.com> Co-authored-by: bryant <bryant@users.noreply.github.com> Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com> Co-authored-by: nlueb <9465658+nlueb@users.noreply.github.com> Co-authored-by: Leonhard Saam <leonhard.saam@yahoo.com> Co-authored-by: Jesse Wertheim <jaawerth@gmail.com> Co-authored-by: dm1try <me@dmitry.it> Co-authored-by: Jakub Łuczyński <doubleloop@o2.pl> Co-authored-by: Louis Lebrault <louis.lebrault@gmail.com> Co-authored-by: Brede Yabo Sherling Kristensen <bredeyabo@hotmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: István Donkó <istvan.donko@gmail.com> Co-authored-by: Julian Berman <Julian@GrayVines.com> Co-authored-by: bryant <bryant@users.noreply.github.com> Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com> Co-authored-by: nlueb <9465658+nlueb@users.noreply.github.com> Co-authored-by: Leonhard Saam <leonhard.saam@yahoo.com> Co-authored-by: Jesse Wertheim <jaawerth@gmail.com> Co-authored-by: dm1try <me@dmitry.it> Co-authored-by: Jakub Łuczyński <doubleloop@o2.pl> Co-authored-by: Louis Lebrault <louis.lebrault@gmail.com>
* feat(ts): add query module in treesitter keysThomas Vigouroux2021-08-23
|
* docs: make Lua docstrings consistent #15255Gregory Anders2021-08-22
| | | | | | | | | | | | The official developer documentation in in :h dev-lua-doc specifies to use "--@" for special/magic tokens. However, this format is not consistent with EmmyLua notation (used by some Lua language servers) nor with the C version of the magic docstring tokens which use three comment characters. Further, the code base is currently split between usage of "--@", "---@", and "--- @". In an effort to remain consistent, change all Lua magic tokens to use "---@" and update the developer documentation accordingly.
* docs: Treesitter (#13260)TJ DeVries2021-05-01
| | | | | | | | | * doc & fixes: Generate treesitter docs * fixup to treesitter-core * docs(treesitter): fix docs for most functions Co-authored-by: Thomas Vigouroux <tomvig38@gmail.com>
* fix: allow accessing vim.treesitter.language without requireThomas Vigouroux2021-04-01
|
* ts: Add language version to vim.treesitter (#14255)TJ DeVries2021-03-30
|
* chore: remove deprecated lua module tshighlighterMatthieu Coudron2021-03-16
|
* buffer updates: add on_reload callback and handle it in treesitter parserBjörn Linse2021-02-10
|
* treesitter: propagate on_detach event properlyBjörn Linse2021-02-10
|
* fix(treesitter): use source() method on attachThomas Vigouroux2021-01-14
| | | | | Fixes an issue that tree-sitter always attached to the current buffer, instead of the provided buffer.
* feat(buffer_updates): allow ignoring when previewingThomas Vigouroux2020-12-15
| | | | | Also adds a test that we actually subscribe to buffer events when in CMDPREVIEW.