aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | vim-patch:9.0.1983: scrolling inactive window not possible with cursorbind ↵zeertzjq2023-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#25507) Problem: Scrolling non-current window using mouse is inconsistent depending on 'scrollbind'/'scrolloff' and different from GUI vertical scrollbar when 'cursorbind' is set. Solution: Don't move cursor in non-current windows for 'cursorbind' if cursor in the current window didn't move. closes: vim/vim#13219 closes: vim/vim#13210 https://github.com/vim/vim/commit/8e5f26ec6a1446aabffa7a0a7819a7462372a5b8
| * | | vim-patch:9.0.1981: not being able to scroll up in diff mode (#25506)zeertzjq2023-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot scroll up in diff mode with many filler lines and zero 'scrolloff'. Solution: Invalidate w_cline_row before calling comp_botline(). closes: vim/vim#13256 https://github.com/vim/vim/commit/0583491277dea9d14e000051c26405b90d839072
| * | | Merge pull request #25491 from glepnir/25474bfredl2023-10-04
| |\ \ \ | | | | | | | | | | fix(highlight): attr set all when normal attr changed
| | * | | fix(highlight): attr set all when normal attr changedglepnir2023-10-04
| | | |/ | | |/|
| * | | feat: ignore swapfile for running Nvim processes #25336Justin M. Keyes2023-10-04
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The swapfile "E325: ATTENTION" dialog is displayed when editing a file already open in another (running) Nvim. Usually this behavior is annoying and irrelevant: - "Recover" and the other options ("Open readonly", "Quit", "Abort") are almost never wanted. - swapfiles are less relevant for "multi-Nvim" since 'autoread' is enabled by default. - Even less relevant if user enables 'autowrite'. Solution: Define a default SwapExists handler which does the following: 1. If the swapfile is owned by a running Nvim process, automatically chooses "(E)dit anyway" (caveat: this creates a new, extra swapfile, which is mostly harmless and ignored except by `:recover` or `nvim -r`. 2. Shows a 1-line "ignoring swapfile..." message. 3. Users can disable the default SwapExists handler via `autocmd! nvim_swapfile`.
| * | fix(path): accept special characters on Windows (#25424)Leonardo Mello2023-10-04
| | |
| * | refactor: the long goodbyedundargoc2023-10-03
| | | | | | | | | | | | | | | | | | 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.
| * | Merge pull request #25470 from bfredl/msg_displaybfredl2023-10-03
| |\ \ | | | | | | | | refactor(message): simplify msg_puts_display and use batched grid updates
| | * | refactor(message): simplify msg_puts_display and use batched grid updatesbfredl2023-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | msg_puts_display was more complex than necessary in nvim, as in nvim, it no longer talks directly with a terminal. In particular we don't need to scroll the grid before emiting the last char. The TUI already takes care of things like that, for terminals where it matters.
| * | | fix(api): avoid immediate TextChanged with nvim_create_buf (#25492)zeertzjq2023-10-03
| |/ /
| * | vim-patch:2dfc22908e43 (#25485)zeertzjq2023-10-03
| | | | | | | | | | | | | | | runtime(doc): remove E1507 help tag, which is no longer used (vim/vim#13254) https://github.com/vim/vim/commit/2dfc22908e432f63d200e1fc4f024645c87b8bf3
| * | fix(treesitter): make Visual hl work consistently with foldtext (#25484)zeertzjq2023-10-03
| | | | | | | | | | | | | | | Problem: Visual highlight is inconsistent on a folded line with treesitter foldtext. Solution: Don't added Folded highlight as it is already in background.
| * | test(fileio_spec): fix files not cleaned up properly (#25483)zeertzjq2023-10-03
| | |
| * | fix(clipboard): don't pass --foreground to wl-copy (#25481)zeertzjq2023-10-03
| | | | | | | | | Fix #25466
| * | fix(terminal): check terminal size at end of screen update (#25480)zeertzjq2023-10-03
| | |
| * | vim-patch:9.0.1975: xattr: permission-denied errors on write (#25478)zeertzjq2023-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: xattr: permission-denied errors on write Solution: ignore those errors closes: vim/vim#13246 https://github.com/vim/vim/commit/993b17569b5acffe2d8941d1709a55da4e439755 N/A patches: vim-patch:9.0.1965: wrong auto/configure script vim-patch:9.0.1966: configure prints stray 6 when checking libruby Co-authored-by: Gene C <arch@sapience.com>
| * | vim-patch:9.0.1973: Clean up cmdline option completion code (#25477)zeertzjq2023-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Clean up cmdline option completion code Solution: Fix various minor problems - Fix manual array size calculations to just use `ARRAY_LENGTH()`. - Fix unintentional typo in comments due to copy-paste error. - Fix assert_equal() usages to pass the expected value to first parameter instead of 2nd one to avoid confusion. - Fix signed vs unsigned warnings - Correct misplaced comments about set_op_T and set_prefix_T and fix a typo in another comment closes: vim/vim#13249 closes: vim/vim#13237 https://github.com/vim/vim/commit/6d113472601fa6f3a444a95ef7b11d4309215117 N/A patch: vim-patch:9.0.1976: style: space before tab in optionstr.c Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
| * | vim-patch:9.0.1972: win32: missing '**' expansion test (#25476)zeertzjq2023-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: win32: missing '**' expansion test (after v9.0.1947) Solution: Add test for MS-Windows win32: Add "**" test Vim supports "**" on MS-Windows. However, it is not tested by `Test_glob_extended_bash`. Unlike Unix, it doesn't use 'shell' and doesn't support {,} expansion. So, I added as a separate test. related: vim/vim#13205 closes: vim/vim#13250 https://github.com/vim/vim/commit/4a1ad5556423dca5f5b7ee39f143579e67569ae1 Co-authored-by: Ken Takata <kentkt@csc.jp>
| * | Merge pull request #25475 from zeertzjq/vim-ba77bbb5c775zeertzjq2023-10-03
| |\ \ | | | | | | | | vim-patch:ba77bbb5c775,20f48d5b2ddb,cd39b69b0200
| | * | vim-patch:cd39b69b0200zeertzjq2023-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): add missing error numbers in the help. (vim/vim#13241) closes: vim/vim#13240 https://github.com/vim/vim/commit/cd39b69b0200005622db7291bbacff95bd03a3d0 Co-authored-by: Yegappan Lakshmanan <4298407+yegappan@users.noreply.github.com>
| | * | vim-patch:20f48d5b2ddbzeertzjq2023-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): mention how to disable folding in diff mode (vim/vim#13242) https://github.com/vim/vim/commit/20f48d5b2ddb9fdc29e83f0da6f31f895eaeab47 Co-authored-by: dundargoc <33953936+dundargoc@users.noreply.github.com>
| | * | vim-patch:ba77bbb5c775zeertzjq2023-10-03
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): fix typos. * Fix typo in document (Related: vim/vim#12516) * Fix E1363 duplication * Fix one more typo. https://github.com/vim/vim/commit/ba77bbb5c775663a8b55871f753d7b1b570bb9ba Co-authored-by: h_east <h.east.727@gmail.com>
| * | fix: fix ASAN errors on clang 17 (#25469)dundargoc2023-10-03
| | |
| * | feat(lsp)!: replace snippet parser by lpeg grammarMaria José Solano2023-10-02
| | |
| * | feat(lsp): snippet parsing using lpegMaria José Solano2023-10-02
| | |
| * | feat(lsp): fallback to code-action command on resolve failure (#25464)Mathias Fußenegger2023-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The haskell-language-server supports resolve only for a subset of code actions. For many code actions trying to resolve the `edit` property results in an error, but the unresolved action already contains a command that can be executed without issue. The protocol specification is unfortunately a bit vague about this, and what the haskell-language-server does seems to be valid. Example: newtype Dummy = Dummy Int instance Num Dummy where Triggering code actions on "Num Dummy" and choosing "Add placeholders for all missing methods" resulted in: -32601: No plugin enabled for SMethod_CodeActionResolve, potentially available: explicit-fields, importLens, hlint, overloaded-record-dot With this change it will insert the missing methods: instance Num Dummy where (+) = _ (-) = _ (*) = _ negate = _ abs = _ signum = _ fromInteger = _
| * | refactor: move cmdline completion types to cmdexpand_defs.h (#25465)zeertzjq2023-10-02
| | |
| * | feat(treesitter): add foldtext with treesitter highlighting (#25391)Till Bungert2023-10-01
| | |
| * | refactor(option.c): change :set boolean prefix to an enum (#25458)zeertzjq2023-10-01
| | | | | | | | | Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | Merge pull request #25456 from zeertzjq/vim-9.0.1958zeertzjq2023-10-01
| |\ \ | | |/ | |/| vim-patch:9.0.{1958,1960,1961,1968}: string option completion
| | * feat(completion): support completing more string optionszeertzjq2023-10-01
| | |
| | * vim-patch:9.0.1968: cmdline completion should consider key optionzeertzjq2023-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: cmdline completion should consider key option Solution: Disable cmdline completion for key option, slightly refactor how P_NO_CMD_EXPAND is handled Harden crypto 'key' option: turn off cmdline completion, disable set-= "set-=" can be used maliciously with a crypto key, as it allows an attacker (who either has access to the computer or a plugin author) to guess a substring by observing the modified state. Simply turn off set+=/-=/^= for this option as there is no good reason for them to be used. Update docs to make that clear as well. Also, don't allow cmdline completion for 'key' as it just shows ***** which is not useful and confusing to the user what it means (if the user accidentally hits enter they will have replaced their key with "*****" instead). Move logic to better location, don't use above 32-bit for flags Move P_NO_CMD_EXPAND to use the unused 0x20 instead of going above 32-bits, as currently the flags parameter is only 32-bits on some systems. Left a comment to warn that future additions will need to change how the flags work either by making it 64-bit or split into two member vars. Also, move the logic for detecting P_NO_CMD_EXPAND earlier so it's not up to each handler to decide, and you won't see the temporary "..." that Vim shows while waiting for completion handler to complete. closes: vim/vim#13224 https://github.com/vim/vim/commit/6ee7b521fa7531ef356ececc8be7575c3800f872 Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
| | * vim-patch:9.0.1961: 'listchars' completion misses "multispace" and ↵zeertzjq2023-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "leadmultispace" Problem: Cmdline completion for 'listchars' fields doesn't include "multispace" and "leadmultispace" (after 9.0.1958). Solution: Include "multispace" and "leadmultispace" in lcstab. closes: vim/vim#13225 https://github.com/vim/vim/commit/1f025b01e29be6fce907d0379602b45031d6998f
| | * vim-patch:9.0.1960: Make CI checks more strictzeertzjq2023-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Make CI checks more strict Solution: Add -Wstrict-prototypes -Wmissing-prototypes to CI, fix uncovered problems Add -Wstrict-prototypes -Wmissing-prototypes warnings check to CI Add two new warnings to CI, silence some Perl related build-warnings: - `strict-prototypes` helps prevent declaring a function with an empty argument list, e.g. `int func()`. In C++, that's equivalent to `int func(void)`, but in C, that means a function that can take any number of arguments which is rarely what we want. - `missing-prototypes` makes sure we use `static` for file-only internal functions. Non-static functions should have been declared on a prototype file. - Add `no-compound-token-split-by-macro` to the perl cflags, since it throws out a bunch of perl-related warnings that make the CI log unnecessary verbose and hard to read. This seems to happen only with clang 12 and above. When applying those changes, it already uncovered a few warnings, so fix up the code as well (fix prototypes, make the code static, remove shadowed var declaration) GTK header needs to have #pragma warning suppressiong because GTK2 headers will warn on `-Wstrict-prototypes`, and it's included by gui.h and so we can't just turn off the warning in a couple files. closes: vim/vim#13223 closes: vim/vim#13226 https://github.com/vim/vim/commit/f7f746b1672909ae57d2eec97253d6627f6c0887 Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
| | * vim-patch:9.0.1958: cannot complete option valueszeertzjq2023-10-01
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: cannot complete option values Solution: Add completion functions for several options Add cmdline tab-completion for setting string options Add tab-completion for setting string options on the cmdline using `:set=` (along with `:set+=` and `:set-=`). The existing tab completion for setting options currently only works when nothing is typed yet, and it only fills in with the existing value, e.g. when the user does `:set diffopt=<Tab>` it will be completed to `set diffopt=internal,filler,closeoff` and nothing else. This isn't too useful as a user usually wants auto-complete to suggest all the possible values, such as 'iblank', or 'algorithm:patience'. For set= and set+=, this adds a new optional callback function for each option that can be invoked when doing completion. This allows for each option to have control over how completion works. For example, in 'diffopt', it will suggest the default enumeration, but if `algorithm:` is selected, it will further suggest different algorithm types like 'meyers' and 'patience'. When using set=, the existing option value will be filled in as the first choice to preserve the existing behavior. When using set+= this won't happen as it doesn't make sense. For flag list options (e.g. 'mouse' and 'guioptions'), completion will take into account existing typed values (and in the case of set+=, the existing option value) to make sure it doesn't suggest duplicates. For set-=, there is a new `ExpandSettingSubtract` function which will handle flag list and comma-separated options smartly, by only suggesting values that currently exist in the option. Note that Vim has some existing code that adds special handling for 'filetype', 'syntax', and misc dir options like 'backupdir'. This change preserves them as they already work, instead of converting to the new callback API for each option. closes: vim/vim#13182 https://github.com/vim/vim/commit/900894b09a95398dfc75599e9f0aa2ea25723384 Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
| * Merge pull request #25455 from bfredl/highlight_namespace_gettersbfredl2023-10-01
| |\ | | | | | | feat(ui): allow to get the highlight namespace. closes #24390
| | * feat(ui): allow to get the highlight namespaceDaniel Steinberg2023-10-01
| | |
| * | vim-patch:9.0.1967: xattr errors not translated (#25454)zeertzjq2023-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: xattr errors not translated Solution: mark for translation, consistently capitalize first letter. closes: vim/vim#13236 https://github.com/vim/vim/commit/7ece036d72cf639b05d3936183220bec7179bf63
| * | vim-patch:9.0.1964: xattr support fails to build on MacOS X (#25448)zeertzjq2023-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: xattr support fails to build on MacOS X Solution: Disable xattr support for MacOS X MacOS X uses the same headers and functions sys/xattr.h but the function signatures for xattr support are much different, so building fails. So let's for now disable xattr support there. closes: vim/vim#13230 closes: vim/vim#13232 https://github.com/vim/vim/commit/a4dfbfed89e26a766e30cca62c18e710eec81c3f Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | Merge pull request #25442 from zeertzjq/vim-9.0.1962zeertzjq2023-09-30
| |\ \ | | | | | | | | vim-patch:9.0.{1962,1963}: extended attributes
| | * | vim-patch:9.0.1963: Configure script may not detect xattrzeertzjq2023-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Configure script may not detect xattr correctly Solution: include sys/xattr instead of attr/xattr, make Test_write_with_xattr_support() test xattr feature correctly This also applies to the Smack security feature, so change the include and configure script for it as well. closes: vim/vim#13229 https://github.com/vim/vim/commit/6de4e58cf27a3bb6e81653ca63b77e29d1bb46f2
| | * | vim-patch:9.0.1962: No support for writing extended attributeszeertzjq2023-09-30
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: No support for writing extended attributes Solution: Add extended attribute support for linux It's been a long standing issue, that if you write a file with extended attributes and backupcopy is set to no, the file will loose the extended attributes. So this patch adds support for retrieving the extended attributes and copying it to the new file. It currently only works on linux, mainly because I don't know the different APIs for other systems (BSD, MacOSX and Solaris). On linux, this should be supported since Kernel 2.4 or something, so this should be pretty safe to use now. Enable the extended attribute support with normal builds. I also added it explicitly to the :version output as well as make it able to check using `:echo has("xattr")`, to have users easily check that this is available. In contrast to the similar support for SELINUX and SMACK support (which also internally uses extended attributes), I have made this a FEAT_XATTR define, instead of the similar HAVE_XATTR. Add a test and change CI to include relevant packages so that CI can test that extended attributes are correctly written. closes: vim/vim#306 closes: vim/vim#13203 https://github.com/vim/vim/commit/e085dfda5d8dde064b0332464040959479696d1c Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | test(unit): move statusline tests to statusline_spec.lua (#25441)zeertzjq2023-09-30
| | |
| * | Merge pull request #25386 from glepnir/toggle_floatbfredl2023-09-30
| |\ \ | | | | | | | | feat(float): support toggle show float window
| | * | feat(float): support toggle show float windowglepnir2023-09-30
| | | |
| * | | vim-patch:9.0.1366: functions for setting options are in random order (#25440)zeertzjq2023-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Functions for setting options are in random order. Solution: Sort functions alphabetically. (Yegappan Lakshmanan, closes vim/vim#12082) https://github.com/vim/vim/commit/ad60898aa47b44fdece12d28c471fb50df27fb50 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | refactor: align set_chars_option() with Vim (#25438)zeertzjq2023-09-30
| | | | | | | | | | | | Needed for completion of 'listchars'/'fillchars' values.
| * | | refactor: reorganize option header files (#25437)zeertzjq2023-09-30
| | | | | | | | | | | | | | | | | | | | | | | | - Move vimoption_T to option.h - option_defs.h is for option-related types - option_vars.h corresponds to Vim's option.h - option_defs.h and option_vars.h don't include each other
| * | | build(iwyu): add a few more _defs.h mappings (#25435)zeertzjq2023-09-30
| | | |
| * | | test(old): don't check for $CLANG_SANITIZER (#25432)zeertzjq2023-09-30
| | | | | | | | | | | | | | | | Functional tests don't check for an environment variable before printing ASAN logs, so oldtests shouldn't either.