aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua
Commit message (Collapse)AuthorAge
...
| * feat(health): make :checkhealth support more split modifiers (#26731)zeertzjq2023-12-25
| |
| * feat(health): checkhealth buffer can show in a split window (#26714)Pablo Arias2023-12-25
| | | | | | | | | | | | :checkhealth now respects :vertical and :horizontal. For example: :vertical checkhealth foo bar will open the healthcheck buffer in a vertical split.
| * fix(treesitter): outdated highlight due to tree with outdated regionJaehwang Jung2023-12-24
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: A region managed by an injected parser may shrink after re-running the injection query. If the updated region goes out of the range to be parsed, then the corresponding tree will remain outdated, possibly retaining the nodes that shouldn't exist anymore. This results in outdated highlights. Solution: Re-parse an invalid tree if its region intersects the range to be parsed.
| * fix(lsp): filetype matching to documentSelector in dynamic capabilities (#25425)Michal Liszcz2023-12-22
| | | | | | | | | | | | | | Use the get_language_id client option to resolve the filetype when matching the document selector in a dynamic capability. Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
| * refactor(lsp): move glob parsing to util (#26519)Steven Arcangeli2023-12-22
| | | | | | | | | | | | | | | | refactor(lsp): move glob parsing to vim.glob Moving the logic for using vim.lpeg to create a match pattern from a glob into `vim.glob`. There are several places in the LSP spec that use globs, and it's very useful to have glob matching as a generally-available utility.
| * feat(lsp): add type annotations for lsp.util.locations_to_items (#26694)Mathias Fußenegger2023-12-22
| | | | | | | | Problem: luals reported many warnings Solution: Add type annotations
| * docs(options): add codeblock annotations to options.lua (#26696)Christian Clason2023-12-22
| | | | | | | | | | Also consistently remove leading colons in examples Co-authored-by: zeertzjq <zeertzjq@outlook.com>
| * vim-patch:9.0.2183: Maximum callback depth is not configurable (#26703)zeertzjq2023-12-22
| | | | | | | | | | | | | | | | | | Problem: Maximum callback depth is not configurable. Solution: Revert patch 9.0.2103. Set 'maxfuncdepth' in test. fixes: vim/vim#13732 closes: vim/vim#13736 https://github.com/vim/vim/commit/fe583b1e5987fbfdb5f2141c133dbff9665ed301
| * feat: generate types and docs for v variablesLewis Russell2023-12-21
| |
| * fix(osc52): use nvim_chan_send() to stderr for copying (#26690)zeertzjq2023-12-21
| | | | | | | | | | | | | | The data to be written can be very long, so use nvim_chan_send() instead of io.stdout:write() as the latter doesn't handle EAGAIN. A difference of these two approaches is that nvim_chan_send() writes to stderr, not stdout, so it won't work if client stderr is redirected.
| * docs: apply current colorscheme to default highlight groupsChristian Clason2023-12-20
| | | | | | | | | | | | Problem: Not all default highlight groups show their actual colors. Solution: Refactor `vimhelp.lua` and apply it to all relevant lists (UI groups, syntax groups, treesitter groups, LSP groups, diagnostic groups).
| * refactor(treesitter): cleanup highlighterLewis Russell2023-12-20
| | | | | | | | | | | | | | | | - Remove some unused fields - Prefix classes with `vim.` - Move around some functions so the query stuff is at the top. - Improve type hints - Rework how hl_cache is implemented
| * vim-patch:9.0.2179: no filetype detection for execline scriptsChristian Clason2023-12-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: no filetype detection for execline scripts Solution: Add filetype detection for execline as a prior to adding syntax support for execline (see https://github.com/djpohly/vim-execline/issues/2), i went ahead and made the filetype detection for execline scripts. closes: vim/vim#13689 Signed-Off-By: Mazunki Hoksaas <rolferen@gmail.com> https://github.com/vim/vim/commit/63210c214afa6589b6132bd060908a8711f4567f Co-authored-by: Mazunki Hoksaas <rolferen@gmail.com>
| * fix(treesitter): prepare highlight states for [s, ]sJaehwang Jung2023-12-19
| |
| * docs: small fixes (#26448)dundargoc2023-12-19
| | | | | | | | Co-authored-by: Gregory Anders <8965202+gpanders@users.noreply.github.com> Co-authored-by: Jordan Mandel <jordan.mandel@live.com>
| * feat(api): add forward and back mouse buttonsAmanda Graven2023-12-18
| |
| * refactor: soft-deprecate diagnostic signs configured with :sign-define (#26618)Gregory Anders2023-12-18
| | | | | | | | | | Diagnostic signs should now be configured with vim.diagnostic.config(), but "legacy" sign definitions should go through the standard deprecation process to minimize the impact from breaking changes.
| * docs(diagnostic): add return value of `vim.diagnostic.config()` (#26615)Yi Ming2023-12-17
| |
| * perf(treesitter): filter out trees outside the visible range earlyJaehwang Jung2023-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Treesitter highlighter's on_line was iterating all the parsed trees, which can be quite a lot when injection is used. This may slow down scrolling and cursor movement in big files with many comment injections (e.g., lsp/_meta/protocol.lua). Solution: In on_win, collect trees inside the visible range, and use them in on_line. NOTE: This optimization depends on the correctness of on_win's botline_guess parameter (i.e., it's always greater than or equal to the line numbers passed to on_line). The documentation does not guarantee this, but I have never noticed a problem so far.
| * refactor(lsp): move changetracking to separate file (#26577)Lewis Russell2023-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor(lsp): move changetracking to separate file - Prefixed changetracking types with `vim.lsp.` * fixup!: make _reset_timer a local function * fixup!: remove @private annotations * fixup!: changetracking.lua -> _changetracking.lua * fixup! types * fixup! add send_changes_for_group
| * refactor: only reload colorscheme if &bg changed (#26598)Gregory Anders2023-12-16
| | | | | | | | | | | | | | | | | | | | Currently, setting &bg at all re-initializes highlights and reloads the active colorscheme, even if the actual value of &bg has not changed. With https://github.com/neovim/neovim/pull/26595 this causes a regression since &bg is set unconditionally based on the value detected from the terminal. Instead, only reload the colorscheme if the actual value of &bg has changed.
| * vim-patch:82f19734bfcbChristian Clason2023-12-16
| | | | | | | | | | | | | | | | | | | | | | runtime(doc): remove deprecation warning for gdefault Deprecated can be misunderstood as being slated for removal; slightly change wording to be clearer. https://github.com/vim/vim/commit/82f19734bfcbddbaee8d5d837f7b7a7119366020 Co-authored-by: dundargoc <gocdundar@gmail.com>
| * feat(ui): completeopt support popup like vimmathew2023-12-16
| |
| * refactor(defaults): always set options, even if value hasn't changed (#26595)Gregory Anders2023-12-15
| | | | | | | | | | | | | | | | Comparing against the old value before setting matched the original C implementation, but there is no reason to use this restriction. In particular, this inhibits using OptionSet to determine when the option was set. If users need to handle a case where the option _changed_, it is easy to do so in an OptionSet autocommand using v:option_new and v:option_old (and friends).
| * Merge pull request #26579 from gpanders/defer-set-tgcGregory Anders2023-12-15
| |\ | | | | | | refactor(defaults): defer setting 'termguicolors' until after VimEnter
| | * refactor(defaults): defer setting 'termguicolors' until after VimEnterGregory Anders2023-12-14
| | | | | | | | | | | | | | | This ensures that any OptionSet autocommands will fire when the value is changed.
| | * fix(termcap): set 'nested' on TermResponse autocommandGregory Anders2023-12-14
| | |
| * | vim-patch:17dca3cb97cd (#26584)zeertzjq2023-12-15
| |/ | | | | | | | | | | | | | | | | runtime(doc): grammar & typo fixes closes: vim/vim#13654 https://github.com/vim/vim/commit/17dca3cb97cdd7835e334b990565c8c0b93b1284 Co-authored-by: Dominique Pellé <dominique.pelle@tomtom.com>
| * refactor(diagnostic): use named namespaces (#26568)Gregory Anders2023-12-14
| | | | | | | | | | Anonymous namespaces are more difficult to extend or hook into since they do not appear in the output of nvim_get_namespaces(). Use named namespaces instead.
| * docs: add comment for OSC 11 tmux passthrough (#26566)Gregory Anders2023-12-14
| |
| * feat(lsp): more annotationsLewis Russell2023-12-14
| |
| * feat(nvim_open_term): convert LF => CRLF (#26384)Raphael2023-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Unlike termopen(), nvim_open_term() PTYs do not carriage-return the cursor on newline ("\n") input. nvim --clean :let chan_id = nvim_open_term(1, {}) :call chansend(chan_id, ["here", "are", "some", "lines"]) Actual behavior: here are some lines Expected behaviour: here are some lines Solution: Add `force_crlf` option, and enable it by default.
| * fix(defaults): background detection in tmux (#26557)Jaehwang Jung2023-12-14
| | | | | | Wrap the query with passthrough sequence
| * docs: add installation and build guides from wiki to repodundargoc2023-12-13
| |
| * feat(diagnostics): support numhl and linehl for diagnostic signsGregory Anders2023-12-13
| |
| * docs(diagnostic): fix typo in exampleGregory Anders2023-12-13
| |
| * fix(diagnostic): check for sign namespace instead of sign groupGregory Anders2023-12-13
| |
| * refactor(diagnostic): set sign by using extmark (#26193)Raphael2023-12-13
| | | | | | | | after sign implementation refactor by using extmark, we can use `nvim_buf_set_extmark` to set diagnostic sign instead use `sign_define`
| * fix(termcap): only call callback for requested capabilities (#26546)Gregory Anders2023-12-13
| | | | | | | | | | | | | | If multiple XTGETTCAP requests are active at once (for example, for requesting the Ms capability and truecolor capabilities), then the TermResponse autocommand may fire for capabilities that were not requested. Instead, make sure that the provided callback is only called for capabilities that were actually requested.
| * feat(iter): add `Iter.take` (#26525)Will Hopkins2023-12-12
| |
| * Merge pull request #26506 from tomtomjhj/tsfoldLewis Russell2023-12-11
| |\ | | | | | | fix(treesitter): improve vim.treesitter.foldexpr
| | * fix(treesitter): improve vim.treesitter.foldexprJaehwang Jung2023-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Collect on_bytes and flush at the invocation of the scheduled callback to take account of commands that triggers multiple on_bytes. * More accurately track movement of folds so that foldexpr returns reasonable values even when the scheduled computation is not run yet. * Start computing folds from the line above (+ foldminlines) the changed lines to handle the folds that are removed due to the size limit. * Shrink folds that end at the line at which another fold starts to assign proper level to that line. * Use level '=' for lines that are not computed yet.
| | * fix(treesitter): fix indexing in foldexprJaehwang Jung2023-12-12
| | |
| * | feat(gen_lsp.lua): validate CLI args #26514Jongwook Choi2023-12-11
| |/ | | | | | | | | | | | | | | - Improve CLI argument parsing, rejects invalid argument and commands as early as possible. Also prints USAGE in the command line. - No longer allows `--<outfile>`, use `--out <outfile>` instead. - Print a little bit of verbose messages to better know what's going on rather than remaining silent at all times. - Add type annotation `gen_lsp._opt` to avoid type warnings.
| * fix(snippet): remove misleading comment about TM_FILENAME_BASE (#26465)Maria José Solano2023-12-08
| |
| * Merge pull request #26407 from gpanders/default-tgcGregory Anders2023-12-06
| |\ | | | | | | feat(defaults): enable 'termguicolors' by default when supported by terminal
| | * feat(defaults): enable 'termguicolors' by default when supported by terminalGregory Anders2023-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable 'termguicolors' automatically when Nvim can detect that truecolor is supported by the host terminal. If $COLORTERM is set to "truecolor" or "24bit", or the terminal's terminfo entry contains capabilities for Tc, RGB, or setrgbf and setrgbb, then we assume that the terminal supports truecolor. Otherwise, the terminal is queried (using both XTGETTCAP and SGR + DECRQSS). If the terminal's response to these queries (if any) indicates that it supports truecolor, then 'termguicolors' is enabled.
| * | fix(json): allow objects with empty keys #25564Emanuel2023-12-06
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Empty string is a valid JSON key, but json_decode() treats an object with empty key as ":help msgpack-special-dict". #20757 :echo json_decode('{"": "1"}') {'_TYPE': [], '_VAL': [['', '1']]} Note: vim returns `{'': '1'}`. Solution: Allow empty string as an object key. Note that we still (currently) disallow empty keys in object_to_vim() (since 7c01d5ff9286d262097484c680e3a4eab49e2911): https://github.com/neovim/neovim/blob/f64e4b43e1191ff30d902730f752875aa55682ce/src/nvim/api/private/converter.c#L333-L334 Fix #20757 Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
| * feat(lua): implement Iter:join() (#26416)Gregory Anders2023-12-05
| |
| * refactor(api): complete conversion from `Dictionary` to `Dict(opts)` (#26365)Riccardo Mazzarini2023-12-05
| |