Commit Graph

843 Commits

Author SHA1 Message Date
zeertzjq
65d95fa415 vim-patch:9.0.0926: Coverity warns for not using return value of dict_add()
Problem:    Coverity warns for not using return value of dict_add().
Solution:   When dict_add() fails then don't call hash_remove().

bc222152d8

N/A patches for version.c:

vim-patch:9.0.0927: Coverity warns for using a NULL pointer

Problem:    Coverity warns for using a NULL pointer.
Solution:   Check for memory allocaion failure.

96cbbe29de

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-23 19:59:43 +08:00
zeertzjq
4571ba4d0a vim-patch:partial:9.0.0917: the WinScrolled autocommand event is not enough (#21161)
Problem:    The WinScrolled autocommand event is not enough.
Solution:   Add WinResized and provide information about what changed.
            (closes vim/vim#11576)

35fc61cb5b

Omit "func_name" comment in tv_dict_extend(): Vim9 script only.
Skip layout locking and E1312.
Skip list_alloc_with_items() and list_set_item().

Since this overrides remaining changes in patch 9.0.0913, that patch can
now be marked as fully ported:

vim-patch:9.0.0913: only change in current window triggers the WinScrolled event

N/A patches for version.c:

vim-patch:9.0.0919: build failure with tiny features

Problem:    Build failure with tiny features.
Solution:   Adjust #ifdef's.

9c5b7cb4cf

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-23 09:54:48 +08:00
bfredl
cd386b2c72 Merge pull request #20151 from dundargoc/refactor/char_u/13
refactor: replace char_u with char 13: remove `STRLEN` part 3
2022-11-22 11:02:24 +01:00
dundargoc
7c10774860 refactor: remove old TODO comments that aren't relevant anymore (#21144) 2022-11-22 08:09:33 +08:00
zeertzjq
9b76875235 vim-patch:9.0.0916: getbufline() is inefficient for getting a single line
Problem:    getbufline() is inefficient for getting a single line.
Solution:   Add getbufoneline().

ce30ccc06a

Cherry-pick part of usr_41.txt from patch 8.1.1628.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-22 07:21:26 +08:00
Dundar Göc
40f3f75867 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-11-19 16:27:10 +01:00
zeertzjq
92e51d7e4b vim-patch:8.2.5167: get(Fn, 'name') on funcref returns special byte code (#21112)
Problem:    get(Fn, 'name') on funcref returns special byte code.
Solution:   Use the printable name.

1ae8c262df

Cherry-pick printable_func_name() from patch 8.2.0149.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-19 12:47:44 +08:00
zeertzjq
a4114f16bf vim-patch:8.2.0469: Vim9: no error for missing ] after list
Problem:    Vim9: no error for missing ] after list.
Solution:   Add error message. Add more tests.

ee619e5bc0

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-18 22:30:49 +08:00
dundargoc
66360675cf build: allow IWYU to fix includes for all .c files
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.

Work on https://github.com/neovim/neovim/issues/549, but doesn't close
it since this only works fully for .c files and not headers.
2022-11-15 10:30:03 +01:00
zeertzjq
849394e4e2 vim-patch:9.0.0863: col() and charcol() only work for the current window (#21038)
Problem:    col() and charcol() only work for the current window.
Solution:   Add an optional winid argument. (Yegappan Lakshmanan,
            closes vim/vim#11466, closes vim/vim#11461)

4c8d2f02b3

Cherry-pick test_functions.vim change from patch 8.2.0633.

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2022-11-13 08:29:05 +08:00
bfredl
fae7540732 Merge pull request #20821 from dundargoc/refactor/clang-tidy
refactor: fix clang-tidy warnings
2022-11-08 09:48:48 +01:00
Lewis Russell
bdb98de2d1 refactor: more clint (#20910) 2022-11-07 10:21:44 +00:00
zeertzjq
d7bd7f13a8 vim-patch:8.2.3756: might crash when callback is not valid
Problem:    might crash when callback is not valid.
Solution:   Check for valid callback. (Yegappan Lakshmanan, closes vim/vim#9293)

4dc24eb5ad

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2022-11-07 14:25:32 +08:00
zeertzjq
42e44d6d33 vim-patch:8.2.3751: cannot assign a lambda to an option that takes a function
Problem:    Cannot assign a lambda to an option that takes a function.
Solution:   Automatically convert the lambda to a string. (Yegappan
            Lakshmanan, closes vim/vim#9286)

6409553b6e

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2022-11-07 14:25:32 +08:00
Victor Blanchard
d337814906 feat: ":write ++p" creates parent dirs #20835
- `:write ++p foo/bar/baz.txt` should create parent directories `foo/bar/` if
   they do not exist
    - Note: `:foo ++…` is usually for options. No existing options have
      a single-char abbreviation (presumably by design), so it's safe to
      special-case `++p` here.
- Same for `writefile(…, 'foo/bar/baz.txt', 'p')`
- `BufWriteCmd` can see the ++p flag via `v:cmdarg`.

closes #19884
2022-11-06 19:31:50 -08:00
zeertzjq
1e4adf4b56 vim-patch:8.2.3725: cannot use a lambda for 'completefunc' and 'omnifunc'
Problem:    Cannot use a lambda for 'completefunc' and 'omnifunc'.
Solution:   Implement lambda support. (Yegappan Lakshmanan, closes vim/vim#9257)
8658c759f0

Comment out Vim9 script in tests.

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2022-11-07 08:24:48 +08:00
zeertzjq
b3e9010f47 vim-patch:8.2.3705: cannot pass a lambda name to function() or funcref()
Problem:    Cannot pass a lambda name to function() or funcref(). (Yegappan
            Lakshmanan)
Solution:   Handle a lambda name differently.

eba3b7f664

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-07 08:24:48 +08:00
zeertzjq
3b3611a3d0 vim-patch:9.0.0841: deletebufline() does not always return 1 on failure (#20980)
Problem:    deletebufline() does not always return 1 on failure.
Solution:   Refactor the code to make it work more predictable. (closes vim/vim#11511)

7af3ee2b83
2022-11-07 07:03:31 +08:00
dundargoc
731cdde28e refactor: fix clang-tidy warnings
Enable and fix bugprone-misplaced-widening-cast warning.

Fix some modernize-macro-to-enum and readability-else-after-return
warnings, but don't enable them. While the warnings can be useful, they
are in general too noisy to enable.
2022-11-06 11:44:10 +01:00
zeertzjq
ed01ef7fa5 vim-patch:9.0.0355: check for uppercase char in autoload name is wrong
Problem:    Check for uppercase char in autoload name is wrong, it checks the
            name of the script.
Solution:   Remove the check. (closes vim/vim#11031)

6c667bdc94

Co-authored-by: thinca <thinca@gmail.com>
2022-11-06 15:13:49 +08:00
zeertzjq
d4353c3645 vim-patch:9.0.0836: wrong error when using extend() with funcref
Problem:    Wrong error when using extend() with funcref.
Solution:   Better check the variable type. (closes vim/vim#11468, closes vim/vim#11455)

91c75d18d9
2022-11-06 10:01:50 +08:00
zeertzjq
4740672b37 vim-patch:8.2.2921: E704 for script local variable is not backwards compatible
Problem:    E704 for script local variable is not backwards compatible.
            (Yasuhiro Matsumoto)
Solution:   Only give the error in Vim9 script.  Also check for function-local
            variable.

b54abeeafb

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-06 10:01:50 +08:00
zeertzjq
6b3db3f929 vim-patch:8.2.2920: still a way to shadow a builtin function
Problem:    Still a way to shadow a builtin function. (Yasuhiro Matsumoto)
Solution:   Check the key when using extend(). (issue vim/vim#8302)

6f1d2aa437

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-06 10:01:50 +08:00
zeertzjq
dc17df3190 fix(eval): change some tv_dict_add() usages back to hash_add()
Needed for Vim patch 8.2.2920.
2022-11-06 10:01:20 +08:00
zeertzjq
e03f23189d vim-patch:8.2.1274: Vim9: no error for missing white space at script level
Problem:    Vim9: no error for missing white space in assignment at script
            level.
Solution:   Check for white space. (closes vim/vim#6495)

63be3d4ba0

Cherry-pick Test_let_errors() change from patch 8.2.0633.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-06 08:21:08 +08:00
zeertzjq
3c0651fb45 fix(eval): make error number of charidx() same as Vim 2022-11-05 18:06:00 +08:00
zeertzjq
8e868d699a vim-patch:8.2.4679: cannot have expandcmd() give an error message for mistakes
Problem:    Cannot have expandcmd() give an error message for mistakes.
Solution:   Add an optional argument to give errors. Fix memory leak when
            expanding files fails. (Yegappan Lakshmanan, closes vim/vim#10071)
2b74b6805b

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2022-11-05 18:06:00 +08:00
zeertzjq
781616bee5 vim-patch:8.2.2606: strchars() defaults to counting composing characters
Problem:    strchars() defaults to counting composing characters.
Solution:   Add strcharlen() which ignores composing characters.

70ce8a1561

Use docs from latest Vim instead.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-05 18:06:00 +08:00
zeertzjq
d857569dbd vim-patch:8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Problem:    Vim9: cannot pass "true" to split(), str2nr() and strchars().
Solution:   Use tv_get_bool_chk(). (closes vim/vim#6884, closes vim/vim#6885, closes vim/vim#6886)

3986b94b09

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-05 18:06:00 +08:00
zeertzjq
38c113ae84 vim-patch:8.2.1600: Vim9: cannot use "true" with deepcopy()
Problem:    Vim9: cannot use "true" with deepcopy().
Solution:   Use tv_get_bool_chk(). (closes vim/vim#6867)

44b4a246b6

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-05 18:06:00 +08:00
zeertzjq
e25193143b vim-patch:8.2.1751: using 2 where bool is expected may throw an error
Problem:    Using 2 where bool is expected may throw an error.
Solution:   Make this backwards compatible.

bade44e5ca

In legacy Vim script get_bool functions do the same thing as get_number
functions, so just add aliases using #define.

N/A patches for version.c:

vim-patch:8.2.1506: Vim9: no error when using a number other than 0 or 1 as bool

Problem:    Vim9: no error when using a number other than 0 or 1 as bool.
Solution:   Check the number is 0 or 1.

d70840ed68

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-05 18:06:00 +08:00
zeertzjq
562d572926 vim-patch:8.1.1949: cannot scroll a popup window to the very bottom
Problem:    Cannot scroll a popup window to the very bottom.
Solution:   Scroll to the bottom when the "firstline" property was set to -1.
            (closes vim/vim#4577)  Allow resetting min/max width/height.
8c6173c7d3

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-05 18:05:59 +08:00
zeertzjq
48405df046 vim-patch:8.2.3919: Vim9: wrong argument for append() results in two errors
Problem:    Vim9: wrong argument for append() results in two errors.
Solution:   Check did_emsg.  Also for setline().  Adjust the help for
            appendbufline().

8b6256f6ec

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-05 14:44:26 +08:00
zeertzjq
5731f406fa vim-patch:8.2.3252: duplicated code for adding buffer lines
Problem:    Duplicated code for adding buffer lines.
Solution:   Move code to a common function.  Also move map functions to map.c.
            (Yegappan Lakshmanan, closes vim/vim#8665)

4a15504e91

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2022-11-05 14:38:24 +08:00
zeertzjq
45ca7d4a62 vim-patch:8.2.0502: Vim9: some code is not tested
Problem:    Vim9: some code is not tested.
Solution:   Add more tests.  Fix uncovered problems.

e8c4abbbd7

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-05 11:27:17 +08:00
Jonathon
04fbb1de44 Enable new diff option linematch (#14537)
Co-authored-by: Lewis Russell <me@lewisr.dev>
2022-11-04 09:07:22 +00:00
dundargoc
4716a578ae docs: fix typos 2022-11-02 21:45:26 +08:00
zeertzjq
39f85cdf6b vim-patch:9.0.0824: crash when using win_move_separator() in other tab page
Problem:    Crash when using win_move_separator() in other tab page.
Solution:   Check for valid window in current tab page.
            (closes vim/vim#11479, closes vim/vim#11427)

873f41a018
2022-11-02 08:06:37 +08:00
dundargoc
b05d1943f0 build(lint): remove clint.py rules for braces #20880
Uncrustify is the source of truth where possible.
Remove any redundant checks from clint.py.
See also https://github.com/neovim/neovim/pull/18563
2022-11-01 07:39:49 -07:00
zeertzjq
c46d46e9f1 vim-patch:8.2.2343: Vim9: return type of readfile() is any (#20896)
Problem:    Vim9: return type of readfile() is any.
Solution:   Add readblob() so that readfile() can be expected to always
            return a list of strings. (closes vim/vim#7671)

c423ad77ed

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-01 20:21:48 +08:00
zeertzjq
d8dbf58b43 vim-patch:9.0.0821: crash with win_move_statusline() in another tabpage (#20894)
vim-patch:86e6717ace4f

Problem:    Crash when using win_move_statusline() in another tab page.
Solution:   Check for valid window pointer. (issue vim/vim#11427)

86e6717ace

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-01 07:29:55 +08:00
zeertzjq
3afcc48a05 vim-patch:8.2.3407: using uninitialized memory with "let g:['bar'] = 2"
Problem:    Using uninitialized memory with "let g:['bar'] = 2".
Solution:   Initialize v_type of a new dict item.

3b31851356

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-10-28 13:28:18 +08:00
zeertzjq
bfdf10d870 vim-patch:8.2.1395: Vim9: no error if declaring a funcref with lower case letter
Problem:    Vim9: no error if declaring a funcref with a lower case letter.
Solution:   Check the name after the type is inferred. Fix confusing name.

98b4f145eb

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-10-28 11:44:30 +08:00
zeertzjq
5568267ccb vim-patch:8.2.1544: cannot translate messages in a Vim script
Problem:    Cannot translate messages in a Vim script.
Solution:   Add gettext().  Try it out for a few messages in the options
            window.

0b39c3fd4c

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-10-28 08:03:31 +08:00
zeertzjq
25cf4f2fc7 vim-patch:8.2.2653: build failure
Problem:    Build failure.
Solution:   Add missing changes.

3a0f092ac0

Omit E1176: only applicable to Vim9 script.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-10-27 13:07:51 +08:00
zeertzjq
b793395019 vim-patch:8.2.4070: using uninitialized memory when reading empty file
Problem:    Using uninitialized memory when reading empty file.
Solution:   Check for empty file before checking for NL. (Dominique Pellé,
            closes vim/vim#9511)

f5d639a8af

Co-authored-by: Dominique Pelle <dominique.pelle@gmail.com>
2022-10-27 12:47:44 +08:00
zeertzjq
acbfbbb649 vim-patch:8.2.3408: can delete a numbered function
Problem:    Can delete a numbered function. (Naohiro Ono)
Solution:   Disallow deleting a numbered function. (closes vim/vim#8760)

ddfc05100a

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-10-27 09:45:56 +08:00
zeertzjq
1f438b2338 vim-patch:8.2.2726: confusing error message with white space before comma
Problem:    Confusing error message with white space before comma in the
            arguments of a function declaration.
Solution:   Give a specific error message. (closes vim/vim#2235)

86cdb8a4bd

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-10-27 08:33:55 +08:00
zeertzjq
ef363ed37c vim-patch:8.2.0619: null dict is not handled like an empty dict
Problem:    Null dict is not handled like an empty dict.
Solution:   Fix the code and add tests. (Yegappan Lakshmanan, closes vim/vim#5968)

ea04a6e8ba

Nvim doesn't support modifying NULL list, so comment out a line.
2022-10-26 20:53:39 +08:00
zeertzjq
cfccae9584 vim-patch:8.2.0610: some tests are still old style
Problem:    Some tests are still old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes vim/vim#5957)

08f4157c5c

Fix missing error message when sort() compare function fails.
Cherry-pick a line in test_utf8.vim from patch 8.2.0448.
Cherry-pick builtin_function() change from patch 8.2.0595.
2022-10-26 20:53:39 +08:00