aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * | | | | | refactor(IWYU): move evalarg_T to eval_defs.h (#26716)zeertzjq2023-12-23
| | | | | | |
| * | | | | | refactor(drawline): avoid storing info to draw 'statuscolumn' (#26712)luukvbaal2023-12-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer return to the main loop in win_line() to put column characters on the screen. Simplify and sync statuscolumn drawing logic with that of statusline.
| * | | | | | fix(decor): allow adding providers during redrawLewis Russell2023-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: #26652
| * | | | | | refactor(drawline): simplify draw_statuscol() and remove draw_state referencesLuuk van Baal2023-12-22
| | | | | | |
| * | | | | | Merge pull request #26528 from bfredl/nodrawstatebfredl2023-12-22
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | refactor(drawline): remove LineDrawState and wlv->saved_n_extra
| | * | | | | | refactor(drawline): remove LineDrawState and wlv->saved_n_extrabfredl2023-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do not need an enum to keep track of what place in win_line() we currently are at. We already have a variable which keeps track where in the code we currently are (and thus what part of the line we are currently rendering), it is called the _program counter_. When we need non-linear or self-referential control-flow anyway for a laugh, we have a mechanism for that, it is called _function calls_. Do not "save" and "restore" the wlv->n_extra state every time the columns are to be drawn. This sort of thing needs to go away. Instead of setting the n_extra variables and then going to the outer while loop, the text in the columns can be rendered by just simply putting the text into the cells of the screen line, right away. Even in nvim this can be tricky sometimes, luckily we can use function calls to abstract this logic, which means that this handy data structure called the _call stack_ is handling saving away state temporarily, and restoring it back when we need it again. Lastly, but not least, as we now have direct control how signs are rendered, these can be stored as schar_T[2] and be directly put on screen as such.
| * | | | | | | docs(options): add codeblock annotations to options.lua (#26696)Christian Clason2023-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also consistently remove leading colons in examples Co-authored-by: zeertzjq <zeertzjq@outlook.com>
| * | | | | | | refactor(IWYU): add "private" pragma to more generated headers (#26706)zeertzjq2023-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "export" only prevents IWYU from adding these headers if the headers that export them are included, while "private" ensures that IWYU never adds these headers.
| * | | | | | | refactor(options): generate BV_ and WV_ constants (#26705)zeertzjq2023-12-22
| | | | | | | |
| * | | | | | | vim-patch:9.0.2183: Maximum callback depth is not configurable (#26703)zeertzjq2023-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Maximum callback depth is not configurable. Solution: Revert patch 9.0.2103. Set 'maxfuncdepth' in test. fixes: vim/vim#13732 closes: vim/vim#13736 https://github.com/vim/vim/commit/fe583b1e5987fbfdb5f2141c133dbff9665ed301
| * | | | | | | refactor: run IWYU on entire repodundargoc2023-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reference: https://github.com/neovim/neovim/issues/6371.
| * | | | | | | fix(build): teach cmake about vvarsLewis Russell2023-12-21
| | | | | | | |
| * | | | | | | feat: generate types and docs for v variablesLewis Russell2023-12-21
| | | | | | | |
| * | | | | | | fix(column): avoid exceeding configured 'signcolumn' widthLuuk van Baal2023-12-21
| |/ / / / / /
| * | | | | | refactor(IWYU): move decor provider types to decoration_defs.h (#26692)zeertzjq2023-12-21
| | | | | | |
| * | | | | | fixup:zeertzjq2023-12-21
| | | | | | |
| * | | | | | fix(channel): use os_write() instead of fwrite() for stderr (#26689)zeertzjq2023-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This handles EAGAIN. Related #26688
| * | | | | | refactor: eliminate cyclic includesdundargoc2023-12-20
| | | | | | |
| * | | | | | fix(buffer): do not filter help bufferChristian Clason2023-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: If a help buffer is opened without legacy syntax set (because treesitter is enabled), Vim strips (some) markup. This means the syntax engine fails to parse (some) syntax if treesitter highlighting is disabled again. Solution: Do not strip the help buffer of markup since (legacy or treesitter) highlighting is always enabled in Nvim. Similarly, remove redundant setting of filetype and give the function a more descriptive name.
| * | | | | | vim-patch:9.0.2177: Wrong cursor position when dragging out of window (#26661)zeertzjq2023-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Wrong cursor position when dragging out of window. Solution: Don't use ScreenCols[] when mouse is not in current window. closes: vim/vim#13717 https://github.com/vim/vim/commit/ec14924368e23f2430815c009bd554f88de9c57f
| * | | | | | vim-patch:9.0.2178: reg_executing() wrong for :normal with range (#26660)zeertzjq2023-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: reg_executing() returns wrong result in :normal with range when 'showcmd' is set (after 8.2.4705). Solution: Reset "pending_end_reg_executing" when executing a register. closes: vim/vim#13707 https://github.com/vim/vim/commit/615202bd0ebc1d8e3532f24b9b7232c2fd86b181
| * | | | | | test: sign on wrapped line with signcolumn=number (#26654)zeertzjq2023-12-19
| | | | | | |
| * | | | | | refactor: use `bool` to represent boolean valuesdundargoc2023-12-19
| | | | | | |
| * | | | | | docs: small fixes (#26448)dundargoc2023-12-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Gregory Anders <8965202+gpanders@users.noreply.github.com> Co-authored-by: Jordan Mandel <jordan.mandel@live.com>
| * | | | | | fix(api): don't set coladd of mark (#26648)zeertzjq2023-12-19
| | | | | | |
| * | | | | | feat(api): add forward and back mouse buttonsAmanda Graven2023-12-18
| | | | | | |
| * | | | | | docs: add style rule regarding initializationdundargoc2023-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifically, specify that each initialization should be done on a separate line.
| * | | | | | fix(lua): handle array with holes in luaeval() (#26630)zeertzjq2023-12-18
| | | | | | |
| * | | | | | fix(options): setting 'scroll' with resized grid (#26628)zeertzjq2023-12-18
| | | | | | |
| * | | | | | refactor: split WIN_EXECUTE() into two functions (#26627)zeertzjq2023-12-18
| | | | | | |
| * | | | | | refactor: move some anonymous enums back to non-defs headers (#26622)zeertzjq2023-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It isn't really useful to put anonymous enums only used as arguments to functions calls in _defs.h headers, as they will only be used by a file that calls those functions, which requires including a non-defs header. Also move os_msg() and os_errmsg() back to message.h, as on Windows they are actual functions instead of macros. Also remove gettext.h and globals.h from private/helpers.h.
| * | | | | | refactor: move non-symbols to defs.h headersdundargoc2023-12-17
| | | | | | |
| * | | | | | refactor(options): use hashy for finding options (#26573)Famiu Haque2023-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: `findoption()` searches through the options[] table linearly for option names, even though hashy can be used to generate a compile-time hash table for it. Solution: Use hashy to generate a compile time hash table for finding options. This also allows handling option aliases, so we don't need separate options[] table entries for things like 'viminfo'.
| * | | | | | build: cmake fixesdundargoc2023-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - add EXTERNALPROJECT_OPTIONS variable to main build - use `REQUIRED` keyword for IWYU. - remove check_c_compiler_flag checks when `ENABLE_COMPILER_SUGGESTIONS` is `ON`. If we explicitly enable it then we probably want it to give an error if it doesn't exist, rather than silently skip it. - Move dependency interface libraries to their find module and use them as a pseudo-imported target. - Remove BUSTED_OUTPUT_TYPE. It's not used and we can reintroduce it again if something similar is needed. - Use LINK_OPTIONS intead of LINK_FLAGS when generating the `--version` output.
| * | | | | | refactor: only reload colorscheme if &bg changed (#26598)Gregory Anders2023-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, setting &bg at all re-initializes highlights and reloads the active colorscheme, even if the actual value of &bg has not changed. With https://github.com/neovim/neovim/pull/26595 this causes a regression since &bg is set unconditionally based on the value detected from the terminal. Instead, only reload the colorscheme if the actual value of &bg has changed.
| * | | | | | build: bump minimum cmake version to 3.13dundargoc2023-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The benefits are primarily being able to use FetchContent, which allows for a more flexible dependency handling. Other various quality-of-life features such as `-B` and `-S` flags are also included. This also removes broken `--version` generation as it does not work for version 3.10 and 3.11 due to the `JOIN` generator expression. Reference: https://github.com/neovim/neovim/issues/24004
| * | | | | | vim-patch:82f19734bfcbChristian Clason2023-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): remove deprecation warning for gdefault Deprecated can be misunderstood as being slated for removal; slightly change wording to be clearer. https://github.com/vim/vim/commit/82f19734bfcbddbaee8d5d837f7b7a7119366020 Co-authored-by: dundargoc <gocdundar@gmail.com>
| * | | | | | fix(api): crash after nvim_win_set_config title/footer validation error (#26606)notomo2023-12-16
| | | | | | |
| * | | | | | feat(highlight): tweak default color schemeEvgeni Chasnovski2023-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Updating default color scheme produced some feedback. Solution: Address the feedback. Outline of the changes: - Colors `Grey1` and `Grey2` are made a little bit more extreme (dark - darker, light - lighter) to increase overall contrast. - `gui` colors are treated as base with `cterm` colors falling back to using 0-15 colors which come from terminal emulator. - Update highlight group definition to not include attribute definition if it is intended to staty uncolored. - Tweak some specific highlight groups. - Add a list of Neovim specific highlight groups which are now defined differently in a breaking way. - Minor tweaks in several other places related to default color scheme.
| * | | | | | vim-patch:9.0.2168: Moving tabpages on :drop may cause an endless loop (#26605)zeertzjq2023-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Moving tabpages on :drop may cause an endless loop Solution: Disallow moving tabpages on :drop when cleaning up the arglist first Moving tabpages during drop command may cause an endless loop When executing a :tab drop command, Vim will close all windows not in the argument list. This triggers various autocommands. If a user has created an 'au Tabenter * :tabmove -' autocommand, this can cause Vim to end up in an endless loop, when trying to iterate over all tabs (which would trigger the tabmove autocommand, which will change the tpnext pointer, etc). So instead of blocking all autocommands before we actually try to edit the given file, lets simply disallow to move tabpages around. Otherwise, we may change the expected number of events triggered during a :drop command, which users may rely on (there is actually a test, that expects various TabLeave/TabEnter autocommands) and would therefore be a backwards incompatible change. Don't make this an error, as this could trigger several times during the drop command, but silently ignore the :tabmove command in this case (and it should in fact finally trigger successfully when loading the given file in a new tab). So let's just be quiet here instead. fixes: vim/vim#13676 closes: vim/vim#13686 https://github.com/vim/vim/commit/df12e39b8b9dd39056e22b452276622cb7b617fd Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | | | | feat(ui): completeopt support popup like vimmathew2023-12-16
| | | | | | |
| * | | | | | Merge pull request #26512 from famiu/refactor/options/type_flagsbfredl2023-12-16
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | refactor(options): remove option type macros
| | * | | | | | refactor(options): remove option type macrosFamiu Haque2023-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: We have `P_(BOOL|NUM|STRING)` macros to represent an option's type, which is redundant because `OptValType` can already do that. The current implementation of option type flags is also too limited to allow adding multitype options in the future. Solution: Remove `P_(BOOL|NUM|STRING)` and replace it with a new `type_flags` attribute in `vimoption_T`. Also do some groundwork for adding multitype options in the future. Side-effects: Attempting to set an invalid keycode option (e.g. `set t_foo=123`) no longer gives an error.
| * | | | | | | vim-patch:17dca3cb97cd (#26584)zeertzjq2023-12-15
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): grammar & typo fixes closes: vim/vim#13654 https://github.com/vim/vim/commit/17dca3cb97cdd7835e334b990565c8c0b93b1284 Co-authored-by: Dominique Pellé <dominique.pelle@tomtom.com>
| * | | | | | fix(extmark): only invalidate unpaired marks on deleted rowsLuuk van Baal2023-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Unpaired marks are invalidated if its column is deleted, which may just be a "placeholder" column, e.g. for signs. Solution: Only remove unpaired marks if its entire row is deleted.
| * | | | | | feat(nvim_open_term): convert LF => CRLF (#26384)Raphael2023-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Unlike termopen(), nvim_open_term() PTYs do not carriage-return the cursor on newline ("\n") input. nvim --clean :let chan_id = nvim_open_term(1, {}) :call chansend(chan_id, ["here", "are", "some", "lines"]) Actual behavior: here are some lines Expected behaviour: here are some lines Solution: Add `force_crlf` option, and enable it by default.
| * | | | | | fix(tui): don't use tui->params[] for 'termsync' (#26565)zeertzjq2023-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 'termsync' overwrites the first parameter of a format string when UNIBI_OUT() encounters an overflow. Solution: Don't use tui->params[] for 'termsync'.
| * | | | | | docs: fix linksdundargoc2023-12-13
| | | | | | |
| * | | | | | docs: add code-overview from wiki to src/nvim/README.mddundargoc2023-12-13
| | | | | | |
| * | | | | | vim-patch:9.0.2159: screenpos() may crash with neg. column (#26542)zeertzjq2023-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: screenpos() may crash with neg. column Solution: validate and correct column closes: vim/vim#13669 https://github.com/vim/vim/commit/ec54af4e26952d954a4cc009f62c80ea01445d30