aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | | | | fix(lua): remove uri fragment from file paths (#27647)Ilia Choly2024-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Some LSP servers return `textDocument/documentLink` responses containing file URIs with line/column numbers in the fragment. `vim.uri_to_fname` returns invalid file names for these URIs. Solution: Remove the URI fragment from file URIs.
| * | | | | | docs(lpeg): merge upstream changesMaria José Solano2024-02-28
| | | | | | |
| * | | | | | vim-patch:b1427b46f5fe (#27652)zeertzjq2024-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(vim): Update base-syntax, improve :echo highlighting (vim/vim#14103) - Normalise behaviour of :echo commands and improve expression matching. - Allow continued argument lines. - Refine string interpolation groups. - Remove duplicated :menu and :map generated commands that are handled specially later in the file. https://github.com/vim/vim/commit/b1427b46f5fe50a1daba102c4017d0ef2624b3ba Co-authored-by: dkearns <dougkearns@gmail.com>
| * | | | | | vim-patch:9.1.0140: cursor on wrong row after 1 char 'below' virtual text ↵zeertzjq2024-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when EOL is shown (#27651) Problem: The cursor screen row was incorrectly being calculated when the cursor follows a 1 character text_align 'below' virtual text line, resulting in the cursor being shown on the wrong line. This was caused by a cell size of 2 instead of 1 being used for the EOL character, which propagated to the calculation of space for putting the 'below' virtual text on its own line. (rickhowe) Solution: Fix the size used for the EOL character in calculating the cursor's screen position (Dylan Thacker-Smith) fixes: vim/vim#11959 related: vim/vim#12028 closes: vim/vim#14096 https://github.com/vim/vim/commit/da0c9137d1ec96f4d79b818502d2f921a21f710e Co-authored-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
| * | | | | | feat(lsp): support completion itemDefaultsMaria José Solano2024-02-27
| | | | | | |
| * | | | | | refactor(lsp): alias for CompletionResultMaria José Solano2024-02-27
| | | | | | |
| * | | | | | feat(docs): replace lua2dox.luaLewis Russell2024-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The documentation flow (`gen_vimdoc.py`) has several issues: - it's not very versatile - depends on doxygen - doesn't work well with Lua code as it requires an awkward filter script to convert it into pseudo-C. - The intermediate XML files and filters makes it too much like a rube goldberg machine. Solution: Re-implement the flow using Lua, LPEG and treesitter. - `gen_vimdoc.py` is now replaced with `gen_vimdoc.lua` and replicates a portion of the logic. - `lua2dox.lua` is gone! - No more XML files. - Doxygen is now longer used and instead we now use: - LPEG for comment parsing (see `scripts/luacats_grammar.lua` and `scripts/cdoc_grammar.lua`). - LPEG for C parsing (see `scripts/cdoc_parser.lua`) - Lua patterns for Lua parsing (see `scripts/luacats_parser.lua`). - Treesitter for Markdown parsing (see `scripts/text_utils.lua`). - The generated `runtime/doc/*.mpack` files have been removed. - `scripts/gen_eval_files.lua` now instead uses `scripts/cdoc_parser.lua` directly. - Text wrapping is implemented in `scripts/text_utils.lua` and appears to produce more consistent results (the main contributer to the diff of this change).
| * | | | | | docs: fix type of setreg() argument {options} (#27631)Maria José Solano2024-02-27
| | | | | | |
| * | | | | | vim-patch:c7ddc9b73543Christian Clason2024-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(debian): update Debian syntax files (#14098) * debversions.vim: Move lunar to unsupported release * debsources: Add word boundaries around keyword match patterns https://github.com/vim/vim/commit/c7ddc9b73543d4b3b906b56948dc9a6861150e12 Co-authored-by: James McCoy <jamessan@jamessan.com> Co-authored-by: James Addison <jay@jp-hosting.net>
| * | | | | | build(deps): bump luv to 1.48.0-1Christian Clason2024-02-27
| | | | | | |
| * | | | | | vim-patch:2c51e15b66a4 (#27637)zeertzjq2024-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(vim): Update syntax file, improve :substitute matching (vim/vim#14093) - Differentiate between :substitute and substitute(), fixes vim/vim#13883. - Match all allowed :substitute delimiters. - Remove leading context from :substitute matches. https://github.com/vim/vim/commit/2c51e15b66a4be9b5134c495ef546479aaa89ce9 Co-authored-by: dkearns <dougkearns@gmail.com>
| * | | | | | vim-patch:9.1.0137: <Del> in cmdline mode doesn't delete composing chars ↵zeertzjq2024-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#27636) Problem: <Del> in cmdline mode doesn't delete composing chars Solution: Use mb_head_off() and mb_ptr2len() (zeertzjq) closes: vim/vim#14095 https://github.com/vim/vim/commit/ff2b79d23956263ab0120623c37e0b4498be01db
| * | | | | | Merge pull request #27635 from bfredl/nomsgvalidbfredl2024-02-26
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | refactor(msgpack): remove undead unpacker code in helpers
| | * | | | | | refactor(msgpack): remove dead unpacker code in helpersbfredl2024-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unpacker code now lives in unpacker.c This was part of the old unpacker which I forgor to remove.
| * | | | | | | fix(defaults): validate 'channel' before responding to OSC request (#27594)Gregory Anders2024-02-26
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Validate the channel number before responding to an OSC 10/11 request. When used with nvim_open_term, the channel number is unset (since there is no process on the other side of the PTY).
| * | | | | | Merge pull request #27599 from bfredl/nofileallocbfredl2024-02-26
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | refactor(fileio): remove API shell layer encouraging unnecessary allocations
| | * | | | | | refactor(shada): devirtualize writerbfredl2024-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | writer is only ever used with FileDescriptor. We already have separate code paths for serializing shada data into memory, see shada_encode_regs() and friends
| | * | | | | | refactor(fileio): remove API shell layer encouraging unnecessary allocationsbfredl2024-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Functions like file_open_new() and file_open_fd_new() which just is a wrapper around the real functions but with an extra xmalloc/xfree around is an anti-pattern. If the caller really needs to allocate a FileDescriptor as a heap object, it can do that directly. FileDescriptor by itself is pretty much a pointer, or rather two: the OS fd index and a pointer to a buffer. So most of the time an extra pointer layer is just wasteful. In the case of scriptin[curscript] in getchar.c, curscript used to mean in practice: N+1 open scripts when curscript>0 zero or one open scripts when curscript==0 Which means scriptin[0] had to be compared to NULL to disambiguate the curscript=0 case. Instead, use curscript==-1 to mean that are no script, then all pointer comparisons dissappear and we can just use an array of structs without extra pointers.
| * | | | | | | fix(mbyte): fix bugs in utf_cp_*_off() functionsVanaIgr2024-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problems: - Illegal bytes after valid UTF-8 char cause utf_cp_*_off() to fail. - When stream isn't NUL-terminated, utf_cp_*_off() may go over the end. Solution: Don't go over end of the char of end of the string.
| * | | | | | | test(terminal/buffer_spec): re-skip bang test on Windowszeertzjq2024-02-26
| | | | | | | |
| * | | | | | | fix(process): start pty process eof timer on main thread (#27625)zeertzjq2024-02-26
| | | | | | | |
| * | | | | | | refactor(types): fix miscellaneous type warningsMaria José Solano2024-02-25
| |/ / / / / /
| * | | | | | fix(lsp): add snippet regression test (#27618)Maria José Solano2024-02-25
| | | | | | |
| * | | | | | vim-patch:partial:d086b8f646a6 (#27623)zeertzjq2024-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): fix inconsistent indent (vim/vim#14089) https://github.com/vim/vim/commit/d086b8f646a67f6b16c46061ce773de1011b8ec7
| * | | | | | test: don't use minimal timeout for "intermediate" flag (#27620)zeertzjq2024-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With "intermediate" flag, only using minimal timeout is too short and may lead to failures. Also remove the fallback timeout in screen:expect_unchanged(), as having a different fallback timeout than screen:expect() is confusing.
| * | | | | | fix(lsp): add assertion for explicit bufnr in apply_text_edits (#27614)Gregory Anders2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assert that the buffer number passed to apply_text_edits is fully resolved (not 0 or null). Pass the known buffer number to apply_text_edits from lsp.formatexpr().
| * | | | | | docs: fix several misleading and superfluous wordings (#27609)Evgeni Chasnovski2024-02-25
| | | | | | |
| * | | | | | vim-patch:374e26aba2e5 (#27617)zeertzjq2024-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): clarify ':set[l] {option}<' behaviour closes: vim/vim#14062 https://github.com/vim/vim/commit/374e26aba2e5e0a220b1a7ce1934b0eb5f493e6c Co-authored-by: Matt Ellis <m.t.ellis@gmail.com>
| * | | | | | vim-patch:9.1.0135: Insufficient testing for 'delcombine' (#27616)zeertzjq2024-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Insufficient testing for 'delcombine'. Solution: Add test for both Normal and Insert modes without Arabic. (zeertzjq) closes: vim/vim#14086 https://github.com/vim/vim/commit/cd3a13e774823c44cf2e1e483d9e5b6df2cbcf50
| * | | | | | build: download libiconv and gettext from `deps` repositorydundargoc2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Downloading it from https://ftp.gnu.org/pub/gnu/ has started to become unreliable and we can therefore no longer rely on it.
| * | | | | | fix(lsp): when renaming directory, check path prefix of buffer names (#27603)Jaehwang Jung2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For example, when renaming /path/to/dir, buffers like fern://drawer/file:///path/to/dir, /path/to/dir123 should not be matched.
| * | | | | | vim-patch:9.1.0131: buffer-completion may not always find all matches (#27610)zeertzjq2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: buffer-completion code too complicated and does not always find all matches (irisjae) Solution: do not try to anchor pattern to beginning of line or directory-separator, always return all matches Note: we are considering the non-fuzzy buffer-matching here. Currently, the buffer-completion code makes 2 attempts to match a pattern against the list of available patterns. First try is to match the pattern and anchor it to either the beginning of the file name or at a directory-separator (// or \\). When a match is found, Vim returns the matching buffers and does not try to find a match anywhere within a buffer name. So if you have opened two buffers like /tmp/Foobar.c and /tmp/MyFoobar.c using `:b Foo` will only complete to the first filename, but not the second (the same happens with `getcompletion('Foo', 'buffer')`). It may make sense, that completion priorities buffer names at directory boundaries, but it inconsistent, may cause confusion why a certain buffer name is not completed when typing `:b Foo<C-D>` which returns only a single file name and then pressing Enter (to switch to that buffer), Vim will error with 'E93: More than one match for Foo'). Similar things may happen when wiping the /tmp/Foobar.c pattern and afterwards the completion starts completing other buffers. So let's simplify the code and always match the pattern anywhere in the buffer name, do not try to favor matches at directory boundaries. This is also simplifies the code a bit, we do not need to run over the list of buffers several times, but only twice. fixes vim/vim#13894 closes: vim/vim#14082 https://github.com/vim/vim/commit/0dc0bff000fd804c6b0778ccc4554a4e4c82c8c9 Cherry-pick test_cmdline.vim from patch 9.1.0019 as it already passes. Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | | | | docs(lsp): mark `ClientConfig.init_options` as optionalChristian Clason2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Followup to neovim/neovim#27443
| * | | | | | vim-patch:9.1.0132: "C" doesn't include composing chars with 'virtualedit' ↵zeertzjq2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#27605) Problem: using "C" and 've=all' set, doesn't include composing chars when changing a line, keeps the composing chars for whatever is typed afterwards. Solution: Use mb_head_off() and mb_ptr2len() instead of mb_tail_off(). (zeertzjq) closes: vim/vim#14083 https://github.com/vim/vim/commit/048761bcd40ec630fd3e039f0066cf4e484ceabd
| * | | | | | build(deps): bump lua-compat-5.3 to v0.13Christian Clason2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Convert lua_pushlstring from a macro to a function * strerror_r is not available on mingw * Support getting io.popen results on file:close() on PUC-Rio Lua 5.1 * Fix missing closing parenthesis in preprocessor macro * fix detection of LUA_USE_WINDOWS define Also switch to new org
| * | | | | | vim-patch:9.1.0129: Fix truncation of text_wrap 'wrap' virt text after EOL ↵zeertzjq2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | list char (#27600) Problem: Virtual text with text_wrap 'wrap' was effectively being truncated by a break conditional on the EOL list character being added to the screen line. (BigPeet) Solution: Remove the condition that was leading to the early break and instead fix a similar but incorrectly written outer condition that checks if there is more to add at the end of the screen line. (Dylan Thacker-Smith) Also, related: - update comment in win_line() - remove no longer necessary at_end_str variable in win_line() fixes: vim/vim#12725 closes: vim/vim#14079 https://github.com/vim/vim/commit/f548ae7b6357c7934411df243bc987800c9b76d1 Co-authored-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com>
| * | | | | | refactor(lsp): remove redundant code (#27601)Jaehwang Jung2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * use builtin function * buffer:// was removed in 236c20795eb9f11e21e0719b735ea741711acc08.
| * | | | | | vim-patch:a35235e824bb (#27598)zeertzjq2024-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc) Update help text for matchbufline() and matchstrlist() closes: vim/vim#14080 https://github.com/vim/vim/commit/a35235e824bb77df0cebdb2bd290e13f1201b292 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | | | | Merge pull request #27562 from bfredl/envallocbfredl2024-02-24
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | perf(os/env): os_getenv() allocation when there is no env var set
| | * | | | | | perf(os/env): os_getenv() allocation when there is no env var setbfredl2024-02-24
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | os_getenv("FOO") caches the result when $FOO is set to something non-empty. However, when $FOO was not set, every new call to os_getenv("FOO") would allocate a temporary scratch buffer to immediately throw away. This has an huge impact e.g. on logging which depends on potentially non-set env vars.
| * | | | | | docs(lsp): remove obsolete didChangeConfiguration explanation (#27595)Tim Pope2024-02-24
| | | | | | | | | | | | | | | | | | | | | Rendered obsolete by c6d747e6a5227e17556c62e16ed054398eb1a89a.
| * | | | | | fix(terminal): block input when there is pending TermRequest (#27589)zeertzjq2024-02-24
| | | | | | |
| * | | | | | Merge pull request #27590 from bfredl/signcolfixbfredl2024-02-23
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | fix(marktree): do not count certain marks twice when checking for overlap
| | * | | | | | fix(marktree): some marks counted twice when checking for overlapbfredl2024-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes #27046
| * | | | | | | vim-patch:315cd1fbcbbaChristian Clason2024-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(spec): Recognize SourceLicense tag name in RPM spec syntax (#14046) rpm-4.19.0 added a new SourceLicense tag. It is used at the same place as License tag. This patch adds the new tag name into a Vim syntax file to be highligted the same way as the License tag. Note that it has to be defined in the syntax file before Source\d* regexp. Otherwise it's not recognized by Vim. https://github.com/vim/vim/commit/315cd1fbcbba7c44ec8743f03645bfcaef58bd55 Co-authored-by: Petr Pisar <ppisar@redhat.com>
| * | | | | | | refactor(defaults): use getregion() for default * and # mappingszeertzjq2024-02-23
| | | | | | | |
| * | | | | | | vim-patch:1624970d321c (#27582)zeertzjq2024-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(vim): Update base-syntax, fix :unabbrev highlighting (vim/vim#14077) Fixes issue vim/vim#7876 https://github.com/vim/vim/commit/1624970d321cfb637ac76232df9c9b3f2fae904c Co-authored-by: dkearns <dougkearns@gmail.com>
| * | | | | | | Merge pull request #27578 from zeertzjq/vim-9.1.0120zeertzjq2024-02-23
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | vim-patch:9.1.{0120,0126,0127): add getregion() function
| | * | | | | | | vim-patch:9.1.0127: Naming a non-pointer variable "oap" is strangezeertzjq2024-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Naming a non-pointer variable "oap" is strange. Solution: Rename it to "oa". Also prevent using freed memory in case of memory allocation failure. (zeertzjq) closes: vim/vim#14075 https://github.com/vim/vim/commit/5e3674b42da10b7e7c72d1f20f9a15379af1b60a
| | * | | | | | | vim-patch:9.1.0126: Internal error when using upper-case mark in getregion()zeertzjq2024-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Internal error when passing mark in another buffer to getregion(). Solution: Don't allow marks in another buffer (zeertzjq) closes: vim/vim#14076 Internal error when passing mark in another buffer to getregion() https://github.com/vim/vim/commit/421b597470c118871c7081de00dd065e0e000b7e