aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Merge branch 'aucmd_textputpost' into 20231130_mix20231130_mixJosh Rahm2023-11-30
|\
| * Merge remote-tracking branch 'upstream/master' into aucmd_textputpostaucmd_textputpostJosh Rahm2023-11-30
| |\
| * | feat(aucmd_textputpost): only fire the event if the reg is not NULLJosh Rahm2023-02-28
| | |
| * | feat(TextPutPost): add TextPutPost autocommandJosh Rahm2023-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a new autocommand, TextPutPost. This autocommand fires when the user puts text with p or P. The motivating feature for this change was to implement a plugin that "carries" Java imports between files. I.e. yanking from one java file and pasting into another would automatically add the imports required.
* | | Merge branch 'fix_20726' into 20231130_mixJosh Rahm2023-11-30
|\ \ \
| * \ \ Merge remote-tracking branch 'upstream/master' into fix_20726fix_20726Josh Rahm2023-11-29
| |\ \ \
| * \ \ \ Merge remote-tracking branch 'upstream/master' into fix_20726Josh Rahm2023-11-29
| |\ \ \ \ | | | |_|/ | | |/| |
| * | | | Add hacky fix for issue 20726Josh Rahm2023-01-31
| | | | |
* | | | | Merge remote-tracking branch 'origin/colorcolchar' into 20231130_mixJosh Rahm2023-11-30
|\ \ \ \ \
| * \ \ \ \ Merge remote-tracking branch 'upstream/master' into colorcolcharcolorcolcharJosh Rahm2023-11-29
| |\ \ \ \ \ | | | |/ / / | | |/| | |
| * | | | | feat(colorcolchar): implement 'foreground' flagJosh Rahm2023-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This flag, denoted by an 'f', will force the character over the colorcolumn to take on the colorcolumn's highlight, discarding any highlight the character would have had otherwise. This is the inverse of the 'background' flag, where the colorcolumn will take the highlight of the character discarding any highlight it otherwise would have had.
| * | | | | feat(colorcolchar): make colorcol qsort() stable by including indexJosh Rahm2023-01-31
| | | | | |
| * | | | | feat(colorcolchar): make the colorcolumn more flexibleJosh Rahm2023-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR creates the ability to optionally decorate the colorcolumn(s) in other ways. Specifically it adds the ability to set: * The highlight group to highlight a colorcolumn with * A character to draw in a colorcolumn * whether the colorcolumn should mix its highlighting with the character in the column. The new syntax for colorcolumn is: set colorcolumn=[+|-]<num>[/<char>[/<hl_group>[/<flags>]]] By default the char is ' ', and the hl_group is 'ColorColumn' This PR does not change the existing semantics, just adds to them.
| * | | | | feat(colorcolchar): remove existing colorcolumnchar in the fillchars. Make ↵Josh Rahm2023-01-31
| | | | | | | | | | | | | | | | | | | | | | | | way for more flexibility
| * | | | | Merge remote-tracking branch 'upstream/master' into colorcolcharJosh Rahm2023-01-25
| |\ \ \ \ \ | | | |/ / / | | |/| | |
| * | | | | Merge remote-tracking branch 'upstream/master' into colorcolcharJosh Rahm2022-10-11
| |\ \ \ \ \
| * | | | | | 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): rename colorcol in fillchars to colorcJosh Rahm2022-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename the colorcol option in fillchars to the more terse colorc.
| * | | | | | 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 20231130_mixJosh Rahm2023-11-30
|\ \ \ \ \ \ \
| * \ \ \ \ \ \ Merge remote-tracking branch 'origin/usermarks' into HEADJosh Rahm2023-11-30
| |\ \ \ \ \ \ \
| | * \ \ \ \ \ \ Merge remote-tracking branch 'upstream/master' into usermarksusermarksJosh Rahm2023-01-25
| | |\ \ \ \ \ \ \ | | | | |_|/ / / / | | | |/| | | | |
| | * | | | | | | feat(usermarks): add usermarks to f_has listJosh Rahm2022-08-21
| | | | | | | | |
| | * | | | | | | Merge remote-tracking branch 'upstream/master' into usermarksJosh Rahm2022-08-21
| | |\ \ \ \ \ \ \
| | * | | | | | | | feat(usermark); implement "user marks", i.e. marks whose behavior can be ↵Josh Rahm2022-08-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | defined by the user. (Neo)vim has many different marks defined, but sometimes this may not be completely adequate. This change give the user the ability to define behavior for marks which are not built in to (Neo)vim directly. This is accomplished through a new option called the "usermarkfunc." The usermarkfunc points to a vimscript function that takes an "action" paramter (either "get" or "set") and a mark name. a basic implementation that re-implements global mark behavior for user marks would look something like: let s:marks = {} function UserMarkFunc(action, mark) if a:action == "set" let [n, lnum, col, off, curswant] = getcurpos() let s:marks[a:mark] = \ { "line": lnum, "col": col, "file": expand("%:p") } else return s:marks[a:mark] endif endfunction set usermarkfunc=UserMarkFunc of course the user could make the behavior be whatever. It should also be noted that any valid unicode character can now be a mark. It is not just limited to ASCII characters.
| * | | | | | | | | Merge remote-tracking branch 'upstream/master' into userreguserregJosh Rahm2023-11-29
| |\ \ \ \ \ \ \ \ \ | | | |_|_|_|_|/ / / | | |/| | | | | | |
| * | | | | | | | | 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 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 branch 'fix_repeatcmdline' into 20231130_mixJosh Rahm2023-11-30
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | Change from char_u to charfix_repeatcmdlineJosh Rahm2023-11-29
| | | | | | | | | | |
| * | | | | | | | | | Merge remote-tracking branch 'upstream/master' into fix_repeatcmdlineJosh Rahm2023-11-29
| |\ \ \ \ \ \ \ \ \ \ | | | |_|_|/ / / / / / | | |/| | | | | | | |
| * | | | | | | | | | 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.
* | | | | | | | | | refactor: explicitly abort on OOM condition (#26330)Gregory Anders2023-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | assert() would not abort in release builds, meaning an OOM condition would be undetected.
* | | | | | | | | | refactor(IWYU): fix includes for cmdhist.h (#26324)zeertzjq2023-11-30
| | | | | | | | | |
* | | | | | | | | | fix(tui): grow termkey's internal buffer for large escape sequences (#26309)Gregory Anders2023-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some escape sequences (in particular, OSC 52 paste responses) can be very large, even unbounded in length. These can easily overflow termkey's internal buffer. In order to process these long sequences, dynamically grow termkey's internal buffer.
* | | | | | | | | | refactor(IWYU): move typedefs out of globals.h (#26322)zeertzjq2023-11-30
| | | | | | | | | |
* | | | | | | | | | Merge pull request #23657 from luukvbaal/extmarkbfredl2023-11-30
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | fix(extmark): restore extmarks when completing original text
| * | | | | | | | | | fix(extmark): restore extmarks when completing original textLuuk van Baal2023-11-29
| | |_|/ / / / / / / | |/| | | | | | | |
* | | | | | | | | | refactor: move extern variables out of _defs.h files (#26320)zeertzjq2023-11-30
| | | | | | | | | |
* | | | | | | | | | refactor(IWYU): move UI and LineFlags to ui_defs.h (#26318)zeertzjq2023-11-30
| | | | | | | | | |
* | | | | | | | | | build: don't define FUNC_ATTR_* as empty in headers (#26317)zeertzjq2023-11-30
| |_|_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FUNC_ATTR_* should only be used in .c files with generated headers. Defining FUNC_ATTR_* as empty in headers causes misuses of them to be silently ignored. Instead don't define them by default, and only define them as empty after a .c file has included its generated header.
* | | | | | | | | fix(terminal): make backslashes in 'shell' work on WindowsLuki4462023-11-30
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If backslashes are used in 'shell' option, escape them to make Terminal mode work.
* | | | | | | | refactor: move function macros out of vim_defs.h (#26300)zeertzjq2023-11-29
| | | | | | | |
* | | | | | | | refactor: move some constants out of vim_defs.h (#26298)zeertzjq2023-11-29
| | | | | | | |
* | | | | | | | perf(column): only invalidate lines affected by added signLuuk van Baal2023-11-29
| | | | | | | |
* | | | | | | | Merge pull request #26292 from luukvbaal/decorbfredl2023-11-29
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | fix(decorations): do not apply sign highlight id as range attr id