aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | | | 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
| * | fix(extmarks): adjust extmarks when inserting prompt prefixLiad Oz2023-01-14
| | |
* | | fix(lua): mark some eval functions that can run in API-fastLewis Russell2023-02-02
| | |
* | | fix(column): estimate 'statuscolumn' width appropriatelyluukvbaal2023-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The 'statuscolumn' width is being estimated without the proper context. In particular, this resulted in the fact that a custom fold column could be included in the estimated `number_width()`, and doubly added when actually drawing the statuscolumn due to `win_col_off()` also adding the `'foldcolumn'` width. Resulting in a status column that is `'foldcolumn'` cells wider than necessary. Solution: Estimate 'statuscolumn' width in `get_statuscol_str()` when a buffer's line count has changed.
* | | fix(exit): skip unnecessary steps in TUI preserve_exit() (#21897)zeertzjq2023-02-02
| | | | | | | | | | | | This prevents the TUI from doing unexpected things when receiving a deadly signal or running out of memory.
* | | version.c: update [skip ci] (#21306)github-actions[bot]2023-02-02
| | | | | | | | | | | | | | | | | | Co-authored-by: marvim <marvim@users.noreply.github.com> N/A patches: vim-patch:9.0.1272: typo in pattern for filetype detection
* | | vim-patch:9.0.1273: "1v" may select block with wrong size (#22092)zeertzjq2023-02-02
| | | | | | | | | | | | | | | | | | | | | | | | Problem: "1v" may select block with wrong size. (Evgeni Chasnovski) Solution: Compute "curswant" in the right line. (closes vim/vim#11925) https://github.com/vim/vim/commit/8f531662e28c37560bf5ac20a059bf00d01ee5a4 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | | vim-patch:9.0.1271: using sizeof() and subtract array size is tricky (#22087)zeertzjq2023-02-01
| | | | | | | | | | | | | | | | | | Problem: Using sizeof() and subtract array size is tricky. Solution: Use offsetof() instead. (closes vim/vim#11926) https://github.com/vim/vim/commit/1b438a8228a415720efb5ca1c0503f5467292e8e
* | | vim-patch:8.1.1827: allocating more memory than needed for extended structs ↵zeertzjq2023-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | (#22081) Problem: Allocating more memory than needed for extended structs. Solution: Use offsetof() instead of sizeof(). (Dominique Pelle, closes vim/vim#4786) https://github.com/vim/vim/commit/47ed553fd5bebfc36eb8aa81686eeaa5a84eccac
* | | vim-patch:9.0.1268: .clangd and .stylelintrc files don't get a filetype (#22079)Christian Clason2023-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: .clangd and .stylelintrc files don't get a filetype. Solution: Use yaml for .clangd and json for .stylelintrc files. (Mark Skelton, closes vim/vim#11916) https://github.com/vim/vim/commit/9c51798a1f3b79ace5ae0551a8bb122025ac94ed Co-authored-by: Mark Skelton <mdskelton99@gmail.com>
* | | vim-patch:9.0.1270: crash when using search stat in narrow screen (#22078)zeertzjq2023-02-01
| | | | | | | | | | | | | | | | | | Problem: Crash when using search stat in narrow screen. Solution: Check length of message. (closes vim/vim#11921) https://github.com/vim/vim/commit/a7d36b732070944aab614944075ec0b409311482
* | | refactor(optionstr.c): align comments (#22070)zeertzjq2023-02-01
| | | | | | | | | Align comments in did_set_string_option_for() at column 57.
* | | refactor(tests): run unittests using main nvim binary in interpreter modebfredl2023-01-31
| | | | | | | | | | | | This allows us to get rid of the separate "nvim-test" target
* | | fix(test): fix issues detected by running unittests in ASAN/UBSANbfredl2023-01-31
| | |
* | | feat(lua): low-level interpreter mode (nvim -ll)bfredl2023-01-31
| |/ |/|
* | vim-patch:9.0.1263: KDL files are not recognized (#22058)Christian Clason2023-01-31
| | | | | | | | | | | | | | | | Problem: KDL files are not recognized. Solution: Add a pattern for KDL files. (Amaan Qureshi, closes vim/vim#11898) https://github.com/vim/vim/commit/907349a74331fc1bc48cf43c1e7d54cb9e0e4fc9 Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
* | fix(highlight): properly deal with underline mask when listing (#22057)zeertzjq2023-01-31
| |
* | refactor!: remove has("debug") (#22060)dundargoc2023-01-30
| | | | | | | | | | This value can not be relied on as it doesn't work for multi-configuration generators. I don't think this undocumented option is used much, if at all, so I think we should remove it.