Commit Graph
4016 Commits
Author SHA1 Message Date
zeertzjq 6775a7d98f vim-patch:8.2.3797: no good reason to limit the message history in tiny version
Problem:    No good reason to limit the message history in the tiny version.
Solution:   Always use 200.
https://github.com/vim/vim/commit/1e78deb0779bc403a914712f0842a65d2949dfdf
2022-02-04 09:23:54 +08:00
zeertzjq 4c4a80950e docs: update feature-list
Add "linux", "sun".
Remove "+shellslash" as it should be passed to exists().
Sort alphabetically and consistently use Tabs for indent.
2022-02-04 09:23:54 +08:00
zeertzjq f25ab39faa vim-patch:8.1.0846: not easy to recognize the system Vim runs on
Problem:    Not easy to recognize the system Vim runs on.
Solution:   Add more items to the features list. (Ozaki Kiichi, closes vim/vim#3855)
https://github.com/vim/vim/commit/39536dd557e847e80572044c2be319db5886abe3

Some doc changes have already been applied. Some others are N/A.
"moon" was removed in patch 8.2.0427 so I did not add it.
2022-02-04 09:23:54 +08:00
zeertzjq a87ecf5d08 fix(health): do not run external processes in a shell 2022-02-03 18:38:37 +08:00
zeertzjq 21cdecc8e0 Merge pull request #17245 from zeertzjq/vim-8.2.3219
vim-patch:8.2.3219: :find searches non-existing directories
2022-02-02 22:31:14 +08:00
zeertzjq f4300985d3 Merge pull request #17113 from zeertzjq/vim-8.2.2569
feat(statusline): support multibyte fillchar
2022-02-01 17:57:01 +08:00
zeertzjq 7d72076a6f vim-patch:8.2.3219: :find searches non-existing directories
Problem:    :find searches non-existing directories.
Solution:   Check the path is not "..".  Update help. (Christian Brabandt,
            closes vim/vim#8612, closes vim/vim#8533)
https://github.com/vim/vim/commit/7a4ca32175bef0f9a177052796bd9addd10dc218

Change STRNCAT to STRLCAT as clint doesn't like the former.

Include a typo fix from https://github.com/vim/vim/commit/2f0936cb9a2eb026acac03e6a8fd0b2a5d97508b#diff-7e9292cae1f2ba70dd5b17d2d162693a91044ada6ac99e9c3e8917f32878c097
2022-02-01 17:08:40 +08:00
Christian Clason a562b5771e vim-patch:8.2.4274: Basic and form filetype detection is incomplete (#17259)
Problem:    Basic and form filetype detection is incomplete.
Solution:   Add a separate function for .frm files. (Doug Kearns, closes vim/vim#9675)
https://github.com/vim/vim/commit/c570e9cf68c0fe30366e82c96be460047dd659b9
2022-02-01 08:35:28 +01:00
Christian Clason bddce4b0ff vim-patch:c4573eb12dba (#17258)
Update runtime files
https://github.com/vim/vim/commit/c4573eb12dba6a062af28ee0b8938d1521934ce4
2022-01-31 18:09:51 +01:00
Christian Clason 79b92da0d2 vim-patch:partial:f10911e5db16 (#17248)
Update runtime files
https://github.com/vim/vim/commit/f10911e5db16f1fe6ab519c5d091ad0c1df0d063
2022-01-31 15:27:01 +01:00
Sean Dewar f8f0f14db2 vim-patch:8.2.3433: :delcommand does not take a -buffer option
Problem:    :delcommand does not take a -buffer option.
Solution:   Add the -buffer option.
https://github.com/vim/vim/commit/bdcba24d8597abd5af509c2fb9206e64e713c711
2022-01-30 22:25:08 +00:00
Rory Nesbitt 46bd48f7e9 docs(tutor): modify for Neovim rather than Vim (#17092) 2022-01-30 13:53:01 +01:00
dundargoc abde91ecaf docs: add example to vim.ui.select (#17241)
Closes https://github.com/neovim/neovim/issues/17137
2022-01-30 13:32:55 +01:00
dundargocandzeertzjq 4a96e7809f chore: typo fixes (#16921)
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-01-29 23:15:22 +00:00
Daniel Steinberg 7b3cfee982 vim-patch:partial:04fb916
Update runtime files
https://github.com/vim/vim/commit/04fb916684829f6aa12f33f14d0d0023b458f200
2022-01-29 15:19:30 -05:00
Daniel Steinberg a94632d212 vim-patch:8.2.3917: the eval.txt help file is way too big
Problem:    The eval.txt help file is way too big.
Solution:   Move the builtin function details to a separate file.
https://github.com/vim/vim/commit/1cae5a0a034d0545360387407a7a409310f1efe2

Note: Neovim-specific references to |functions| were changed to
|builtin-functions|. This included updates to:
  1. test/functional/vimscript/functions_spec.lua
  2. test/functional/vimscript/eval_spec.lua
  3. runtime/doc/lua.txt
2022-01-29 15:19:29 -05:00
Gregory Anders 4458413bc0 feat(filetype): convert patterns for mail buffers (#17238) 2022-01-29 12:43:06 -07:00
Björn Linse baec0d3152 feat(provider)!: remove support for python2 and python3.[3-5]
These versions of python has reached End-of-life. getting rid
of python2 support removes a lot of logic to support two
incompatible python versions in the same version.
2022-01-29 19:49:37 +01:00
Christian Clason b2f77c354a vim-patch:8.2.4251: vala files are not recognized (#17235)
Problem:    Vala files are not recognized.
Solution:   Add the *.vala pattern. (closes vim/vim#9654)
https://github.com/vim/vim/commit/97c554d5149c2aa4a43d689c59563e77277265d4
2022-01-29 15:40:29 +01:00
Daniel Steinberg 6dcdec8042 vim-patch:8.2.4052: not easy to resize a window from a plugin (#17028) 2022-01-29 20:37:07 +08:00
Christian Clason 5b9980f01e vim-patch:8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Problem:    *.tf file could be fileytpe "tf" or "terraform".
Solution:   Detect the type from the file contents. (closes vim/vim#9642)
https://github.com/vim/vim/commit/bd8168c7705e315827642f2976ec59e26b7fe009
2022-01-28 17:01:13 +01:00
dundargoc 39d6db3899 docs(helphelp): remove extra backtick interference (#17201)
An extra backtick was explicitly written to show what a backtick looked
like, but it interferes with the syntax highlighting which thinks that
it's a part of a concealed group and couples it with the wrong backtick.
2022-01-27 14:56:18 +01:00
Thomas Vigouroux 8c140be31f feat(ts): expose minimum language version to lua (#17186) 2022-01-27 12:46:56 +01:00
Lewis Russell f9080b24c4 fix(ts): escape lang when loading parsers (#16668)
When trying to load a language parser, escape the value of
the language.

With language injection, the language might be picked up from the
buffer. If this value is erroneous it can cause `nvim_get_runtime_file`
to hard error.

E.g., the markdown expression `~~~{` will extract '{' as a language and
then try to get the parser using `parser/{*` as the pattern.
2022-01-27 10:42:59 +01:00
bfredl 9c4e617064 Merge pull request #17166 from Shougo/vim-8.2.4160
vim-patch:8.2.4160: cannot change the register used for Select mode d…
2022-01-27 08:52:08 +01:00
bfredl 480fbbe296 Merge pull request #17145 from zeertzjq/vim-8.2.0128
vim-patch:8.2.0128: cannot list options one per line
2022-01-27 08:37:36 +01:00
bfredl d50dd12725 Merge pull request #17095 from zeertzjq/vim-8.2.3227
vim-patch:8.2.{3227,3280,4094}: global-local 'virtualedit'
2022-01-27 08:34:57 +01:00
dundargoc ecec957125 vim-patch:8.2.4196: various file types not recognized (#17182)
Problem:    Various file types not recognized.
Solution:   Add patterns to recognize more file types (closes vim/vim#9607)
https://github.com/vim/vim/commit/428058ab3213e81531cbd7989f4267870f35d52e
2022-01-25 08:22:15 +01:00
bfredl 7e2ce35e3b Merge pull request #17156 from zeertzjq/vim-8.2.3584
vim-patch:8.2.{3584,3586,3587}: :command "-keepscript" argument
2022-01-23 19:42:30 +01:00
Christian Clason 4ba7fa1700 vim-patch:6f4754b9f725 (#17179)
Update runtime files
https://github.com/vim/vim/commit/6f4754b9f7253d7e4ba527064a24aff1acdb1e8f
2022-01-23 18:38:41 +01:00
Christian Clason 28352dc6e5 vim-patch:8.2.4188: not all gitconfig files are recognized (#17178)
Problem:    Not all gitconfig files are recognized.
Solution:   Add a few more patterns. (Tim Pope, closes vim/vim#9597)
https://github.com/vim/vim/commit/bcfa11b7dfdfbb4d412dd843a6da3fce68ba2e39
2022-01-23 17:50:45 +01:00
dundargoc ffd9551aa2 vim-patch:8.2.4191: json5 files are not recognized (#17180)
Problem:    json5 files are not recognized.
Solution:   Add a pattern for json5 files. (closes vim/vim#9601)
https://github.com/vim/vim/commit/e15ebeffb35da4bb7d9054358671735ce6988c28
2022-01-23 16:19:48 +01:00
Christian Clason 3d62dd2077 vim-patch:8.2.4187: gnuplot file not recognized (#17177)
Problem:    Gnuplot file not recognized.
Solution:   Recognize ".gnuplot". (closes vim/vim#9588)
https://github.com/vim/vim/commit/ff5cbe8133c6eb5dd86b9e042f32f589627e9bf9
2022-01-23 13:52:37 +01:00
Shougo Matsushita d7ab4e819a vim-patch:8.2.4160: cannot change the register used for Select mode delete
Problem:    Cannot change the register used for Select mode delete.
Solution:   Make CTRL-R set the register to be used when deleting text for
            Select mode. (Shougo Matsushita, closes vim/vim#9531)
https://github.com/vim/vim/commit/4ede01f18884961f2e008880b4964e5d61ea5c36
2022-01-22 11:57:06 +09:00
bfredl e07a4b97f6 Merge pull request #16936 from zeertzjq/no-escape-csi
input: never escape CSI bytes and clean up related names and comments
2022-01-21 18:04:40 +01:00
Christian Clason 9d02fc4c00 vim-patch:8.2.4172: filetype detection for BASIC is not optimal (#17161)
Problem:    Filetype detection for BASIC is not optimal.
Solution:   Improve BASIC filetype detection. (Doug Kearns)
https://github.com/vim/vim/commit/6517f14165cdebf83a07ab9d4aeeb102b4e16e92
2022-01-21 16:45:32 +01:00
zeertzjq 8e84d1b930 vim-patch:8.2.3584: "verbose set efm" reports location of the :compiler command
Problem:    "verbose set efm" reports the location of the :compiler command.
            (Gary Johnson)
Solution:   Add the "-keepscript" argument to :command and use it when
            defining CompilerSet.
https://github.com/vim/vim/commit/58ef8a31d7087d495ab1582be5b7a22796ac2451
2022-01-21 18:18:18 +08:00
zeertzjq 8300d337c8 refactor: remove the <xCSI> key
CSI typed directly is now just <CSI>. The <xCSI> key is obsolete.
2022-01-21 18:08:56 +08:00
xnmet c977d8b43c docs(lsp): fix on_publish_diagnostics example (#17146) 2022-01-21 08:40:48 +01:00
Michael Lingelbach 8e702c14ac feat(lsp): add handler for workspace/workspaceFolders (#17149) 2022-01-21 07:51:34 +01:00
zeertzjq aa4eadd2be vim-patch:8.2.0128: cannot list options one per line
Problem:    Cannot list options one per line.
Solution:   Use ":set!" to list one option per line.
https://github.com/vim/vim/commit/6b915c0c0ee7ef82f8d3d310a4345e098cb929b0
2022-01-20 14:34:24 +08:00
Gregory Anders de6f9233ee refactor: source ftplugin.vim separately from filetype.vim (#17129)
This is a follow-on to #17040. The real benefit of #17040 was ensuring
that the ftplugin FileType autocommand was defined first and thus always
fired first. A side effect of the implementation in #17040 was that
setting variables that modified the state of filetype detection (such as
g:did_load_filetypes or g:do_filetype_lua) could no longer be set in the
user's init file. Filetype detection can also no longer be prevented
from loading by using `:filetype off`.

This PR addresses both of those side effects by unconditionally sourcing
ftplugin.vim and indent.vim before the user's init file (which ensures
that these autocommands run first) and sourcing filetype.vim *after* the
user's init file (thus allowing it to be blocked or modified).
2022-01-18 12:46:41 -07:00
Gregory Anders fcf5dd34fd refactor: enable filetype detection before user startup scripts (#17040) 2022-01-17 14:11:59 -07:00
zeertzjq ad2dbd4b5f fix(man.vim): support calling :Man without a section again (#17119)
When `man -w` is called with an empty string as section name, it may
fail with an error code, which causes :Man to no longer work without a
section. Just remove that argument when no section is specified.
2022-01-17 11:45:46 -07:00
marvim 2c94b75eac docs: regenerate [skip ci] 2022-01-17 18:28:23 +00:00
Michael LingelbachandDmytro Meleshko 9055ec5792 perf(lsp): request only changed portions of the buffer in changetracking (#17118)
This commits introduces two performance improvements in incremental sync:

* avoiding expensive lua string reallocations on each on_lines call by requesting
only the changed chunk of the buffer as reported by firstline and new_lastline
parameters of on_lines
* re-using already allocated tables for storing the resulting lines to reduce the load on
the garbage collector

The majority of the performance improvement is from requesting only changed chunks
of the buffer.

Benchmark:

The following code measures the time required to perform a buffer edit to
that operates individually on each line, common to plugins such as vim-commentary.

    set rtp+=~/.config/nvim/plugged/nvim-lspconfig
    set rtp+=~/.config/nvim/plugged/vim-commentary
    lua require('lspconfig')['ccls'].setup({})
    function! Benchmark(tries) abort
        let results_comment = []
        let results_undo = []
        for i in range(a:tries)
            echo printf('run %d', i+1)
            let begin = reltime()
            normal gggcG
            call add(results_comment, reltimefloat(reltime(begin)))
            let begin = reltime()
            silent! undo
            call add(results_undo, reltimefloat(reltime(begin)))
            redraw
        endfor
        let avg_comment = 0.0
        let avg_undo = 0.0
        for i in range(a:tries)
            echomsg printf('run %3d: comment=%fs undo=%fs', i+1, results_comment[i], results_undo[i])
            let avg_comment += results_comment[i]
            let avg_undo += results_undo[i]
        endfor
        echomsg printf('average: comment=%fs undo=%fs', avg_comment / a:tries, avg_undo / a:tries)
    endfunction
    command! -bar Benchmark call Benchmark(10)

All text changes will be recorded within a single undo operation. Both the
comment operation itself and the undo operation will generate an on_lines event
for each changed line. Formatter plugins using setline() have also been found
to exhibit the same problem (neoformat, :RustFmt in rust.vim), as this function
too generates an on_lines event for every line it changes.

Using the neovim codebase as an example (commit 2ecf0a4)
with neovim itself built at 2ecf0a4 with
CMAKE_BUILD_TYPE=Release shows the following performance improvement:

src/nvim/lua/executor.c, 1432 lines:
  - baseline, no optimizations:             comment=0.540587s undo=0.440249s
  - without double-buffering optimization:  comment=0.183314s undo=0.060663s
  - all optimizations in this commit:       comment=0.174850s undo=0.052789s

src/nvim/search.c, 5467 lines:
  - baseline, no optimizations:             comment=7.420446s undo=7.656624s
  - without double-buffering optimization:  comment=0.889048s undo=0.486026s
  - all optimizations in this commit:       comment=0.662899s undo=0.243628s

src/nvim/eval.c, 11355 lines:
  - baseline, no optimizations:             comment=41.775695s undo=44.583374s
  - without double-buffering optimization:  comment=3.643933s undo=2.817158s
  - all optimizations in this commit:       comment=1.510886s undo=0.707928s

Co-authored-by: Dmytro Meleshko <dmytro.meleshko@gmail.com>
2022-01-17 08:19:33 -08:00
Christian Clason 3906b2d4fc vim-patch:fd31be29b822 (#17114)
Update runtime files
https://github.com/vim/vim/commit/fd31be29b8220ee1cb0b3460c82f2634ae3cc370
2022-01-17 11:58:36 +01:00
zeertzjq be15ac06ba feat(statusline): support multibyte fillchar
This includes a partial port of Vim patch 8.2.2569 and some changes to
nvim_eval_statusline() to allow a multibyte fillchar. Literally every
line of C code touched by that patch has been refactored in Nvim, and
that patch contains some irrelevant foldcolumn tests I'm not sure how to
port (as Nvim's foldcolumn behavior has diverged from Vim's).
2022-01-16 19:54:27 +08:00
Daniel Steinberg 7085e5b0c8 fix(lsp): avoid nil workspace/symbol query (#17107) 2022-01-15 23:08:35 -08:00
Michael Lingelbach a0201b6ed3 fix(lsp): fetch offset_encoding from client in references (#17104) 2022-01-15 15:49:29 -08:00