aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | | | | build: allow using system rocksdundargoc2023-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allow distributions and other interested parties to use a system busted rather than the on neovim bundles by passing the -D USE_BUNDLED_BUSTED=ON flag to cmake when building. Closes https://github.com/neovim/neovim/issues/23814.
| * | | | | | test(ui/decorations_spec): avoid flakiness caused by undo msg (#25924)zeertzjq2023-11-07
| | | | | | |
| * | | | | | fix(man): make :Man with a range work (#25922)zeertzjq2023-11-07
| | | | | | |
| * | | | | | fix(lua): correct return value for on_key with no arguments (#25911)altermo2023-11-07
| | | | | | |
| * | | | | | ci: work around flaky python3 testsdundargoc2023-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Python3 provider tests suddenly became extremely flaky on macos for unknown reasons. For some reason, installing python with the setup-python action over using the default python fixes the flakiness. Use this workaround for the time being to unblock CI while we figure out the root cause.
| * | | | | | feat(tui): use TermResponse event for OSC responses (#25868)Gregory Anders2023-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the terminal emulator sends an OSC sequence to Nvim (as a response to another OSC sequence that was first sent by Nvim), populate the OSC sequence in the v:termresponse variable and fire the TermResponse event. The escape sequence is also included in the "data" field of the autocommand callback when the autocommand is defined in Lua. This makes use of the already documented but unimplemented TermResponse event. This event exists in Vim but is only fired when Vim receives a primary device attributes response. Fixes: https://github.com/neovim/neovim/issues/25856
| * | | | | | fix(build): include FindPackageHandleStandardArgsObserverOfTime2023-11-06
| | | | | | |
| * | | | | | vim-patch:da4e433dc3be (#25912)zeertzjq2023-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): document vim-script library function https://github.com/vim/vim/commit/da4e433dc3bee7fa521df3c7235d49a6732134ef Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | | | | Merge pull request #25905 from bfredl/nested_rabbit_holesbfredl2023-11-06
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | refactor(grid): reimplement 'rightleft' as a post-processing step
| | * | | | | | refactor(grid): reimplement 'rightleft' as a post-processing stepbfredl2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | problem: checks for wp->w_p_rl are all over the place, making simple things like "advance column one cell" incredibly complicated. solution: always fill linebuf_char[] using an incrementing counter, and then mirror the buffer as a post-processing step This was "easier" that I first feared, because the stupid but simple workaround for things like keeping linenumbers still left-right, e.g. "mirror them and them mirror them once more" is more or less what vim did already. So let's just keep doing that.
| * | | | | | | build(deps): bump luajit to HEAD - 07b3cd3cfChristian Clason2023-11-06
| | |/ / / / / | |/| | | | |
| * | | | | | vim-patch:9.0.2092: tests: failure in test_arabicChristian Clason2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: tests: failure in test_arabic Solution: adjust the test for the changed arabic keymap https://github.com/vim/vim/commit/2a94e9879283c55b162cf4e6d9ac7e0b0c35bc97 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | | | | vim-patch:caee7956a21aChristian Clason2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(keymap): Switch Hindu-Arabic to Arabic numerals in arabic keymap (vim/vim#13430) https://github.com/vim/vim/commit/caee7956a21a8c1102266b31af44c432522bdb53 Co-authored-by: avidseeker <avidseeker7@protonmail.com>
| * | | | | | vim-patch:3d37231437fcChristian Clason2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(tar): improve the error detection Do not rely on the fact, that the last line matches warning, error, inappropriate or unrecognized to determine if an error occurred. It could also be a file, contains such a keyword. So make the error detection slightly more strict and only assume an error occured, if in addition to those 4 keywords, also a space matches (this assumes the error message contains a space), which luckily on Unix not many files match by default. The whole if condition seems however slightly dubious. In case an error happened, this would probably already be caught in the previous if statement, since this checks for the return code of the tar program. There may however be tar implementations, that do not set the exit code for some kind of error (but print an error message)? But let's keep this check for now, not many people have noticed this behaviour until now, so it seems to work reasonably well anyhow. related: vim/vim#6425 fixes: vim/vim#13489 https://github.com/vim/vim/commit/3d37231437fc0f761664a7cabc8f7b927b468767 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | | | | vim-patch:b2a4c110a5d1Christian Clason2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(dist): Make dist/vim.vim work properly when lacking vim9script support (vim/vim#13487) `:return` cannot be used outside of `:function` (or `:def`) in older Vims lacking Vim9script support or in Neovim, even when evaluation is being skipped in the dead `:else` branch. Instead, use the pattern described in `:h vim9-mix`, which uses `:finish` to end script processing before it reaches the vim9script stuff. https://github.com/vim/vim/commit/b2a4c110a5d13bc794f4eddb2e88a4e8fe9dfbea Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>
| * | | | | | vim-patch:4f174f0de90bChristian Clason2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(dist): add legacy version for central vim library Also, enable the zip and gzip plugins by default, unless those variables were not explicitly set by the user. related: vim/vim#13413 https://github.com/vim/vim/commit/4f174f0de90b52937ddaf1e6db98e9731930ff7c Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | | | | vim-patch:cd8a3eaf5348Christian Clason2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(dist): centralize safe executable check and add vim library (vim/vim#13413) Follow up to 816fbcc26 (patch 9.0.1833: [security] runtime file fixes, 2023-08-31) and f7ac0ef50 (runtime: don't execute external commands when loading ftplugins, 2023-09-06). This puts the logic for safe executable checks in a single place, by introducing a central vim library, so all filetypes benefit from consistency. Notable changes: - dist#vim because the (autoload) namespace for a new runtime support library. Supporting functions should get documentation. It might make life easier for NeoVim devs to make the documentation a new file rather than cram it into existing files, though we may want cross-references to it somewhere… - The gzip and zip plugins need to be opted into by enabling execution of those programs (or the global plugin_exec). This needs documentation or discussion. - This fixes a bug in the zig plugin: code setting s:tmp_cwd was removed in f7ac0ef50 (runtime: don't execute external commands when loading ftplugins, 2023-09-06), but the variable was still referenced. Since the new function takes care of that automatically, the variable is no longer needed. https://github.com/vim/vim/commit/cd8a3eaf5348feacfecab4b374b7ea4ce6a97422 Co-authored-by: D. Ben Knoble <ben.knoble+github@gmail.com>
| * | | | | | build: remove git requirementdundargoc2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do not have any patches that we use at the moment, so git is not needed right now. Futhermore, we've become more strict with not adding patches, which makes it pretty safe to remove this for the time being.
| * | | | | | build: enable ASAN for MSVCdundargoc2023-11-05
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is enabled with ENABLE_ASAN_UBSAN like other compilers. Technically it only enables ASAN as UBSAN is not available, meaning to make the variable names fully correct we'd need to separate it into two checks: ENABLE_ASAN and ENABLE_UBSAN, but the convenience of combining them into the same flag outweighs the theoretical correctness. Also note in CONTRIBUTING.md that debug builds in ASAN is not supported. Technically it is the debug runtime that is not supported, which cmake automatically enables when using the debug build type. However, neovim can't be built with debug builds without linking to the debug runtime since the third party libraries has likely been linked to the debug runtime if it was built with debug build type. This technicality is likely uninteresting to the potential developer and it's easier to just say to use a release build type.
| * | | | | refactor: the long goodbyedundargoc2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | long is 32 bits on windows, while it is 64 bits on other architectures. This makes the type suboptimal for a codebase meant to be cross-platform. Replace it with more appropriate integer types.
| * | | | | build(deps): bump luajit to HEAD - 0afa1676bChristian Clason2023-11-05
| | | | | |
| * | | | | build(deps): bump libiconv to 1.17Christian Clason2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | new license (LGPL 2.1), adds EBCDIC encodings
| * | | | | Merge pull request #25882 from bfredl/noundobfredl2023-11-05
| |\ \ \ \ \ | | | | | | | | | | | | | | feat(extmarks): add "no_undo_restore" flag to opt out of undo-restoring
| | * | | | | feat(extmarks): add "undo_restore" flag to opt out of undo-restoringbfredl2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is a design goal of extmarks that they allow precise tracking of changes across undo/redo, including restore the exact positions after a do/undo or undo/redo cycle. However this behavior is not useful for all usecases. Many plugins won't keep marks around for long after text changes, but uses them more like a cache until some external source (like LSP semantic highlights) has fully updated to changed text and then will explicitly readjust/replace extmarks as needed. Add a "undo_restore" flag which is true by default (matches existing behavior) but can be set to false to opt-out of this behavior. Delete dead u_extmark_set() code.
| * | | | | | refactor: combine regexp filesdundargoc2023-11-05
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | regext_bt.c and regexp_nfa.c are inlined into regexp.c instead of included as a header. This makes developer tools like clang-tidy and clangd be able to understand the code better.
| * | | | | ci: don't install unzipdundargoc2023-11-05
| | | | | | | | | | | | | | | | | | | | | | | | It is no longer needed now that luarocks isn't used.
| * | | | | build: various cmake fixesdundargoc2023-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - silence false warnings on MSVC - merge `clang-tidy` cmake target into `lintc` and remove the corresponding make target - use cmake's built-in endianness detection
| * | | | | vim-patch:9.0.2090: complete_info() skips entries with 'noselect' (#25890)zeertzjq2023-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: complete_info() skips entries with 'noselect' Solution: Check, if first entry is at original text state Unfortunately, Commit daef8c74375141974d61b85199b383017644978c introduced a regression, that when ':set completeopt+=noselect' is set and no completion item has been selected yet, it did not fill the complete_info['items'] list. This happened, because the current match item did not have the CP_ORIGINAL_TEXT flag set and then the cp->prev pointer did point to the original flag item, which caused the following while loop to not being run but being skipped instead. So when the 'noselect' is set, only start with to the previous selection item, if the initial completion item has the CP_ORIGINAL_TEXT flag set, else use the 2nd previous item instead. fixes: vim/vim#13451 closes: vim/vim#13452 https://github.com/vim/vim/commit/57f9ce1a0977da13e5923214086795ffa2d28ce1 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | | | docs(treesitter): add disclaimer about needing to parse before `get_node()`L Lllvvuu2023-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: --- Misuse of `get_node()` is common: https://github.com/search?q=get_node_at_cursor+language%3Alua&type=code Solution: --- Add a note clarifying proper usage.
| * | | | | vim-patch:ce3b0136c6d9Christian Clason2023-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(sh): Update sh syntax and add shDerefOffset to shDerefVarArray for bash (vim/vim#13480) Add shDerefOffset to shDerefVarArray. Example code: ```bash declare -a a=({a..z}) echo "${a[@]:1:3}" ``` https://github.com/vim/vim/commit/ce3b0136c6d9d09af41969d3dc9634f115505a32 Co-authored-by: Lucien Grondin <grondilu@yahoo.fr>
| * | | | | vim-patch:2f54c13292afChristian Clason2023-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(script.vim): make strace ft check less strict (vim/vim#13482) Strace output, depending on parameters (-ttf this time), can dump both times and pid: 1038 07:14:20.959262 execve("./e.py", ["./e.py"], 0x7ffca1422840 /* 51 vars */) = 0 <0.000150> So loose the regexp matching this, so that the above is matched too. Fixes vim/vim#13481. https://github.com/vim/vim/commit/2f54c13292af053ec00c18e5fded87b1bc602822 Co-authored-by: Jiri Slaby <jirislaby@gmail.com> Co-authored-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
| * | | | | fix(lsp): create per client params in lsp.buf.code_actionMathias Fussenegger2023-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `code_action` used the same parameters for all clients, which led to the following warning and incorrect start/end column locations if using clients with mixed encodings: warning: multiple different client offset_encodings detected for buffer, this is not supported yet
| * | | | | fix(rpc): "grid_line" event parsing crashes (#25581)LW2023-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | refactor: use a more idiomatic loop to iterate over the cells There are two cases in which the following assertion would fail: ```c assert(g->icell < g->ncells); ``` 1. If `g->ncells = 0`. Update this to be legal. 2. If an EOF is reached while parsing `wrap`. In this case, the unpacker attempts to resume from `cells`, which is a bug. Create a new state for parsing `wrap`. Reference: https://neovim.io/doc/user/ui.html#ui-event-grid_line
| * | | | | ci: various fixesdundargoc2023-11-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - adjust reviewers - add workflow as cache key - install attr only when tesitng - fix s390x workflow by checking out the merge PR instead of master
| * | | | | Merge pull request #25874 from bfredl/lets_rockbfredl2023-11-03
| |\ \ \ \ \ | | | | | | | | | | | | | | refactor(grid): implement rightleftcmd as a post-processing step
| | * | | | | refactor(grid): implement rightleftcmd as a post-processing stepbfredl2023-11-03
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, 'rightleftcmd' was implemented by having all code which would affect msg_col or output screen cells be conditional on `cmdmsg_rl`. This change removes all that and instead implements rightleft as a mirroring post-processing step.
| * | | | | vim-patch:1858e2b22ad1Christian Clason2023-11-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(sh) Update sh syntax and add shDblParen to shCaseList (vim/vim#13469) https://github.com/vim/vim/commit/1858e2b22ad168b1fd44a4efcd3a2b6cd9f6772d Co-authored-by: Lucien Grondin <grondilu@yahoo.fr>
| * | | | | vim-patch:2b89afd5eb63Christian Clason2023-11-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(debversions): Add noble (24.04 LTS) as Ubuntu release name (vim/vim#13472) https://github.com/vim/vim/commit/2b89afd5eb63864154d973e7991a56a53b87a767 Co-authored-by: James McCoy <jamessan@jamessan.com>
| * | | | | test(ui/embed_spec): make sure server is started (#25880)zeertzjq2023-11-03
| | | | | |
| * | | | | docs: small fixes (#25831)dundargoc2023-11-03
| | | | | | | | | | | | | | | | | | Co-authored-by: Peter Aronoff <peter@aronoff.org>
| * | | | | build: make the vimdoc generation depend on the nvim target (#25876)Gregory Anders2023-11-02
| | | | | | | | | | | | | | | | | | | | | | | | The gen_vimdoc.py script uses the nvim executable, so the executable must be built before running the script.
| * | | | | build: use built nvim artifact to generate eval files (#25875)Gregory Anders2023-11-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In cases where the generated files depend on changes to Nvim itself, generating the files with an older version of Nvim will fail because those changes are not present in the older version. For example, if a new option is added then the generator script should be run with the version of Nvim that contains the new option, or else the generation will fail. Co-authored-by: dundargoc <gocdundar@gmail.com>
| * | | | | Merge pull request #25859 from luukvbaal/extmarkdelbfredl2023-11-02
| |\ \ \ \ \ | | | | | | | | | | | | | | refactor(extmarks): extmark_del() with MarkTreeIter
| | * | | | | refactor(extmarks): extmark_del() with MarkTreeIterLuuk van Baal2023-11-01
| | | | | | |
| * | | | | | ci: add optional CI that can be triggered manuallydundargoc2023-11-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are meant for expensive or situational tests that may not be suitable to run each time, but can occasionally be useful. Currently only add testing for s390x. The job is enabled by adding the ci-s390x label in github.
| * | | | | | build: set char to always be signeddundargoc2023-11-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sticking to the same convention makes it easier to reason about the code and reduces complexity.
| * | | | | | fix(startup): trigger UIEnter for the correct channel (#25860)zeertzjq2023-11-01
| | | | | | |
| * | | | | | feat(server): allow embed with listen (#25709)George Harker2023-11-01
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | connection from any channel or stdio will unblock remote_ui_wait_for_attach. Wait on stdio only if only —embed specified, if both —embed and —listen then wait on any channel.
| * | | | | fix(base64): only check padding if leftover index is set (#25854)Gregory Anders2023-10-31
| | | | | |
| * | | | | feat(stdlib): add vim.base64 module (#25843)Gregory Anders2023-10-31
| | | | | | | | | | | | | | | | | | Add base64 encode() and decode() functions to a vim.base64 module.