| Commit message (Collapse) | Author | Age |
|\ |
|
| |\ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This change unlocks additional registers for Neovim by allowing a user
to define their own behavior for non-builtin registers.
This is accopmlished through a new option 'userregfunc'
The 'userregfunc' defines the function to call when handling a register
for which there is no builtin functionality.
The 'userregfunc' function should take 3 arguments:
action - Either "yank" or "put"
register - The character corresponding to the register
content - In the case of action == "yank", the dictionary describing
the yanked content, with the following keys:
{type} - Either "char", "line" or "block"
{lines} - The lines being yanked as a list
{width} - The width in case of "block" mode.
{additional_data} - Additional data (can be returned in
"put" mode)
In case of "put" this function should return the content to put. This
content can be either:
* A dictionary in the same template as content above.
* A list of strings. This will be assumed to be "line" mode.
* A string. This will be assumed to be "char" mode.
An example of a "null" 'userregfunc' that provides an implementation
identical to traditional vim registers would be:
let s:contents = {}
function! MyUserregFunction(action, register, content) abort
if a:action == "put"
return get(s:contents, a:register, "")
else
let s:contents[a:register] = a:content
endif
endfunction
set userregfun=MyUserregFunction
It is important to note that any valid unicode character can now be a
register, including something like @☺.
This change also addresses the multibyte parsing issues surrounding
let @a = 'xyz'
let @🔨 = 'hammer'
|
|\ \ \
| | |/
| |/| |
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
fix(treesitter): prevent endless loop on self-inheritence
docs(treesitter): suggest using extends to extend queries
|
| | | | |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: There is no way to get the byte index from a virtual column.
Solution: Add virtcol2col(). (Yegappan Lakshmanan, closes vim/vim#10477,
closes vim/vim#10098)
https://github.com/vim/vim/commit/5a6ec10cc80ab02eeff644ab19b82312630ea855
Cherry-pick tv_check_for_number_arg() from Vim.
Cherry-pick pathshorten() doc change.
|
| | |
| | |
| | |
| | | |
Update runtime files
https://github.com/vim/vim/commit/71b6d3397649fed68ef587aa863fcbdf5fdb057a
|
| | | |
|
| | | |
|
| |\ \
| | | |
| | | |
| | | | |
* feat(treesitter): upstream get_{node,captures} utility functions
* refactor(treesitter): get_{nodes,captures}_at_{position,cursor}
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Use the first, not last, query for a language on runtimepath. Typically,
this implies that a user query will override a site plugin query, which
will override a bundled runtime query.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Treesitter queries for a given language in runtime were merged together,
leading to errors if they targeted different parser versions (e.g., bundled viml queries
and those shipped by nvim-treesitter).
Solution: Runtime queries now work as follows:
* The last query in the rtp without `; extends` in the header will be used as the base query
* All queries (without a specific order) with `; extends` are concatenated with the base query
BREAKING CHANGE: queries need to be updated if they are meant to extend other queries
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
feat(treesitter): use weak tables when possible
Also add the defaulttable function to create a table whose values are created when a key is missing.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Added 'spell' option to extmarks:
Extmarks with this set will have the region spellchecked.
- Added 'noplainbuffer' option to 'spelloptions':
This is used to tell Neovim not to spellcheck the buffer. The old
behaviour was to spell check the whole buffer unless :syntax was set.
- Added spelling support to the treesitter highlighter:
@spell captures in highlights.scm are used to define regions which
should be spell checked.
- Added support for navigating spell errors for extmarks:
Works for both ephemeral and static extmarks
- Added '_on_spell_nav' callback for decoration providers:
Since ephemeral callbacks are only drawn for the visible screen,
providers must implement this callback to instruct Neovim which
regions in the buffer need can be spell checked.
The callback takes a start position and an end position.
Note: this callback is subject to change hence the _ prefix.
- Added spell captures for built-in support languages
Co-authored-by: Lewis Russell <lewis6991@gmail.com>
Co-authored-by: Björn Linse <bjorn.linse@gmail.com>
|
| |\ \ \
| | |/ /
| |/| | |
fix(api)!: correctly deal with number before :tab
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now nvim_parse_cmd and nvim_create_user_command use a "tab" value which
is the same as the number passed before :tab modifier instead of the
number plus 1, and "tab" value is -1 if :tab modifier is not used.
|
| |\ \ \
| | | | |
| | | | | |
feat(treesitter): highlighting for core languages, enabled for Lua
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Add vim.treesitter.start() for starting treesitter highlighting via
ftplugin or autocommand (can be extended later for fold, indent,
matchpairs, ...)
* Add vim.treesitter.stop() for manually stopping treesitter
highlighting
* Enable treesitter highlighting for Lua if
`vim.g.ts_highlight_lua = true` is set in `init.lua`
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Update runtime files
https://github.com/vim/vim/commit/0daafaa7d99ef500f76b1b12f5fe8153e2fcaea0
skip vim9script ftplugin
create userfunc.txt from Neovim content (skip section 3, needs 9.0.0379)
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Cannot force getting MouseMove events.
Solution: Add the 'mousemoveevent' option with implementaiton for the GUI.
(Ernie Rael, closes vim/vim#10044)
https://github.com/vim/vim/commit/c4cb544cd5beaa864b3893e4b8d0085393c7dbce
This only ports the docs and the option variable.
The following commits will actually implement it as a UI option.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Update runtime files.
https://github.com/vim/vim/commit/088e8e3443520dec91a384081e66445a104810bb
Also cherry-pick "partial" tag from a later runtime update.
|
| |/ /
| | |
| | |
| | |
| | | |
https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
|
| | |
| | |
| | | |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: :horizontal modifier not fully supported.
Solution: Also use :horizontal for completion and user commands.
(closes vim/vim#11025)
https://github.com/vim/vim/commit/d3de178e5352fedf0f30b979f46a2fcbca24ea40
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: ":wincmd =" equalizes in two directions.
Solution: Make ":vertical wincmd =" equalize vertically only and
":horizontal wincmd =" equalize horizontally only.
https://github.com/vim/vim/commit/21c3a80a7fd6b7fc250ce5dc287963511f54b86f
|
| | |
| | |
| | |
| | | |
Co-authored-by: Famiu Haque <famiuhaque@protonmail.com>
|
| | |
| | |
| | |
| | | |
Update runtime files
https://github.com/vim/vim/commit/9b03d3e75b4274493bbe76772d7b92238791964c
|
| | |
| | |
| | |
| | |
| | | |
Problem: People are confused about `vim.o` and `vim.opt`
Solution: Clarify that `vim.o` is the default interface, with `vim.opt`
specifically meant for interacting with list-style options.
|
| | |
| | |
| | | |
Follow up to https://github.com/neovim/neovim/pull/19916
|
| | |
| | |
| | | |
`formatting_sync` is deprecated
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Adds TCP support for lsp.
Usage example:
```
vim.lsp.start({ name = 'godot', cmd = vim.lsp.rpc.connect('127.0.0.1', 6008) })
```
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
To prepare for different transports like TCP where the handle won't have
a kill method.
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(#19979)
vim-patch:9.0.0285: it is not easy to change the command line from a plugin
Problem: It is not easy to change the command line from a plugin.
Solution: Add setcmdline(). (Shougo Matsushita, closes vim/vim#10869)
https://github.com/vim/vim/commit/07ea5f1509fe8dafe3262ed2702b4d0fc99e288b
|
| | |
| | |
| | |
| | | |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| | |
| | |
| | |
| | |
| | | |
This reverts commit 234959abbfcf075cb09304b00fc391780580056d and
renames the option 'colorc' -> 'colorcol' again.
|
| | |
| | |
| | |
| | | |
Rename the colorcol option in fillchars to the more terse colorc.
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This option will let neovim draw a character in the colorcolumn when
there is no other character occupying that spot.
For example, I'm someone who likes the elegance of seeing a 1px wide line
at the 80 character mark, rather than a rectangle the width of a cell at
that mark. To accomplish this, I run
:set colorcol=80
:set fillchars=colorcol:│
of course ':' and '.' are good ASCII alteratives.
|
| |
| |
| |
| | |
Co-authored-by: adrian5 <adrian5@users.noreply.github.com>
Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
|