summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua
AgeCommit message (Collapse)AuthorFiles
2023-06-12feat: tostring(vim.version())Justin M. Keyes1
Problem: tostring(vim.version()) returns "table: 0x…". Solution: Modify vim.version() to return a string prerelease instead of a boolean. Fix #23863
2023-06-11docs: fix vim.tbl_get type annotations #23992Stanislav Asunkin1
2023-06-12feat: vim.version() returns a Version objectGianmaria Bajo1
- vim.version() returns a Version object. Makes it printable and removes the need of workarounds when passing it to other vim.version methods.
2023-06-11refactor(treesitter): use npcall in _query_linter.lua #23985Stephan Seitz1
2023-06-11fix(remote): restore previous --remote-expr output formatting (#23988)zeertzjq1
- Use tostring() as that's what print() uses internally. - Do not append trailing new line.
2023-06-11feat(lsp): add handlers for inlay hints (#23736)Chinmay Dalal5
initial support; public API left for a follow-up PR
2023-06-11fix(remote): make --remote-expr print to stdout (#23980)zeertzjq1
2023-06-10feat(lua): use callable table as iterator in vim.iter (#23957)Mathias Fußenegger1
A table passed to `vim.iter` can be a class instance with a `__call` implementation for the iterator protocol.
2023-06-10fix(lsp): use percentage format on lsp.status (#23971)Raphael1
2023-06-10docs: fix typos (#23917)Jonas Strittmatter2
2023-06-09vim-patch:9.0.1622: filetype name t32 is a bit obscure (#23967)Christian Clason1
Problem: Filetype name t32 is a bit obscure. Solution: Rename t32 to trace32. (Christoph Sax, closes vim/vim#12512) https://github.com/vim/vim/commit/740df76c90ee2c421ab7852b7ff2835aa0af782a Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
2023-06-09feat(lsp)!: add vim.lsp.status, client.progress and promote ↵Mathias Fußenegger4
LspProgressUpdate (#23958) `client.messages` could grow unbounded because the default handler only added new messages, never removing them. A user either had to consume the messages by calling `vim.lsp.util.get_progress_messages` or by manually removing them from `client.messages.progress`. If they didn't do that, using LSP effectively leaked memory. To fix this, this deprecates the `messages` property and instead adds a `progress` ring buffer that only keeps at most 50 messages. In addition it deprecates `vim.lsp.util.get_progress_messages` in favour of a new `vim.lsp.status()` and also promotes the `LspProgressUpdate` user autocmd to a regular autocmd to allow users to pattern match on the progress kind. Also closes https://github.com/neovim/neovim/pull/20327
2023-06-09vim-patch:9.0.1620: Nix files are not recognized from the hashbang line (#23961)Christian Clason1
Problem: Nix files are not recognized from the hashbang line. Solution: Add a hashbang check. (issue vim/vim#12507) https://github.com/vim/vim/commit/19548c6a742d954ecd0b50b0680c37cc6ced7473 Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-06-08vim-patch:9.0.1618: Trace32 files are not recognized (#23960)Christian Clason1
Problem: Trace32 files are not recognized. Solution: Add patterns for the t32 filetype. (Christoph Sax, closes vim/vim#12505) https://github.com/vim/vim/commit/7fbcee6f928356f1c205a4dfa67c1d542f743b92 Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
2023-06-08feat(lua): add ringbuffer (#22894)Mathias Fußenegger1
https://en.wikipedia.org/wiki/Circular_buffer
2023-06-07vim-patch:9.0.1615: URL shortcut files are not recognized (#23950)Christian Clason1
Problem: URL shortcut files are not recognized. Solution: Add a pattern for URL shortcut files. (closes vim/vim#12474) https://github.com/vim/vim/commit/cdb7b4c50826df254d2e5ba8abd211e49b7a9784 Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2023-06-07feat(lua): add `vim.system()`Lewis Russell4
feat(lua): add vim.system() Problem: Handling system commands in Lua is tedious and error-prone: - vim.fn.jobstart() is vimscript and comes with all limitations attached to typval. - vim.loop.spawn is too low level Solution: Add vim.system(). Partly inspired by Python's subprocess module Does not expose any libuv objects.
2023-06-07fix(lsp): reduce diagnostics and add more types (#23948)Lewis Russell2
2023-06-07feat(scripts): add lsp_types.lua (#23750)max3975741
2023-06-06feat(health): fold successful healthchecks #22866Alexandre Teoi1
Problem: checkhealth can be noisy, but we don't want to omit info. Solution: Fold OK results by default, if 'foldenable' is enabled. Resolves #22796
2023-06-06refactor!: rename "playground" => "dev" #23919Justin M. Keyes2
Problem: "playground" is new jargon that overlaps with existing concepts: "dev" (`:help dev`) and "view" (also "scratch" `:help scratch-buffer`) . Solution: We should consistently use "dev" as the namespace for where "developer tools" live. For purposes of a "throwaway sandbox object", we can use the name "view". - Rename `TSPlayground` => `TSView` - Rename `playground.lua` => `dev.lua`
2023-06-06fix: version-range < and <= #23539Gianmaria Bajo1
vim.version.range() couldn't parse them correctly. For example, vim.version.range('<0.9.0'):has('0.9.0') returned `true`. fix: range:has() accepts vim.version() So that it's possible to compare a range with: vim.version.range(spec):has(vim.version())
2023-06-05fix(editorconfig): check that buffer is valid (#23922)Gregory Anders1
Fixes: https://github.com/neovim/neovim/issues/23921
2023-06-05fix(lsp): use only utf-16 in default client positionEncodings (#23903)Gregory Anders1
The Nvim client does not yet support multiple offset encodings for clients in the same buffer. Until it does, stick to utf-16 by default.
2023-06-05refactor(lsp): use LPeg for watchfiles matching (#23788)Jon Huhn1
2023-06-05fix(lsp): set extra info only when it has a value (#23868)Raphael1
2023-06-04fix(lsp): restore marks after apply_text_edits() #14630Folke Lemaitre1
PROBLEM: Whenever any text edits are applied to the buffer, the `marks` part of those lines will be lost. This is mostly problematic for code formatters that format the whole buffer like `prettier`, `luafmt`, ... When doing atomic changes inside a vim doc, vim keeps track of those changes and can update the positions of marks accordingly, but in this case we have a whole doc that changed. There's no simple way to update the positions of all marks from the previous document state to the new document state. SOLUTION: * save marks right before `nvim_buf_set_lines` is called inside `apply_text_edits` * check if any marks were lost after doing `nvim_buf_set_lines` * restore those marks to the previous positions TEST CASE: * have a formatter enabled * open any file * create a couple of marks * indent the whole file to the right * save the file Before this change: all marks will be removed. After this change: they will be preserved. Fixes #14307
2023-06-03feat(lsp): set kind in select call for codelens #23889Artyom Andreev1
2023-06-04vim-patch:9.0.1601: filetype detection fails for *.conf file without ↵Christian Clason1
comments (#23896) Problem: Filetype detection fails for *.conf file without comments. (Dmitrii Tcyganok) Solution: Use "conf" filetype as a fallback for an empty .conf file. (closes vim/vim#12487, closes vim/vim#12483) https://github.com/vim/vim/commit/664fd12aa27a3c6bd19cfa474c4630d6c03fcc61 Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-06-03perf(iter): make ListIter.totable more efficient (#23714)Lewis Russell1
2023-06-03feat(lua): rename vim.loop -> vim.uv (#22846)Lewis Russell17
2023-06-03docs(iter): add emmylua type to iter module (#23845)Sebastian Lyng Johansen1
2023-06-02docs: small fixes (#23619)dundargoc1
Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: Gustavo Ferreira <gustavo.ferreira@imaginecurve.com> Co-authored-by: Kai Moschcau <mail@kmoschcau.de> Co-authored-by: Lampros <hauahx@gmail.com>
2023-06-02fix(health): stop job properly on timeout (#23877)zeertzjq1
2023-06-01feat(lsp): include positionEncodings in default client capabilitiesGregory Anders1
2023-06-01feat(lsp): set client offset_encoding if server supports positionEncodingGregory Anders1
If the server sends the positionEncoding capability in its initialization response, automatically set the client's offset_encoding to use the value provided.
2023-06-01fix(lsp): add param assert in client_is_stopped (#23857)Raphael1
2023-05-30feat(lsp)!: promote LspRequest to a full autocmd and enrich with additional ↵jdrouhard1
data (#23694) BREAKING CHANGE: LspRequest is no longer a User autocmd but is now a first class citizen. LspRequest as a User autocmd had limited functionality. Namely, the only thing you could do was use the notification to do a lookup on all the clients' requests tables to figure out what changed. Promoting the autocmd to a full autocmd lets us set the buffer the request was initiated on (so people can set buffer-local autocmds for listening to these events). Additionally, when used from Lua, we can pass additional metadata about the request along with the notification, including the client ID, the request ID, and the actual request object stored on the client's requests table. Users can now listen for these events and act on them proactively instead of polling all of the requests tables and looking for changes.
2023-05-30fix(lsp): fix dynamic registration of code actions (#23826)Folke Lemaitre1
2023-05-30vim-patch:9.0.1591: some "gomod" files are not recognized (#23820)Omar El Halabi1
Problem: Some "gomod" files are not recognized. Solution: Check for "go.mod" file name before checking out the contents. (Omar El Halabi, closes vim/vim#12462) https://github.com/vim/vim/commit/c9fbd2560f24180d2efa40028ed68427341d2d99
2023-05-29vim-patch:9.0.1587: Corn config files are not recognized (#23807)Christian Clason1
Problem: Corn config files are not recognized. Solution: Add a pattern for Corn config files. (Jake Stanger, closes vim/vim#12449) https://github.com/vim/vim/commit/05843e89601c03389a2d7978e7e16aec641a3dc4 Co-authored-by: Jake Stanger <mail@jstanger.dev>
2023-05-28vim-patch:9.0.1584: not all meson files are recognized (#23797)Christian Clason1
Problem: Not all meson files are recognized. Solution: Add "meson.options". (Liam Beguin, closes vim/vim#12444) https://github.com/vim/vim/commit/1ba0b9e36f36926a7675b31efeda7d3e495c9157 Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-05-28feat(lsp): initial support for dynamic capabilities (#23681)Folke Lemaitre6
- `client.dynamic_capabilities` is an object that tracks client register/unregister - `client.supports_method` will additionally check if a dynamic capability supports the method, taking document filters into account. But only if the client enabled `dynamicRegistration` for the capability - updated the default client capabilities to include dynamicRegistration for: - formatting - rangeFormatting - hover - codeAction - hover - rename
2023-05-26fix: function was renamed (#23772)Matthieu Coudron1
2023-05-21refactor(options): deprecate nvim[_buf|_win]_[gs]et_optionLewis Russell3
Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: famiu <famiuhaque@protonmail.com>
2023-05-20feat(fs): expose join_paths as `vim.fs.joinpath` (#23685)Christian Clason1
This is a small function but used a lot in some plugins.
2023-05-20fix(lsp): don't register didChangeWatchedFiles when capability not set (#23689)Jon Huhn1
Some LSP servers (tailwindcss, rome) are known to request registration for `workspace/didChangeWatchedFiles` even when the corresponding client capability does not advertise support. This change adds an extra check in the `client/registerCapability` handler not to start a watch unless the client capability is set appropriately.
2023-05-19vim-patch:9.0.1565: json lines files are not recognized (#23677)Christian Clason1
Problem: Json lines files are not recognized. Solution: Add a pattern to detect "jsonl" files. (issue vim/vim#7520) https://github.com/vim/vim/commit/6fadbc1e8c1f4c5b03eb6a78aeb023ca2c2a9a7d Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-05-18fix(treesitter): allow foldexpr without highlights (#23672)Lewis Russell2
Ref nvim-treesitter/nvim-treesitter#4748
2023-05-17feat(treesitter): improved logging (#23638)Lewis Russell3
- Add bindings to Treesitter ts_parser_set_logger and ts_parser_logger - Add logfile with path STDPATH('log')/treesitter.c - Rework existing LanguageTree loggin to use logfile - Begin implementing log levels for vim.g.__ts_debug