aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ops.c
Commit message (Collapse)AuthorAge
* Add user-registers for arbitrary registers.Josh Rahm2021-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows users to define behaviors for arbitrary registers. These registers can be any character including multibyte characters. This means that any character may be used as a register and if that register is not a builtin register, it will defer to a user-defined vimscript function for behavior. This is done throw an option called 'userregfun' The function that 'userregfun' defines is a function that takes 3 arguments: action - Either set to "put" or "yank" register - The character representing the register. content - If the action is "yank" this string contains the content yanked. Multibyte registers are still broken for expressions. So while let @&=xyz Works as expected, let @λ=xyz will still throw a parse error.
* refactor: convert TRUE/FALSE to true/false (#15660)dundargoc2021-09-18
|
* Merge pull request #15364 from seandewar/vim-8.2.3337Jan Edmund Lazo2021-09-17
|\ | | | | vim-patch:8.2.{3286,3289,3293,3298,3313,3321,3328,3330,3331,3337,3354,3355,3357,3360,3369,3375}
| * vim-patch:8.2.3369: auto formatting after "cw" leaves cursor in wrong spotSean Dewar2021-09-17
| | | | | | | | | | | | Problem: Auto formatting after "cw" leaves cursor in wrong spot. Solution: Do not auto-format after the delete. (closes vim/vim#8789) https://github.com/vim/vim/commit/6b36d2a16d7931bac82ef8b5654c68ac456b24bf
* | refactor(style): switch-case formatting, "uncrustify:indent-off" #15669dundargoc2021-09-17
|/ | | | | | * refactor: disable formatting for attribute in macro * fixup: disable/enable uncrustify with uncrustify:indent-off/on * fixup: stop indenting contents inside braces in case * fixup: remove case brace if no variable declaration
* fix: "redundant cast to the same type" #15662dundargoc2021-09-14
| | | Apply "redundant cast to the same type" fix from clangd.
* refactor: replace TRUE/FALSE with true/false #15647dundargoc2021-09-13
|
* vim-patch:8.1.1355: obvious mistakes are accepted as valid expressionsSean Dewar2021-09-11
| | | | | | | | | Problem: Obvious mistakes are accepted as valid expressions. Solution: Be more strict about parsing numbers. (Yasuhiro Matsumoto, closes vim/vim#3981) https://github.com/vim/vim/commit/16e9b85113e0b354ece1cb4f5fcc7866850f3685 Update vim_str2nr_spec.lua to add more tests that use strict = true.
* Merge #15626 vim-patch:8.1.{2281,2283},8.2.{2903,3391,3397}Justin M. Keyes2021-09-10
|\
| * vim-patch:8.1.2281: 'showbreak' cannot be set for one windowSean Dewar2021-09-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 'showbreak' cannot be set for one window. Solution: Make 'showbreak' global-local. https://github.com/vim/vim/commit/ee85702c10495041791f728e977b86005c4496e8 Change in oneleft() is N/A as the relevant condition was removed (has_mbyte is always true for Nvim, so the condition was always false; see commit 73dc9e9). Use wp over curwin for curs_columns(). Required for v8.2.2903 (otherwise test fails as it'll leave the global option set). N/A patches for version.c: vim-patch:8.1.2283: missed on use of p_sbr Problem: Missed on use of p_sbr. Solution: Add missing p_sbr change. https://github.com/vim/vim/commit/91e22eb6e09ec384496fccde812072033fd9e616 Already ported in commit 43a874a.
* | refactor: format files with uncrustify #15607dundargoc2021-09-10
|/
* refactor: format files with uncrustifyDundar Göc2021-09-07
|
* fix(bufupdates): send correct updates for visual pasteThomas Vigouroux2021-08-25
| | | | | | One step further towards stable tree-sitter. Co-authored-by: Björn Linse <bjorn.linse@gmail.com>
* refactor: replace TRUE/FALSE with true/false #15425dundargoc2021-08-22
|
* refactor(plines): move horizontal size functions to plines.cBjörn Linse2021-08-11
| | | | fix style.
* Merge pull request #12971 from vigoux/decurbufBjörn Linse2021-07-09
|\ | | | | Decrease reliance on curbuf in BUFEMPTY and `undo.c`
| * buffer: move BUFEMPTY to a functionThomas Vigouroux2021-07-06
| |
| * buffer: don't rely on curbuf in BUFEMPTYThomas Vigouroux2021-07-06
| |
* | chore: use codespell to spell check #15016dundargoc2021-07-07
|/
* vim-patch:8.2.3072: "zy" does not work well when "virtualedit' is "block"Jan Edmund Lazo2021-06-29
| | | | | | | | | | | | | | | | | Problem: The "zy" command does not work well when 'virtualedit' is set to "block". (Johann Höchtl) Solution: Make endspaces zero. (Christian Brabandt, closes vim/vim#8468, closes vim/vim#8448) https://github.com/vim/vim/commit/7d7bcc6ba01454c1cbb1dcbf5f11c3a4051535d6 N/A patches for version.c: vim-patch:8.2.3075: xxd always reports an old version string Problem: Xxd always reports an old version string. (Åsmund Ervik) Solution: Update the version string with the last known change date. (Jürgen Weigert, closes vim/vim#8475) https://github.com/vim/vim/commit/80b2ba3e9602e09ab523e78946fbb26da311b68b
* Merge pull request #14335 from chentau/extmark_delbytesBjörn Linse2021-06-29
|\ | | | | Extmarks: manually zero out `curbuf->deleted_bytes2` on substitute and join
| * Manually zero out deleted_bytes2 when substituting and joining lineschentau2021-06-29
| |
* | vim-patch:8.2.2971: cannot yank a block without trailing spacesJan Edmund Lazo2021-06-10
|/ | | | | | Problem: Cannot yank a block without trailing spaces. Solution: Add the "zy" command. (Christian Brabandt, closes vim/vim#8292) https://github.com/vim/vim/commit/544a38e44db0f25ec4fa7a2a4666cf28a2336f33
* vim-patch:8.2.2914: cannot paste a block without adding paddingJan Edmund Lazo2021-05-31
| | | | | | | | | Problem: Cannot paste a block without adding padding. Solution: Add "zp" and "zP" which paste without adding padding. (Christian Brabandt, closes vim/vim#8289) https://github.com/vim/vim/commit/2fa9384ca1b600b934bec81a72c5fb7ce757503a Cherry-pick Test_normal_z_error() from patch v8.2.0369.
* Apply patch from clasondisrupted2021-05-10
|
* make get_region_bytecount end-exclusivechentau2021-05-09
|
* refactor nvim_buf_set_lines to use extmark_splicechentau2021-05-09
|
* Merge pull request #14502 from chentau/extmark_pasteBjörn Linse2021-05-07
|\ | | | | Splice extmarks on every line for block visual paste
| * splice extmarks on every line for block visual pastechentau2021-05-06
| |
* | vim-patch:8.2.0860: cannot use CTRL-A and CTRL-X on unsigned numbersJan Edmund Lazo2021-04-28
|/ | | | | | Problem: Cannot use CTRL-A and CTRL-X on unsigned numbers. Solution: Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes vim/vim#6144) https://github.com/vim/vim/commit/aaad995f8384a77a64efba6846c9c4ac99de0953
* extmarks: remove curbuf->deleted_bytes2 from op_deletechentau2021-04-16
|
* clang/'Logic error': set vcol in do_put()Jan Edmund Lazo2021-04-02
|
* vim-patch:8.1.2380: using old C style commentsJan Edmund Lazo2021-03-29
| | | | | | Problem: Using old C style comments. Solution: Use // comments where appropriate. https://github.com/vim/vim/commit/306139005c31ea7e6f892dd119beba3c94dcb982
* vim-patch:8.1.0542: shiftwidth() does not take 'vartabstop' into accountVVKot2021-03-28
| | | | | | | | Problem: shiftwidth() does not take 'vartabstop' into account. Solution: Use the cursor position or a position explicitly passed. Also make >> and << work better with 'vartabstop'. (Christian Brabandt) https://github.com/vim/vim/commit/f951416a8396a54bbbe21de1a8b16716428549f2
* vim-patch:8.1.0105: all tab stops are the sameVVKot2021-03-28
| | | | | | | Problem: All tab stops are the same. Solution: Add the variable tabstop feature. (Christian Brabandt, closes vim/vim#2711) https://github.com/vim/vim/commit/04958cbaf25eea27eceedaa987adfb354ad5f7fd
* Extmarks: correct buffer events on blockwise pastechentau2021-03-23
|
* pos: define MAXCOL to INT_MAXJan Edmund Lazo2021-02-23
| | | | | Partial port of patch v8.1.0953. Remove useless casts on MAXCOL.
* fix(buf_updates): send updates when putting past last lineThomas Vigouroux2021-02-08
| | | | Fixes #13710
* Use abort() instead of assert(false) for things that should never happenJames McCoy2021-01-31
| | | | | | | | assert() is compiled out for release builds, but we don't want to continue running in these impossible situations. This also resolves the "implicit fallthrough" warnings for the asserts in switch cases.
* vim-patch:8.1.2212: cannot see the selection type in :reg outputJan Edmund Lazo2020-12-25
| | | | | | | | Problem: Cannot see the selection type in :reg output. (Ayberk Aydın) Solution: Add c/l/b. (Christian Brabandt, closes vim/vim#5110, closes vim/vim#4546) https://github.com/vim/vim/commit/3691f1ee72b68a47e6dcc75927bfa46565cf3614 Patch v8.1.0999 is not ported so ":registers" does not omit register 1.
* vim-patch:8.2.2189: cannot repeat a command that uses the small delete registerJan Edmund Lazo2020-12-22
| | | | | | | | | | | | | | | Problem: Cannot repeat a command that uses the small delete register. Solution: Store the register name instead of the contents. (Christian Brabandt, closes vim/vim#7527) https://github.com/vim/vim/commit/032a2d050b82b146d70d6ff714838ee62c07d8ad N/A patches for version.c: vim-patch:8.2.2192: Codecov on github actions fails Problem: Codecov on github actions fails. Solution: Revert to codecov script. (Ozaki Kiichi, closes vim/vim#7529) https://github.com/vim/vim/commit/e5492609b3a153c631f1d600ecdef1af1c913bef
* vim-patch:8.2.2166: auto format doesn't work when deleting textJan Edmund Lazo2020-12-20
| | | | | | Problem: Auto format doesn't work when deleting text. Solution: Make "x" trigger auto format. (closes vim/vim#7504) https://github.com/vim/vim/commit/d0a1dee3f197d41434df4cf0271066b6aeb690fc
* refactor: pass window to was_set_insecurelyMatthieu Coudron2020-11-23
| | | | | | working on get_foldtext and wanted to get rid of the curwin backup/restore. Turns out it's not possible else f_foldtext is run on the same window. Kept the cleanup anyway.
* api: add API for themesBjörn Linse2020-11-01
| | | | | | | | | | co-author: hlpr98 <hlpr98@gmail.com> (dict2hlattrs function) orange is sus?? NOVEMBER DAWN erase the lie that is redraw_later()
* vim-patch:8.2.0901: formatting CJK text isn't optimalJan Edmund Lazo2020-10-23
| | | | | | Problem: Formatting CJK text isn't optimal. Solution: Properly break CJK lines. (closes vim/vim#3875) https://github.com/vim/vim/commit/e52702f00322c8a8861efd0bd6a3775e685e5685
* Fix byte updates for blockwise paste at buffer endKillTheMule2020-09-30
|
* Fix buffer_updates on blockwise pasteKillTheMule2020-09-30
| | | | Fixes #12718.
* folds: pass column on fold creationMatthieu Coudron2020-09-28
| | | | | useful if we want to have inline folds later and/or let users create folds that remember their start/end columns.
* lint: is lintBjörn Linse2020-09-19
|
* buffer updates: fix issues with "change" operatorBjörn Linse2020-09-19
|