aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* | | | | Add rneovim has() decl.Josh Rahm2023-01-25
| | | | |
* | | | | Merge branch 'fix_repeatcmdline' into 20230125_mixJosh Rahm2023-01-25
|\ \ \ \ \
| * | | | | Merge remote-tracking branch 'upstream/master' into fix_repeatcmdlineJosh Rahm2023-01-25
| |\| | | |
| * | | | | 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 20230125_mixJosh Rahm2023-01-25
|\ \ \ \ \ \ | | |_|/ / / | |/| | | |
| * | | | | Merge remote-tracking branch 'upstream/master' into colorcolcharJosh Rahm2023-01-25
| |\ \ \ \ \ | | | |/ / / | | |/| | |
| * | | | | Merge remote-tracking branch 'upstream/master' into colorcolcharJosh Rahm2022-10-11
| |\ \ \ \ \
| * | | | | | feat(colorcolchar): update runtime/doc/options.txtJoshua Rahm2022-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: zeertzjq <zeertzjq@outlook.com>
| * | | | | | feat(colorcolchar): revert "feat: rename colorcol in fillchars to colorc"Josh Rahm2022-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 234959abbfcf075cb09304b00fc391780580056d and renames the option 'colorc' -> 'colorcol' again.
| * | | | | | feat(colorcolchar): fix highlight_spec.luaJosh Rahm2022-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem was interpreting a '|' as next command, causing vim to interpret set fillchars+=colorcol:| incorrectly
| * | | | | | feat(colorcolchar): rename colorcol in fillchars to colorcJosh Rahm2022-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename the colorcol option in fillchars to the more terse colorc.
| * | | | | | feat(colorcolchar): fix typo for colorcolchar documentationJosh Rahm2022-08-27
| | | | | | |
| * | | | | | feat(colorcolchar): add the option "colorcol" to the fillchars settingJosh Rahm2022-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 20230125_mixJosh Rahm2023-01-25
|\ \ \ \ \ \ \
| * \ \ \ \ \ \ Merge remote-tracking branch 'upstream/master' into userregJosh Rahm2023-01-25
| |\ \ \ \ \ \ \ | | | |_|/ / / / | | |/| | | | |
| * | | | | | | Merge remote-tracking branch 'upstream/master' into userregJosh Rahm2022-10-11
| |\ \ \ \ \ \ \ | | | |_|/ / / / | | |/| | | | |
| * | | | | | | feat(userreg): normalize userregfunc option formatJosh Rahm2022-08-21
| | | | | | | |
| * | | | | | | feat(userreg) fix 'recording' message to handle multibyte charsJosh Rahm2022-08-21
| | | | | | | |
| * | | | | | | feat(userreg): add runtime files for userregJosh Rahm2022-08-21
| | | | | | | |
| * | | | | | | feat(userreg): fix typos userregfun -> userregfuncJosh 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 usermarksusermarksJosh Rahm2023-01-25
|\ \ \ \ \ \ \ \ | | |_|/ / / / / | |/| | | | | |
| * | | | | | | fix(man.lua): open in current window if it's already a man page (#21987)0xAdk2023-01-25
| | |_|_|_|/ / | |/| | | | | | | | | | | | This matters when there are multiple man page windows open.
| * | | | | | Merge pull request #21885 from lewis6991/refactor/optionsLewis Russell2023-01-25
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problems: - Scope of local variables in options code is too large. - did_set_string_option() is too large (>1000LOC). - Setting options for a particular window or buffer requires a changing context (assigning curwin/curbuf). Solutions: - Reduce the scope of local variables. - Break up did_set_string_option so it doesn't contain specific logic about each individual option (1038 LOC -> 310 LOC). - Begin work on making functions not depend on curbuf or curwin and pass window or buffer handles explicitly.
| | * | | | | | refactor(optionstr.c): move handling of formatlistpatLewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_exproptLewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): remove some redundant parensLewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_option_listflagsLewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): add did_set_string_option_forLewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 52Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 51Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): remove some simple did_set_* functions 2Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): remove some simple did_set_* functionsLewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 50Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 49Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 48Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 47Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 46Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 45Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 44Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 43Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 42Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 41Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 40Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 39Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 38Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 37Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 36Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 35Lewis Russell2023-01-25
| | | | | | | |
| | * | | | | | refactor(optionstr.c): break up did_set_string_option 34Lewis Russell2023-01-25
| | | | | | | |