aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | | | | | Merge pull request #16789 from janlazo/vim-8.1.1184Jan Edmund Lazo2021-12-25
|\ \ \ \ \ \ | | | | | | | | | | | | | | vim-patch:8.1.{1184,1379}
| * | | | | | vim-patch:8.1.1379: filechanged test hangsJan Edmund Lazo2021-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Filechanged test hangs. Solution: Do not check 'autoread'. https://github.com/vim/vim/commit/8239c62067c8d40720560496b25a82662126f2a2
| * | | | | | vim-patch:8.1.1184: undo file left behind after running testJan Edmund Lazo2021-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Undo file left behind after running test. Solution: Delete the undo file. (Dominique Pelle, closes vim/vim#4279) https://github.com/vim/vim/commit/137c14bb4f18198ed38659dcfbdfd749115c7ab5
| * | | | | | test: port test_filechanged.vimJan Edmund Lazo2021-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I can't port patch 8.1.0820. Attempt failed in https://github.com/neovim/neovim/pull/12948. test_filechanged.vim is required for later patches.
* | | | | | | vim-patch:8.2.3880: Solution filter files are not recognized (#16779)Christian Clason2021-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Solution filter files are not recognized. Solution: Add pattern *.slnf and use json. (Doug Kearns) https://github.com/vim/vim/commit/70a120b72b2b48800f881725c58241cd170893f8
* | | | | | | Merge pull request #16724 from VVKot/vim-8.2.3850Jan Edmund Lazo2021-12-25
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | vim-patch:8.2.{3850,3855}
| * | | | | | vim-patch:8.2.3855: illegal memory access when displaying a blobVVKot2021-12-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Illegal memory access when displaying a blob. Solution: Append a NUL at the end. (Yegappan Lakshmanan, closes vim/vim#9372) https://github.com/vim/vim/commit/bc404bfb32cf2bef34050d2aeae0ea72ccf980cc
| * | | | | | vim-patch:8.2.3850: illegal memory access when displaying a partialVVKot2021-12-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Illegal memory access when displaying a partial. Solution: Terminate the string with a NUL. (closes vim/vim#9371) https://github.com/vim/vim/commit/2de5371a755abd287dab6ff544924715a76d4abe
* | | | | | | test(old): reenable Test_virtual_replace() (#16674)zeertzjq2021-12-25
| | | | | | |
* | | | | | | feat(lua): add vim.spell (#16620)Lewis Russell2021-12-25
| | | | | | |
* | | | | | | Merge pull request #16725 from VVKot/vim-8.1.0040Björn Linse2021-12-25
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | vim-patch:8.1.0040: warnings from 64-bit compiler
| * | | | | | | vim-patch:8.1.0040: warnings from 64-bit compilerVVKot2021-12-20
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Warnings from 64-bit compiler. Solution: Add type casts. (Mike Williams) https://github.com/vim/vim/commit/e31e256ba1769a3a3ed7840d5cc9a01ab058b8bc
* | | | | | | vim-patch:8.2.3873: go.mod files are not recognized (#16757)dundargoc2021-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: go.mod files are not recognized. Solution: Check for the file name. (closes vim/vim#9380) https://github.com/vim/vim/commit/82b3b4c6cf2973fe767f8e2311482af0bd95267e
* | | | | | | Merge pull request #16762 from zeertzjq/grid-truncate-pum-double-widthBjörn Linse2021-12-25
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Truncate double-width character at the end of popup menu correctly
| * | | | | | | refactor(pum_redraw): rename col -> grid_colzeertzjq2021-12-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is initialized to `col_off`, while in Vim this variable `col` that is used in the same places is initialized to `pum_col`. This can cause confusion in patch porting, and it caused Vim patch 8.2.1995 to be ported incorrectly. (I reverted the incorrect part in the last commit though.) Rename it to `grid_col` to make it clear that it is different from Vim's `col` variable.
| * | | | | | | fix(pum_redraw): use grid_puts_len() to truncate the textzeertzjq2021-12-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nvim already resizes grid to the required width, so there is no need to truncate the text in pum_redraw(). What's more, truncation is currently done incorrectly because Vim patch 8.2.1995 was ported incorrectly. This nearly reverts the truncation part of Vim patch 8.2.1995, but not the part that reduces unnecessary calls to pum_redraw(). The original PR https://github.com/vim/vim/pull/7306 didn't explain much about which part of it actually reduces redraws.
| * | | | | | | fix(screen): truncate when overwriting right half of a double-width charzeertzjq2021-12-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike the code above, this truncates the character in the same grid. This is mainly for the pum scrollbar in the next commit.
| * | | | | | | fix(screen): truncate double-width character correctlyzeertzjq2021-12-24
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | The `c = '>';` is useless here, because it is not used later. `u8c` should also need to be set to '>', and `u8cc` needs to be cleared.
* / | | | | | fix(options): disallow empty 'fdc' and 'scl' (#16765)Sean Dewar2021-12-24
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Empty string values for these options aren't actually allowed, but check_opt_strings allows empty string options. It so happens that 'scl' handles empty string like "auto", but empty 'fdc' causes glitchiness (win_fdccol_count returns an incorrect value). Just disallow empty string values for these options completely.
* | | | | | vim-patch:8.2.3874: cannot highlight the number column for a signJames McCoy2021-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot highlight the number column for a sign. Solution: Add the "numhl" argument. (James McCoy, closes vim/vim#9381) https://github.com/vim/vim/commit/a80aad717464760a5a50ac2201ce35b24a0cf7a5
* | | | | | refactor: fix comment spacing in option.h (#16749)zeertzjq2021-12-21
| | | | | |
* | | | | | fix(api): make nil value in nvim_set_option_value clear local value (#16710)Gregory Anders2021-12-21
| | | | | | | | | | | | | | | | | | | | | | | | For special options such as 'undolevels' and 'scrolloff', this sets the local value to the special "unset" value (e.g. -12345 for 'undolevels').
* | | | | | refactor: remove some chdir-related unnecessary calls and checkszeertzjq2021-12-20
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | xmalloc() always retuns a valid pointer. Calling os_chdir() with the same directory as the current one doesn't do anything other than wasting time.
* | | | | Merge pull request #16657 from lewis6991/unused_warnBjörn Linse2021-12-19
|\ \ \ \ \ | |/ / / / |/| | | | chore(): suppress -Wunused-but-set-variable warns
| * | | | chore: suppress -Wunused-but-set-variable warnsLewis Russell2021-12-19
| | | | |
* | | | | fix: update last cursor on first CursorMoved (#16698)Michael Lingelbach2021-12-18
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes https://github.com/neovim/neovim/issues/16625 https://github.com/neovim/neovim/issues/12923 The first defined CursorMoved autocommand will immediately fire if the cursor has previously moved upon definition of the autocommand. Plugins add dummy autocommands such as: ```lua autocmd CursorMoved * execute '' ``` to avoid this behavior. Instead, when defining a new CursorHold autocommand, force update the last cursor position. See https://github.com/vim/vim/issues/2053
* | | | fix(build): check for empty value of LUAC_PRG (#16711)Gregory Anders2021-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If the LUAC_PRG environment variable is defined, but empty, compilation would still be attempted but would be malformed. This results in garbage bytes being included. Fix this by checking that LUAC_PRG is both defined *and* non-empty.
* | | | vim-patch:8.2.3843: dep3patch files are not recognized (#16700)Christian Clason2021-12-18
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Dep3patch files are not recognized. Solution: Recognize dep3patch files by their location and content. (James McCoy, closes vim/vim#9367) https://github.com/vim/vim/commit/647ab4cede4dbf412d24748f8e0a64d1cb9239f4
* | | | feat(tui): add error logging (#16615)erw72021-12-18
| | | |
* | | | autocmd: RecordingEnter, RecordingLeave (#16684)Gregory Anders2021-12-18
|\ \ \ \ | |/ / / |/| | |
| * | | test(old): change usage of Q to gQAxel Dahlberg2021-12-18
| | | | | | | | | | | | | | | | | | | | | | | | test(old) fix Test_ex_mode_count_overflow test(old) change usage of Q to gQ
| * | | docs(autocmd): update docs to match implementationThomas Vigouroux2021-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | docs(reg_recorded): add links to relevant docs docs(Recording): update docs to match implementation docs(Q) update references of Q to be gQ docs(autocmd) add description about state of reg_record{ing,ed} for RecordingLeave docs(vim_diff) add Recording{Enter,Leave} to features docs(index) removed duplicate gQ docs(options) removed line about gQ erroring in visual mode Update runtime/doc/vim_diff.txt Co-authored-by: zeertzjq <zeertzjq@outlook.com> docs(vim_diff) removed double mention of Q
| * | | feat(autocmd): add Recording autocmdsThomas Vigouroux2021-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | feat(eval): add reg_recorded() This function is used the get the last recorded register. style(Recording): rename handler to match suggestions fix(RecordingLeave): send autocommand earlier This makes the autocommand fire just before setting reg_recorded to reg_recording, this way we clearly show that we are actually just before actually quitting the recording mode.
* | | | Merge pull request #16681 from zeertzjq/vim-8.2.3825James McCoy2021-12-17
|\ \ \ \ | |/ / / |/| | | vim-patch:8.2.3825: various comments could be improved
| * | | vim-patch:8.2.3825: various comments could be improvedzeertzjq2021-12-16
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Various comments could be improved. Solution: Improve the comments. https://github.com/vim/vim/commit/52797bae1710621926c03a2611c40a692c96fb44
* | | | perf: pre-compile embedded Lua source into bytecode (#16631)Gregory Anders2021-12-16
|/ / / | | | | | | | | | | | | | | | The Lua modules that make up vim.lua are embedded as raw source files into the nvim binary. These sources are loaded by the Lua runtime on startuptime. We can pre-compile these sources into Lua bytecode before embedding them into the binary, which minimizes the size of the binary and improves startuptime.
* | | Merge pull request #16617 from pekdon/forkptyJames McCoy2021-12-16
|\ \ \ | | | | | | | | fix: add forkpty for SunOS variants
| * | | fix: add forkpty for SunOS variantsClaes Nästén2021-12-12
| | | | | | | | | | | | | | | | | | | | forkpty is missing on Solaris < 11 and Illumos, provide fallback implementation for non Solaris 11 users.
* | | | Merge pull request #16134 from zeertzjq/screenpos-borderBjörn Linse2021-12-16
|\ \ \ \ | | | | | | | | | | fix(screenpos, float): add top and left border adjustment
| * | | | fix(screenpos, float): add top and left border adjustmentzeertzjq2021-12-15
| | | | |
* | | | | Merge pull request #16666 from mjlbach/fix/bad-castMichael Lingelbach2021-12-15
|\ \ \ \ \
| * | | | | chore: improve naming consistency in str_utf_startMichael Lingelbach2021-12-15
| | | | | |
| * | | | | fix: do not cast offset to char_uMichael Lingelbach2021-12-15
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | * str_utf_start/end both cast the offset into the utf string to a char_u, a pointer + long is well-defined and the cast is unnecessary. This previously resulted in issues for offsets greater than 256.
* | | | | fix(terminal): fix resize crash with pending scrollback (#14891)Sean Dewar2021-12-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | refresh_scrollback assumes pending scrollback rows exist only if the terminal window height decreased (or the screen was full). However, after accumulating scrollback, it's possible in some cases for the terminal height to increase before refresh_scrollback is called via invalidation (especially when the terminal buffer isn't initially displayed in a window before nvim_open_term), which may crash. As we'll have enough room for some scrollback rows, just append them to the top of the buffer until it fills the window, then continue with the previous logic for any remaining scrollback rows if necessary.
* | | | | vim-patch:8.2.3814: .csx files and .sln files are not recognized (#16662)Christian Clason2021-12-15
| | | | | | | | | | | | | | | | | | | | | | | | | Problem: .csx files and .sln files are not recognized. Solution: Add filetype patterns. (Doug Kearns) https://github.com/vim/vim/commit/cfabad9bcf45650dee1f1f41ec4047f82a12f323
* | | | | fix(quickfix): avoid O(N^2) when filling from string typval (#16654)Nicolas Hillegeer2021-12-15
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When filling a quickfix/loclist from a string-typed VimL variable, the complexity is O(N^2) in the number of lines in the variable. The problem is caused by using `xstrlcpy(3)` to copy the characters from the current position up to the next newline into the quickfix/loclist buffer in a loop. strlcpy(3) returns the length of `src`, so by necessity it has to compute `strlen(src)`. This means scanning the full rest of the typval on every iteration while only copying a small fraction (up to the next '\n'). This is not a problem whenever the srclen-to-copylen ratio is close to 1, which it usually is. But not in this case. Since we already calculated exactly how many bytes we want to copy, we should be using memcpy(3). This problem is not present in Vim, as it uses `vim_strncpy`, a `strncpy(3)`-alike, which stops at either `\0` or `n`, whichever comes first. The quickfix/loclist window can be filled using a: 1. File (used by commands like :grep/:make/... to source directly from their errorfile) 2. Buffer (used by :cbuffer and its variants) 3. Typval a. String (used by :cexpr and its variants) b. List of strings (used by setqflist(), setloclist(), :cepxr and its variants) This commit optimizes case (3a), especially when the typval is a long string. The pathological path is triggered by (e.g.) :grep enhancements as found in https://gist.github.com/romainl/56f0c28ef953ffc157f36cc495947ab3: function! Grep(...) return system(join([&grepprg] + a:000), ' ')) endfunction :cgetexpr Grep('foo') It would've been better for Neovim to use `systemlist` here, before this commit.
* | | | vim-patch:8.2.3805: i3config files are not recognized (#16645)Christian Clason2021-12-14
| | | | | | | | | | | | | | | | | | | | | | | | Problem: i3config files are not recognized. Solution: Add patterns to match i3config files. (Quentin Hibon, closes vim/vim#7969) https://github.com/vim/vim/commit/8176be159859deb9cf6455565bd7b24b3dcf17b9
* | | | Merge pull request #16602 from zeertzjq/tui-end-streamed-pasteJames McCoy2021-12-13
|\ \ \ \ | |_|_|/ |/| | |
| * | | fix(tui): end streamed paste correctly when key buffer is emptyzeertzjq2021-12-10
| | | |
* | | | Merge pull request #16613 from bfredl/vim-patch-8.2.3777Björn Linse2021-12-11
|\ \ \ \ | | | | | | | | | | vim-patch:8.2.3777: spell file write error not checked