aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | | | fix(ui-ext): force cursor update after resize in char-based UIzeertzjq2023-02-13
| | | | | | | | | | | | | | | | Neither ui/screen.lua nor Neovim Qt keep cursor position after resizing.
* | | | fix(ui): make sure screen is valid after resizingzeertzjq2023-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: When not inside an Ex command, screen_resize() calls update_screen(), which calls screenclear() and set the screen as valid. However, when inside an Ex command, redrawing is postponed so update_screen() screen doesn't do anything, and the screen is still invalid after the resize, causing ui_comp_raw_line() to be no-op until update_screen() is called on the main loop. Solution: Restore the call to screenclear() inside screen_resize() so that the screen is invalid after screen_resize(). Since screenclear() changes redraw type from UPD_CLEAR to UPD_NOT_VALID, it is called at most once for each resize, so this shouldn't change how much code is run in the common (not inside an Ex command) case.
* | | | refactor: reduce scope of locals as per the style guide 3 (#22221)dundargoc2023-02-12
| | | | | | | | | | | | refactor: reduce scope of locals as per the style guide
* | | | build: treat clang-tidy warnings as errors (#22238)dundargoc2023-02-12
| | | |
* | | | refactor: reduce scope of locals as per the style guide (#22211)dundargoc2023-02-11
| | | |
* | | | vim-patch:9.0.1295: the option initialization function is too long (#22222)zeertzjq2023-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The option initialization function is too long. Solution: Move code to separate functions. (Yegappan Lakshmanan, closes vim/vim#11966) https://github.com/vim/vim/commit/6c41bedeed2a1f98fb9c55ff85634138782ad92a Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* | | | vim-patch:9.0.1300: 'statusline' only supports one "%=" item (#22218)zeertzjq2023-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 'statusline' only supports one "%=" item. Solution: Add support for multiple "%=" items. (TJ DeVries, Yegappan Lakshmanan, closes vim/vim#11970, closes vim/vim#11965) https://github.com/vim/vim/commit/3ec78f973fdaec2cea8e036ed38037b2fe40670b Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* | | | vim-patch:9.0.1299: change for triggering incsearch not sufficiently testedzeertzjq2023-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Change for triggering incsearch not sufficiently tested. Solution: Add a test case. Simplify the code. (closes vim/vim#11971) https://github.com/vim/vim/commit/412e0e4ed903682f352d8ea58ded480930cc664f
* | | | vim-patch:9.0.1298: inserting register on the cmdline does not trigger incsearchzeertzjq2023-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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) https://github.com/vim/vim/commit/c4b7dec38292fe1cfad7aa5f244031fc6f7c7a09 Co-authored-by: K.Takata <kentkt@csc.jp>
* | | | fix(rpc)!: preseve files when stdio channel is closed (#22137)zeertzjq2023-02-11
| | | | | | | | | | | | | | | | BREAKING CHANGE: Unsaved changes are now preserved rather than discarded when stdio channel is closed.
* | | | refactor: replace char_u with char (#21901)dundargoc2023-02-11
| | | | | | | | | | | | | | | | | | | | refactor: replace char_u with char Work on https://github.com/neovim/neovim/issues/459
* | | | build: enable MSVC level 3 warnings (#21934)dundargoc2023-02-11
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | refactor: reduce scope of locals as per the style guide (#22206)dundargoc2023-02-11
| |/ / |/| |
* | | vim-patch:9.0.1297: wrong value for $LC_CTYPE makes the environ test fail ↵zeertzjq2023-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#22210) Problem: Wrong value for $LC_CTYPE makes the environ test fail. Solution: Unset $LC_CTYPE when running tests. (closes vim/vim#11963) https://github.com/vim/vim/commit/962d91643520ec3748fcf5af3263d89ccfcdda92 Co-authored-by: WuerfelDev <dev@wuerfeldev.de>
* | | build(ci): let ASAN print tracebacks for more errors (SIGABORT, SIGILL)bfredl2023-02-10
| | |
* | | Merge pull request #22077 from bfredl/neolua_clientbfredl2023-02-10
|\ \ \ | | | | | | | | refactor(tests): integrate lua-client into core and use core for functionaltests
| * | | fix(tests): fixes for using vim.mpack and more ASANbfredl2023-02-10
| | | |
* | | | build: mark uninteresting variables as advanced (#22208)dundargoc2023-02-10
| | | | | | | | | | | | Only the most important variables should be shown by default.
* | | | refactor(ui): remove some superfluous ui_flush() callsbfredl2023-02-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - <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
* | | | refactor(ui): don't reimplement redrawing in focus gained handlingbfredl2023-02-09
|/ / / | | | | | | | | | | | | These are just ordinary boring events now. Modes already redraw events themselves.
* | | fix(rpc): ignore redraw events when exiting (#22184)zeertzjq2023-02-09
| | | | | | | | | | | | When a TUI client has already stopped, handling UI events will cause a heap-use-after-free, so ignore them.
* | | fix(rpc): ignore redraw events when not in UI client (#21892)zeertzjq2023-02-09
| | | | | | | | | Otherwise it will crash.
* | | build: reuse source files with interface library (#22177)dundargoc2023-02-08
| | | | | | | | | This will minimize duplication by only needing to specify required files for nvim and libnvim once.
* | | Merge pull request #22172 from bfredl/cellsbfredl2023-02-08
|\ \ \ | | | | | | | | perf(ui): mitigate redraw latency regression from TUI refactor
| * | | perf(ui): mitigate redraw latency regression from TUI refactorbfredl2023-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | refactor(ui): cleanup 'redrawdebug', introduce "flush" modebfredl2023-02-08
| | | |
* | | | ci: remove fail summary (#22174)dundargoc2023-02-08
| | | | | | | | | | | | | | | | The tests already have a summary at the end, there's no need for an additional fail summary wrapper.
* | | | build: remove unused function get_test_target (#22176)dundargoc2023-02-08
| | | |
* | | | build: replace check-single-includes with clang-tidy (#22061)dundargoc2023-02-08
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | build(windows): specify Windows 8 as the minimum version (#22173)dundargoc2023-02-08
| | | | | | | | | | | | | | | | This will allow MSVC to use newer features not available in Vista and Windows 7.
* | | | ci(oldtest): make a copy of scripts of ci/common in testdir (#22170)dundargoc2023-02-08
| | | | | | | | | | | | | | | | Having separate copies makes it easier to not accidentally break something when modifying the scripts.
* | | | build: prefer -D <variable>=<value> over -D<variable>=<value> (#22164)dundargoc2023-02-08
| | | | | | | | | | | | | | | | | | | | 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.
* | | | build(Windows): make bundling nvim-qt optional (#21866)Enan Ajmain2023-02-08
|/ / / | | | | | | Closes https://github.com/neovim/neovim/issues/14552.
* | | vim-patch:9.0.1291: Move language files are not recognized (#22162)Christian Clason2023-02-08
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Move language files are not recognized. Solution: Recognize Move language files. (Amaan Qureshi, closes vim/vim#11947) https://github.com/vim/vim/commit/6642982beaf4f1f5164f0315a1b3e3c275156089 Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
* | | ci: simplify how environment variables are used (#22067)dundargoc2023-02-07
| | | | | | | | | | | | Having a clear separation between when we manipulate variables and when we export them to GITHUB_ENV makes it less error-prone.
* | | vim-patch:9.0.1288: FunC files are not recognized (#22153)Christian Clason2023-02-07
| | | | | | | | | | | | | | | | | | | | | | | | Problem: FunC files are not recognized. Solution: Recognize FunC files. (Amaan Qureshi, closes vim/vim#11949) https://github.com/vim/vim/commit/91deac45392fe93094b9c31403b1ae771dc71938 Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
* | | vim-patch:9.0.1290: CTRL-N and -P on cmdline don't trigger CmdlineChanged ↵zeertzjq2023-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#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) https://github.com/vim/vim/commit/af9e28a5b8f888b79459393ddb26fffe613c3f3c Cherry-pick Test_Cmdline() change from patch 9.0.1039.
* | | feat(spell): also source `spell/LANG.lua` when setting `spelllang` (#22111)Christian Clason2023-02-06
| | | | | | | | | | | | | | | | | | Problem: only Vimscript files are sourced when setting spelling language Solution: also source Lua files after sourcing Vimscript files Closes #22110
* | | vim-patch:9.0.1282: Ron files are not recognized (#22132)Amaan Qureshi2023-02-06
| | | | | | | | | | | | | | | | | | Problem: Ron files are not recognized. Solution: Recognize Ron files. (Amaan Qureshi, closes vim/vim#11948) https://github.com/vim/vim/commit/c8ef30bc2eaec956549510cd4b2efc96b7aee563
* | | fix(decoration): don't show signcolumn for non-sign_text extmark (#22135)Lewis Russell2023-02-05
| | | | | | | | | Fixes: #22127
* | | vim-patch:9.0.1281: Cadence files are not recognized (#22130)Christian Clason2023-02-05
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Cadence files are not recognized. Solution: Recognize Cadence files. (Janez Podhostnik, closes vim/vim#11951) https://github.com/vim/vim/commit/cb626a4692df7154be02b47d6089ec679e95cb44 Co-authored-by: Janez Podhostnik <janez.podhostnik@gmail.com>
* | | vim-patch:9.0.1279: display shows lines scrolled down erroneously (#22126)zeertzjq2023-02-05
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Display shows lines scrolled down erroneously. (Yishai Lerner) Solution: Do not change "wl_lnum" at index zero. (closes vim/vim#11938) https://github.com/vim/vim/commit/61fdbfa1e3c842252b701aec12f45839ca41ece5 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | | vim-patch:9.0.1278: go.work.sum files are not recognized (#22121)Christian Clason2023-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: go.work.sum files are not recognized. Solution: Recognize go.work.sum files as the gosum filetype. (Amaan Qureshi, closes vim/vim#11940) https://github.com/vim/vim/commit/4ad8ae8465e30df38dba31910f130891b16d38a0 Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
* | | refactor(exit): pass error message to preserve_exit() (#22097)zeertzjq2023-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | vim-patch:9.0.1277: cursor may move with autocmd in Visual mode (#22116)zeertzjq2023-02-04
|/ / | | | | | | | | | | | | Problem: Cursor may move with autocmd in Visual mode. Solution: Restore "VIsual_active" before calling check_cursor(). (closes vim/vim#11939) https://github.com/vim/vim/commit/49f0524fb575bb1cf4881e472afab7d37c579440
* | build: stop relying on CMAKE_BUILD_TYPE to determine the build type (#22051)dundargoc2023-02-03
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | refactor: use flexible arrays instead of the length-of-one trick (#22072)dundargoc2023-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | vim-patch:9.0.1274: FIRRTL files are not recognized (#22102)Christian Clason2023-02-02
| | | | | | | | | | | | | | | | Problem: FIRRTL files are not recognized. Solution: Add a pattern for FIRRTL files. (Amaan Qureshi, closes vim/vim#11931) https://github.com/vim/vim/commit/685bf83b73d0fe6fd36bb2949bebd6aae66a139e Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
* | fix(tui): detach/attach on suspend/resume (#22040)zeertzjq2023-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: When a TUI client is suspended it still receives UI events from the server, and has to process these accumulated events when it is resumed. With mulitple TUI clients this is a bigger problem, considering the following steps: 1. A TUI client is attached. 2. CTRL-Z is pressed and the first client is suspended. 3. Another TUI client is attached. 4. CTRL-Z is pressed and a "suspend" event is sent to both clients. The second client is suspended, while the first client isn't able to process the event because it has already been suspended. 5. The first client is resumed. It processes the accumulated "suspend" event and suspends immediately. Solution: Make a TUI client detach on suspend and re-attach on resume.
* | Merge pull request #21331 from LiadOz/LiadOz/prompt-insert-extmarkbfredl2023-02-02
|\ \ | | | | | | fix(extmarks): adjust extmarks when inserting prompt prefix