aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Merge branch 'fix_repeatcmdline' into mixmixJosh Rahm2022-09-15
|\
| * 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 'floattitle' into mixJosh Rahm2022-09-12
|\ \
| * \ Merge remote-tracking branch 'upstream/master' into floattitleJosh Rahm2022-09-12
| |\ \
| * \ \ Merge remote-tracking branch 'upstream/master' into floattitleJosh Rahm2022-08-22
| |\ \ \
| * | | | feat(floattitle): add ability to title floating windowsJosh Rahm2022-08-22
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is accomplished with adding a few new parameters to th e float config: * title: The title as a string * title_pos: The position of the title is one of: * kTitleLeft * kTitleCenter * kTitleRight The title does support statusline-esque highlighting semantics.
* | | | Merge branch 'userreg' into mixJosh Rahm2022-09-12
|\ \ \ \
| * \ \ \ Merge remote-tracking branch 'upstream/master' into userregJosh Rahm2022-09-12
| |\ \ \ \ | | | |_|/ | | |/| |
| * | | | Merge remote-tracking branch 'upstream/master' into userregJosh Rahm2022-08-22
| |\ \ \ \ | | | |_|/ | | |/| |
| * | | | feat(userregs): getreg() now works for multibyte registersJosh Rahm2022-08-22
| | | | |
| * | | | feat(userregs): make the @" register call back into the userreg.Josh Rahm2022-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this changce, the userregs would not be repeated with @", now they can be. There is still the problem of repeating with a count does not call into the userreg, but that would be a lot of work to implement
| * | | | 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 'usermarks' into mixJosh Rahm2022-09-12
|\ \ \ \ \
| * \ \ \ \ Merge remote-tracking branch 'upstream/master' into usermarksJosh Rahm2022-09-12
| |\ \ \ \ \ | | | |_|/ / | | |/| | |
| * | | | | Merge remote-tracking branch 'upstream/master' into usermarksJosh Rahm2022-08-22
| |\ \ \ \ \ | | | |_|/ / | | |/| | |
| * | | | | feat(usermarks) getpos() now works for multibyte marksJosh Rahm2022-08-22
| | | | | |
| * | | | | feat(usermarks): missing option_def for p_umfJosh Rahm2022-08-22
| | | | | |
| * | | | | 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 colorcolcharJosh Rahm2022-09-12
|\ \ \ \ \ \ | | |_|_|/ / | |/| | | |
| * | | | | vim-patch:9.0.0299: error messages for setcmdline() could be better (#20169)zeertzjq2022-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Error messages for setcmdline() could be better. Solution: Use more specific error messages. (Yegappan Lakshmanan, closes vim/vim#10995) https://github.com/vim/vim/commit/25f1e5556259d536c8608185145b0769262873ff Cherry-pick tv_check_for_opt_number_arg() from Vim.
| * | | | | vim-patch:9.0.0448: SubRip files are not recognized (#20167)Christian Clason2022-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: SubRip files are not recognized. Solution: Add a pattern for SubRip. (closes vim/vim#11113) https://github.com/vim/vim/commit/5a4eb55122e45444d3a6c56ce108ce29bc8e52ab
| * | | | | vim-patch:8.2.4671: 'wildignorecase' is sometimes not used for glob() (#20165)zeertzjq2022-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 'wildignorecase' is sometimes not used for glob(). Solution: Also use 'wildignorecase' when there are no wildcards. (closes vim/vim#10066, closes vim/vim#8350) https://github.com/vim/vim/commit/a3157a476bfa8c3077d510cc8400093c0d115df5
| * | | | | vim-patch:8.2.5034: there is no way to get the byte index from a virtual columnzeertzjq2022-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: There is no way to get the byte index from a virtual column. Solution: Add virtcol2col(). (Yegappan Lakshmanan, closes vim/vim#10477, closes vim/vim#10098) https://github.com/vim/vim/commit/5a6ec10cc80ab02eeff644ab19b82312630ea855 Cherry-pick tv_check_for_number_arg() from Vim. Cherry-pick pathshorten() doc change.
| * | | | | refactor: move f_screenpos() to move.czeertzjq2022-09-12
| | | | | |
| * | | | | vim-patch:8.2.2664: Vim9: not enough function arguments checked for stringzeertzjq2022-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Vim9: not enough function arguments checked for string. Solution: Check in balloon functions. Refactor function arguments. https://github.com/vim/vim/commit/32105ae88f3aa6a6af30336f0bc9f8eb81292cd7 Cherry-pick removal of useless check from patch 8.2.3840. vim-patch:8.2.3083: crash when passing null string to charclass() Problem: Crash when passing null string to charclass(). Solution: Bail out when string pointer is NULL. (Christian Brabandt, closes vim/vim#8498, closes vim/vim#8260) https://github.com/vim/vim/commit/72463f883cdfd08e29ab0018ef3889284848d5f1
| * | | | | vim-patch:8.2.2646: Vim9: error for not using string doesn't mention argumentzeertzjq2022-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Vim9: error for not using string doesn't mention argument. Solution: Add argument number. https://github.com/vim/vim/commit/f28f2ac425600b88da0bdcc12a82cd620f575681
| * | | | | vim-patch:9.0.0443: blueprint files are not recognized (#20155)Christian Clason2022-09-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Blueprint files are not recognized. Solution: Add a pattern for blueprint files. (Gabriele Musco, closes vim/vim#11107) https://github.com/vim/vim/commit/cce82a55b8105560a2ef724999c856966337b48e
| * | | | | Merge pull request #20068 from dundargoc/refactor/char_u/10bfredl2022-09-10
| |\ \ \ \ \ | | | | | | | | | | | | | | refactor: replace char_u with char 10: remove `FNAMECMP`, `FNAMENCMP` and `STRLCAT`
| | * | | | | refactor: replace char_u with charDundar Göc2022-09-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Work on https://github.com/neovim/neovim/issues/459
| * | | | | | vim-patch:9.0.0434: gitignore files are not recognized (#20143)Christian Clason2022-09-10
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | Problem: gitignore files are not recognized. Solution: Add patterns for the gitignore filetype. (closes vim/vim#11102) https://github.com/vim/vim/commit/9ba2786f15f0b53a90fd221832a5bedfc6dbfe20
| * | | | | refactor: replace char_u with charDundar Göc2022-09-09
| | | | | | | | | | | | | | | | | | | | | | | | Work on https://github.com/neovim/neovim/issues/459
| * | | | | vim-patch:9.0.0427: Drupal theme files are not recognized (#20138)Christian Clason2022-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Drupal theme files are not recognized. Solution: Use php filetype for Drupl theme files. Remove trailing spaces. (Rodrigo Aguilera, closes vim/vim#11096) https://github.com/vim/vim/commit/8995c4cd4e697141faf74da9a87e0c1221bfb161
| * | | | | vim-patch:9.0.0424: gitattributes files are not recognized (#20134)Christian Clason2022-09-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: gitattributes files are not recognized. Solution: Add patterns to match gitattributes files. (closes vim/vim#11085) https://github.com/vim/vim/commit/7d56cfc861e57145f003315efd835cf5dfd5b145
| * | | | | vim-patch:9.0.0417: Jsonnet files are not recognized (#20119)Christian Clason2022-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Jsonnet files are not recognized. Solution: Add a pattern for Jsonnet files. (Cezary Drożak, closes vim/vim#11073, closes vim/vim#11081) https://github.com/vim/vim/commit/2a4c885d54171f68ec2c2d6eb4ae281c7fefb802
| * | | | | build: remove unnecessary policy related codedundargoc2022-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having cmake version 3.10 as the required minimum version ensures these are set to new by default.
| * | | | | vim-patch:9.0.0412: compiler warning for unused argumentzeertzjq2022-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Compiler warning for unused argument. Solution: Add UNUSED. https://github.com/vim/vim/commit/e5a420fb33518e08313f653f3031bc36f949e086
| * | | | | vim-patch:9.0.0410: struct member cts_lnum is unusedzeertzjq2022-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Struct member cts_lnum is unused. Solution: Delete it. https://github.com/vim/vim/commit/d7633114af2365e32080b61af473db347a3489c2
| * | | | | vim-patch:9.0.0409: #{g:x} was seen as a curly-braces expressionii142022-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: #{g:x} was seen as a curly-braces expression. Solution: Do never see #{} as a curly-braces expression. (closes vim/vim#11075) https://github.com/vim/vim/commit/7c7e1e9b98d4e5dbe7358c795a635c6f1f36f418
| * | | | | vim-patch:8.2.3702: first key in dict is seen as curly expression and failszeertzjq2022-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: First key in dict is seen as curly expression and fails. Solution: Ignore failure of curly expression. (closes vim/vim#9247) https://github.com/vim/vim/commit/98cb90ef865089a5ddd20bc0303d449fb7d97fb2
| * | | | | vim-patch:9.0.0403: 'equalalways' may be off when 'laststatus' is zero (#20109)luukvbaal2022-09-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 'equalalways' may be off when 'laststatus' is zero. Solution: call last_status() before win_equal(). (Luuk van Baal, closes https://github.com/vim/vim/pull/11070) https://github.com/vim/vim/commit/fd7e60a33ddd83a82da4eb6267f1c12fa926f32b
| * | | | | fix(options): mark `winhighlight` as list style (#19477)ii142022-09-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also add missing fcs, lcs and winhighlight to list of key-value options for `vim.opt`. Co-authored-by: ii14 <ii14@users.noreply.github.com>
| * | | | | vim-patch:9.0.0402: javascript module files are not recoginzed (#20108)Christian Clason2022-09-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Javascript module files are not recoginzed. Solution: Recognize "*.jsm" files as Javascript. (Brett Holman, closes vim/vim#11069) https://github.com/vim/vim/commit/bb6c4073e79e86ef69c315338e00c12f0d8d6395
| * | | | | Merge pull request #20100 from bfredl/luafuncbfredl2022-09-07
| |\ \ \ \ \ | | | | | | | | | | | | | | refactor(typval): change FC_CFUNC abstraction into FC_LUAREF
| | * | | | | refactor(typval): change FC_CFUNC abstraction into FC_LUAREFbfredl2022-09-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "cfuncs" was only ever used to wrap luarefs. As vim8script is finished and will not be developed further, support for "cfuncs" for other usecases are not planned. This abstraction was immediately broken anyway in order to get luarefs out of userfuncs again. Even if a new kind of userfunc needs to be invented in the future, likely just extending the FC_... flag union directy, instead of invoking unnecessary heap object and c function pointer indirection, will be a more straightforward design pattern.
| * | | | | | Merge pull request #17329 from cryptomilk/asn-vterm-0-2Christian Clason2022-09-06
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | | build(deps): bump libvterm to 0.3-RC1
| | * | | | | feat(term): add support for libvterm >= 0.2Andreas Schneider2022-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Andreas Schneider <asn@cryptomilk.org>