aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* feat(lsp): option to reuse_win for jump actions (#18577)Lewis Russell2022-05-18
|
* feat(lsp): add filter to vim.lsp.get_active_clients()Gregory Anders2022-05-18
| | | | | Allow get_active_clients() to filter on client name, id, or buffer. This (soft) deprecates lsp.buf_get_clients().
* feat(lsp): add LspAttach and LspDetach autocommandsGregory Anders2022-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | The current approach of using `on_attach` callbacks for configuring buffers for LSP is suboptimal: 1. It does not use the standard Nvim interface for driving and hooking into events (i.e. autocommands) 2. There is no way for "third parties" (e.g. plugins) to hook into the event. This means that *all* buffer configuration must go into the user-supplied on_attach callback. This also makes it impossible for these configurations to be modular, since it all must happen in the same place. 3. There is currently no way to do something when a client detaches from a buffer (there is no `on_detach` callback). The solution is to use the traditional method of event handling in Nvim: autocommands. When a LSP client is attached to a buffer, fire a `LspAttach`. Likewise, when a client detaches from a buffer fire a `LspDetach` event. This enables plugins to easily add LSP-specific configuration to buffers as well as enabling users to make their own configurations more modular (e.g. by creating multiple LspAttach autocommands that each do something unique).
* feat(api): enable nvim_exec_autocmds to pass arbitrary data (#18613)Gregory Anders2022-05-18
| | | | Add a "data" key to nvim_exec_autocmds that passes arbitrary data (API objects) to autocommand callbacks.
* Merge pull request #18562 from famiu/feat/ui/winbarbfredl2022-05-18
|\ | | | | feat(ui): add `'winbar'`
| * feat(ui): add `'winbar'`Famiu Haque2022-05-18
| | | | | | | | | | | | | | Adds support for a bar at the top of each window, enabled through the `'winbar'` option. Co-authored-by: Björn Linse <bjorn.linse@gmail.com>
* | fix(health): handle non-existent log file #18610Noval Maulana2022-05-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: vim.lsp: require("vim.lsp.health").check() ======================================================================== - ERROR: Failed to run healthcheck for "vim.lsp" plugin. Exception: function health#check, line 20 Vim(eval):E5108: Error executing lua ...m/HEAD-6613f58/share/nvim/runtime/lua/vim/lsp/health.lua:20: attempt to index a nil value stack traceback: ...m/HEAD-6613f58/share/nvim/runtime/lua/vim/lsp/health.lua:20: in function 'check' [string "luaeval()"]:1: in main chunk Solution: Check for nil. fix #18602
* | refactor(runtime): convert more dist#ft functions to lua (#18430)Jonas Strittmatter2022-05-17
| |
* | Merge pull request #18554 from kevinhwang91/perf-timerstartbfredl2022-05-17
|\ \ | | | | | | perf(_editor): no need to stop inside vim.defer_fn
| * | perf(_editor): no need to stop inside vim.defer_fnkevinhwang912022-05-13
| | | | | | | | | | | | | | | | | | uv_run: 1. remove timer handle from heap 2. will start again if repeat is not 0
* | | fix(health): correct shada file path #18603zeertzjq2022-05-17
| | |
* | | docs(api): update v:errmsg behavior #18593Famiu Haque2022-05-17
| | |
* | | docs: vim.regex is case sensitive by default (#18595)Gregory Anders2022-05-16
| |/ |/|
* | feat(man.vim): list command flags in "gO" outline #17558Joshua Cao2022-05-16
| |
* | feat(lua): add traceback to vim.deprecate #18575ii142022-05-15
| |
* | docs(api): nvim_set_hl attributes #18558Oliver Marriott2022-05-15
| |
* | ci(clint): remove clint.py line length check #18574dundargoc2022-05-15
| | | | | | | | | | uncrustify is the source of truth where possible. Remove any redundant checks from clint.py. See also https://github.com/neovim/neovim/pull/18563
* | docs(nvim_set_keymap): specify that optional arguments defaults to false ↵dundargoc2022-05-15
| | | | | | | | | | (#18177) Closes: https://github.com/neovim/neovim/issues/16919
* | vim-patch:partial: 30ab04e16e1e (#18568)Christian Clason2022-05-15
| | | | | | | | | | | | Update runtime files, new color schemes https://github.com/vim/vim/commit/30ab04e16e1e9e6133590181197b3f8e70cb495e Skip: doc/* (in-progress rewrite of the user manual on creating vim(9)script plugins)
* | ci(clint): remove check for include orderDundar Goc2022-05-14
| | | | | | | | | | | | Uncrustify and clang-format are already both excellent at ordering includes; this isn't something we need to check for ourselves. Also remove the section on include order in the dev-style documentation.
* | build(nvim.desktop): central Kurdish translation #17065Roj2022-05-13
| | | | | | Co-authored-by: Sarchia <74000088+Sarchia@users.noreply.github.com>
* | fix(man.vim): q in "$MANPAGER mode" does not quit #18443Arsham Shirvani2022-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: q in "$MANPAGER mode" does not quit Nvim. This is because ftplugin/man.vim creates its own mapping: nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>c which overrides the one set by the autoload file when using :Man! ("$MANPAGER mode") Solution: Set b:pager during "$MANPAGER mode" so that ftplugin/man.vim can set the mapping correctly. Fixes #18281 Ref #17791 Helped-by: Gregory Anders <8965202+gpanders@users.noreply.github.com>
* | vim-patch:partial:3f32a5f1601a (#18555)Christian Clason2022-05-13
|/ | | | | | Update runtime files and translations https://github.com/vim/vim/commit/3f32a5f1601ab2b0eba0caad00d4c26fb86a02a2 skip eval.txt (requires 8.2.4883)
* revert: "feat(mappings): do not simplify the rhs of a mapping" (#18553)zeertzjq2022-05-13
| | | | This reverts commit 7ac5359143ef25c4c8c0c427d5533f8d5824ed17. This fix can cause more problems than it solves.
* feat(defaults): search selection by * and # in visual mode (#18538)yamatsum2022-05-13
|
* fix(lsp): perform client side filtering of code actions (#18392)Fredrik Ekre2022-05-12
| | | | | | | | Implement filtering of actions based on the kind when passing the 'only' parameter to code_action(). Action kinds are hierachical with a '.' as the separator, and the filter thus allows, for example, both 'quickfix' and 'quickfix.foo' when requestiong only 'quickfix'. Fix https://github.com/neovim/neovim/pull/18221#issuecomment-1110179121
* feat(defaults): session data in $XDG_STATE_HOME #15583Ivan2022-05-12
| | | | | | | | | | | | See: https://gitlab.freedesktop.org/xdg/xdg-specs/-/commit/4f2884e16db35f2962d9b64312917c81be5cb54b - Move session persistent data to $XDG_STATE_HOME Change 'directory', 'backupdir', 'undodir', 'viewdir' and 'shadafile' default location to $XDG_STATE_HOME/nvim. - Move logs to $XDG_STATE_HOME, too. - Add stdpath('log') support. Fixes: #14805
* build(lua2dox): add parenthesis around parameter types in documentation (#18532)dundargoc2022-05-12
| | | | | | | | | | This will check if the string after the variable in a @param is either "number", "string", "table", "boolean" and "function" and if so add a parenthesis around it. This will help separate the variable type with the following text. Had all our functions been annotated with emmylua then a more robust solution might have been preferable (such as always assuming the third string is parameter type without making any checks). I believe however this is a clear improvement over the current situation and will suffice for now.
* feat(lua): vim.cmd() with kwargs acts like nvim_cmd() #18523Famiu Haque2022-05-12
|
* fix(runtime/genvimvim): omit s[ubstitute] from vimCommand #18480Sean Dewar2022-05-11
| | | | | | | | | | | | | | | | | | | | It's special cased by the vimSubst syntax group, and isn't present in Vim's vimCommand group. For example, this fixes `call s:Foo()` highlighting `:` as Error in Nvim, as the `s` is parsed as vimCommand rather than as vimUserFunc since `contains=vimCommand` was added to vimUserFunc (and vimFunc) in a rt update. Interestingly, `g:`, `l:`, etc. have the same issues due to :global, :list, etc. Vim also has that problem, so it should ideally be fixed upstream. We could also omit g[lobal] from vimCommand and rely on vimGlobal instead, but it doesn't work in some cases, like when there's a `:` before the command. Also, Vim matches only `g` in vimCommand for some reason, which doesn't produce any highlight for `:global/foo/bar` (with Nvim you at least get some highlights on the `global` bit despite the leading `:`). Also, remove special handling of :py3 in syntax/vim.vim, as the generator seems to have no problems finding it.
* docs: nvim_buf_[get|set]_[text|lines] (#18404)Andrey Mishchenko2022-05-11
| | | | - Use consistent formatting for args docs. - Clarify inclusivity/exclusivity in `nvim_buf_[get|set]_text`.
* docs(api): how to check if window is floating #18503Andrey Mishchenko2022-05-11
|
* docs(api): improve shared lua functions docs (#17933)adrian52022-05-11
|
* vim-patch:8.2.4939: matchfuzzypos() with "matchseq" does not have all ↵zeertzjq2022-05-11
| | | | | | | positions (#18525) Problem: matchfuzzypos() with "matchseq" does not have all positions. Solution: Also add a position for white space. (closes vim/vim#10404) https://github.com/vim/vim/commit/9af2bc075169e14fd06ed967d28eac7206d21f36
* Merge pull request #18366 from famiu/feat/api/nvim_cmdbfredl2022-05-11
|\ | | | | feat(api): add `nvim_cmd`
| * feat(api): add `nvim_cmd`Famiu Haque2022-05-11
| | | | | | | | Adds the API function `nvim_cmd` which allows executing an Ex-command through a Dictionary which can have the same values as the return value of `nvim_parse_cmd()`. This makes it much easier to do things like passing arguments with a space to commands that otherwise may not allow it, or to make commands interpret certain characters literally when they otherwise would not.
* | Merge pull request #18487 from clason/styluaChristian Clason2022-05-11
|\ \ | | | | | | CI: format and lint runtime with Stylua
| * | chore: format runtime with styluaChristian Clason2022-05-09
| |/
* | vim-patch:921bde888046 (#18511)Christian Clason2022-05-10
| | | | | | | | | | | | | | Update runtime files, translations https://github.com/vim/vim/commit/921bde88804663a7cb825d7f7e8a5d8ae6b58650 skip: translations skip: builtin.txt (requires 8.2.4861)
* | docs(lsp): fix description of `only` in vim.lsp.buf.code_action() (#18492)Fredrik Ekre2022-05-09
|/
* feat: cmdline funcs (#18284)Shougo2022-05-09
| | | | | | | | | | | | | | vim-patch:8.2.4903: cannot get the current cmdline completion type and position Problem: Cannot get the current cmdline completion type and position. Solution: Add getcmdcompltype() and getcmdscreenpos(). (Shougo Matsushita, closes vim/vim#10344) https://github.com/vim/vim/commit/79d599b8772022af1d657f368c2fc97aa342c0da vim-patch:8.2.4910: imperfect coding Problem: Imperfect coding. Solution: Make code nicer. https://github.com/vim/vim/commit/9ff7d717aa3176de5c61de340deb93f41c7780fc
* fix(lsp): detach spawned LSP server processes (#18477)Gregory Anders2022-05-08
| | | | | | | | LSP servers should be daemonized (detached) so that they run in a separate process group from Neovim's. Among other things, this ensures the process does not inherit Neovim's TTY (#18475). Make this configurable so that clients can explicitly opt-out of detaching from Nvim.
* vim-patch:partial:d899e5112079 (#18474)Sean Dewar2022-05-08
| | | | | | | | | | | | Update runtime files https://github.com/vim/vim/commit/d899e51120798d3fb5420abb1f19dddf3f014d05 - Skip vimhelp.vim stuff (syntax/help.vim, syntax.txt; v8.2.4891). - Skip :let heredoc eval stuff (eval.txt; v8.2.4770). - Skip uk.cp1251.po. - Skip `*hl-CurSearch*` change (syntax.txt): - Vim's CurSearch works differently (Nvim's uses current cursor pos). Dunno know how applicable the redrawing comment is to Nvim... - Might be preferred to move it under `*hl-Search*` like Vim?
* vim-patch:8.2.4907: some users do not want a line comment always inserted ↵Christian Clason2022-05-07
| | | | | | | | (#18463) Problem: Some users do not want a line comment always inserted. Solution: Add the '/' flag to 'formatoptions' to not repeat the comment leader after a statement when using "o". https://github.com/vim/vim/commit/2bf875f881f7c6f6900bc0eb2a93a552db894109
* docs: change wrap_at type to number (#18456)Noval Maulana2022-05-07
|
* fix(api): make `nvim_parse_cmd` work correctly with both range and countFamiu Haque2022-05-07
| | | | | | | | It seems range and count can be used together in commands. This PR fixes the behavior of `nvim_parse_cmd` for those cases by removing the mutual exclusivity of "range" and "count". It also removes range line number validation for `nvim_parse_cmd` as it's not its job to validate the command.
* fix(lsp): skip clients without rename capability (#18449)Mathias Fußenegger2022-05-06
| | | | | Follow up to https://github.com/neovim/neovim/pull/18441 This way rename should "just work" in most cases without having to manually filter the client
* vim-patch:8.2.4881: "P" in Visual mode still changes some registers (#18445)zeertzjq2022-05-06
| | | | | | Problem: "P" in Visual mode still changes some registers. Solution: Make "P" in Visual mode not change any register. (Shougo Matsushita, closes vim/vim#10349) https://github.com/vim/vim/commit/509142ab7a9db32114b6d0949722b9133c9c22f2
* fix(lsp): fix rename capability checks and multi client support (#18441)Mathias Fußenegger2022-05-05
| | | | | | | | Adds filter and id options to filter the client to use for rename. Similar to the recently added `format` function. rename will use all matching clients one after another and can handle a mix of prepareRename/rename support. Also ensures the right `offset_encoding` is used for the `make_position_params` calls
* Merge pull request #18431 from famiu/feat/api/nvim_get_autocmds/group_namebfredl2022-05-05
|\ | | | | feat(api): add `group_name` to `nvim_get_autocmds`