Commit Graph
27381 Commits
Author SHA1 Message Date
zeertzjqandViktor Szépe 3222f0ad00 vim-patch:dbf749bd5aae (#25665)
runtime: Fix more typos (vim/vim#13354)

* Fix more typos

* Fix typos in ignored runtime/ directory

https://github.com/vim/vim/commit/dbf749bd5aaef6ea2d28bce081349785d174d96a

Co-authored-by: Viktor Szépe <viktor@szepe.net>
2023-10-16 16:36:25 +08:00
bfredl 0a3505eb9d Merge pull request #25602 from bfredl/have_no_ifdef
refactor(lang): reduce scope of HAVE_WORKING_LIBINTL #ifdefs
2023-10-15 18:48:22 +02:00
bfredl 3a44db510b refactor(lang): reduce scope of HAVE_WORKING_LIBINTL #ifdefs
A lot of code inside HAVE_WORKING_LIBINTL doesn't really depend on a
"working libintl". For instance ex_language is also used for ":lang collate"
and ":lang time".

Also ":lang C" should not fail just because translations aren't available (it
just means use the default text).

References:

https://github.com/neovim/neovim/pull/1 2d00ead2e5
separate ifdefs for locale and gettext got merged together.

https://github.com/neovim/neovim/commit/8253e29971c54310434ee93d987a99994769d717
Unmotivated switcharoo of get_mess_env() logic. If available, get_locale_val(LC_MESSAGES) is the correct implementation.
2023-10-15 14:17:50 +02:00
zeertzjq 0818d65528 fix(extmarks): skip virt_text if it is out of window (#25658) 2023-10-15 19:36:19 +08:00
zeertzjqandYee Cheng Chin 75b488d3ef vim-patch:9.0.2025: no cmdline completion for ++opt args (#25657)
Problem:  no cmdline completion for ++opt args
Solution: Add cmdline completion for :e ++opt=arg and :terminal
          [++options]

closes: vim/vim#13319

https://github.com/vim/vim/commit/989426be6e9ae23d2413943890206cbe15d9df38

Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-15 17:52:08 +08:00
zeertzjq d974a3dcbb vim-patch:9.0.2032: cannot get mouse click pos for tab or virt text (#25653)
Problem:  Cannot accurately get mouse clicking position when clicking on
          a TAB or with virtual text.
Solution: Add a "coladd" field to getmousepos() result.

closes: vim/vim#13335

https://github.com/vim/vim/commit/f5a94d5165bb9e390797da50a1fa7a87df3fbee4
2023-10-15 17:19:01 +08:00
zeertzjqandEvgeni Chasnovski a350fb2976 vim-patch:9.0.2031: TextChangedI may be triggered by non-insert mode change (#25656)
Problem:  `TextChangedI` can trigger on entering Insert mode if there
          was previously a change not in Insert mode.
Solution: Make it trigger only when text is actually changed in Insert
          mode.

closes: vim/vim#13265
closes: vim/vim#13338

https://github.com/vim/vim/commit/d7ae263af8f6a2da55ce3702d18c53ab1418bca7

Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
2023-10-15 17:14:18 +08:00
zeertzjqandChristian Brabandt e5a424d78e vim-patch:9.0.2030: no max callback recursion limit (#25655)
Problem:  no max callback recursion limit
Solution: bail out, if max call recursion for callback functions
          has been reached.

This checks the 'maxfuncdepth' setting and throws E169 when a callback
function recursively calls itself.

closes: vim/vim#13337
closes: vim/vim#13339

https://github.com/vim/vim/commit/47510f3d6598a1218958c03ed11337a43b73f48d

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-10-15 17:02:17 +08:00
zeertzjq aa62579a68 docs: restore accidentally removed line in :h 'ignorecase' (#25651) 2023-10-15 09:05:27 +08:00
zeertzjq 85ddd0074b test(terminal/channel_spec): fix flakiness (#25649) 2023-10-15 06:38:43 +08:00
Christian Clasonanddkearns 28ef4a4492 vim-patch:7687238e1b0d
runtime(tcsh): Update ftplugin (vim/vim#13327)

Fix b:browsefilter deletion error when calling b:undo_ftplugin.

Fixes vim/vim#13167

https://github.com/vim/vim/commit/7687238e1b0d2f26ba57e1bdf76f782eaa43af3a

Co-authored-by: dkearns <dougkearns@gmail.com>
2023-10-14 17:07:09 +02:00
Christian ClasonandJames McCoy 729a9c4c61 vim-patch:9.0.2024: no filetype detection for Debian sources
Problem:  no filetype detection for Debian sources
Solution: Add new deb822sources filetype

closes: vim/vim#13320

https://github.com/vim/vim/commit/bd734c3bead9e167eb6875f62cc06fab2379c422

Co-authored-by: James McCoy <jamessan@jamessan.com>
2023-10-14 16:41:33 +02:00
zeertzjq af4985feda test(winscrolled): make sure floating window is drawn (#25639) 2023-10-14 20:09:49 +08:00
zeertzjqandYee Cheng Chin 20dacacf37 vim-patch:2bbd0d30eebd (#25637)
runtime(doc): Improve command-line completion docs (vim/vim#13331)

* Improve command-line completion docs

Add more details about 'ignorecase' and its effect on cmdline
completion.

Make sure keys used in wildmenu are properly documented and linked in the
keys' documentation entries, and in `:h index` for proper
cross-referencing, as wildmenu popup is slightly different from
insert-mode popup menu.

* Fix docs typos

https://github.com/vim/vim/commit/2bbd0d30eebdea66c0da3895e83d999ed6ad83fb

Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-14 19:28:41 +08:00
zeertzjq bcda800933 vim-patch:9.0.2022: getmousepos() returns wrong index for TAB char (#25636)
Problem:  When clicking in the middle of a TAB, getmousepos() returns
          the column of the next char instead of the TAB.
Solution: Break out of the loop when the vcol to find is inside current
          char. Fix invalid memory access when calling virtcol2col() on
          an empty line.

closes: vim/vim#13321

https://github.com/vim/vim/commit/b583eda7031b1f6a3469a2537d0c10ca5fa5568e
2023-10-14 19:18:25 +08:00
zeertzjqandChristian Brabandt 99b1163b5a vim-patch:9.0.2021: Coverity complains about change in charset (#25634)
Problem:  Coverity complains about change in charset (after v9.0.2017)
Solution: check pointer t at index 0

closes: vim/vim#13322

https://github.com/vim/vim/commit/cd6ee6935811ab223605a3f39a550d26a617867d

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-10-14 18:39:24 +08:00
Mathias Fußenegger 57ce9b6a92 refactor(lsp): fix luals warnings in tagfunc and add type annotations (#25150) 2023-10-14 11:31:16 +02:00
Mathias Fußenegger 712adacdf5 refactor(lsp): make is_pull in lsp.diagnostic.get_namespace optional (#25156)
Follw up to https://github.com/neovim/neovim/commit/63b3408551561127f7845470eb51404bcd6f547b

`is_pull` should be optional, otherwise it is an API change that
introduces warnings in consumers.

Also fixes the type annotation of `_client_pull_namespaces` where the
key is a string.
2023-10-14 09:47:20 +02:00
Maria José Solano ee156ca60e fix(lsp): refactor escaping snippet text (#25611) 2023-10-14 09:06:40 +02:00
zeertzjq 8ee8112b92 Merge pull request #25630 from nwounkn/fix-extra-line
fix(ui): empty line before the next message after :silent command
2023-10-14 14:55:01 +08:00
nwounkn 13f55750e9 fix(ui): empty line before the next message after :silent command
Problem:
  The next command after `silent !{cmd}` or `silent lua print('str')`
  prints an empty line before printing a message, because these commands
  set `msg_didout = true` despite not printing any messages.

Solution:
  Set `msg_didout = true` only if `msg_silent == 0`
2023-10-14 14:23:08 +08:00
zeertzjq ce0f80835a test(ui/searchhl_spec): match more in :terminal test (#25631) 2023-10-14 13:53:52 +08:00
zeertzjq bf70a33f5e vim-patch:8.1.0822: peeking and flushing output slows down execution (#25629)
Problem:    Peeking and flushing output slows down execution.
Solution:   Do not update the mode message when global_busy is set.  Do not
            flush when only peeking for a character. (Ken Takata)

https://github.com/vim/vim/commit/cb574f415486adff645ce384979bfecf27f5be8c
2023-10-14 09:58:30 +08:00
zeertzjq 9f32deba56 fix(grid): add start column when getting char on line (#25627) 2023-10-13 21:43:06 +08:00
Jongwook Choi ebe489d8f0 fix: allow multiline message for echoerr (#25380)
PROBLEM:

Currently `:echoerr` prints multi-line strings in a single line
as `:echom` does (Note: `:echon` can print multi-line strings well).
This makes stacktrace printed via echoerr difficult to read.

Example code:

    try
      lua error("lua stacktrace")
    catch
      echoerr v:exception
    endtry

Output:

    Error detected while processing a.vim[5]..a.vim:
    line    4:
    Vim(lua):E5108: Error executing lua [string ":lua"]:1: lua stacktrace^@stack traceback:^@^I[C]: in function 'error'^@^I[string ":lua"]:1: in main chunk

SOLUTION:

Allow echoerr to print multiline messages (e.g., lua exceptions),
because this command is usually used to print stacktraces.

Output after the fix:

    Error detected while processing a.vim[5]..a.vim:
    line    4:
    Vim(lua):E5108: Error executing lua [string ":lua"]:1: lua stacktrace
    stack traceback:
            [C]: in function 'error'
            [string ":lua"]:1: in main chunk
2023-10-13 07:27:45 +08:00
Justin M. Keyes 2c9f22e7e4 refactor(test): cleanup #25614
- unnecessary separate describe() group
- clear() wasn't called in the describe() group
- unnecessary indirection in function parameters
2023-10-12 07:04:16 -07:00
L LllvvuuandLewis Russell 9c2270b834 feat(types): add test/.luarc.json
Authored-By: Lewis Russell <lewis6991@gmail.com>
Co-Authored-By: Lewis Russell <lewis6991@gmail.com>
2023-10-12 09:50:29 +01:00
zeertzjq 840e1864c2 fix(lsp): handle NUL bytes in popup text (#25612)
Fix #25610
2023-10-12 15:39:39 +08:00
zeertzjqandLemonBoy d2d38858d1 vim-patch:9.0.2018: complete_info() returns wrong index (#25607)
Problem:  complete_info() returns wrong index
Solution: Make order of 'info' in completion_info consistent

Start the iteration from the same point and follow the same direction as
done when assigning the completion numbers. This way we remove the
dependence on the completion direction and make the order of 'info'
consistent.

closes: vim/vim#12230
closes: vim/vim#12971

https://github.com/vim/vim/commit/69fb5afb3bc9da24c2fb0eafb0027ba9c6502fc2

Co-authored-by: LemonBoy <thatlemon@gmail.com>
2023-10-12 08:21:01 +08:00
zeertzjqandBram Moolenaar 3cbb02ce77 vim-patch:8.2.3064: Vim9: in script cannot set item in uninitialized list (#25605)
Problem:    Vim9: in script cannot set item in uninitialized list.
Solution:   When a list is NULL allocate an empty one. (closes vim/vim#8461)

https://github.com/vim/vim/commit/e65081d1b591f16dc6e380a830d87565c5eb7b03

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-10-12 07:38:56 +08:00
zeertzjq f4c85b9ad1 Merge pull request #25606 from zeertzjq/vim-9.0.2017 2023-10-12 07:34:14 +08:00
zeertzjqandChristian Brabandt dac79b165d vim-patch:9.0.2017: linebreak applies for leading whitespace
Problem:  linebreak applies for leading whitespace
Solution: only apply linebreak, once we have found non-breakat chars in
          the line

closes: vim/vim#13228
closes: vim/vim#13243

https://github.com/vim/vim/commit/dd75fcfbdff1934c6e531b5a89ebc636318bf4a2

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-10-12 07:02:49 +08:00
zeertzjqandChristian Brabandt e2406d119f vim-patch:9.0.2017: linebreak applies for leading whitespace (#25604)
Problem:  linebreak applies for leading whitespace
Solution: only apply linebreak, once we have found non-breakat chars in
          the line

closes: vim/vim#13228
closes: vim/vim#13243

https://github.com/vim/vim/commit/dd75fcfbdff1934c6e531b5a89ebc636318bf4a2

Co-authored-by: Christian Brabandt <cb@256bit.org>
2023-10-12 06:49:11 +08:00
Christian ClasonandMartin Tournoij 7474874baa vim-patch:9.0.2011: INI files not detected
Problem:  INI files not detected
Solution: detect uppercase .INI as dosini files

It previo~1 only worked for lower-case .ini files, but upperc~1 .INI is
also somewhat common on account of DOS' old 8.3 upperc~2 only filena~1.

closes: vim/vim#13316

https://github.com/vim/vim/commit/4a82bdfaa8022402b1ca0f0000c94c47a13f1014

Co-authored-by: Martin Tournoij <martin@arp242.net>
2023-10-11 23:54:41 +02:00
Maria José Solano 2fde6295df fix(lsp): display initialization errors (#25409) 2023-10-11 15:38:58 -05:00
sisrfeng 37da0bc0c6 docs: clarify about error in shada (#25594) 2023-10-11 17:58:07 +08:00
Raphael f79052faef refactor(float): rename ex_floatclose to ex_fclose (#25596) 2023-10-11 15:03:59 +08:00
zeertzjq 4eea60939f test(core/path_spec): don't use fnameescape() (#25593)
Using fnameescape() for the path argument of findfile() and finddir() is
wrong, as fnameescape() is intended to be used for parts of Ex commands,
not function arguments.
2023-10-11 07:24:37 +08:00
Famiu Haque c4f8be464c docs(style): add guideline for fixing compiler error on switch statement
Problem: Certain compilers (primarily GCC) do not recognize an exhaustive enum switch statement as being exhaustive. This manifests in the form of compiler errors in exhaustive switch statements where each case has a return statement but there isn't a catch-all return statements. These compiler errors are spurious in the context of the Neovim codebase. So #25533 added the `UNREACHABLE` macro to denote apart of the code that's unreachable, which was used after every such switch statement to tell the compiler to treat the switch statement as exhaustive. However, the macro is mentioned nowhere in the style guide,and new contributors would not have any natural way of learning about it as it stands now. This would lead to confusion when they inevitably encounter one of these compiler errors.

Solution: Add a style guideline which shows how to use the `UNREACHABLE` macro to fix these compiler errors.
2023-10-10 22:23:54 +02:00
c3d21ad1bc docs: small fixes
Co-authored-by: Wansmer <wansmer@gmail.com>
Co-authored-by: Andrew Voynov <andrewvoynov.b@gmail.com>
Co-authored-by: David Moberg <david.moberg@mediatek.com>
2023-10-10 19:20:32 +02:00
bfredl fd39f5ce8c Merge pull request #25561 from glepnir/9663
feat(float): add fclose command
2023-10-10 16:36:55 +02:00
James 468a3a1407 refactor: use xstpcpy() instead of strcat() (#25572) 2023-10-10 22:03:55 +08:00
glepnir 372aa2eb3d feat(float): add fclose command 2023-10-10 21:17:08 +08:00
Famiu Haque 9ff6f73f83 refactor: allow not having a default case for enum
Problem: The style guide states that all switch statements that are not conditional on an enum must have a `default` case, but does not give any explicit guideline for switch statements that are conditional on enums. As a result, a `default` case is added in many enum switch statements, even when the switch statement is exhaustive. This is not ideal because it removes the ability to have compiler errors to easily detect unchanged switch statements when a new possible value for an enum is added.

Solution: Add explicit guidelines for switch statements that are conditional on an enum, clarifying that a `default` case is not necessary if the switch statement is exhaustive. Also refactor pre-existing code with unnecessary `default` cases.
2023-10-10 11:19:41 +01:00
Evgeni Chasnovski a2f17e97ec fix(highlight): add FloatFooter to 'highlight_defs.h' (#25577) 2023-10-10 17:33:30 +08:00
zeertzjqandYee Cheng Chin c40a1c0f41 vim-patch:9.0.2009: cmdline-completion for comma-separated options wrong (#25569)
Problem:  cmdline-completion for comma-separated options wrong
Solution: Fix command-line expansions for options with filenames with
          commas

Fix command-line expansions for options with filenames with commas

Cmdline expansion for option values that take a comma-separated list
of file names is currently not handling file names with commas as the
commas are not escaped. For such options, the commas in file names need
to be escaped (to differentiate from a comma that delimit the list
items). The escaped comma is unescaped in `copy_option_part()` during
option parsing.

Fix as follows:
- Cmdline completion for option values with comma-separated file/folder
  names will not start a new match when seeing `\\,` and will instead
  consider it as one value.
- File/folder regex matching will strip the `\\` when seeing `\\,` to
  make sure it can match the correct files/folders.
- The expanded value will escape `,` with `\\,`, similar to how spaces
  are escaped to make sure the option value is correct on the cmdline.

This fix also takes into account the fact that Win32 Vim handles file
name escaping differently. Typing '\,' for a file name results in it
being handled literally but in other platforms '\,' is interpreted as a
simple ',' and commas need to be escaped using '\\,' instead.

Also, make sure this new logic only applies to comma-separated options
like 'path'. Non-list options like 'set makeprg=<Tab>' and regular ex
commands like `:edit <Tab>` do not require escaping and will continue to
work.

Also fix up documentation to be clearer. The original docs are slightly
misleading in how it discusses triple slashes for 'tags'.

closes: vim/vim#13303
related: vim/vim#13301

https://github.com/vim/vim/commit/54844857fd6933fa4f6678e47610c4b9c9f7a091

Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-10 09:15:21 +08:00
zeertzjq f5eabaa940 fix(path): restore space separation in 'path' (#25571)
Removing this behavior causes more inconsistencies and bugs.
2023-10-10 08:22:32 +08:00
zeertzjq 43f22853fe docs: fix misplaced mention of 'backupdir' (#25568) 2023-10-10 07:06:34 +08:00
Maria José Solano c80a3976cb docs: miscellaneous doc and type fixes (#25554) 2023-10-10 06:34:48 +08:00
Leonardo Melloanddundargoc 81f67b79e8 fix(file_search): path with spaces in finddir() and findfile() (#25493)
Co-authored-by: dundargoc <gocdundar@gmail.com>
2023-10-10 06:08:58 +08:00