aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* feat(lua): add traceback to vim.deprecate #18575ii142022-05-15
|
* feat(terminfo): bump built-in terminfo entries (#18570)Marco Hinz2022-05-16
| | | | | | Removes NOLINT, which is pointless for the generated terminfo_defs.h. Adds `uncrustify:off`, so it is not uncrustify which complains about the same things (too long lines, no space after comma) instead.
* ci: remove mingw job #18580dundargoc2022-05-15
| | | | | | | | | | | | | | | | | | | | Unnecessary CI builds increase the change of spurious failures, which are costly noise. Of course, we should fix all legitimate bugs, but we also cannot micro-manage every platform, so there needs to be a clear motivation for the CI builds that we maintain. Reasons against maintaining a mingw CI job: 1. The windows mingw build is slow. 2. Failures: - https://github.com/neovim/neovim/issues/18494 - https://github.com/neovim/neovim/issues/18495 3. The mingw artifact is 10x bigger than the windows MSVC artifact: https://github.com/neovim/neovim/issues/10560 4. Our releases publish the MSVC (not mingw) artifact for Windows users: https://github.com/neovim/neovim/releases 5. Non-MSVCRT has limitations documented by libuv: http://docs.libuv.org/en/v1.x/process.html > On Windows file descriptors greater than 2 are available to the child process only if the child processes uses the MSVCRT runtime. Closes https://github.com/neovim/neovim/issues/18551
* ci(clint): remove checks for whitespace after comma/semicolon (#18584)Marco Hinz2022-05-16
| | | | | 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(api): nvim_set_hl attributes #18558Oliver Marriott2022-05-15
|
* fix(api): nvim_eval_statusline should validate input #18347deforde2022-05-15
| | | | | Fix #18112 Make an exception for strings starting with "%!".
* 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
* Merge pull request #18581 from famiu/refactor/ui/vertsplitbfredl2022-05-15
|\ | | | | refactor(ui)!: link `VertSplit` to `Normal` by default
| * refactor(ui)!: link `VertSplit` to `Normal` by defaultFamiu Haque2022-05-15
| | | | | | | | | | Avoids using `gui=reverse` on `VertSplit` and makes window separators look much nicer by default.
* | ci: enable tests on drafts as well #18566dundargoc2022-05-15
|/ | | | | | | | | | | | | | | | | | | previous: https://github.com/neovim/neovim/pull/14123 CI tests were disabled on drafts #18566 to manage the large number of incoming jobs. While this did help, it had the drawback of making the purpose of the ready-for-review a bit fuzzier. It went from a clear "my PR is ready" signal to maintainers to somewhere between "my PR is ready but I need the tests to confirm" to "please don't merge yet, I just need to see the test results". Worse is that the specific case of wanting to see the test results but not wanting it merged is that this needs to be actively conveyed to the maintainers with a [DNM] or a comment to not merge the PR yet. All of this causes weird workarounds and noises which I believe isn't necessary. The reason why I don't think this workaround is needed anymore is that our CI now aborts a job if a new job from the same pull requests is created, which makes the "10 simultaneous jobs per PR" situations that triggered this not possible.
* fix PVS warnings (#18459)dundargoc2022-05-15
| | | | | | | | | | | | | * fix(PVS/V547): remove ifs that are always true or false * fix(PVS/V560): remove partial conditions that are always true * fix(PVS/V1044): suppress warning about loop break conditions * fix(PVS/V1063): suppress "modulo by 1 operation is meaningless" * fix(PVS/V568): suppress "operator evaluates the size of a pointer" Also mark vim-patch:8.2.4958 as ported.
* build: enable EXITFREE on Debug builds (#17783)dundargoc2022-05-15
| | | | | This makes it more convenient to find memory leaks since you don't need to remember to set the EXITFREE flag every time you use valgrind or a sanitizer.
* build(gen_vimdoc): eliminate non-constant global variables (#17781)dundargoc2022-05-15
|
* 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)
* refactor(uncrustify): enable formatting for regexp and indent files (#18549)dundargoc2022-05-14
| | | | | | | | The formatting for these files were originally disabled as to signal that "we don't own these files", meaning we intentionally want to minimize the amount of work put in these files as the return will be very little. This unfortunately conflicts with other refactoring efforts that happen to touch these files, and it's easier to simply enable formatting.
* Merge pull request #18537 from dundargoc/ci/clintMarco Hinz2022-05-14
|\ | | | | ci(clint): remove check for include order
| * 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.
| * ci(clint): fix all pyright warningsDundar Goc2022-05-14
|/
* Merge pull request #18567 from zeertzjq/vim-8.2.4951zeertzjq2022-05-14
|\ | | | | vim-patch:8.2.{4951,4953}: with 'si' inserting char after completion goes wrong
| * vim-patch:8.2.4953: with 'si' inserting '}' after completion goes wrongzeertzjq2022-05-14
| | | | | | | | | | | | Problem: With 'smartindent' inserting '}' after completion goes wrong. Solution: Check the cursor is in indent. (closes vim/vim#10420) https://github.com/vim/vim/commit/2e444bbef0f36535bf941f007f2961f3f66bbe87
| * vim-patch:8.2.4951: smart indenting done when not enabledzeertzjq2022-05-14
|/ | | | | | Problem: Smart indenting done when not enabled. Solution: Check option values before setting can_si. (closes vim/vim#10420) https://github.com/vim/vim/commit/de5cf287812510d2c8ffe66b99cf33c4e1a6e6f1
* Merge pull request #18542 from famiu/feat/api/nvim_cmd/kvec_tbfredl2022-05-14
|\ | | | | refactor(api/nvim_cmd): use `kvec_t` for constructing cmdline string
| * refactor(api/nvim_cmd): use `kvec_t` for constructing cmdline stringFamiu Haque2022-05-14
| | | | | | | | Co-authored-by: Björn Linse <bjorn.linse@gmail.com>
* | 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)
* | vim-patch:8.2.2797: Search highlight disappears in the Visual area (#17947)zeertzjq2022-05-13
| | | | | | | | | | Problem: Search highlight disappears in the Visual area. Solution: Combine the search attributes. (closes vim/vim#8134) https://github.com/vim/vim/commit/2d5f385cee3668c44089edcb9d60b0b5d751ee5d
* | ci(commitlint): ignore "fixup" commits #18556dundargoc2022-05-13
| |
* | 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
| |
* | ci: remove remnants of gperf #18550Justin M. Keyes2022-05-12
| | | | | | | | gperf was removed in 36613b888bae7df764a26a28ca1627a2c0c2edeb yay!
* | fix(windows): stdpath("state") => "nvim-data" #18546dundargoc2022-05-12
| | | | | | This was missed in https://github.com/neovim/neovim/pull/15583
* | vim-patch:8.2.4943: changing 'switchbuf' may have no effect (#18545)Sean Dewar2022-05-13
| | | | | | | | | | | | | | | | | | Problem: Changing 'switchbuf' may have no effect. Solution: Handle 'switchbuf' in didset_string_options(). (Sean Dewar, closes vim/vim#10406) https://github.com/vim/vim/commit/39c46b43780ad00ea27a93d92aadd44753d4c3ea Guess it doesn't hurt to cherry-pick didset_string_options from v8.1.2045 (but in option.c, for now).
* | Merge pull request #18489 from dundargoc/refactor/remove-char_ubfredl2022-05-13
|\ \ | | | | | | refactor: replace char_u variables and functions with char
| * | refactor: replace char_u variables and functions with charDundar Goc2022-05-11
| | | | | | | | | | | | Work on https://github.com/neovim/neovim/issues/459
* | | Merge pull request #18544 from bfredl/hashyhashbfredl2022-05-12
|\ \ \ | | | | | | | | refactor(eval): use Hashy McHashFace instead of gperf
| * | | refactor(eval): use Hashy McHashFace instead of gperfbfredl2022-05-12
| | | | | | | | | | | | | | | | this removes gperf as a build dependency
* | | | 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
* | | Merge pull request #18540 from zeertzjq/vim-8.2.4919zeertzjq2022-05-12
|\ \ \ | | | | | | | | vim-patch:8.2.{4919,4921}: can add invalid bytes with :spellgood
| * | | vim-patch:8.2.4921: spell test fails because of new illegal byte checkzeertzjq2022-05-12
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Spell test fails because of new illegal byte check. Solution: Remove the test. https://github.com/vim/vim/commit/fe978c2b6bb9d897d962595a4a51dd7a71dc8e89
| * | | vim-patch:8.2.4919: can add invalid bytes with :spellgoodzeertzjq2022-05-12
| | |/ | |/| | | | | | | | | | | | | Problem: Can add invalid bytes with :spellgood. Solution: Check for a valid word string. https://github.com/vim/vim/commit/7c824682d2028432ee082703ef0ab399867a089b
* | | chore(editorconfig): remove "charset" (#18541)zeertzjq2022-05-12
| | | | | | | | | | | | | | | | | | Hardcoding a charset causes trouble when porting Vim patches. I previously tried to unset "charset" for certain file extensions, but vim-patch.sh can generate more files, and automatically detecting file encoding is more correct anyway.
* | | vim-patch:8.2.4941: '[ and '] marks may be wrong after undo (#18539)zeertzjq2022-05-12
|/ / | | | | | | | | Problem: '[ and '] marks may be wrong after undo. Solution: Adjust the '[ and '] marks if needed. (closes vim/vim#10407, closes vim/vim#1281) https://github.com/vim/vim/commit/82444cefa3fef87624a078ea86a72af7ef4ef42e
* | fix(cmd): make :-tabmove work with modifiers (#18447)Marco Hinz2022-05-12
| | | | | | | | | | | | | | | | | | `:tabmove` takes either an argument (`:tabmove -`) or an address (`:-tabmove`). The code assumed that `:tabmove` is the first command on the cmdline, but that is not the case when using additional modifiers like `:silent`. Make the addr parsing more robust by searching the command first, then going back to check for a potential address `-`.
* | 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(terminal): invalid pointer comparison #18453Clément Bœsch2022-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the moment of comparison, the pointer save_curwin can be invalid (as suggested by the comment) because it has been free'd. Worst, the new curwin could have been re-allocated to that same pointer, altering the execution flow unpredictably. While there are many other potential similar cases to fix in the codebase, the presented scenario is not hypothetical and does happen in practice (while spawning new windows from fzf for instance). There are numerous other instances of curwin comparisons in the codebase, and they may need further investigation. closes #16941
* | refactor: rename keymap.{c,h} to keycodes.{c,h} (#18535)zeertzjq2022-05-12
| | | | | | | | | | | | | | | | Most code in keymap.h is for keycode definitions, while most code in keymap.c is for the parsing and conversion of keycodes. The name "keymap" may also make people think these two files are for mappings, while in fact keycodes are used even when no mappings are involved, so "keycodes" should be a better file name than "keymap".