| Commit message (Collapse) | Author | Age |
|\
| |
| | |
vim-patch:8.2.4203: entering a character with CTRL-V may include modifiers
|
| | |
|
|\ \
| | |
| | | |
vim-patch:8.2.{3121,3410}: two 'listchars' fixes
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: 'listchars' "exceeds" character appears in foldcolumn. Window
separator is missing. (Leonid V. Fedorenchik)
Solution: Only draw the "exceeds" character in the text area. Break the
loop when not drawing the text. (closes vim/vim#8524)
https://github.com/vim/vim/commit/41fb723ee97baa2f095cde601a5a144b168b7a6b
|
|\ \ \
| | | |
| | | | |
vim-patch:8.2.3153: URLs with a dash in the scheme are not recognized
|
| | | | |
|
|\ \ \ \
| |_|_|/
|/| | | |
vim-patch:8.2.1762: when a timer uses :stopinsert completion isn't stopped
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: When a timer uses :stopinsert Insert mode completion isn't
stopped. (Stanley Chan)
Solution: Call ins_compl_prep(ESC).
https://github.com/vim/vim/commit/d0e1b7103c14eb0d175c6b245b4b6ed93a204da9
|
|\ \ \ \
| |_|/ /
|/| | | |
feat(--headless): do not print anything when stdioopen() has been used
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit adds an on_print callback to stdioopen's dictionary
argument which lets the caller specify a function called each time
neovim will try to output something to stdout (e.g. on "echo" or
"echoerr" in --headless mode).
|
|\ \ \ \
| | | | |
| | | | | |
vim-patch:8.2.{3584,3586,3587}: :command "-keepscript" argument
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
input: never escape CSI bytes and clean up related names and comments
|
| | | | | |
|
| |/ / / |
|
|\ \ \ \
| |/ / /
|/| | | |
feat(api): expose extmark more details
|
| | | | |
|
|/ / /
| | |
| | |
| | | |
The first parameter to eq() should be the expected value, and the second
parameter should be the actual value.
|
|\ \ \
| | | |
| | | | |
refactor(marks): use a more efficient representation with less pointer indirection
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
marktree.c was originally constructed as a "generic" datatype,
to make the prototyping of its internal logic as simple as possible
and also as the usecases for various kinds of extmarks/decorations was not yet decided.
As a consequence of this, various extra indirections and allocations was
needed to use marktree to implement extmarks (ns/id pairs) and
decorations of different kinds (some which is just a single highlight
id, other an allocated list of virtual text/lines)
This change removes a lot of indirection, by making Marktree specialized
for the usecase. In particular, the namespace id and mark id is stored
directly, instead of the 64-bit global id particular to the Marktree
struct. This removes the two maps needed to convert between global and
per-ns ids.
Also, "small" decorations are stored inline, i.e. those who
doesn't refer to external heap memory anyway. That is highlights (with
priority+flags) are stored inline, while virtual text, which anyway
occurs a lot of heap allocations, do not. (previously a hack was used
to elide heap allocations for highlights with standard prio+flags)
TODO(bfredl): the functionaltest-lua CI version of gcc is having
severe issues with uint16_t bitfields, so splitting up compound
assignments and redundant casts are needed. Clean this up once we switch
to a working compiler version.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Closes https://github.com/neovim/neovim/issues/13647
This allows customizing the priority of the highlights.
* Add default priority of 50
* Use priority of 200 for highlight on yank
* use priority of 40 for highlight references (LSP)
|
|\ \ \
| |/ /
|/| | |
feat(extmarks): add strict option
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows patterns like
["~/.config/foo"] = "fooscript"
to work.
|
|\ \ \
| | | |
| | | | |
feat(api, lua): more conversions between LuaRef and Vim Funcref
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
feat(completion): support selecting item via API from Lua mapping
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This removes the "fallback" to utf-16 in many of our helper functions. We
should always explicitly pass these around when possible except in two
locations:
* generating params with help utilities called by buf.lua functions
* the buf.lua functions themselves
Anything that is called by the handler should be passed the offset encoding.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
omnisharp-roslyn can send negative values:
{
activeParameter = 0,
activeSignature = -1,
signatures = { {
documentation = "",
label = "TestEntity.TestEntity()",
parameters = {}
} }
}
In 3.16 of the specification `activeSignature` is defined as `uinteger`
and therefore negative values shouldn't be allowed, but within 3.15 it
was defined as `number` which makes me think we can be a bit lenient in
this case and handle them.
The expected behavior is quite clear:
The active signature. If omitted or the value lies outside the
range of `signatures` the value defaults to zero or is ignored if
the `SignatureHelp` has no signatures.
Fixes an error:
util.lua:1685: attempt to get length of local 'lines' (a nil value)
util.lua:1685: in function 'trim_empty_lines'
handlers.lua:334: in function 'textDocument/signatureHelp'
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
perf(treesitter): cache query parsing
|
| | | | | | |
|
| |_|/ / /
|/| | | | |
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Part of the `pending_change` closure in the `changetracking.prepare` was
a bit confusing because it has access to `bufnr` and `uri` but it could
actually contain pending changes batched for multiple buffers.
(We accounted for that by grouping `pending_changes` by a `uri`, but
it's not obvious what's going on)
This commit changes the approach to do everything per buffer to avoid
any ambiguity.
It also brings the debounce/no-debounce a bit closer together: The
only difference is now whether a timer is used or if it is triggered
immediately
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This is a much better solution than #16942 as it doesn't require copying
every new change from test_filetype.vim into filetype_spec.lua (which is
much more maintainable).
|
|\ \ \ \
| | | | |
| | | | | |
test: add VIMRUNTIME variable to the clear function
|
| | | | |
| | | | |
| | | | |
| | | | | |
Some of the tests will fail if this isn't explicitly set.
|
|/ / / /
| | | |
| | | | |
It just types :terminal<CR> into the terminal, which is redundant.
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When the user is in ex mode, a call to mode(1) is documented to return
"cv". However, it does not currently do so, because the check which
checks for ex mode is nested inside a conditional which is never reached
in ex mode. Vim uses an explicit check for exmode_active, so let's do
the same thing here. Add some tests for this case both with a TTY and
in silent mode.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(#16953)
Problem: Git and gitcommit file types not properly recognized.
Solution: Adjust filetype detection. (Tim Pope, closes vim/vim#9477)
https://github.com/vim/vim/commit/c689f8c3d98fffe7e13730e198ce120934528f9c
|
| | | |
|
| | |
| | |
| | | |
Like vim.notify(), but only displays the notification once.
|
|\ \ \
| |/ /
|/| | |
feat(lua): add support for lua keymaps
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This introduces two new functions `vim.keymap.set` & `vim.keymap.del`
differences compared to regular set_keymap:
- remap is used as opposite of noremap. By default it's true for <Plug> keymaps and false for others.
- rhs can be lua function.
- mode can be a list of modes.
- replace_keycodes option for lua function expr maps. (Default: true)
- handles buffer specific keymaps
Examples:
```lua
vim.keymap.set('n', 'asdf', function() print("real lua function") end)
vim.keymap.set({'n', 'v'}, '<leader>lr', vim.lsp.buf.references, {buffer=true})
vim.keymap.set('n', '<leader>w', "<cmd>w<cr>", {silent = true, buffer = 5 })
vim.keymap.set('i', '<Tab>', function()
return vim.fn.pumvisible() == 1 and "<C-n>" or "<Tab>"
end, {expr = true})
vim.keymap.set('n', '[%', '<Plug>(MatchitNormalMultiBackward)')
vim.keymap.del('n', 'asdf')
vim.keymap.del({'n', 'i', 'v'}, '<leader>w', {buffer = 5 })
```
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Because filetype.lua is gated behind an opt-in variable, it's not tested
during the "standard" test_filetype.vim test. So port the test into
filetype_spec where we enable the opt-in variable.
This means runtime Vim patches will need to update test_filetype in two
places. This can eventually be removed if/when filetype.lua is made
opt-out rather than opt-in.
|