| Commit message (Collapse) | Author | Age |
... | |
|\ \
| | |
| | | |
fix(highlight): correct hi command output
|
| |/ |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Duplicate code for converting float to string.
Solution: Use tv_get_string(). (closes vim/vim#12521)
https://github.com/vim/vim/commit/19dfa276c37dcf657922c6f9b48cf2954191e8b6
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Vim9: ":put =expr" does not handle a list properly.
Solution: Use the same logic as eval_to_string_eap(). (closes vim/vim#7684)
https://github.com/vim/vim/commit/883cf97f109d2ff281cf77f7b2e3bb44aced7cb3
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| |
| |
| | |
Also reformat tutor.tutor.json to use 2-space indent while at it.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
It doesn't make much sense to flatten each region (= list of ranges).
This coincidentally worked for region with a single range.
Solution:
Custom function for combining regions.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
fix(marktree): preserve ordering in `marktree_move`
|
| | |
| | |
| | |
| | | |
Co-Authored-By: L Lllvvuu <git@llllvvuu.dev>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`marktree_move` is making the tree out of order at:
https://github.com/neovim/neovim/blob/be10d65bfafe056025ffffa2c1131712b9a493a5/src/nvim/marktree.c#L1188
Because `key` is at the new position, and `x->key[new_i]` is also at the
new position, this comparison spuriously returns true, which causes
`x->key[i]` to be updated in-place even when it needs to be moved.
This causes crashes down the line, since the ordering of `MTNode.key` is
an invariant that must be preserved.
Fixes: #25157
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem
---
If a highlighter query returns a significant number of predicate
non-matches, the highlighter will scan well past the end of the window.
Solution
---
In the iterator returned from `iter_captures`, accept an optional
parameter `end_line`. If no parameter provided, the behavior is
unchanged, hence this is a non-invasive tweak.
Fixes: #25113 nvim-treesitter/nvim-treesitter#5057
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`resolve_lang` is applied to `@injection.language` when it's supplied as a
capture:
https://github.com/neovim/neovim/blob/f5953edbac14febce9d4f8a3c35bdec1eae26fbe/runtime/lua/vim/treesitter/languagetree.lua#L766-L768
If we want to support `metadata['injection.language']` (as per #22518 and
[tree-sitter upstream](https://tree-sitter.github.io/tree-sitter/syntax-highlighting#language-injection))
then the behavior should be consistent.
Fixes: nvim-treesitter/nvim-treesitter#4918
|
|\ \
| | |
| | | |
fix(marktree): off-by-one error in `marktree_move`
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If you would insert element X at position j, then if you are moving that
same element X from position i < j, you should move it to position j -
1, because you are losing an element.
This error caused a gap to be left in the array, so that it looked like
[x, null, y] instead of [x, y], where len = 2. This triggered #25147.
Fixes: #25147
|
|\ \ \
| |/ /
|/| | |
fix(float): don't trigger au event when enter is false
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
runtime(forth): Fix :unlet error in ftplugin (vim/vim#13090)
Fixes vim/vim#13089.
https://github.com/vim/vim/commit/c1f8bb37c6a8e0babc2a41f16860763b57c23fa1
Co-authored-by: dkearns <dougkearns@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* refactor(treesitter): remove duplicated diagnostic code
* fixup!: fix type errors
* fixup!: add type namespace
|
| | |
| | |
| | | |
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
|
| | |
| | |
| | | |
Also make virt_text_hide work properly.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When tabstop and shiftwidth are not equal, tabs are inserted as individual
spaces and then rewritten as tab characters in a second pass. That second pass
did not call changed_bytes which resulted in events being omitted.
Fixes #25092
|
| | |
| | |
| | |
| | |
| | |
| | | |
"Edit" more closely describes the generic application than "Preview", though
the buffer contents don't (yet) map to an actual file on disk.
https://github.com/neovim/neovim/pull/24703#discussion_r1321719133
|
| | |
| | |
| | | |
Also simplify home detection with os_homedir()
|
| | |
| | |
| | | |
fix(extmarks): draw virt_text properly below diff filler lines
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
TODO: virt_text_hide doesn't work for the first char on a wrapped screen
line, and it's not clear how to fix that.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The name for_each_child is misleading and caused bugs.
After #25111, #25115, there are no more usages of `for_each_child` in Nvim.
In the future if we want to restore this functionality we can consider a
generalized vim.traverse(node, key, visitor) function.
|
| | |
| | |
| | |
| | | |
Fixes: #24531
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
add_glob_target is our custom method to figure out whether a work needs
to be done or not. This works as expected most of the time, but causes a
problem with stylua.
Stylua makes the decision that if a file is explicitly passed to be
formatted, then it will format the file even if the file is set to be
ignored in .styluaignore. This behavior breaks add_glob_target with
seemingly no easy workaround.
More information: https://github.com/JohnnyMorganz/StyLua/issues/751
Instead, what we can do is call stylua as you would in the command line.
This will make stylua work as expected. The downside is that we no
longer get a free "is this work necessary" detection, meaning that
stylua will be run each time `make lint` is called, regardless if it's
necessary or not. For longer lint tasks such as uncrustify and
clang-tidy this would be disastrous, but this is an acceptable tradeoff
since stylua is very quick.
|
| |/
|/|
| | |
Closes https://github.com/neovim/neovim/issues/19838
|
| |
| |
| |
| |
| |
| |
| | |
Co-authored-by: nuid64 <lvkuzvesov@proton.me>
Co-authored-by: Mike Smith <10135646+mikesmithgh@users.noreply.github.com>
Co-authored-by: XTY <xty@xty.io>
Co-authored-by: Empa <emanuel@empa.xyz>
Co-authored-by: kyu08 <49891479+kyu08@users.noreply.github.com>
|
| | |
|
|\ \
| | |
| | | |
refactor(highlight): merge redundant attr_entries and attr_entry_ids
|
| | |
| | |
| | |
| | |
| | | |
An insert-only set now defines a monotonically increasing ordering by
itself. It can be used to both lookup the key from index, and vice versa.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
runtime(swayconfig): improve syntax highlighting (vim/vim#13060)
* syntax(swayconfig): improved highlighting
* syntax(swayconfig): adapt to i3config structure
https://github.com/vim/vim/commit/8b2457a3819826d90ad2b1677d213d9f924ec6c0
Co-authored-by: Josef Litoš <54900518+JosefLitos@users.noreply.github.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
runtime(rust): sync rust runtime files with upstream (vim/vim#13075)
https://github.com/vim/vim/commit/fc93594d562dbbd9da03c89754538f91efd0c7ca
Co-authored-by: Gregory Anders <8965202+gpanders@users.noreply.github.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
runtime(i3config): syntax structure cleanup (vim/vim#13080)
* syntax(i3config): improved i3config highlighting
* syntax(i3config): refactor structure
https://github.com/vim/vim/commit/f5356bf6751fc1af77c8d27c7286639527fde3f2
Co-authored-by: Josef Litoš <54900518+JosefLitos@users.noreply.github.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Support Markdown code blocks in addition to <pre> blocks in Doxygen doc
comments.
Update doc comments in iter.lua as a test.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem:
Folds are opened when the visible range changes even if there are no
modifications to the buffer, e.g, when using zM for the first time. If
the parsed tree was invalid, on_win re-parses and gets empty tree
changes, which triggers fold updates.
Solution:
Don't update folds in on_changedtree if there are no changes.
|
| | |
| | |
| | |
| | | |
Fixes #25120
|
| | |
| | |
| | |
| | |
| | | |
Fixes #21911
Co-authored by: wispl
|