Commit Graph

16013 Commits

Author SHA1 Message Date
dundargoc
27177e5819 refactor: reduce scope of locals as per the style guide (#22211) 2023-02-11 14:14:24 +01:00
glacambre
c5b34fa554 refactor: move init_default_autocmds to lua
The original motivation for this change came from developping
https://github.com/neovim/neovim/pull/22159, which will require adding
more autocommand creation to Neovim's startup sequence.

This change requires lightly editing a test that expected no autocommand
to have been created from lua.
2023-02-11 14:02:17 +01:00
glacambre
5ca6cf55f9 fix(helpers): restore channel id after a call to WITH_SCRIPT_CONTEXT
In https://github.com/neovim/neovim/pull/22214, init_default_autocmds
has been turned into a lua function call to nvim_create_augroup and
nvim_create_autocmd.

This introduced a strange regression: a test in vim_spec.lua started
failing with its last_set_chan value switching from 0 to
-9223372036854775808.

It turns out that -9223372036854775808 is the value of LUA_INTERNAL_CALL
and would be inherited as last_set_chan by options set from the command
line due to the WITH_SCRIPT_CONTEXT macro not restoring the channel id
(WITH_SCRIPT_CONTEXT is used by nvim_create_augroup).
2023-02-11 14:02:17 +01:00
zeertzjq
224a3c77ca vim-patch:9.0.1295: the option initialization function is too long (#22222)
Problem:    The option initialization function is too long.
Solution:   Move code to separate functions. (Yegappan Lakshmanan,
            closes vim/vim#11966)

6c41bedeed

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-02-11 20:56:42 +08:00
zeertzjq
374955bcc5 vim-patch:9.0.1300: 'statusline' only supports one "%=" item (#22218)
Problem:    'statusline' only supports one "%=" item.
Solution:   Add support for multiple "%=" items. (TJ DeVries, Yegappan
            Lakshmanan, closes vim/vim#11970, closes vim/vim#11965)

3ec78f973f

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-02-11 20:00:31 +08:00
zeertzjq
f1fcdcc2c4 vim-patch:9.0.1299: change for triggering incsearch not sufficiently tested
Problem:    Change for triggering incsearch not sufficiently tested.
Solution:   Add a test case.  Simplify the code. (closes vim/vim#11971)

412e0e4ed9
2023-02-11 19:04:28 +08:00
zeertzjq
9437800d28 vim-patch:9.0.1298: inserting register on the cmdline does not trigger incsearch
Problem:    Inserting a register on the command line does not trigger
            incsearch or update hlsearch.
Solution:   Have cmdline_insert_reg() return CMDLINE_CHANGED when appropriate
            and handle it correctly. (Ken Takata, closes vim/vim#11960)

c4b7dec382

Co-authored-by: K.Takata <kentkt@csc.jp>
2023-02-11 19:04:27 +08:00
zeertzjq
7d58de11f4 fix(rpc)!: preseve files when stdio channel is closed (#22137)
BREAKING CHANGE: Unsaved changes are now preserved rather than discarded
when stdio channel is closed.
2023-02-11 18:25:01 +08:00
dundargoc
4be6c6cf0d refactor: replace char_u with char (#21901)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-02-11 11:05:57 +01:00
dundargoc
7224c889e0 build: enable MSVC level 3 warnings (#21934)
MSVC has 4 different warning levels: 1 (severe), 2 (significant), 3
(production quality) and 4 (informational). Enabling level 3 warnings
mostly revealed conversion problems, similar to GCC/clang -Wconversion
flag.
2023-02-11 10:25:24 +01:00
dundargoc
c8c930ea78 refactor: reduce scope of locals as per the style guide (#22206) 2023-02-11 10:24:46 +01:00
zeertzjq
c9b0fe1f41 vim-patch:9.0.1297: wrong value for $LC_CTYPE makes the environ test fail (#22210)
Problem:    Wrong value for $LC_CTYPE makes the environ test fail.
Solution:   Unset $LC_CTYPE when running tests. (closes vim/vim#11963)

962d916435

Co-authored-by: WuerfelDev <dev@wuerfeldev.de>
2023-02-11 08:20:31 +08:00
bfredl
87d0809545 build(ci): let ASAN print tracebacks for more errors (SIGABORT, SIGILL) 2023-02-10 22:14:45 +01:00
bfredl
b8ad1bfe8b Merge pull request #22077 from bfredl/neolua_client
refactor(tests): integrate lua-client into core and use core for functionaltests
2023-02-10 20:51:36 +01:00
dundargoc
4c64cbe99f build: mark uninteresting variables as advanced (#22208)
Only the most important variables should be shown by default.
2023-02-10 20:20:18 +01:00
bfredl
f8f82901cd fix(tests): fixes for using vim.mpack and more ASAN 2023-02-10 20:19:04 +01:00
bfredl
30b29a36e8 refactor(ui): remove some superfluous ui_flush() calls
- <expr> mapping has no business saving and restoring the
  low-level UI cursor. The cursor will be put in a reasonable
  position after input is processed, chill out.
- TUI handles output needed for suspend
- vgetc() family of function does flushing
2023-02-09 21:39:56 +01:00
bfredl
257765d9e0 refactor(ui): don't reimplement redrawing in focus gained handling
These are just ordinary boring events now. Modes already redraw events
themselves.
2023-02-09 20:55:35 +01:00
zeertzjq
b2b82ff142 fix(rpc): ignore redraw events when exiting (#22184)
When a TUI client has already stopped, handling UI events will cause a
heap-use-after-free, so ignore them.
2023-02-09 14:36:17 +08:00
zeertzjq
ecc40660d1 fix(rpc): ignore redraw events when not in UI client (#21892)
Otherwise it will crash.
2023-02-09 10:53:47 +08:00
dundargoc
5638813066 build: reuse source files with interface library (#22177)
This will minimize duplication by only needing to specify required files for nvim and libnvim once.
2023-02-08 19:31:10 +01:00
bfredl
7404f481ba Merge pull request #22172 from bfredl/cells
perf(ui): mitigate redraw latency regression from TUI refactor
2023-02-08 18:36:36 +01:00
dundargoc
2294210660 ci: remove fail summary (#22174)
The tests already have a summary at the end, there's no need for an
additional fail summary wrapper.
2023-02-08 18:32:17 +01:00
dundargoc
eebed91d11 build: remove unused function get_test_target (#22176) 2023-02-08 18:20:45 +01:00
dundargoc
d6d3a92013 build: replace check-single-includes with clang-tidy (#22061)
Clang-tidy already does what check-single-includes does automatically on
top of its regular linting. It is also generator independent, so it
doesn't take an eternity to run on slower generators such as Visual
Studio.
2023-02-08 18:16:48 +01:00
bfredl
28e26e05bc perf(ui): mitigate redraw latency regression from TUI refactor
While the new RPC encoder/decoder implementation in general should have
less overhead than the deleted UIBridge serializer previously used for
the TUI, it regresses on redraw latency in one important aspect.

The old bridge implementation allowed the TUI to process a
previous screen line internally in parallel with the main thread
rendering the next one in win_line etc. As printing the escape
sequences in highlighted cells has a considerable hit in profiles,
this has a substantial effect on redraw latency. The RPC implementation,
however, waits with sending any data until either a flush, or the buffer is full.

This change lowers the granularity of communication again, using an
adjustable threshold counted in number of cell events (discounting
long repeats and clearing as maximum a single extra event).

The current value is guesstimated to something simple on a reasonable
scale, which should be bigger than a single line, but multiple events
for a big multi-window screen.
2023-02-08 18:02:55 +01:00
bfredl
625e990976 refactor(ui): cleanup 'redrawdebug', introduce "flush" mode 2023-02-08 18:02:55 +01:00
dundargoc
f4c836ad70 build(windows): specify Windows 8 as the minimum version (#22173)
This will allow MSVC to use newer features not available in Vista and
Windows 7.
2023-02-08 17:37:15 +01:00
dundargoc
3074ae6971 ci(oldtest): make a copy of scripts of ci/common in testdir (#22170)
Having separate copies makes it easier to not accidentally break
something when modifying the scripts.
2023-02-08 16:21:05 +01:00
dundargoc
4d2c1004e9 build: prefer -D <variable>=<value> over -D<variable>=<value> (#22164)
This makes it easier to see that -D is referring to the entire
"<variable>=<value>", rather than only <variable>. It also help syntax
highlighters highlight built-in variables.
2023-02-08 11:00:16 +01:00
Enan Ajmain
645daaf5e9 build(Windows): make bundling nvim-qt optional (#21866)
Closes https://github.com/neovim/neovim/issues/14552.
2023-02-08 10:08:18 +01:00
Christian Clason
1ca4a8b1dd vim-patch:9.0.1291: Move language files are not recognized (#22162)
Problem:    Move language files are not recognized.
Solution:   Recognize Move language files. (Amaan Qureshi, closes vim/vim#11947)

6642982bea

Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2023-02-08 09:47:55 +01:00
dundargoc
c1d76363ac ci: simplify how environment variables are used (#22067)
Having a clear separation between when we manipulate variables and when
we export them to GITHUB_ENV makes it less error-prone.
2023-02-07 14:43:45 +01:00
Christian Clason
8fbe75b3dd vim-patch:9.0.1288: FunC files are not recognized (#22153)
Problem:    FunC files are not recognized.
Solution:   Recognize FunC files. (Amaan Qureshi, closes vim/vim#11949)

91deac4539

Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2023-02-07 10:29:37 +01:00
zeertzjq
1391385ba9 vim-patch:9.0.1290: CTRL-N and -P on cmdline don't trigger CmdlineChanged (#22151)
Problem:    CTRL-N and -P on cmdline don't trigger CmdlineChanged.
Solution:   Jump to cmdline_changed instead of cmdline_not_changed.
            (closes vim/vim#11956)

af9e28a5b8

Cherry-pick Test_Cmdline() change from patch 9.0.1039.
2023-02-07 07:54:33 +08:00
Christian Clason
e1f03c481a feat(spell): also source spell/LANG.lua when setting spelllang (#22111)
Problem: only Vimscript files are sourced when setting spelling language
Solution: also source Lua files after sourcing Vimscript files

Closes #22110
2023-02-06 10:01:38 +01:00
Amaan Qureshi
1675f0e270 vim-patch:9.0.1282: Ron files are not recognized (#22132)
Problem:    Ron files are not recognized.
Solution:   Recognize Ron files. (Amaan Qureshi, closes vim/vim#11948)

c8ef30bc2e
2023-02-06 10:01:17 +01:00
Lewis Russell
228684d2fb fix(decoration): don't show signcolumn for non-sign_text extmark (#22135)
Fixes: #22127
2023-02-05 23:49:43 +00:00
Christian Clason
23e34fe534 vim-patch:9.0.1281: Cadence files are not recognized (#22130)
Problem:    Cadence files are not recognized.
Solution:   Recognize Cadence files. (Janez Podhostnik, closes vim/vim#11951)

cb626a4692

Co-authored-by: Janez Podhostnik <janez.podhostnik@gmail.com>
2023-02-05 17:59:18 +01:00
zeertzjq
5c4b503d3c vim-patch:9.0.1279: display shows lines scrolled down erroneously (#22126)
Problem:    Display shows lines scrolled down erroneously. (Yishai Lerner)
Solution:   Do not change "wl_lnum" at index zero. (closes vim/vim#11938)

61fdbfa1e3

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-02-05 09:37:12 +08:00
Christian Clason
4b9bb3a184 vim-patch:9.0.1278: go.work.sum files are not recognized (#22121)
Problem:    go.work.sum files are not recognized.
Solution:   Recognize go.work.sum files as the gosum filetype. (Amaan Qureshi,
            closes vim/vim#11940)

4ad8ae8465

Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2023-02-04 16:05:45 +01:00
zeertzjq
69bb145cea refactor(exit): pass error message to preserve_exit() (#22097)
Problem:
1. Some calls to preserve_exit() don't put a message in IObuff, so the
   IObuff printed by preserve_exit() contains unrelated information.
2. If a TUI client runs out of memory or receives a deadly signal, the
   error message is shown on alternate screen and cannot be easily seen
   because the TUI exits alternate screen soon afterwards.

Solution:
Pass error message to preserve_exit() and exit alternate screen before
printing it.

Note that this doesn't fix the problem that server error messages cannot
be easily seen on exit. This is tracked in #21608 and #21843.
2023-02-04 20:14:31 +08:00
zeertzjq
90333b24c3 vim-patch:9.0.1277: cursor may move with autocmd in Visual mode (#22116)
Problem:    Cursor may move with autocmd in Visual mode.
Solution:   Restore "VIsual_active" before calling check_cursor().
            (closes vim/vim#11939)

49f0524fb5
2023-02-04 19:35:31 +08:00
Luuk van Baal
a4e376f09b refactor(statusline): move statusline defs to statusline_defs.h 2023-02-04 11:05:24 +01:00
Luuk van Baal
08fb3b5309 perf(column): only build fold/sign column when present in 'statuscolumn'
Problem:    The fold and sign column is built and stored regardless of
            whether the corresponding item is present in 'statuscolumn'.
Solution:   Since the 'statuscolumn' parses itself, we can defer
            building the columns until the corresponding item is
            actually encountered.
2023-02-04 11:04:43 +01:00
Luuk van Baal
60ab22dfa6 refactor(column): remove unused build_statuscol_str() arguments
Problem:    `build_statuscol_str()` still has arguments that were
            necessary for building a status column string in
            `number_width()`, which was abandoned in #22094.
Solution:   Remove unused arguments.
2023-02-04 10:43:20 +01:00
Luuk van Baal
7a710f5f08 fix(column): no longer reset nrwidth_line_count for 'statuscolumn'
Problem:    We still explicitly reset `nrwidth_line_count` when changing
            `'number'` or `'relativenumber'` but this is no longer
            needed since the introduction of a `statuscol_line_count`.
Solution:   Remove reset of `nrwidth_line_count`. Resolve
            https://github.com/neovim/neovim/pull/22094#issuecomment-1416168926.
2023-02-04 00:17:04 +01:00
dundargoc
f9826e1dff build: stop relying on CMAKE_BUILD_TYPE to determine the build type (#22051)
Any logic involving CMAKE_BUILD_TYPE is automatically broken as it won't
work with multi-config generators. The only exception is if we
explicitly check whether the current generator is single-config as well.
Instead, use generator expressions or cmake variables that allows to set
options for certain build types only such as
INTERPROCEDURAL_OPTIMIZATION_<CONFIG>.

Opt to generate all headers with optimization level O2 with no debug
information for all build types as that is the simplest way to make it
behave the same for all generators.
2023-02-03 00:00:15 +01:00
dundargoc
ebd2372f92 refactor: use flexible arrays instead of the length-of-one trick (#22072)
The "length-of-one" trick, where the last element of a struct is an
array of size 1, but extra size is allocated when calling malloc where
it uses more than 1 element in the array, cause problems with some
compilers. Some compilers set _FORTIFY_SOURCE=2 by default which
incorrectly considers it as an overflow. More information:
https://github.com/neovim/neovim/issues/223#issuecomment-1413828554

Using flexible array members allows us to to properly convey to the
compiler that its size may be larger than 1. This also enables us to
remove lengthy workarounds that are unreliable, as they depend on
CMAKE_BUILD_TYPE which isn't defined for multi-config generators.

Closes: https://github.com/neovim/neovim/issues/223
2023-02-02 23:56:25 +01:00
Christian Clason
c05b3c3bbd vim-patch:9.0.1274: FIRRTL files are not recognized (#22102)
Problem:    FIRRTL files are not recognized.
Solution:   Add a pattern for FIRRTL files. (Amaan Qureshi, closes vim/vim#11931)

685bf83b73

Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2023-02-02 17:26:22 +01:00