aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim
Commit message (Collapse)AuthorAge
* fix(treesitter): break early from loop when match is found (#22499)Gregory Anders2023-03-03
| | | Fixup to #22484.
* docs: fix vim.treesitter tagsJustin M. Keyes2023-03-03
| | | | | | | | | Problem: Help tags like vim.treesitter.language.add() are confusing because `vim.treesitter.language` is (thankfully) not a user-facing module. Solution: Ignore the "fstem" when generating "treesitter" tags.
* Merge pull request #22484 from gpanders/inspect-tree-fix-cursorChristian Clason2023-03-03
|\ | | | | fix(treesitter): maintain cursor position when toggling anonymous nodes
| * refactor(treesitter): use string.format to create linesGregory Anders2023-03-02
| |
| * 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): typos in _range.luaJaehwang Jung2023-03-03
| | | | | | fix(treesitter): typos _range.lua
* | fix(treesitter): disallow empty filetypesLewis Russell2023-03-03
| | | | | | Fixes #22473
* | vim-patch:9.0.1368: Bass files are not recognized (#22485)Amaan Qureshi2023-03-02
|/ | | | | | Problem: Bass files are not recognized. Solution: Add patterns for Bass files. (Amaan Qureshi, closes vim/vim#12088) https://github.com/vim/vim/commit/4ed914b18a47192f79f342bea5e8f59e120d5260
* 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(vim.fs): pass path to find() predicate, lazy evaluate #22378Mike2023-03-01
| | | | | | | | Problem: No easy way to find files under certain directories (ex: grab all files under `test/`) or exclude the content of certain paths (ex. `build/`, `.git/`) Solution: Pass the full `path` as an arg to the predicate.
* fix(lsp): only fire LspDetach for attached buffers (#22468)Gregory Anders2023-03-01
| | | | | | | | | | If the LSP server fails to start then the client never initializes and thus never calls its on_attach function and an LspAttach event is never fired. However, the on_exit function still fires a LspDetach event, so user autocommands that attempt to "clean up" in LspDetach may run into problems if they assume that the buffer was already attached. The solution is to only fire an LspDetach event if the buffer was already attached in the first place.
* fix(lsp): use buffer scheme for files not stored on disk (#22407)Mathias Fußenegger2023-03-01
| | | | | | Sending `didOpen` with a `file` scheme causes problems with some language servers because they expect the file to exist on disk. See https://github.com/microsoft/language-server-protocol/pull/1679
* fix(lsp): callHierarchy methods also require the callHierarchyProvider (#22427)Jens Claes2023-03-01
|
* Merge pull request #22452 from folke/masterbfredl2023-02-28
|\ | | | | fix(inspect): always resolve full treesitter lang hl groups
| * fix(inspect): alwasy resolve full treesitter lang hl groupsFolke Lemaitre2023-02-28
| |
* | perf(lsp): only redraw the windows containing LSP tokensbfredl2023-02-28
|/ | | | | | | | redraw! redraws the entire screen instead of just the windows with the buffer which were actually changed. I considered trying to calculating the range for the delta but it looks tricky. Could a follow-up.
* docs(lsp): update cmd_env description (#22438)Mike2023-02-27
|
* vim-patch:9.0.1360: Cue files are not recognized (#22439)Amaan Qureshi2023-02-27
| | | | | | Problem: Cue files are not recognized. Solution: Add patterns for Cue files. (Amaan Qureshi, closes vim/vim#12067) https://github.com/vim/vim/commit/80c5b2c0f78b24e52c73bb162dda3ad85acd7e82
* fix(treesitter): fixup for healthLewis Russell2023-02-27
|
* fix(treesitter): ipairs -> pairsLewis Russell2023-02-27
| | | Fixes: https://github.com/nvim-treesitter/nvim-treesitter/issues/4349
* fix(treesitter): remove virtual text from playgroundLewis Russell2023-02-27
| | | Implement the range and lang annotations as comments instead
* feat(treesitter): expand the APILewis Russell2023-02-26
|
* fix(lsp): fix some type annotations (#22397)Mathias Fußenegger2023-02-25
|
* Revert "feat(lsp): implement workspace/didChangeWatchedFiles (#21293)"Mathias Fussenegger2023-02-25
| | | | | | This reverts commit 5732aa706c639b3d775573d91d1139f24624629c. Causes editor to freeze in projects with many watcher registrations
* feat(lsp): implement workspace/didChangeWatchedFiles (#21293)Jon Huhn2023-02-25
|
* vim-patch:9.0.1351: Dhall files are not recognized (#22393)Christian Clason2023-02-24
| | | | | | | | Problem: Dhall files are not recognized. Solution: Add patterns for Dhall files. (Amaan Qureshi, closes vim/vim#12052) https://github.com/vim/vim/commit/def5521752abefe12db8cc3111a3b205ad1ac929 Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
* vim-patch:9.0.1350: CPON files are not recognized (#22392)Christian Clason2023-02-24
| | | | | | | | Problem: CPON files are not recognized. Solution: Add patterns for CPON files. (Amaan Qureshi, closes vim/vim#12053) https://github.com/vim/vim/commit/c2254764bcada43eea894eb5852a26d5ac5ca8b0 Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
* refactor(lsp): remove deprecated code (#22389)Raphael2023-02-24
|
* feat(treesitter)!: remove silent option from language.add()Lewis Russell2023-02-24
| | | Simply use `pcall` if you want to silence an error.
* vim-patch:9.0.1348: Un-grammar files are not recognized (#22383)Amaan Qureshi2023-02-23
| | | | | | Problem: Un-grammar files are not recognized. Solution: Add patterns for Un-grammar files. (Amaan Qureshi, closes vim/vim#12034) https://github.com/vim/vim/commit/44e08c1cf83f5a50f8b21613551304a6651c1161
* fix(treesitter): fixup language invalidation (#22381)Lewis Russell2023-02-23
|
* feat(treesitter): upstream foldexpr from nvim-treesitterLewis Russell2023-02-23
|
* vim-patch:9.0.1346: Starlark files are not recognized (#22380)Christian Clason2023-02-23
| | | | | | | | Problem: Starlark files are not recognized. Solution: Add patterns for Starlark files. (Amaan Qureshi, closes vim/vim#12049) https://github.com/vim/vim/commit/ca06b30073de22dc120b532e90fbee2a10ef9772 Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
* perf(treesitter): smarter languagetree invalidationLewis Russell2023-02-23
| | | | | | | | | | | | | | Problem: Treesitter injections are slow because all injected trees are invalidated on every change. Solution: Implement smarter invalidation to avoid reparsing injected regions. - In on_bytes, try and update self._regions as best we can. This PR just offsets any regions after the change. - Add valid flags for each region in self._regions. - Call on_bytes recursively for all children. - We still need to run the query every time for the top level tree. I don't know how to avoid this. However, if the new injection ranges don't change, then we re-use the old trees and avoid reparsing children. This should result in roughly a 2-3x reduction in tree parsing when the comment injections are enabled.
* refactor(lsp): remove workaround for missing bit module (#22373)Mathias Fußenegger2023-02-23
|
* docs: fix more treesitter parsing errorsChristian Clason2023-02-23
|
* docs(treesitter): fix parse errorsChristian Clason2023-02-23
|
* Merge #21428 docs: naming conventions, guidelinesJustin M. Keyes2023-02-22
|\
| * docs: naming conventions, guidelinesJustin M. Keyes2023-02-22
| | | | | | | | close #21063
* | 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.
* vim-patch:9.0.1337: yuck files are not recognized (#22358)Christian Clason2023-02-22
| | | | | | | | | Problem: Yuck files are not recognized. Solution: Add a filetype pattern for yuck files. (Amaan Qureshi, closes vim/vim#12033) https://github.com/vim/vim/commit/cfce5cf542db20c7beba5b4211c0ae3305a64a43 Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
* 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(lsp): wrong format of bufnr and client order in error message (#22336)Jason Hansen2023-02-21
|
* vim-patch:9.0.1319: PRQL files are not recognized (#22319)Christian Clason2023-02-19
| | | | | | | | | Problem: PRQL files are not recognized. Solution: Add a filetype pattern for PRQL files. (Matthias Queitsch, closes vim/vim#12018) https://github.com/vim/vim/commit/9de960ace0f017fcfeaf64a2f6492f0f88b11fdb Co-authored-by: Matthias Queitsch <matthias.queitsch@mailbox.org>
* fix(lsp): check if the buffer is a directory before w! it (#22289)Eduard Baturin2023-02-18
|
* fix(treesitter): make params optionalLewis Russell2023-02-15
|
* Merge #22214 move init_default_autocmds to luaJustin M. Keyes2023-02-14
|\
| * refactor: move init_default_autocmds to luaglacambre2023-02-11
| | | | | | | | | | | | | | | | | | The original motivation for this change came from developping https://github.com/neovim/neovim/pull/22159, which will require adding more autocommand creation to Neovim's startup sequence. This change requires lightly editing a test that expected no autocommand to have been created from lua.
* | feat(filetype): fall back to file extension when matching from hashbang (#22140)Jonas Strittmatter2023-02-13
| | | | | | | | | | | | If nothing matched in match_from_hashbang, also check the file extension table. For a hashbang like '#!/bin/env foo', this will set the filetype to 'fooscript' assuming the filetype for the 'foo' extension is 'fooscript' in the extension table.