aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* funcs.c: add rneovim hascheckJosh Rahm2023-01-18
|
* Merge remote-tracking branch 'origin/usermarks' into 20220114-mixJosh Rahm2023-01-17
|\
| * feat(usermarks): add usermarks to f_has listJosh Rahm2022-08-21
| |
| * Merge remote-tracking branch 'upstream/master' into usermarksJosh Rahm2022-08-21
| |\
* | \ Merge remote-tracking branch 'origin/fix_repeatcmdline' into HEADJosh Rahm2023-01-14
|\ \ \
| * | | eval/userfunc.c: save the repeat_cmdline along with the redo buffJosh Rahm2022-09-15
| | |/ | |/| | | | | | | | | | | | | A user function can clobber the repeat_cmdline, which is used to build the redo buffer, thus, if the redo buffer is saved when calling a userfunc, so should the repeat_cmdline.
* | | Merge branch 'colorcolchar' into HEADJosh Rahm2023-01-14
|\ \ \
| * | | feat(colorcolchar): revert "feat: rename colorcol in fillchars to colorc"Josh Rahm2022-08-30
| | | | | | | | | | | | | | | | | | | | This reverts commit 234959abbfcf075cb09304b00fc391780580056d and renames the option 'colorc' -> 'colorcol' again.
| * | | feat(colorcolchar): rename colorcol in fillchars to colorcJosh Rahm2022-08-30
| | | | | | | | | | | | | | | | Rename the colorcol option in fillchars to the more terse colorc.
| * | | feat(colorcolchar): add the option "colorcol" to the fillchars settingJosh Rahm2022-08-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This option will let neovim draw a character in the colorcolumn when there is no other character occupying that spot. For example, I'm someone who likes the elegance of seeing a 1px wide line at the 80 character mark, rather than a rectangle the width of a cell at that mark. To accomplish this, I run :set colorcol=80 :set fillchars=colorcol:│ of course ':' and '.' are good ASCII alteratives.
* | | | Merge branch 'userreg' into HEADJosh Rahm2023-01-14
|\ \ \ \
| * \ \ \ Merge remote-tracking branch 'upstream/master' into userregJosh Rahm2023-01-14
| |\ \ \ \
| * \ \ \ \ Merge remote-tracking branch 'upstream/master' into userregJosh Rahm2022-08-30
| |\ \ \ \ \ | | | |/ / / | | |/| | |
| * | | | | feat(userreg): normalize userregfunc option formatJosh Rahm2022-08-21
| | | | | |
| * | | | | feat(userreg) fix 'recording' message to handle multibyte charsJosh Rahm2022-08-21
| | | | | |
| * | | | | feat(userreg): Add user-defined registers to Neovim.Josh Rahm2022-08-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change unlocks additional registers for Neovim by allowing a user to define their own behavior for non-builtin registers. This is accopmlished through a new option 'userregfunc' The 'userregfunc' defines the function to call when handling a register for which there is no builtin functionality. The 'userregfunc' function should take 3 arguments: action - Either "yank" or "put" register - The character corresponding to the register content - In the case of action == "yank", the dictionary describing the yanked content, with the following keys: {type} - Either "char", "line" or "block" {lines} - The lines being yanked as a list {width} - The width in case of "block" mode. {additional_data} - Additional data (can be returned in "put" mode) In case of "put" this function should return the content to put. This content can be either: * A dictionary in the same template as content above. * A list of strings. This will be assumed to be "line" mode. * A string. This will be assumed to be "char" mode. An example of a "null" 'userregfunc' that provides an implementation identical to traditional vim registers would be: let s:contents = {} function! MyUserregFunction(action, register, content) abort if a:action == "put" return get(s:contents, a:register, "") else let s:contents[a:register] = a:content endif endfunction set userregfun=MyUserregFunction It is important to note that any valid unicode character can now be a register, including something like @☺. This change also addresses the multibyte parsing issues surrounding let @a = 'xyz' let @🔨 = 'hammer'
* | | | | | Merge remote-tracking branch 'upstream/master' into usermarksJosh Rahm2023-01-14
|\ \ \ \ \ \ | | |_|/ / / | |/| | | |
| * | | | | vim-patch:8.2.0188: Check commands don't work well with Vim9 script (#21809)zeertzjq2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Check commands don't work well with Vim9 script. Solution: Improve constant expression handling. https://github.com/vim/vim/commit/7f829cab356d63b8e59559285593777a66bcc02b Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | vim-patch:8.2.4570: no command line completion for :profile and :profdelzeertzjq2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: No command line completion for :profile and :profdel. Solution: Implement completion. (Yegappan Lakshmanan, closes vim/vim#9955) https://github.com/vim/vim/commit/1fdf84e033f8c4eead3b4ccebb1969cfbc7d10db Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | | | vim-patch:8.2.4565: no command line completion for :breakadd and :breakdelzeertzjq2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: No command line completion for :breakadd and :breakdel. Solution: Add completion for :breakadd and :breakdel. (Yegappan Lakshmanan, closes vim/vim#9950) https://github.com/vim/vim/commit/6e2e2cc95b913e33145047e0fade5193da6e4379
| * | | | | vim-patch:8.2.4563: "z=" in Visual mode may go beyond the end of the linezeertzjq2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: "z=" in Visual mode may go beyond the end of the line. Solution: Adjust "badlen". https://github.com/vim/vim/commit/5c68617d395f9d7b824f68475b24ce3e38d653a3 Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | vim-patch:8.2.4585: cannot use keypad page-up/down for completion menuzeertzjq2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot use keypad page-up/down for completion menu. Solution: Recognize the keypad keys. (Yegappan Lakshmanan, closes vim/vim#9963) https://github.com/vim/vim/commit/155b0882088ff115dcfb6ce466fe7c8cc2bef349 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | | | vim-patch:8.2.4579: cannot use page-up and page-down in the cmdline popup menuzeertzjq2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot use page-up and page-down in the command line completion popup menu. Solution: Check for to page-up and page-down keys. (Yegappan Lakshmanan, closes vim/vim#9960) https://github.com/vim/vim/commit/5cffa8df7e3c28681b9e5deef6df395784359b6b Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | | | vim-patch:8.2.4481: cmdline popup menu not removed when 'lazyredraw' is setzeertzjq2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cmdline popup menu not removed when 'lazyredraw' is set. Solution: Temporarily reset 'lazyredraw' when removing the popup menu. (closes vim/vim#9857) https://github.com/vim/vim/commit/5c52be40fbab14e050d7494d85be9039f07f7f8f Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | vim-patch:9.0.0876: code is indented more than needed (#21805)zeertzjq2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Code is indented more than needed. Solution: Split ExpandEscape() in two. (Yegappan Lakshmanan, closes vim/vim#11539) https://github.com/vim/vim/commit/68353e5270fca45daffee5b5f882853cdfa40f76 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | | | vim-patch:9.0.1043: macro has confusing name and is duplicated (#21801)zeertzjq2023-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Macro has confusing name and is duplicated. Solution: Use one macro with an understandable name. (closes vim/vim#11686) https://github.com/vim/vim/commit/c51a376265708e49a46832816077b6dd27d12c0c
| * | | | | docs: builtin TUI is no longer channel 0 (#21794)zeertzjq2023-01-15
| | | | | |
| * | | | | vim-patch:8.2.4406: expand functions use confusing argument names (#21800)zeertzjq2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Expand functions use confusing argument names. Solution: Rename "file" to "match". Refactor some completion code. Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#9790) https://github.com/vim/vim/commit/24384308635f40b15d399fbd4e60c25d5e21ed8d Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | | | build: enable iwyu with target properties instead of variables (#21797)dundargoc2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IWYU stopped working after 438b4361cc761a2950689668f008cfe06c1510f7, likely due to the code being moved from CMakeLists.txt to src/nvim/CMakelists.txt. Using the IWYU target property instead of the variable ensures that the information to use IWYU isn't lost.
| * | | | | vim-patch:8.2.4398: some command completion functions are too long (#21799)zeertzjq2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Some command completion functions are too long. Solution: Refactor code into separate functions. Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#9785) https://github.com/vim/vim/commit/b31aec3b9387ed12677dca09069c3ae98c6c7447 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | | | vim-patch:partial:9.0.1196: code is indented more than necessary (#21796)zeertzjq2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes vim/vim#11813) https://github.com/vim/vim/commit/e8575988969579f9e1439181ae338b2ff74054a8 Partial port as this depends on some previous eval and 'smoothscroll' patches. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | | | vim-patch:9.0.1195: restoring KeyTyped when building statusline not testedzeertzjq2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Restoring KeyTyped when building statusline not tested. Solution: Add a test. Clean up and fix other tests. (closes vim/vim#11815) https://github.com/vim/vim/commit/378e6c03f98efc88e8c2675e05a548f9bb7889a1
| * | | | | vim-patch:8.2.4391: command line executed when typing Esc in the GUIzeertzjq2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Command line executed when typing Esc in the GUI. Solution: Move saving/restoring KeyTyped to build_stl_str_hl(). (closes vim/vim#9783) https://github.com/vim/vim/commit/0e1f36fc59b589e4755fd9102013971f45222084 Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | vim-patch:8.2.4382: a custom 'tabline' may cause Esc to work like Enterzeertzjq2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: A custom 'tabline' may cause Esc to work like Enter on the command line when the popup menu is displayed. Solution: Save and restore KeyTyped. (closes vim/vim#9776) https://github.com/vim/vim/commit/e4835bf34001471a102528659af009bc46361141 Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | vim-patch:8.2.4346: a custom statusline may cause Esc to work like Enterzeertzjq2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: A custom statusline may cause Esc to work like Enter on the command line when the popup menu is displayed. Solution: Save and restore KeyTyped. (closes vim/vim#9749) https://github.com/vim/vim/commit/481acb11413a436653e235d2098990b2ad47d195 Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | Merge pull request #21793 from bfredl/noringbufbfredl2023-01-14
| |\ \ \ \ \ | | | | | | | | | | | | | | fix(rbuffer): handle edge case where write_ptr has wrapped around too early
| | * | | | | fix(rbuffer): handle edge case where write_ptr has wrapped aroundbfredl2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when using the rbuffer as a linear buffer, exactly filling the buffer will case write_ptr to wrap around too early. For now detect this special case. Of course, the rbuffer should refactored to a proper ring buffer where write_pos >= read_pos always and there is no special case for full buffers. This will be a follow up change.
| * | | | | | vim-patch:8.2.4341: command line not redrawn when finishing popup menu (#21792)zeertzjq2023-01-14
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Command line not redrawn when finishing popup menu and the screen has scrolled up. Solution: Redraw the command line after updating the screen. (closes vim/vim#9722) https://github.com/vim/vim/commit/414acd342f4a66d930da34d419929985b48bd301 Code change is N/A as Nvim doesn't call update_screen() here. Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | vim-patch:partial:8.2.4339: CTRL-A does not work properly with the cmdline ↵zeertzjq2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | popup menu (#21791) Problem: CTRL-A does not work properly with the cmdline popup menu. Solution: Fix issues with CTRL-A. Add more tests for the cmdline popup menu. Remove TermWait() before VeriryScreenDump(). Refactor the cmdline popup code. (Yegappan Lakshmanan, closes vim/vim#9735) https://github.com/vim/vim/commit/560dff49c0095111fc96b4b8dd7f4d269aba9473 Only port cmdexpand.c and test_cmdline.vim changes. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
| * | | | | refactor: replace char_u with char 21 (#21779)dundargoc2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | refactor: replace char_u with char Work on https://github.com/neovim/neovim/issues/459
| * | | | | build: remove clint error suppression #21782dundargoc2023-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix remaining clint errors and remove error suppression completely. Rename the lint targets to align with the established naming convention: - lintc-clint lints with clint.py. - lintc-uncrustify lints with uncrustify. - lintc runs both targets. lintc is also provided as a make target for convenience. After this change we can remove these files: https://github.com/neovim/doc/tree/gh-pages/reports/clint https://github.com/neovim/doc/blob/main/ci/clint-errors.sh
| * | | | | vim-patch:9.0.1189: invalid memory access with folding and using "L" (#21787)zeertzjq2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Invalid memory access with folding and using "L". Solution: Prevent the cursor from moving to line zero. https://github.com/vim/vim/commit/232bdaaca98c34a99ffadf27bf6ee08be6cc8f6a Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | vim-patch:9.0.1191: some Bazel files are not recognized (#21784)Christian Clason2023-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Some Bazel files are not recognized. Solution: Add an extra Bazel pattern. (Keith Smily, closes vim/vim#11807) https://github.com/vim/vim/commit/3213952966896ffb1d8fa186bcf8c43359fca0f0 Co-authored-by: Keith Smiley <keithbsmiley@gmail.com>
| * | | | | fix(statuscolumn): make %l/%r respect 'number'/'relativenumber' (#21747)luukvbaal2023-01-13
| | | | | | | | | | | | | | | | | | Resolve https://github.com/neovim/neovim/issues/21745.
| * | | | | fix(ui): command line issues with external messages (#21709)luukvbaal2023-01-13
| | | | | | | | | | | | | | | | | | | | | | | | * fix: don't truncate external messages * fix: avoid resizing command line with external messages
| * | | | | fix(mouse): statusline click registered as statuscolumn (#21748)luukvbaal2023-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix(statuscolumn): statusline click registered as statuscolumn Problem: Status line click is registered as status status column click. Solution: Check that mouse is not on the status line. Resolve https://github.com/luukvbaal/statuscol.nvim/issues/4.
| * | | | | refactor: replace char_u with char 20 (#21714)dundargoc2023-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | refactor: replace char_u with char Work on https://github.com/neovim/neovim/issues/459
| * | | | | fix(powershell): wrong length allocation for ":%w !" #20530Enan Ajmain2023-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The calculation of `len` in `make_filter_cmd` for powershell falls short by one character for the following ex command: :%w !sort This command satisfies these conditions: - `itmp` is not null - `otmp` is null __NOTE__ that other shells circumvent this bug only because of `len` allocation for six extra characters: a pair of curly braces and four spaces: https://github.com/neovim/neovim/blob/cfdb4cbada8c65aa57e69776bcc0f7b8b298317a/src/nvim/ex_cmds.c#L1551-L1554 If allocation for these six characters are removed, then bash also faces the same bug. Solution: Add allocation for 6 extra bytes. 1 would do, but let's keep powershell in sync with other shells as much as possible.
| * | | | | build: include our libraries before system libraries (#21746)dundargoc2023-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Including our libraries as system libraries is helpful to suppress any warnings, but the default behavior is to include it after existing libraries. This can become a problem with some package managers such as macports, as CMake automatically adds /opt/local to the include path, which is where they store all includes. This means that the wrong header might be chosen if it has the same name as the one from our dependencies. Adding the BEFORE keyword when including will ensure that our dependency headers are chosen first. Also remove old Darwin workarounds that shouldn't be necessary anymore. Closes: https://github.com/neovim/neovim/issues/21742
| * | | | | fix(api): nvim_create_autocmd crash on invalid types inside pattern arrayii142023-01-12
| | | | | | | | | | | | | | | | | | Co-authored-by: ii14 <ii14@users.noreply.github.com>