aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| | * refactor(declarations): also generate prototypes for functions in headersbfredl2024-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, "static inline" functions in headers needed to have their function attributes specified in a completely different way. The prototype had to be duplicated, and REAL_FATTR_ had to be used instead of the public FUNC_ATTR_ names. TODO: need a check that a "header.h.inline.generated.h" file is not forgotten when the first "static inline" function with attributes is added to a header (they would just be silently missing).
| * | fix(lua)!: do not use typed table for empty dictAmit Singh2024-07-13
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Empty dictionaries are converted into typed tables of the form `{ [true] = 6}` instead of an empty dictionary representation `{}`. This leads to incorrect table representation, along with failure in JSON encoding of such tables as currently tables with only string and number type keys can be encoded. Solution: The typed table logic has been removed from `nlua_push_Dictionary`. The typed table logic is required only for float value conversions which is already handled in `nlua_push_Float`. So, it is(was) no longer required here. Fixes neovim/neovim#29218
| * vim-patch:9.1.0572: cannot specify tab page closing behaviour (#29682)zeertzjq2024-07-13
| | | | | | | | | | | | | | | | | | | | | | | | Problem: cannot specify tab page closing behaviour (Gianluca Pacchiella) Solution: Add the 'tabclose' option (LemonBoy). fixes: vim/vim#5967 closes: vim/vim#15204 https://github.com/vim/vim/commit/5247b0b92e191a046b034171a3b34031e317735f Co-authored-by: LemonBoy <thatlemon@gmail.com>
| * fix(input): handle vim.on_key() properly with ALT and K_SPECIAL (#29677)zeertzjq2024-07-13
| |
| * vim-patch:9.1.0569: fnamemodify() treats ".." and "../" differently (#29673)zeertzjq2024-07-12
| | | | | | | | | | | | | | | | | | Problem: fnamemodify() treats ".." and "../" differently. Solution: Expand ".." properly like how "/.." is treated in 8.2.3388. (zeertzjq) closes: vim/vim#15218 https://github.com/vim/vim/commit/1ee7420460768df67ea4bc73467f2d4f8b1555bd
| * vim-patch:9.1.0568: Cannot expand paths from 'cdpath' settingzeertzjq2024-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot expand paths from 'cdpath' setting (Daniel Hahler) Solution: Implement 'cdpath' completion, add the new 'dir_in_path' completion type (LemonBoy) fixes vim/vim#374 closes: vim/vim#15205 https://github.com/vim/vim/commit/a20bf69a3b32024cb7809be87af33bf9dc490a19 Co-authored-by: LemonBoy <thatlemon@gmail.com>
| * vim-patch:9.1.0567: Cannot use relative paths as findfile() stop directorieszeertzjq2024-07-12
| | | | | | | | | | | | | | | | | | | | | | Problem: Cannot use relative paths as findfile() stop directories. Solution: Change a relative path to an absolute path. (zeertzjq) related: vim/vim#15200 closes: vim/vim#15202 https://github.com/vim/vim/commit/764526e2799fbed040fc867858ee2eb0677afe98
| * vim-patch:9.1.0566: Stop dir in findfile() doesn't work properly w/o ↵zeertzjq2024-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | trailing slash Problem: Stop directory in findfile() doesn't work properly without a trailing slash. Solution: Always use fnamencmp(), not fnamecmp(). related: vim/vim#15200 related: vim/vim#15202 https://github.com/vim/vim/commit/e6ab23bd4a41840860ae2904956c4d255a9dd528
| * vim-patch:9.1.0565: Stop directory doesn't work properly in 'tags'zeertzjq2024-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Stop directory doesn't work properly in 'tags'. (Jesse Pavel) Solution: Also move the stop directory forward by one byte. (zeertzjq) This doesn't support relative stop directories yet, as they are not supported in other places like findfile() either. fixes: vim/vim#15200 related: vim/vim#15202 https://github.com/vim/vim/commit/68819afb2cdd0f44baa080db589e1d8f77099e5f
| * vim-patch:8.2.3388: fnamemodify('path/..', ':p') differs from using ↵zeertzjq2024-07-12
| | | | | | | | | | | | | | | | | | | | 'path/../' (#29667) Problem: fnamemodify('path/..', ':p') differs from using 'path/../'. Solution: Include the "/.." in the directory name. (closes vim/vim#8808) https://github.com/vim/vim/commit/4eaef9979fc5032606897963f1af37674ee0d422 Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * vim-patch:9.1.0557: moving in the buffer list doesn't work as documented ↵zeertzjq2024-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#29653) Problem: moving in the buffer list doesn't work as documented (SenileFelineS) Solution: Skip non-help buffers, when run from normal buffers, else only move from help buffers to the next help buffer (LemonBoy) As explained in the help section for :bnext and :bprev the commands should jump from help buffers to help buffers (and from regular ones to regular ones). fixes: vim/vim#4478 closes: vim/vim#15198 https://github.com/vim/vim/commit/893eeeb44583ca33276e263165b2a6e50fd297d0 Co-authored-by: LemonBoy <thatlemon@gmail.com>
| * vim-patch:9.1.0556: :bwipe doesn't remove file from jumplist of other ↵zeertzjq2024-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | tabpages (#29651) Problem: :bwipe doesn't remove file from jumplist and tagstack of other tabpages. Time complexity of mark_forget_file() is O(n^2) when removing all entries (after v9.1.0554) Solution: Use FOR_ALL_TAB_WINDOWS(). Start the loops over the arrays from the end instead of the start (zeertzjq) closes: vim/vim#15199 https://github.com/vim/vim/commit/2e7d89b39883b0cfd3e615b02bd55186e00fb7ce
| * refactor: remove CH_FOLD macrodundargoc2024-07-10
| | | | | | | | It should not be needed as utf_fold should already work on its own.
| * vim-patch:9.1.{0503,0549} (#29643)zeertzjq2024-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:9.1.0503: cannot use fuzzy keyword completion Problem: cannot use fuzzy keyword completion (Maxim Kim) Solution: add the "fuzzycollect" value for the 'completeopt' setting, to gather matches using fuzzy logic (glepnir) fixes: vim/vim#14912 closes: vim/vim#14976 https://github.com/vim/vim/commit/43eef882ff42e673af1e753892801ba20c5d002a vim-patch:9.1.0549: fuzzycollect regex based completion not working as expected Problem: fuzzycollect regex based completion not working as expected Solution: Revert Patch v9.1.0503 (glepnir) closes: vim/vim#15192 https://github.com/vim/vim/commit/600a12d08e7aeb95a6b02382bfee310aef9801dd Co-authored-by: glepnir <glephunter@gmail.com>
| * vim-patch:9.1.0554: :bw leaves jumplist and tagstack data around (#29639)zeertzjq2024-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: :bw leaves jumplist and tagstack data around (Paul "Joey" Clark) Solution: Wipe jumplist and tagstack references to the wiped buffer (LemonBoy) As documented the :bwipeout command brutally deletes all the references to the buffer, so let's make it delete all the entries in the jump list and tag stack referring to the wiped-out buffer. fixes: vim/vim#8201 closes: vim/vim#15185 https://github.com/vim/vim/commit/4ff3a9b1e3ba45f9dbd0ea8c721f27d9315c4d93 Co-authored-by: LemonBoy <thatlemon@gmail.com>
| * vim-patch:9.1.0547: No way to get the arity of a Vim function (#29638)zeertzjq2024-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: No way to get the arity of a Vim function (Austin Ziegler) Solution: Enhance get() Vim script function to return the function argument info using get(func, "arity") (LemonBoy) fixes: vim/vim#15097 closes: vim/vim#15109 https://github.com/vim/vim/commit/48b7d05a4f88c4326bd5d7a73a523f2d953b3e51 Co-authored-by: LemonBoy <thatlemon@gmail.com>
| * fix(quickfix): make shortmess+=O work with cmdheight=0 (#29609)zeertzjq2024-07-08
| |
| * vim-patch:9.1.0543: Behavior of CursorMovedC is strange (#29608)zeertzjq2024-07-08
| | | | | | | | | | | | | | | | | | | | Problem: Behavior of CursorMovedC is strange. Solution: Also trigger when the cmdline has changed. (zeertzjq) fixes: vim/vim#15069 closes: vim/vim#15071 https://github.com/vim/vim/commit/8145620a958dbb5c82cf8f8a37556ee1ea501c6d
| * vim-patch:9.1.0540: Unused assignment in sign_define_cmd()zeertzjq2024-07-08
| | | | | | | | | | | | | | | | | | | | Problem: Unused assignment in sign_define_cmd() Solution: Remove the assignment. Also document the "priority" flag of sign_define(). (zeertzjq) closes: vim/vim#15169 https://github.com/vim/vim/commit/fc3f5dba52099d82ccc8bfe309d58a6fac01373d
| * build: remove -O2 from gen_cflagsLewis Russell2024-07-07
| | | | | | | | | | | | | | | | | | Problem: zig cc implicitly defines NDEBUG with -O2. This breaks debug builds which does not include -O2 or NDEBUG. Solution: Do not add -O2 when generating header files.
| * vim-patch:9.1.0538: not possible to assign priority when defining a sign ↵zeertzjq2024-07-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#29592) Problem: not possible to assign priority when defining a sign (Mathias Fußenegger) Solution: Add the priority argument for the :sign-define ex command and the sign_define() function (LemonBoy) Use the specified value instead of the default one (SIGN_DEF_PRIO) when no priority is explicitly specified in sign_place or :sign place. fixes: vim/vim#8334 closes: vim/vim#15124 https://github.com/vim/vim/commit/b975ddfdf96644b8df808415dee36f99abd48753 Co-authored-by: LemonBoy <thatlemon@gmail.com>
| * vim-patch:9.1.0537: signed number detection for CTRL-X/A can be improved ↵zeertzjq2024-07-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#29590) Problem: signed number detection for CTRL-X/A can be improved (Chris Patuzzo) Solution: Add the new "blank" value for the 'nrformat' setting. This will make Vim assume a signed number only if there is a blank in front of the sign. (distobs) fixes: vim/vim#15033 closes: vim/vim#15110 https://github.com/vim/vim/commit/25ac6d67d92e0adda53b8d44b81c15031643ca1e Co-authored-by: distobs <cuppotatocake@gmail.com>
| * vim-patch:9.1.0534: completion wrong with fuzzy when cycling back to ↵zeertzjq2024-07-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | original (#29588) Problem: completion wrong with fuzzy when cycling back to original (Quan Nguyen) Solution: reset show_match_ok when cp_score is zero (glepnir) fixes: vim/vim#15095 closes: vim/vim#15105 https://github.com/vim/vim/commit/65407ce1d2963e7a758af8fecdcbd67b9a90bdb9 Co-authored-by: glepnir <glephunter@gmail.com>
| * fix(lua): don't include text after cursor in completion pattern (#29587)zeertzjq2024-07-06
| |
| * refactor(eval): use uv_random() for init_srand() (#29575)zeertzjq2024-07-05
| | | | | | | | | | N/A patches for version.c: vim-patch:9.1.0518: initialize the random buffer can be improved vim-patch:9.1.0531: resource leak in mch_get_random()
| * vim-patch:9.1.0524: the recursive parameter in the *_equal functions can be ↵zeertzjq2024-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | removed (#29572) Problem: the recursive parameter in the *_equal functions can be removed Solution: Remove the recursive parameter in dict_equal(), list_equal() object_equal and tv_equal(). Use a comparison of the static var recursive_cnt == 0 to determine whether or not tv_equal() has been called recursively (Yinzuo Jiang). closes: vim/vim#15070 https://github.com/vim/vim/commit/7ccd1a2e858dbb2ac7fb09971dfcbfad62baa677 Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
| * vim-patch:9.1.0526: Unwanted cursor movement with pagescroll at start of ↵luukvbaal2024-07-05
| | | | | | | | | | | | | | | | | | | | buffer (#29569) Problem: Cursor is moved to bottom of window trying to pagescroll when already at the start of the buffer (Asheq Imran, after v9.1.0357) Solution: Don't move cursor when buffer content did not move. (Luuk van Baal) https://github.com/vim/vim/commit/8ccb89016e4b4b7f87acd1da78486c077350ceef
| * vim-patch:9.1.0525: Right release selects immediately when pum is truncated. ↵zeertzjq2024-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | (#29568) Problem: Right release selects immediately when pum is truncated. Solution: Use pum_height instead of pum_size when checking click row. Don't place it above mouse row when there is more space below. (zeertzjq) fixes: vim/vim#15101 closes: vim/vim#15102 https://github.com/vim/vim/commit/761a420c66402545acd8ee3ffa17c3a1fc3110e4
| * fix(mouse): don't treat click on hsep as click on statusline (#29565)zeertzjq2024-07-05
| | | | | | This allows showing popup menu when right-clicking on hsep or cmdline.
| * vim-patch:9.1.0529: silent! causes following try/catch to not work (#29567)zeertzjq2024-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: silent! causes following try/catch to not work (Malcolm Rowe) Solution: consider emsg_silent in handle_did_throw() and do not abort evaluation flow for :silent! (LemonBoy) The silent! flag causes the evaluation not to be aborted in case of uncaught exceptions, adjust handle_did_throw to take this detail into account. Fixes the long-standing todo.txt item: ``` Problem that a previous silent ":throw" causes a following try/catch not to work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24) Also see vim/vim#8487 for an example. ``` fixes: vim/vim#538 closes: vim/vim#15128 https://github.com/vim/vim/commit/749ba0f6d922b3f6b54a66543c214479492b5a0e Cherry-pick Test_deeply_nested_source() from patch 8.2.5169. Co-authored-by: LemonBoy <thatlemon@gmail.com>
| * vim-patch:9.1.0528: spell completion message still wrong in translations ↵zeertzjq2024-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (#29566) Problem: spell completion message still wrong in translations (after 9.1.0512) Solution: Update translation files with the new message (Kyle Kovacs) closes: vim/vim#15113 https://github.com/vim/vim/commit/68f5ceddca2ec2d591b9180020c95bb86bf6d3d2 Co-authored-by: Kyle Kovacs <kkovacs@diconfiberoptics.com>
| * docs: misc (#29410)dundargoc2024-07-05
| | | | | | | | Co-authored-by: Michael Härtl <haertl.mike@gmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
| * build(macos): disable deduplication in link stepChristian Clason2024-07-04
| | | | | | | | | | | | | | | | | | Problem: Apple Clang 16 comes with a new deduplication algorithm that is enabled by default in release builds (https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes#New-Features-in-Xcode-16-Beta) which breaks the built nvim binary (locks and spins at 100% CPU). Solution: Disable deduplication on macOS. Tested on Clang 15 as well and seems to make no difference to binary size anyway.
| * refactor: add assertion for v_blob in tv_ptr() (#29554)zeertzjq2024-07-04
| | | | | | Also add test for using printf() and id() with a Blob.
| * feat(win32): embed executable iconalex-tdrn2024-07-02
| | | | | | | | | | | | | | | | Problem: on windows, the neovim executable (and thus the filetypes associated to open with neovim) has no embedded icon Solution: create a windows resource file pointing to the icon, and add it to the nvim binary target
| * feat(jumplist): allow opting out of removing unloaded buffers (#29347)zeertzjq2024-06-30
| | | | | | | | Problem: Cannot opt out of removing unloaded buffers from the jumplist. Solution: Only enable that with "unload" flag in 'jumpoptions'.
| * refactor: remove special handling for lowercase German sharp sdundargoc2024-06-29
| | | | | | | | | | | | utf8proc already defines LATIN CAPITAL LETTER SHARP S (ẞ) to be the uppercase variant of LATIN SMALL LETTER SHARP S (ß), so this special workaround when using `gU` is no longer needed on the neovim side.
| * Merge pull request #29467 from bfredl/shadapack2bfredl2024-06-29
| |\ | | | | | | refactor(shada): don't use msgpack_packer for shada
| | * refactor(shada): don't use msgpack_packer for shadabfredl2024-06-27
| | | | | | | | | | | | | | | Now msgpack-c is never used for packing. The real fun part will be replacing it for unpacking.
| * | refactor: remove special-case conversion for german sharp sdundargoc2024-06-29
| | | | | | | | | | | | | | | The comment "German sharp s is lower case but has no upper case equivalent." is no longer true and is therefore not needed anymore.
| * | refactor: replace utf_convert with utf8proc conversion functionsdundargoc2024-06-28
| | |
| * | build: add utf8proc as dependencydundargoc2024-06-28
| |/ | | | | | | | | | | | | | | | | utf8proc contains all the data which is currently in unicode_tables.generated.h internally, but in quite a different format. Ideally unicode_tables.generated.h should be removed as well so we rely solely on utf8proc. We want to avoid a situation where the possibility of unicode mismatch occurs, e.g a distro using both unicode 12 and unicode 13.
| * refactor(typval)!: remove distinction of binary and nonbinary stringsbfredl2024-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a breaking change which will make refactor of typval and shada code a lot easier. In particular, code that would use or check for v:msgpack_types.binary in the wild would be broken. This appears to be rarely used in existing plugins. Also some cases where v:msgpack_type.string would be used to represent a binary string of "string" type, we use a BLOB instead, which is vimscripts native type for binary blobs, and already was used for BIN formats when necessary. msgpackdump(msgpackparse(data)) no longer preserves the distinction of BIN and STR strings. This is very common behavior for language-specific msgpack bindings. Nvim uses msgpack as a tool to serialize its data. Nvim is not a tool to bit-perfectly manipulate arbitrary msgpack data out in the wild. The changed tests should indicate how behavior changes in various edge cases.
| * refactor(typval): don't use msgpack_packer for msgpackdump()bfredl2024-06-24
| | | | | | | | Step towords completely eliminating msgpack_packer.
| * vim-patch:9.1.0512: Mode message for spell completion doesn't match allowed ↵zeertzjq2024-06-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | keys (#29437) Problem: Mode message for spell completion doesn't match allowed keys (Kyle Kovacs) Solution: Show "^S" instead of "s". (zeertzjq) This matches the code in vim_is_ctrl_x_key(): case CTRL_X_SPELL: return (c == Ctrl_S || c == Ctrl_P || c == Ctrl_N); fixes: neovim/neovim#29431 closes: vim/vim#15065 https://github.com/vim/vim/commit/7002c055d560ae0b3bb1e24ad409390a5443daad
| * vim-patch:9.1.0511: CursorMovedC triggered wrongly with setcmdpos()zeertzjq2024-06-21
| | | | | | | | | | | | | | | | | | | | | | Problem: CursorMovedC triggered wrongly with setcmdpos() (after v9.1.0507) Solution: Remove the premature triggering. Also don't trigger when cursor didn't move. (zeertzjq) closes: vim/vim#15064 https://github.com/vim/vim/commit/bc6f96708e3678dbb27ec4192d87cf94a15d4e9a
| * vim-patch:9.1.0507: hard to detect cursor movement in the command linezeertzjq2024-06-21
| | | | | | | | | | | | | | | | | | | | | | | | Problem: hard to detect cursor movement in the command line Solution: Add the CursorMovedC autocommand (Shougo Matsushita) closes: vim/vim#15040 https://github.com/vim/vim/commit/d09521476f41dd8dbddb25b7acd0b299f9bf94d3 Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
| * vim-patch:9.1.0504: inner-tag textobject confused about ">" in attributes ↵zeertzjq2024-06-20
| | | | | | | | | | | | | | | | | | | | | | | | | | (#29420) Problem: inner-tag textobject confused about ">" in attributes Solution: Skip over quoted '>' when determining the start position fixes: vim/vim#15043 closes: vim/vim#15049 https://github.com/vim/vim/commit/ca7f93e6f351b310c17cfc8f88acf21c839d6116 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * fix(drawline): don't draw beyond end of window with 'rnu' (#29406)zeertzjq2024-06-19
| |
| * vim-patch:8.2.5047: CurSearch highlight is often wrongzeertzjq2024-06-19
| | | | | | | | | | | | | | | | | | Problem: CurSearch highlight is often wrong. Solution: Remember the last highlighted position and redraw when needed. https://github.com/vim/vim/commit/368137aa525982984beed73940af481ac53a62af Co-authored-by: Bram Moolenaar <Bram@vim.org>