aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* Merge pull request #27330 from seandewar/win_set_config-fixesSean Dewar2024-03-09
|\ | | | | | | | | fix(api): various window-related function fixes This is a big one!
| * vim-patch:partial:9.1.0117: Stop split-moving from firing WinNew and ↵Sean Dewar2024-03-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | WinNewPre autocommands Problem: win_splitmove fires WinNewPre and possibly WinNew when moving windows, even though no new windows are created. Solution: don't fire WinNew and WinNewPre when inserting an existing window, even if it isn't the current window. Improve the accuracy of related documentation. (Sean Dewar) https://github.com/vim/vim/commit/96cc4aef3d47d0fd70e68908af3d48a0dce8ea70 Partial as WinNewPre has not been ported yet (it currently has problems anyway).
| * fix(api): make open_win block only enter/leave events if !enter && !noautocmdSean Dewar2024-03-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: nvim_open_win blocking all win_set_buf autocommands when !enter && !noautocmd is too aggressive. Solution: temporarily block WinEnter/Leave and BufEnter/Leave events when setting the buffer. Delegate the firing of BufWinEnter back to win_set_buf, which also has the advantage of keeping the timing consistent (e.g: before the epilogue in enter_buffer, which also handles restoring the cursor position if autocommands didn't change it, among other things). Reword the documentation for noautocmd a bit. I pondered modifying do_buffer and callees to allow for BufEnter/Leave being conditionally disabled, but it seems too invasive (and potentially error-prone, especially if new code paths to BufEnter/Leave are added in the future). Unfortunately, doing this has the drawback of blocking ALL such events for the duration, which also means blocking unrelated such events; like if window switching occurs in a ++nested autocmd fired by win_set_buf. If this turns out to be a problem in practice, a different solution specialized for nvim_open_win could be considered. :-)
| * fix(api): make win_set_config with "win" for splits need "split/vertical"Sean Dewar2024-03-08
| | | | | | | | | | | | | | | | | | | | Problem: currently, for splits, nvim_win_set_config accepts win without any of split or vertical set, which has little effect and seems error-prone. Solution: require at least one of split or vertical to also be set for splits. Also, update nvim_win_set_config docs, as it's no longer limited to just floating and external windows.
* | docs: support inline markdownLewis Russell2024-03-09
| | | | | | | | | | | | - Tags are now created with `[tag]()` - References are now created with `[tag]` - Code spans are no longer wrapped
* | feat!: remove deprecated functionsdundargoc2024-03-09
|/
* vim-patch:9.1.0154: shm=F not respected when reloading buffer with 'autoread'zeertzjq2024-03-08
| | | | | | | | | | | | Problem: shm=F not respected when reloading buffer with 'autoread' Solution: Check SHM_FILEINFO in buf_check_timestamp() (Shougo Matsushita) closes: vim/vim#14144 https://github.com/vim/vim/commit/9db39b0ec90600bb41faec3a12b934b17c298b1f Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
* vim-patch:9.1.0157: Duplicate assignment in f_getregion() (#27766)zeertzjq2024-03-08
| | | | | | | | | Problem: Duplicate assignment in f_getregion(). Solution: Remove the duplicate assignment. Also improve getregion() docs wording and fix an unrelated typo (zeertzjq) closes: vim/vim#14154 https://github.com/vim/vim/commit/0df8f93bdaea77a1afb9f4eca94fe67ec73e6df2
* fix(type): remove incorrect arguments from vim.rpc*altermo2024-03-07
|
* feat(lua): deprecate vim.tbl_add_reverse_lookupMaria José Solano2024-03-07
|
* vim-patch:9.1.0155: can only get getregion() from current buffer (#27757)zeertzjq2024-03-07
| | | | | | | | | | | Problem: can only call getregion() for current buffer Solution: Allow to retrieve selections from different buffers (Shougo Matsushita) closes: vim/vim#14131 https://github.com/vim/vim/commit/84bf6e658da51126bdd2e50af1f40cabd149343f Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
* fix(fs): use generics for better typingaltermo2024-03-06
|
* docs(lsp): nits and typos in client.luaMaria José Solano2024-03-06
|
* fix(types): move type annotation for `IterMod`Will Hopkins2024-03-06
|
* refactor(types): more fixes (2)Lewis Russell2024-03-06
|
* docs(treesitter): fix ambiguous parameter description about `lang`Yi Ming2024-03-06
|
* fix(lsp): actually send diagnostic-tags back to the serverLewis Russell2024-03-06
| | | | Fixes #27318
* feat(lsp): report fswatch errorsLewis Russell2024-03-06
| | | | | | Resolves #27713 Co-authored-by: Tomasz N <przepompownia@users.noreply.github.com>
* refactor(lua): more efficient vim.tbl_islistLewis Russell2024-03-06
| | | | | No need to run a full iteration of the table. Simply return false when the next key isn't what we expect.
* refactor(types): more fixesLewis Russell2024-03-06
|
* vim-patch:63c39e4ef749Christian Clason2024-03-06
| | | | | | | | | | | runtime(c): Recognize "__inline" (vim/vim#14145) `__inline` is recognized by GCC, and may even be preferred, as MSVC does not recognize `__inline__`. https://github.com/vim/vim/commit/63c39e4ef749883e96a83b9f647ac91516c0d1be Co-authored-by: Wu Yongwei <wuyongwei@gmail.com>
* docs(lua): improvements for LSP and DiagnosticLewis Russell2024-03-05
|
* vim-patch:e5c9ba601573 (#27737)zeertzjq2024-03-05
| | | | | | | | | | | | | | | | | | runtime(vim): Update base-syntax, fix escaping :syn and :hi sub-groups (vim/vim#14137) * runtime(vim): Update base-syntax, fix escaping :syn and :hi sub-groups - Remove contained :syntax and :highlight sub-groups from the function body cluster. These should only match in the respective commands. - Remove vimSynLine syntax group from several clusters. The definition of vimSynLine was removed in Vim 5.3. * runtime(vim): Update syntax generator, use standard Last Change date format The de facto standard date format is YYYY MMM DD. https://github.com/vim/vim/commit/e5c9ba6015735b8b12e35dc5873bfc957dcbb600 Co-authored-by: dkearns <dougkearns@gmail.com>
* vim-patch:d9ebd46bd090Christian Clason2024-03-04
| | | | | | | | | | | | runtime(mswin): Use unnamed register when clipboard not working (vim/vim#13813) * Use unnamed register while clipboard not exist * Do not need to specify the unnamed register explicitly fixes: vim/vim#13809 https://github.com/vim/vim/commit/d9ebd46bd090c598adc82e683b4462909f2d4ea5 Co-authored-by: Shixian Li <34830785+znsoooo@users.noreply.github.com>
* vim-patch:1bdc9435c1a1Christian Clason2024-03-04
| | | | | | | | | | | | | runtime(sh): Update syntax file, fix issue vim/vim#962 (vim/vim#14138) Allow the opening parenthesis of a multiline array assignment, within an if statement, to appear at EOL. Fixes issue vim/vim#962. https://github.com/vim/vim/commit/1bdc9435c1a14ca1a30e5b5927ab63f603ec4409 Co-authored-by: dkearns <dougkearns@gmail.com>
* vim-patch:e84490311ba3Christian Clason2024-03-04
| | | | | | | | runtime(css): update syntax script https://github.com/vim/vim/commit/e84490311ba32cb258cc738bc3caa8b448c84c8b Co-authored-by: Jay Sitter <jay@jaysitter.com>
* fix(tohtml): replace hex escape with digit escape (#27728)altermo2024-03-04
|
* docs(lua): clarify when `vim.bo`/`vim.wo` acts like `:setlocal` (#27708)Luna Saphie Mittelbach2024-03-04
|
* vim-patch:691aee8b0705zeertzjq2024-03-04
| | | | | | | | | | | | | | runtime(vim): Update base-syntax, fix issue vim/vim#14135 (vim/vim#14136) Fix incorrect error highlighting for function calls in :command definitions. vimFunctionError should be restricted to :function header lines. fixes: vim/vim#14135 https://github.com/vim/vim/commit/691aee8b070506e6eea8ec166bf69d9a03002790 Co-authored-by: dkearns <dougkearns@gmail.com>
* vim-patch:c4aef9a97b36zeertzjq2024-03-04
| | | | | | | | | | | | | runtime(vim): Update base-syntax, improve :augroup highlighting (vim/vim#14125) - Explicitly match the bang and group name in :aug! {name}. - Allow any characters in a group name. - Match default group switch marker, END. - Match :aug without arguments (list command). https://github.com/vim/vim/commit/c4aef9a97b3673a12de7a131d239e7f49d11f630 Co-authored-by: dkearns <dougkearns@gmail.com>
* vim-patch:b3030b653bbdChristian Clason2024-03-03
| | | | | | | | | | | | | | | | | | | | | | runtime(java): Recognise text blocks (vim/vim#14128) Also, accept as valid the space escape sequence `\s`. Also, consistently use the claimed `javaDebug` prefix for syntax group definitions kept under `g:java_highlight_debug`. Since `javaStringError` is commented out for its generality, let's comment out `javaDebugStringError`, its copy, as well. References: https://openjdk.org/jeps/378 https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.7 Closes vim/vim#10910. https://github.com/vim/vim/commit/b3030b653bbdc08c91138001d1987d804f6ebf46 Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
* vim-patch:e93afc2e6126Christian Clason2024-03-03
| | | | | | | | | | | runtime(r,rhelp,rmd,rnoweb,rrst): Update ftplugin, browsefilter labels (vim/vim#14126) Use the standard format for browsefilter labels: "File Description (*.ext1, *.ext2, *.ext3)" https://github.com/vim/vim/commit/e93afc2e612647e79e1082096ffd6c61e01ac691 Co-authored-by: dkearns <dougkearns@gmail.com>
* fix(lsp): directly rename the existing buffers when renaming (#27690)Jaehwang Jung2024-03-02
| | | | | | | | | | | | | | | | Problem: `vim.lsp.util.rename()` deletes the buffers that are affected by renaming. This has undesireable side effects. For example, when renaming a directory, all buffers under that directory are deleted and windows displaying those buffers are closed. Also, buffer options may change after renaming. Solution: Rename the buffers with :saveas. An alternative approach is to record all the relevant states and restore it after renaming, but that seems to be more complex. In fact, the older version was attempting to restore the states but only partially and incorrectly.
* fix(lsp): defer writing error msgs (#27688)Jaehwang Jung2024-03-02
| | | | | | | | | | | | | Context: Nvim catches errors from the user's `on_exit` and rpc handler callbacks and prints the error message. Problem: Printing the error message uses Nvim api functions. But callbacks mentioned above run in `:h lua-loop-callbacks` where most of `vim.api` is not allowed, so Nvim itself raises error. Solution: `vim.schedule()` the error reporting when necessary.
* vim-patch:100a665634a0Christian Clason2024-03-02
| | | | | | | | | | | | | | | | | | | | | | runtime(java): Improve the recognition of literals (vim/vim#14120) * Emend the Unicode and octal escape sequence patterns; * Accept the (repeated) underscore separators in all numerical literals; * Recognise hexadecimal floating-point literals. (The space escape sequence '\s' will be introduced along with text blocks in another PR.) References: https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.3 https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.1 https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.2 https://docs.oracle.com/javase/specs/jls/se17/html/jls-3.html#jls-3.10.7 https://github.com/vim/vim/commit/100a665634a0a2edbc755daf453c4915800684dd Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
* Merge pull request #27347 from lewis6991/fswatchLewis Russell2024-03-01
|\ | | | | feat(lsp): add fswatch watchfunc backend
| * feat(lsp): add fswatch watchfunc backendLewis Russell2024-03-01
| | | | | | | | | | | | | | | | | | | | | | Problem: vim._watch.watchdirs has terrible performance. Solution: - On linux use fswatch as a watcher backend if available. - Add File watcher section to health:vim.lsp. Warn if watchfunc is libuv-poll.
| * fix(lsp): cancel watchers when closing a clientLewis Russell2024-03-01
| |
| * refactor(watch): simplify filechanges processingLewis Russell2024-03-01
| |
| * refactor(watch): general tidy upLewis Russell2024-03-01
| | | | | | | | | | | | - Rename watch.poll to watch.watchdirs - Unify how include and exclude is applied - Improve type hints
* | docs: improve/add documentation of Lua typesLewis Russell2024-03-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added `@inlinedoc` so single use Lua types can be inlined into the functions docs. E.g. ```lua --- @class myopts --- @inlinedoc --- --- Documentation for some field --- @field somefield integer --- @param opts myOpts function foo(opts) end ``` Will be rendered as ``` foo(opts) Parameters: - {opts} (table) Object with the fields: - somefield (integer) Documentation for some field ``` - Marked many classes with with `@nodoc` or `(private)`. We can eventually introduce these when we want to.
* | fix(types): rename win_get_config return type to win_configWill Hopkins2024-03-02
| | | | | | Follow-up to #27397
* | vim-patch:87410ab3f556 (#27696)zeertzjq2024-03-02
|/ | | | | | | | | runtime(doc): some improvements to getregion() docs (vim/vim#14122) - Mention the default selection behavior - Remove useless sentence - Correct description about space padding https://github.com/vim/vim/commit/87410ab3f556121dfb3b30515f40c5f079edd004
* fix(lsp): rename undofile when renaming (#27684)Jaehwang Jung2024-03-01
| | | | | | | Problem: After `rename()`, the undo information for the renamed file(s) are lost. Solution: Rename the undofile as well.
* vim-patch:8fad5d58874eChristian Clason2024-02-29
| | | | | | | | | | | runtime(doc,netrw): update "Last Change header", remove trailing whitespace Update Last-Change Header for netrw and doc/indent.txt, fix a trailing whitespace in indent.txt and make CI happy. https://github.com/vim/vim/commit/8fad5d58874ed724f673ac8a83739164cead3961 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:b4eb3f1e4489Christian Clason2024-02-29
| | | | | | | | | | | | | | | | | | | | | | | runtime(yaml): disable multiline_scalar detection by default There have been many complaints about Yaml indenting too much, because it considers values to be multi-line by default, which leads to unintended indenting for (apparently most) users. So let's hide this feature behind the new feature flag, keep it simple and prefer single line value key pairs by default. If you want the old behaviour, set the following value: > :let g:yaml_indent_multiline_scalar = 1 If not set, it will indent the same as the previous line. closes vim/vim#13845 https://github.com/vim/vim/commit/b4eb3f1e44896b12fdfa3885a78c6eaa181eaeff Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:56b7da3c051fChristian Clason2024-02-29
| | | | | | | | | | | runtime(netrw): handle file/dir symlinks specifically in tree mode fixes: vim/vim#2386 related: vim/vim#3609 https://github.com/vim/vim/commit/56b7da3c051fe1a5fd76534998c17b22d83c0899 Co-authored-by: Christian Brabandt <cb@256bit.org>
* docs(eval): getline and indent function support string typeglepnir2024-02-29
| | | | | | Problem: getline and indent function missing string type in param. Solution: add string type in eval gen.
* fix(lsp): use plain loop for non-list-like table of protocol valuesChristian Clason2024-02-29
| | | | | | Fixup for #27628 Closes #27669
* vim-patch:9ecf02cd5f5fChristian Clason2024-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(java): Recognise _when_ clauses in _switch_ blocks Also: - distinguish _yield_ when used as a contextual keyword from when used qualified as a method or a method reference (as can be seen in testdir/input/java_switch.java, variables and method declarations named _yield_ will be recognised as the namesake keyword--consider picking other names for variables, and defining g:java_highlight_functions to have method names painted; since _yield_ statements can have trailing parens, they must be recognised as statements, for only qualified _yield_ method calls are supported); - recognise grouped _default_ _case_ labels; - describe primitive types for _case_ labels (JLS, §14.11, §3.10.1); - recognise some non-ASCII identifiers (see javaLambdaDef, javaUserLabel) (further improvement for better recognition of identifiers will be arranged in a separate PR). Because the arrow '->' is used in two kinds of expressions, lambda (abstractions) and _switch_, necessary changes were made for the recognition of either (and further improvement touching lambda expressions will be separately arranged). Because 'default' is used for instance method declarations in interfaces and in _switch_ labels, necessary changes were made for the recognition of either (and further improvement touching method declarations will be separately arranged). Finally, it deemed appropriate to put 'yield' in the syntax group of javaOperator rather than javaStatement, for its member 'var' is also another contextual keyword (e.g., this is valid syntax: "var var = var(test.var);"). References: https://openjdk.org/jeps/361 (Switch Expressions) https://openjdk.org/jeps/440 (Record Patterns) https://openjdk.org/jeps/441 (Pattern Matching for switch) Also, add a Java specific filetype plugin for the syntax test, so that no soft-wrapping of long indented lines occur. Otherwise the syntax scripts would miss a few lines during scrolling and verification of the screen dumps. closes: vim/vim#14105 https://github.com/vim/vim/commit/9ecf02cd5f5feabe096f66cd5f503a822c78793f Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>