| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
`lintdoc` takes too long to be part of `lint`. It may be reintroduced
once it's possible to only run lintdoc on files that have been changed.
|
|
|
| |
Note: Upstream doesn't have this. It's an Nvim addition.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reverts e0d92b9cc20b58179599f53dfa74ca821935a539 #28502
Problem:
`vim.ui.open()` has a `pcall()` like signature, under the assumption
that this is the Lua idiom for returning result-or-error. However, the
`result|nil, errmsg|nil` pattern:
- has precedent in:
- `io.open`
- `vim.uv` (`:help luv-error-handling`)
- has these advantages:
- Can be used with `assert()`:
```
local result, err = assert(foobar())
```
- Allows LuaLS to infer the type of `result`:
```
local result, err = foobar()
if err then
...
elseif result then
...
end
```
Solution:
- Revert to the `result|nil, errmsg|nil` pattern.
- Document the pattern in our guidelines.
|
|
|
|
|
|
| |
This avoids redraw when adding/removing an empty namespace for a window.
This also avoids marktree traversal when clearing a namespace that has
already been cleared, which is added as a benchmark.
|
| |
|
|
|
|
|
|
|
|
| |
- Sort sections according to custom preference instead of
alphabetically. It is ordered according to "most relevant" to "least
relevant" to users.
- Sort commits alphabetically
- Don't uppercase the first letter of the commit message
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Experimental and subject to future changes.
Add a way to redraw certain elements that are not redrawn while Nvim is waiting
for input, or currently have no API to do so. This API covers all that can be
done with the :redraw* commands, in addition to the following new features:
- Immediately move the cursor to a (non-current) window.
- Target a specific window or buffer to mark for redraw.
- Mark a buffer range for redraw (replaces nvim__buf_redraw_range()).
- Redraw the 'statuscolumn'.
|
| | |
|
|/
|
| |
vim.diagnostic.enable and vim.diagnostic.is_enabled() use the same pattern.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Inlay hints `enable()` does not fully implement the `:help dev-lua` guidelines:
Interface conventions ~
- When accepting a buffer id, etc., 0 means "current buffer", nil means "all
buffers". Likewise for window id, tabpage id, etc.
- Examples: |vim.lsp.codelens.clear()| |vim.diagnostic.enable()|
Solution:
Implement globally enabling inlay hints.
* refactor(lsp): do not rely on `enable` to create autocmds
* refactor(lsp): make `bufstates` a defaulttable
* refactor(lsp): make `bufstate` inherit values from `globalstate`
* feat(lsp): `vim.lsp.inlay_hints` now take effect on all buffers by default
* test(lsp): add basic tests for enable inlay hints for all buffers
* test(lsp): add test cases cover more than one buffer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: inko files are not recognized
Solution: Detect '*.inko' as ink filetype
(Yorick Peterse)
See:
- https://github.com/inko-lang/inko.vim
- https://inko-lang.org/
closes: vim/vim#14699
https://github.com/vim/vim/commit/a01968448a0bdf04d9e4a822d32732a304849238
Co-authored-by: Yorick Peterse <git@yorickpeterse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: templ files are not recognized
Solution: Detect '*.templ' files as filetype templ
(Tristan Knight)
See:
- https://github.com/a-h/templ
- https://templ.guide/
closes: vim/vim#14697
https://github.com/vim/vim/commit/54e79157c536c631b2f9b3dfefec30b9b966ed97
Co-authored-by: tris203 <admin@snappeh.com>
|
| |
|
|
|
| |
This prevents tested Nvim from affecting ~/.local/state/
|
|
|
|
|
|
|
|
|
| |
Problem: cursor() and getregion() don't handle v:maxcol well.
Solution: Add special handling for v:maxcol like setpos() does.
(zeertzjq)
closes: vim/vim#14698
https://github.com/vim/vim/commit/2ffdae79487cb7e323383eda9ae96c2e9d1625bd
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: stylus files not recognized
Solution: Detect '*.styl' and '*.stylus' as stylus filetype,
include indent, filetype and syntax plugin
(Philip H)
closes: vim/vim#14656
https://github.com/vim/vim/commit/2d919d2744a99c9bb9e79984e85b8e8f5ec14c07
Co-authored-by: Philip H <47042125+pheiduck@users.noreply.github.com>
|
|
|
|
|
|
|
|
| |
Problem: Calling :redraw from vim.ui_attach() callback results in
recursive cmdline/message events.
Solution: Avoid recursiveness where possible and replace global "call_buf"
with separate, temporary buffers for each event so that when a Lua
callback for one event fires another event, that does not result
in invalid memory access.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`[Backport release-x.y]` will no longer be part of the pull request
title. This means the PR titles will go from looking like
```
[Backport release-0.9] fix(languagetree): remove double recursion in LanguageTree:parse
```
to
```
fix(languagetree): remove double recursion in LanguageTree:parse
```
The benefit of this is that pull requests merged with the "Squash and
Merge" strategy (which uses the PR title as the commit message), will
still follow the conventional commits specification. This will help
tools that rely on conventional commits such as git-cliff.
The `backport` label is added to backported PRs to help distinguish
between backport PRs with regular PRs in the "Pull Requests" tab on
github.
To reduce confusion with the `backport` label, the label to trigger the
backporting has been changed from `backport release-x.y` to
`ci:backport release-x.y`. This is also more consistent with other
labels that trigger a CI job which all use the `ci:` prefix.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will change the commits messages from
```
version.c: update [skip ci]
```
to
```
docs: update version.c [skip ci]
```
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#27131)" (#28585)
This reverts commit 15e77a56b711102fdc123e15b3f37d49bc0b1df1.
Subpriorities were added in https://github.com/neovim/neovim/pull/27131
as a mechanism for enforcing query order when using iter_matches in the
Tree-sitter highlighter. However, iter_matches proved to have too many
complications to use in the highlighter so we eventually reverted back
to using iter_captures (https://github.com/neovim/neovim/pull/27901).
Thus, subpriorities are no longer needed and can be removed.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: .out files recognized as tex files
Solution: Do not set an explicit filetype until it is clear what this
should be (shane.xb.qian)
closes: vim/vim#14670
https://github.com/vim/vim/commit/e35478bc9d48189322432248105d3b24e0efb3d0
Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Kbuild files are not recognized.
Solution: Detect Kbuild files as make files.
(Bruno Belanyi)
closes: vim/vim#14676
https://github.com/vim/vim/commit/5cbc9a69e529361e1725f422b8cd6157fe0adc33
Co-authored-by: Bruno BELANYI <bruno@belanyi.fr>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow-up to #28490
Problem:
The new behaviour of goto_next/prev() of navigating to the next highest
severity doesn't work well when diagnostic providers have different
interpretations of severities. E.g. the user may be blocked from
navigating to a useful LSP warning, due to some linter error.
Solution:
The behaviour of next highest severity is now a hidden option
`_highest = true`. We can revisit how to integrate this behaviour
during the 0.11 cycle.
|
|
|
|
|
|
|
|
| |
Problem:
nvim_complete_set was added in 5ed55ff14c8b7e346811cb6228bf63fb5106bae9
but needs more bake time.
Solution:
Rename it, mark it as experimental.
|
|
|
|
|
|
|
|
|
|
| |
- Also delete old perl scripts which are not used since 8+ years ago.
fix #23251
fix #27367
ref https://github.com/neovim/neovim/issues/2252#issuecomment-1902662577
Helped-by: Daniel Kongsgaard <dakongsgaard@gmail.com>
Co-authored-by: Kevin Pham <keevan.pham@gmail.com>
|
|
|
| |
This prevents test failure when "rg" is executable.
|
|
|
|
|
|
|
|
|
|
| |
Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
Co-authored-by: Famiu Haque <famiuhaque@proton.me>
Co-authored-by: Gregory Anders <greg@gpanders.com>
Co-authored-by: Guilherme Soares <guilhermesoares1970@gmail.com>
Co-authored-by: Jannik Buhr <jannik.m.buhr@gmail.com>
Co-authored-by: thomaswuhoileong <72001875+thomaswuhoileong@users.noreply.github.com>
Co-authored-by: tom-anders <13141438+tom-anders@users.noreply.github.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
runtime(java): Improve the recognition of the "indent" method declarations (vim/vim#14659)
There is a flaw in the current implementation that has been
exacerbated around v5.2. It lies in the recognition of all
three indentation styles simultaneously: a tab, two space,
and eight space character(s). With it, it is not uncommon
to misidentify various constructs as method declarations
when they belong to two-space indented members and other
blocks of a type and are offset at eight space characters or
a tab from the start of the line.
For example,
------------------------------------------------------------
class Test
{
static String hello() { return "hello"; }
public static void main(String[] args)
{
try {
if (args.length > 0) {
// FIXME: eight spaces.
System.out.println(args[0]);
} else {
// FIXME: a tab.
System.out.println(hello());
}
} catch (Exception e) {
throw new Error(e);
}
}
}
------------------------------------------------------------
------------------------------------------------------------
:let g:java_highlight_functions = 'indent'
:doautocmd Syntax
------------------------------------------------------------
A better approach is to pick an only indentation style out
of all supported styles (so either two spaces _or_ eight
spaces _or_ a tab). Note that tabs and spaces can still be
mixed, only the leading tab or the leading run of spaces
matters for the recognition. And there is no reason to not
complement the set of valid styles with any number of spaces
from 1 to 8, inclusively.
Please proceed with the necessary change as follows:
- rename from "indent" to "indent2" for a 2-space run;
- rename from "indent" to "indent8" for an 8-space run;
- continue to have "indent" for a tab run;
- define an "indent" variable with a suffix number denoting
the preferred amount of indentation for any other run of
spaces [1-8].
As before, this alternative style of recognition of method
declarations still does not prescribe naming conventions and
still cannot recognise method declarations in nested types
that are conventionally indented.
The proposed changes also follow suit of "style" in stopping
the claiming of constructor and enum constant declarations.
https://github.com/vim/vim/commit/c4d0c8c81245918632a9d3c2c20a390546fad065
Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
runtime(jq): remove undefined var s:save_cpoptions and add include setting
closes: vim/vim#14661
closes: vim/vim#14663
https://github.com/vim/vim/commit/dc5c9055414501c438883c3b09ba8a3a7f983029
Co-authored-by: GodFather <vito.blog@gmail.com>
Co-authored-by: itchyny <itchyny@cybozu.co.jp>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: cbuffer and similar quickfix and locationlist commands don't
accept a range, even so it is documented they should
(ilan-schemoul, after 8.1.1241)
Solution: Define ex commands with ADDR_LINES instead of ADDR_OTHER
fixes: vim/vim#14638
closes: vim/vim#14657
https://github.com/vim/vim/commit/652c821366691a8bd5474766581090df0c742fa1
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
|
|
|
|
|
|
|
| |
runtime(doc): Fix a typo in usr_30.txt
closes: vim/vim#14662
https://github.com/vim/vim/commit/04e1aaa94e3b7bf3ae6d376f52504aeb02bc9ca5
Co-authored-by: UM-Li <um-li@tuta.io>
|
| |
|
|\
| |
| | |
fix(treesitter): make tests for memoize more robust, also fix memoize to work
|
|/
|
|
|
|
|
|
|
|
|
|
| |
Instead of painfully messing with timing to determine if queries were
reparsed, we can simply keep a counter next to the call to ts_query_new
Also memoization had a hidden dependency on the garbage collection of
the the key, a hash value which never is kept around in memory. this was
done intentionally as the hash does not capture all relevant state for the
query (external included files) even if actual query objects still
would be reachable in memory. To make the test fully deterministic in
CI, we explicitly control GC.
|
|\
| |
| | |
perf(ui_client): skip some initialization not necessary for ui client
|
|/
|
|
|
| |
In particular, TUI manages its own screen buffers and highlight table, so we don't need
to run init_highlight() and default_grid_alloc() in the ui client process.
|
| |
|
|
|
|
|
|
|
|
| |
runtime(asm): missing setlocal in indent plugin (vim/vim#14658)
https://github.com/vim/vim/commit/2e9b9e9a9ebf3fd40437260ecd6b1e23b02c636b
Co-authored-by: Marc Sven Schulte <167623652+msschulte@users.noreply.github.com>
|
|
|
|
|
|
|
|
| |
runtime(ssa): improve syntax file performance (vim/vim#14654)
fixes: vim/vim#14653
fixes: neovim/neovim#25950
https://github.com/vim/vim/commit/f351fd82920427b33a160cab9fdbc35ac1deb681
|
|
|
|
|
|
|
|
|
|
|
| |
(#28553)
Problem: Calculating line height for unnecessary amount of lines with
half-page scrolling (zhscn, after 9.1.0280)
Solution: Replace "limit_winheight" argument with higher resolution
"max" argument to which to limit the calculated line height
in plines_m_win() to (Luuk van Baal)
https://github.com/vim/vim/commit/32d701f51b1ed2834071a2c5031a300936beda13
|
|
|
|
|
|
|
|
|
|
| |
Problem:
The new LSP "refactor menu" keybinding "crr" is also defined in visual
mode, which overlaps with the builtin "c".
Solution:
Use CTRL-R instead of "crr" for visual mode.
fix #28528
|
|
|
|
|
|
| |
Based on feedback from #28324, pass -H and -I to regular grep
(available on all platforms officially supported by Neovim), and
only pass -uu to ripgrep. This makes :grep ignore binary files by
default in both cases.
|
|
|
|
| |
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
Co-authored-by: Gregory Anders <greg@gpanders.com>
|
|
|
|
|
|
|
|
|
|
|
| |
* fix(treesitter): enforce lowercase language names
Problem: On case-insensitive file systems (e.g., macOS), `has_parser`
will return `true` for uppercase aliases, which will then try to inject
the uppercase language unsuccessfully.
Solution: Enforce and assume parser names to be lowercase when
resolving language names.
|