| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
"playground" is new jargon that overlaps with existing concepts:
"dev" (`:help dev`) and "view" (also "scratch" `:help scratch-buffer`) .
Solution:
We should consistently use "dev" as the namespace for where "developer
tools" live. For purposes of a "throwaway sandbox object", we can use
the name "view".
- Rename `TSPlayground` => `TSView`
- Rename `playground.lua` => `dev.lua`
|
|
|
|
|
|
|
|
|
| |
vim.version.range() couldn't parse them correctly.
For example, vim.version.range('<0.9.0'):has('0.9.0') returned `true`.
fix: range:has() accepts vim.version()
So that it's possible to compare a range with:
vim.version.range(spec):has(vim.version())
|
|
|
|
| |
The Nvim client does not yet support multiple offset encodings for
clients in the same buffer. Until it does, stick to utf-16 by default.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PROBLEM:
Whenever any text edits are applied to the buffer, the `marks` part of those
lines will be lost. This is mostly problematic for code formatters that format
the whole buffer like `prettier`, `luafmt`, ...
When doing atomic changes inside a vim doc, vim keeps track of those changes and
can update the positions of marks accordingly, but in this case we have a whole
doc that changed. There's no simple way to update the positions of all marks
from the previous document state to the new document state.
SOLUTION:
* save marks right before `nvim_buf_set_lines` is called inside `apply_text_edits`
* check if any marks were lost after doing `nvim_buf_set_lines`
* restore those marks to the previous positions
TEST CASE:
* have a formatter enabled
* open any file
* create a couple of marks
* indent the whole file to the right
* save the file
Before this change: all marks will be removed.
After this change: they will be preserved.
Fixes #14307
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
comments (#23896)
Problem: Filetype detection fails for *.conf file without comments.
(Dmitrii Tcyganok)
Solution: Use "conf" filetype as a fallback for an empty .conf file.
(closes vim/vim#12487, closes vim/vim#12483)
https://github.com/vim/vim/commit/664fd12aa27a3c6bd19cfa474c4630d6c03fcc61
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
Co-authored-by: Gustavo Ferreira <gustavo.ferreira@imaginecurve.com>
Co-authored-by: Kai Moschcau <mail@kmoschcau.de>
Co-authored-by: Lampros <hauahx@gmail.com>
|
| |
|
|
|
|
|
|
| |
If the server sends the positionEncoding capability in its
initialization response, automatically set the client's offset_encoding
to use the value provided.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
data (#23694)
BREAKING CHANGE: LspRequest is no longer a User autocmd but is now a
first class citizen.
LspRequest as a User autocmd had limited functionality. Namely, the only
thing you could do was use the notification to do a lookup on all the
clients' requests tables to figure out what changed.
Promoting the autocmd to a full autocmd lets us set the buffer the
request was initiated on (so people can set buffer-local autocmds for
listening to these events).
Additionally, when used from Lua, we can pass additional metadata about
the request along with the notification, including the client ID, the
request ID, and the actual request object stored on the client's
requests table. Users can now listen for these events and act on them
proactively instead of polling all of the requests tables and looking
for changes.
|
| |
|
|
|
|
|
|
|
| |
Problem: Some "gomod" files are not recognized.
Solution: Check for "go.mod" file name before checking out the contents.
(Omar El Halabi, closes vim/vim#12462)
https://github.com/vim/vim/commit/c9fbd2560f24180d2efa40028ed68427341d2d99
|
|
|
|
|
|
|
|
| |
Problem: Corn config files are not recognized.
Solution: Add a pattern for Corn config files. (Jake Stanger, closes vim/vim#12449)
https://github.com/vim/vim/commit/05843e89601c03389a2d7978e7e16aec641a3dc4
Co-authored-by: Jake Stanger <mail@jstanger.dev>
|
|
|
|
|
|
|
|
| |
Problem: Not all meson files are recognized.
Solution: Add "meson.options". (Liam Beguin, closes vim/vim#12444)
https://github.com/vim/vim/commit/1ba0b9e36f36926a7675b31efeda7d3e495c9157
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- `client.dynamic_capabilities` is an object that tracks client register/unregister
- `client.supports_method` will additionally check if a dynamic capability supports the method, taking document filters into account. But only if the client enabled `dynamicRegistration` for the capability
- updated the default client capabilities to include dynamicRegistration for:
- formatting
- rangeFormatting
- hover
- codeAction
- hover
- rename
|
| |
|
|
|
|
|
| |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: famiu <famiuhaque@protonmail.com>
|
|
|
| |
This is a small function but used a lot in some plugins.
|
|
|
|
|
|
|
| |
Some LSP servers (tailwindcss, rome) are known to request registration
for `workspace/didChangeWatchedFiles` even when the corresponding client
capability does not advertise support. This change adds an extra check
in the `client/registerCapability` handler not to start a watch unless
the client capability is set appropriately.
|
|
|
|
|
|
|
|
| |
Problem: Json lines files are not recognized.
Solution: Add a pattern to detect "jsonl" files. (issue vim/vim#7520)
https://github.com/vim/vim/commit/6fadbc1e8c1f4c5b03eb6a78aeb023ca2c2a9a7d
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
| |
Ref nvim-treesitter/nvim-treesitter#4748
|
|
|
|
|
|
| |
- Add bindings to Treesitter ts_parser_set_logger and ts_parser_logger
- Add logfile with path STDPATH('log')/treesitter.c
- Rework existing LanguageTree loggin to use logfile
- Begin implementing log levels for vim.g.__ts_debug
|
|
|
| |
Fixes #20419
|
| |
|
|
|
|
|
|
|
|
|
| |
Co-authored-by: Christian Clason <c.clason@uni-graz.at>
Co-authored-by: Gregory Anders <greg@gpanders.com>
Co-authored-by: HiPhish <hiphish@posteo.de>
Co-authored-by: Julio B <julio.bacel@gmail.com>
Co-authored-by: T727 <74924917+T-727@users.noreply.github.com>
Co-authored-by: camoz <camoz@users.noreply.github.com>
Co-authored-by: champignoom <66909116+champignoom@users.noreply.github.com>
|
|
|
|
|
|
|
|
| |
Problem: USD filetype is not recognized.
Solution: Add patterns for USD filetype. (Colin Kennedy, closes vim/vim#12370)
https://github.com/vim/vim/commit/b848ce6b7e27f24aff47a4d63933e0f96663acfe
Co-authored-by: Colin Kennedy <colinvfx@gmail.com>
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Problem: Typst filetype is not recognized.
Solution: Distinguish between sql and typst. (Gaetan Lepage, closes vim/vim#12363)
https://github.com/vim/vim/commit/4ce1bda869e4ec0152d7dcbe1e491ceac5341d5e
|
| |
|
| |
|
| |
|
|
|
|
|
| |
feat(lua): add hl priority opts on_yank
Signed-off-by: marcoSven <me@marcosven.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
responses (#23484)
perf(lsp): load buffer contents once when processing semantic token responses
Using _get_line_byte_from_position() for each token's boundaries was a
pretty huge bottleneck, since that function would load individual buffer
lines via nvim_buf_get_lines() (plus a lot of extra overhead). So each
token caused two calls to nvim_buf_get_lines() (once for the start
position, and once for the end position).
For semantic tokens, we only attach to buffers that have already been
loaded, so we can safely just get all the lines for the entire buffer at
once, and lift the rest of the _get_line_byte_from_position()
implementation directly while bypassing the part that loads the buffer
line.
While I was looking at get_lines (used by _get_line_byte_from_position),
I noticed that we were checking for non-file URIs before we even looked
to see if we already had the buffer loaded. Moving the buffer-loaded
check to be the first thing done in get_lines() more than halved the
average time spent transforming the token list into highlight ranges vs
when it was still using _get_line_byte_from_position. I ended up
improving that loop more by not using get_lines, but figured the
performance improvement it provided was worth leaving in.
|
| |
|
|
|
| |
Fixes #23423
|
|
|
| |
Some small general fixes found working on developing async parsing.
|
|
|
|
|
|
|
|
| |
Problem: Luau files are not recognized.
Solution: Add a patter for Luau files. (Amaan Qureshi, closes vim/vim#12317)
https://github.com/vim/vim/commit/2dcfe9ae1df61e1249520ed435dd8cf60e157103
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
|
|
|
|
| |
5ms (#23375)
|
|
|
|
|
|
| |
When injections are added or removed make sure to:
- invoke 'changedtree' callbacks for when new trees are added.
- invoke 'changedtree' callbacks for when trees are invalidated
- redraw regions when languagetree children are removed
|
|
|
| |
and set by default in `ftplugin/query.lua`
|
|\
| |
| | |
Add vim.iter benchmark to benchmark test suite
|
| |
| |
| |
| |
| |
| |
| |
| | |
Packing and unpacking return values impairs performance considerably.
In an attempt to avoid creating tables as much as possible we can
instead pass return values between functions (which does not require
knowing the number of values a function might return). This makes the
code more complex, but improves benchmark numbers non-trivially.
|