aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
...
| * | refactor(lsp): use metatable for buf_versions (#29304)Ilia Choly2024-06-14
| | | | | | | | | | | | | | | | | | This reduces the number of nil checks around buf_versions usage Test changes were lifted from 5c33815 Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
| * | fix(lsp): check for nil response from server (#29196)Tama McGlinn2024-06-14
| | | | | | | | | | | | | | | | | | | | | | | | this only changes the error message, so that it is clear that the error is with the LSP server, rather than being a crash inside nvim runtime scripts. We are already doing a lot of validation, it's just that nil was being overlooked here. This fixes issue #27395
| * | vim-patch:partial:9.1.0482: termdebug plugin needs more love (#29329)Yinzuo Jiang2024-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: termdebug plugin needs more love Solution: start with some more Vim9 refactoring to improve maintenance and readability (Ubaldo Tiberi) List of Changes and the Reasoning Behind Them: 1) Introduction of InitScriptVariables() Function: Reasoning: This function has been introduced to ensure that when you open and close Termdebug, and then open it again, there are no leftover script variable values from the previous session. Leftover values could potentially cause issues. The goal is for each Termdebug session to be independent of previous sessions. At startup, all script variables are initialized. The only exception is g:termdebug_loaded located at the very beginning of the script to prevent sourcing the script twice. The variables are declared at script level and defined in InitScriptVariables(). 2) More Descriptive Variable Names: Reasoning: The names of variables have been made more comprehensive. Almost every Termdebug buffer now has a variable to indicate its name and another variable to indicate its number, improving code readability and maintainability. Due to the latest discussion around the &mousemodel option save/restore mechanism, perhaps some other variables shall be prepended with saved_. 3) Consistent Naming for GDB Terminal Buffers: Reasoning: The name of the GDB terminal buffer now matches the name of the GDB program being used, e.g., 'gdb', 'mygdb', 'arm-eabi-none-gdb', etc. This ensures clarity and consistency in identifying buffers. 4) Other minor improvements: Moved EchoErr() on top, added another test, some refactoring, mainly changed several 0 and 1 to true and false closes: vim/vim#14980 https://github.com/vim/vim/commit/ef8eab86e29091eaff0d3fb0bc3f7c90f468f6aa Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@volvo.com>
| * | vim-patch:4407461: runtime(netrw): correctly test for windows in NetrwGlob() ↵zeertzjq2024-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#29330) use has("win32") instead of has("win64") otherwise it won't work on x86 systems. https://github.com/vim/vim/commit/440746158ce0fec2880ccacc03f39dbc954c5543 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | fix(terminal): set local values of window options (#29326)zeertzjq2024-06-14
| | |
| * | vim-patch:1487947: runtime(netrw): glob() on windows fails with [] in ↵zeertzjq2024-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directory name (#29324) fixes: vim/vim#14952 closes: vim/vim#14991 https://github.com/vim/vim/commit/1487947fb625d44ed02382ea6b0d5bf72b12583a Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | vim-patch:d353d27: runtime(doc): restore description of "$" in col() and ↵zeertzjq2024-06-14
| | | | | | | | | | | | | | | | | | | | | | | | virtcol() (vim/vim#14981) These are different from line() and getpos(). https://github.com/vim/vim/commit/d353d2782032b91498601afefee4256592f48074
| * | vim-patch:02f3eba: runtime(doc): deduplicate getpos(), line(), col(), virtcol()zeertzjq2024-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Move the main description to getpos() and link to that from the other functions. closes: vim/vim#14970 https://github.com/vim/vim/commit/02f3ebacfbfa1f892347d7532278f24620e68300
| * | vim-patch:902b766: runtime(java): Include element values in non-marker ↵Christian Clason2024-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | annotations (vim/vim#14979) Make a formal definition for normal and single-element kinds of annotations that otherwise require for their containment to repeat each time all syntax groups that describe element values. Reference: https://docs.oracle.com/javase/specs/jls/se21/html/jls-9.html#jls-9.7 https://github.com/vim/vim/commit/902b766858fad89ab30b4e0a92ddd1244b2a4cbe Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
| * | Merge pull request #29103 from gpanders/test-no-tgcGregory Anders2024-06-12
| |\ \ | | | | | | | | test: do not set termguicolors in test runner
| | * | fix(vim.text): remove assert from vim.text.hexdecodeGregory Anders2024-05-31
| | | | | | | | | | | | | | | | Instead, return nil plus an error message if the input is invalid.
| * | | Merge pull request #29303 from lewis6991/fix/wobufLewis Russell2024-06-12
| |\ \ \ | | | | | | | | | | fix(vim.wo): never allow non-zero bufnr
| | * | | fix(vim.wo): never allow non-zero bufnrLewis Russell2024-06-12
| | | | |
| * | | | refactor(terminal): move :terminal defaults to _defaults.luaGregory Anders2024-06-12
| | | | |
| * | | | feat(highlight): add StatusLineTerm and StatusLineTermNC groupsGregory Anders2024-06-12
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | These highlight groups are used for the statusline in :terminal windows. By default they link to StatusLine and StatusLineNC (respectively), so there is no visual difference unless a colorscheme defines these groups separately.
| * | | vim-patch:210b39c: runtime(doc): clarify documentation for "v" position at ↵zeertzjq2024-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | line() (#29296) Problem: the previous documentation falsely states that "v" always refers to the start of a visual area. In fact, the reference of "v" and "." complement each other. If the cursor is at the start of a (characterwise) visual area, then "v" refers to the end of the area. Solution: be more verbose and explicit about the connection between "." and "v" and also refer to |v_o| which many vim users will be familiar with for visual areas. https://github.com/vim/vim/commit/210b39c2d686d875e2464ca1f42131453dc6bd41 Co-authored-by: Peter Aronoff <peter@aronoff.org>
| * | | vim-patch:b4e648a: runtime(doc): fix typos in syntax.txt (#29293)zeertzjq2024-06-12
| | | | | | | | | | | | | | | | | | | | https://github.com/vim/vim/commit/b4e648a0066940e0e8b513ff2e7347b5a3473694 Co-authored-by: Ken Takata <kentkt@csc.jp>
| * | | vim-patch:959c3c8: runtime(vim): Update base-syntax, configurable comment ↵zeertzjq2024-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | string highlighting (vim/vim#14931) Allow highlighting of strings within comments to be disabled by setting g:vimsyn_comment_strings to false. https://github.com/vim/vim/commit/959c3c887b2e52c7141b2a09a53634481911b1b7 Co-authored-by: dkearns <dougkearns@gmail.com>
| * | | vim-patch:059cbe8: runtime(vim): Update base-syntax, match multiline ↵zeertzjq2024-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | continued comments (vim/vim#13936) Match multiline (continued) line comments. Continued tail comments are not supported yet. https://github.com/vim/vim/commit/059cbe8933550e4f2b10ab564fb4398e95280198 Co-authored-by: dkearns <dougkearns@gmail.com>
| * | | vim-patch:2e3b2a8: runtime(kdl): use shiftwidth() instead of &tabstop in ↵Christian Clason2024-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | indent script closes: vim/vim#14962 https://github.com/vim/vim/commit/2e3b2a8d8971850f15fb367ddb358a8565e15324 Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
| * | | feat(terminal): add support for copying with OSC 52 in embedded terminal ↵Gregory Anders2024-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#29117) When libvterm receives the OSC 52 escape sequence it ignores it because Nvim does not set any selection callbacks. Install selection callbacks that forward to the clipboard provider, so that setting the clipboard with OSC 52 in the embedded terminal writes to the system clipboard using the configured clipboard provider.
| * | | fix(types): add some vim.fn type annotationsnotomo2024-06-11
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Some vim.fn have no type annotations. Solution: Add type annotations.
| * | | fix(types): use vararg return type annotationWill Hopkins2024-06-11
| | | | | | | | | | | | | | | | build(types): allow vararg returns in function types
| * | | vim-patch:2d88210: runtime(kdl): include syntax, indent and ftplugin filesChristian Clason2024-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | closes: vim/vim#14956 https://github.com/vim/vim/commit/2d88210b3c8516c30ed104054e5cdaef67880755 Co-authored-by: inzuo Jiang <jiangyinzuo@foxmail.com> Co-authored-by: Aram Drevekenin <aram@poor.dev>
| * | | vim-patch:b8076f9: runtime(deb822sources): add missing Enabled field in ↵Christian Clason2024-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | syntax script closes: vim/vim#14898 It lacks the support of Enabled: boolean option field [1]: e.g. Types: deb Uris: https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs/ Components: main Suites: vscodium Architectures: amd64 i386 arm64 armhf Enabled: yes Signed-By: /var/lib/extrepo/keys/vscodium.asc This patch was also forwarded to upstream. [2] [1] https://manpages.debian.org/unstable/apt/sources.list.5.en.html#DEB822-STYLE_FORMAT [2] https://salsa.debian.org/vim-team/vim-debian/-/merge_requests/16 https://github.com/vim/vim/commit/b8076f92a1a1a12101ab8288e9e173e687afecff Co-authored-by: Kentaro Hayashi <kenhys@gmail.com>
| * | | vim-patch:7e9a1a7: runtime(svelte): basic svelte ftplugin fileChristian Clason2024-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | closes: vim/vim#14949 https://github.com/vim/vim/commit/7e9a1a75b80c73b1dbe83adb69c9708aa2f0bc4d Co-authored-by: Igor <igorlfs@ufmg.br>
| * | | refactor(lua): improve type annotationsLewis Russell2024-06-11
| | |/ | |/|
| * | fix(lsp): do not reset buf version when detaching client (#29242)Ilia Choly2024-06-10
| | |
| * | Merge #29238 from clason/feat/help-tocJustin M. Keyes2024-06-10
| |\ \
| | * | docs: fix more treesitter parsing errorsChristian Clason2024-06-09
| | | |
| | * | feat(help): use treesitter for table of contentsChristian Clason2024-06-09
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Creating the table of contents for `gO` is complicated. Solution: Use treesitter instead.
| | * | build(deps): bump tree-sitter-vimdoc to v3.0.0Christian Clason2024-06-08
| | | |
| * | | fix(glob): handle overlapping `{}` condition elements #29236Jon Huhn2024-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change fixes an issue where glob patterns like `{a,ab}` would not match `ab` because the first option `a` matches, then the end of the string is expected but `b` is found, and LPeg does not backtrack to try the next option `ab` which would match. The fix here is to also append the rest of the pattern to the generated LPeg pattern for each option. This changes a glob `{a,ab}` from being parsed as ("a" or "ab") "end of string" to ("a" "end of string" or "ab" "end of string") Here, matching against `ab` would try the first option, fail to match, then proceed to the next option, and match. The sacrifice this change makes is dropping support for nested `{}` conditions, which VSCode doesn't seem to support or test AFAICT. Fixes #28931 Co-authored-by: Sergey Slipchenko <faergeek@gmail.com>
| * | | feat(lsp): include end_col, end_lnum in vim.lsp.buf.locations_to_items #29164Tom Praschan2024-06-09
| | | |
| * | | vim-patch:9c4389a: runtime(doc): Fix small style issues (#29263)zeertzjq2024-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | closes: vim/vim#14942 https://github.com/vim/vim/commit/9c4389acc307943a2cd754ecbec3834810d152e4 Co-authored-by: h-east <h.east.727@gmail.com>
| * | | vim-patch:d6b4afb: runtime(java): Exclude lambda expressions from _when_ ↵Christian Clason2024-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _switch-case_ label clauses (vim/vim#14945) These guard clauses are always boolean expressions, whereas lambda expressions can only appear in either an assignment, a casting, or an invocation context. References: https://docs.oracle.com/javase/specs/jls/se21/html/jls-14.html#jls-14.11.1 https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.27 https://github.com/vim/vim/commit/d6b4afb636aed7eaf709eb27c4944a1263a0f887 Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
| * | | fix(runtime): add commentstring for glsl ftpluginSamuel Born2024-06-09
| | | |
| * | | feat(lua): add `vim._with`dundargoc2024-06-08
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's a function to perform operations in their own sealed context, similar to pythons `with`. This helps ease operations where you need to perform an operation in a specific context, and then restore the context. Marked as private for now as it's not ready for public use. The current plan is to start using this internally so we can discover and fix any problems. Once this is ready to be exposed it will be renamed to `vim.with`. Usage: ```lua local ret = vim._with({context = val}, function() return "hello" end) ``` , where `context` is any combination of: - `buf` - `emsg_silent` - `hide` - `horizontal` - `keepalt` - `keepjumps` - `keepmarks` - `keeppatterns` - `lockmarks` - `noautocmd` - `options` - `sandbox` - `silent` - `unsilent` - `win` (except for `win` and `buf` which can't be used at the same time). This list will most likely be expanded in the future. Work on https://github.com/neovim/neovim/issues/19832. Co-authored-by: Lewis Russell <lewis6991@gmail.com>
| * | fix(man): filter OSC 8 hyperlink markup #29171Lennard Hofmann2024-06-07
| | | | | | | | | | | | | | | Problem: `man cmake` shows "8;;https://cmake.orghttps://cmake.org8;;" Solution: Remove noise so that it shows as "https://cmake.org". See also: https://en.wikipedia.org/wiki/ANSI_escape_code#OSC
| * | feat: get/set namespace properties #28728altermo2024-06-07
| | | | | | | | | | | | ref https://github.com/neovim/neovim/pull/28432 ref https://github.com/neovim/neovim/issues/28469
| * | fix(lsp): fix reverse sorting of same position text edits (#29212)Al Colmenar2024-06-07
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Text edits with the same position (both line and character) were being reverse sorted prior to being applied which differs from the lsp spec Solution: Change the sort order for just the same position edits
| * | fix(lsp): revert buf_versions deprecation/replacement (#29217)Mathias Fußenegger2024-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Revert "fix(lsp): account for changedtick version gap on modified reset (#29170)" This reverts commit 2e6d295f799c27372e5c0c44727fa613c81717fd. * Revert "refactor(lsp): replace util.buf_versions with changedtick (#28943)" This reverts commit 5c33815448e11b514678f39cecc74e68131d4628.
| * | docs: misc (#28837)dundargoc2024-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Danymat <d.danymat@gmail.com> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: Jakub Okoński <jakub@okonski.org> Co-authored-by: John L. Villalovos <john@sodarock.com> Co-authored-by: Maria José Solano <majosolano99@gmail.com> Co-authored-by: Michaili K <git@michaili.dev> Co-authored-by: TheLeoP <eugenio2305@hotmail.com> Co-authored-by: Tobias Schmitz <tobiasschmitz2001@gmail.com> Co-authored-by: W20MC <157727813+W20MC@users.noreply.github.com> Co-authored-by: Will Hopkins <willothyh@gmail.com> Co-authored-by: Yifan Hu <141280278+b0ae989c@users.noreply.github.com> Co-authored-by: glepnir <glephunter@gmail.com> Co-authored-by: prljav <74116121+prljav@users.noreply.github.com>
| * | vim-patch:ce47d32: runtime(cpp): Change 'cms' for C++ to '// %s'Christian Clason2024-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | fixes: vim/vim#14911 closes: vim/vim#14926 https://github.com/vim/vim/commit/ce47d32b03bb7df0100b2625ef68fad1eb4646e3 Co-authored-by: Luc Hermitte <luc.hermitte@csgroup.eu>
| * | feat(editorconfig): add support for spelling_language (#28638)sus-domesticus2024-06-06
| | |
| * | vim-patch:92f4e91: runtime(vim): Update base-syntax, allow whitespace before ↵zeertzjq2024-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :substitute pattern (#29210) Allow whitespace between the :substitute command and its pattern argument. Although unusual, it is supported and there are examples in the wild. Match Vi compatible :substitute commands like :s\/{string}/. See :help E1270. fixes: vim/vim#14920 closes: vim/vim#14923 https://github.com/vim/vim/commit/92f4e915908962da2c1969a8d60f1563e06ee00e Co-authored-by: Doug Kearns <dougkearns@gmail.com>
| * | vim-patch:9.1.0469: Cannot have buffer-local value for 'completeopt'zeertzjq2024-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot have buffer-local value for 'completeopt' (Nick Jensen). Solution: Make 'completeopt' global-local (zeertzjq). Also for some reason test Test_ColonEight_MultiByte seems to be failing sporadically now. Let's mark it as flaky. fixes: vim/vim#5487 closes: vim/vim#14922 https://github.com/vim/vim/commit/529b9ad62a0e843ee56ef609aef7e51b7dc8a4c8
| * | fix(tui): move $COLORTERM check to _defaults.lua (#29197)Gregory Anders2024-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently check $COLORTERM in the TUI process to determine if the terminal supports 24 bit color (truecolor). If $COLORTERM is "truecolor" or "24bit" then we automatically assume that the terminal supports truecolor, but if $COLORTERM is set to any other value we still query the terminal. The `rgb` flag of the UI struct is a boolean which only indicates whether the UI supports truecolor, but does not have a 3rd state that we can use to represent "we don't know if the UI supports truecolor". We currently use `rgb=false` to represent this "we don't know" state, and we use XTGETTCAP and DECRQSS queries to determine at runtime if the terminal supports truecolor. However, if $COLORTERM is set to a value besides "truecolor" or "24bit" (e.g. "256" or "16) that is a clear indication that the terminal _does not_ support truecolor, so it is incorrect to treat `rgb=false` as "we don't know" in that case. Instead, in the TUI process we only check for the terminfo capabilities. This must be done in the TUI process because we do not have access to this information in the core Neovim process when `_defaults.lua` runs. If the TUI cannot determine truecolor support from terminfo alone, we set `rgb=false` to indicate "we don't know if the terminal supports truecolor yet, keep checking". When we get to `_defaults.lua`, we can then check $COLORTERM and only query the terminal if it is unset. This means that users can explicitly opt out of truecolor determination by setting `COLORTERM=256` (or similar) in their environment.
| * | fix(lua): don't clamp -1 or v:maxcol in vim.highlight.range() (#29203)zeertzjq2024-06-05
| | |
| * | vim-patch:2a2c4ff: runtime(doc): clarify how fuzzy 'completeopt' should workzeertzjq2024-06-05
| | | | | | | | | | | | | | | | | | | | | | | | related: vim/vim#14912 https://github.com/vim/vim/commit/2a2c4fffd7e04f74b316209404767f128684a9e1 Co-authored-by: Christian Brabandt <cb@256bit.org>