Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(format): Don't leak bufnr into opts tables #2794

Merged
merged 1 commit into from
Mar 22, 2024

Conversation

AlexanderArvidsson
Copy link
Contributor

@AlexanderArvidsson AlexanderArvidsson commented Mar 21, 2024

Since Util.merge performs an in-place merge, bufnr is being leaked into the opts tables before being sent to the formatter.
This causes, in rare cases, the bufnr to be replaced by the wrong bufnr (i.e, not the current buffer), causing the formatting to apply to the wrong file.

This bug caused random text to be copied and inserted into unrelated files on save, which eventually snuck into our QA environment. Luckily, it got caught and I started investigating the issue. I found that the issue happened after (afca0b7), and found the root cause.

To demonstrate why this is a problem, do as follows:

  • Open an arbitrary file and save it, triggering conform
  • Note which bufnr this has via :echo bufnr('%')
  • Open a different file (do not save)
  • Check that bufnr is now a different bufnr as expected via :echo bufnr('%')
  • Run the following :lua vim.print(require("lazyvim.util").opts("conform.nvim").format or {})
  • Observe that bufnr is present in the conform.nvim options table, and that it points to the old buffer

Because of a recent change (afca0b7), the conform.nvim opts.format table is applied into the opts table before formatting, overwriting the proper bufnr value in the opts sent to the formatter, because conform.nvim would now contain it's own, stale bufnr.

This made me look at other uses of Util.merge and see that this indeed happens in several places.

The fix is to make sure we make a clone of the opts table before we trigger format, avoiding leaking the bufnr value into the plugin opts.

After this fix, observe that :lua vim.print(require("lazyvim.util").opts("conform.nvim").format or {}) does not contain bufnr in the conform.nvim table.

@dpetka2001
Copy link
Contributor

dpetka2001 commented Mar 21, 2024

Hi @AlexanderArvidsson

I'm the one who made the commit you're referring to.

You're right that bufnr is present in opts.format table and with your change it's not present any more. However, I checked with LazyVim 10.12.1 by binding the LazyVim to commit = "e3bfcb9" in its spec (my commit was included in release 10.13) and it had the same behavior, that is bufnr is still present in opts.format table (following exactly the same steps that you described).

My commit however does introduce this line and I can't tell with certainty that it doesn't cause the problem you're observing. But the steps you described are reproducible even in 10.12.1 before my commit, that is bufnr is present in conform's opts.format table.

Please keep in mind that I'm a beginner in programming and just trying to understand the underlying issue. Not trying to divert any responsibilities. Just to make sure that you don't misunderstand me.

@folke folke merged commit 213493e into LazyVim:main Mar 22, 2024
@folke
Copy link
Collaborator

folke commented Mar 22, 2024

Looks good to me. Thanks!

@dpetka2001
Copy link
Contributor

@folke Would you mind explaining if my change introduced this and why it didn't happen before my change (for example in 10.12.1) where bufnr was still leaked to opts.format table?

I'd appreciate it if you could take the time to answer my question, as I really want to understand.

Thanks in advance.

@briandipalma
Copy link
Contributor

I imagine it's because opts is a shared object used in different buffers/windows so if it gets changed in one to point to its buffer it will also affect other buffers. Which is why it's best to create a different object for each merge in this case?

@dpetka2001
Copy link
Contributor

So, if I understand correctly what you're saying, bufnr was also present in conform's opts.format table prior to this change, it's just that it wasn't introduced in the lsp.format.opts before so there wasn't a problem. Is that correct @briandipalma ?

@folke
Copy link
Collaborator

folke commented Mar 22, 2024

I'm not sure your change actually introduced the bug. It might have been happening before.
(I didn't have this issue at all, even with your changes)

The reason is indeed that deep_copy (and Util.merge) will merge into the first table, so definitely better to merge in a new empty table instead.

@dpetka2001
Copy link
Contributor

dpetka2001 commented Mar 22, 2024

Tnx @folke for replying. I did test with 10.12.1 and bufnr was even then present in conform's opts.format table, but the difference is that it maybe wasn't introduced in lsp.format.opts before.

I understand the logic for merging into a new table and why bufnr is not present in conform's opts.format table any more. Appreciate your time explaining.

@AlexanderArvidsson
Copy link
Contributor Author

AlexanderArvidsson commented Mar 22, 2024

@dpetka2001 You're correct, the bug as described by my PR was present before your change, but the practical effects of the bug was only surfaced after the change. Just to make things clear; I did not link the commit you made to put blame, I believe your change is great because it allows me to override conform formatting settings! So good job identifying that! ❤️

Even to me it was hard to create a minimal reproducible environment (I did try!) as the "formatting applied to wrong file" problem was only reliably reproduced in our company repository, so I decided to just describe what the problem was which caused the end-problem. I believe it could be caused by race conditions, as our repo is huge and formatting is generally a lot slower, so a minimal environment would not trigger the practical bug.

When I was researching the bug, I found the effects of the bug did not happen before your commit, but that's because the conform opts table was not merged into the formatting before the change. In short, before your change, the conform object wasn't used in the formatting, so bufnr would not overwrite the bufnr of the passed opts. The changes this PR makes fixes the underlying bug (i.e. leaking bufnr into the shared conform opts table) which wasn't a problem practically before (I believe the underlying bug was introduced over 5 months ago, but at the time it may not have been a concern and as such there's nothing wrong with that other than correctness).
Again, I'm glad I was able to find the cause and the fix is out now, great job to all of you and especially @folke for this great setup!

Thanks for the merge, now I can continue using the main branch! 😄

@dpetka2001
Copy link
Contributor

@AlexanderArvidsson No problem. I was just genuinely trying to understand the reason why this happened even though the bufnr was leaked before my commit as well. I never encountered this problem, but that may be because i usually use a specific formatter via conform and don't rely on LSP formatting.

I'm still new at programming and still don't really understand so much about what's going under the hood, so my main concern in my previous reply was to try and understand why it happened and I never encountered it. That's all.

Thanks for taking time explaining.

anjotadena pushed a commit to anjotadena/nvim-ide that referenced this pull request Apr 9, 2024
anjotadena added a commit to anjotadena/nvim-ide that referenced this pull request Apr 9, 2024
* fix(dot): treesitter for hypr was renamed to hyprlang

* feat(autocmds): dont use conceal for json files

* chore(build): auto-generate vimdoc

* feat(lsp): add diagnostic signs to lsp options (LazyVim#2192)

Co-authored-by: Gary Murray <gamurray@fanatics.com>

* feat(test): Add <leader>tl to neotest.run_last() (LazyVim#1968)

* feat(gitsigns): update gitsigns.nvim preview command (LazyVim#2178)

* chores(format.lua): Fix typo

* Change gitsigns.nvim hunk preview shortcut

Change `preview_hunk` to recently added `preview_hunk_inline` command

* feat(keymaps): add function to toggle between light/dark backgrounds (LazyVim#2088)

* fix(eslint): correct working directories name (LazyVim#2071)

* feat(neo-tree): Adds copy file name command to Neo-Tree with 'Y' binding (LazyVim#2137)

Co-authored-by: Ricardo Rebelo <ricardo.rebelo@siemens.com>

* chore(main): release 10.9.0 (LazyVim#2391)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: fixup for LazyVim#2137

* chore(main): release 10.9.1 (LazyVim#2399)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* docs: typo in init.lua (LazyVim#2365)

* docs(README-DE): remove .txt extension (LazyVim#2321)

Probably some windows editor that added this automatically + known extensions hidden.

* fix(autocmds): avoid checktime when buftype=nofile (LazyVim#2270)

It triggered an 'E11: Invalid in command-line window; <CR> executes,
CTRL-C quits' error when Neovim was in Command Line window and
FocusGained.

* fix(typescript): don't hardcode values in lua table (LazyVim#2254)

* fix(typescript): don't hardcode values in lua table

When a user changes `vim.opt.shiftwidth` with some auto-command, it's
not taken into account. Make `opts` a function, so that values get
evaluated when `lspconfig` loads instead.

* fix(typescript): remove format settings entirely

* fix(typescript): add back comment and Lua annotations

* fix(typescript): bring back function call completion snippets

* fix(options): change default conceal level to 2 (LazyVim#2053)

3 hides all concealed text, even if there are replacement chars defined

e.g. : for Markdown, 3 hides list item markers, dots for asterisk lists
and em-dashes for dash lists

If replacements are defined as defaults in a plugin, the "Laziest™"
config would seem to be displaying them.

Level 1 only seems useful when alignment really matters.

* feat(toggle): use `vim.diagnostic.is_disabled` when available (LazyVim#2217)

* feat(toggle-diagnostics): change logic based on `vim.diagnostic.is_disabled`

After discussion in LazyVim#2215, I thought maybe it would be beneficial if we
could change the logic of the `toggle-diagnostics` function based on if
the user has disabled diagnostics in his own configuration.

* feat(toggle-diagnostics): revert to `enable` instead of `status`

* fix(toggle): use vim.diagnostics enabled state when possible

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>

* fix(neo-tree): better copy file name with `Y`

* fix(hyprlang): use lazyvim way to install (LazyVim#2404)

* chore(build): auto-generate vimdoc

* fix(rust): avoid resetting cmp group_index to 1 (LazyVim#2332)

For example, 'buffer' source by default has group_index = 2 [1], however
if we take all the sources plus crates and run them through
cmp.config.sources() again, since it's a one-dimensional list, all
group_indexes will be reset to 1.

[1] https://github.com/LazyVim/LazyVim/blob/879e29504d43e9f178d967ecc34d482f902e5a91/lua/lazyvim/plugins/coding.lua#L74-L80

* feat: added `LazyHealth` that loads all plugins and runs `:checkhealth`

* feat(snippets): added extra to use native snippets instead of LuaSnip.

* feat(telescope): add <leader>fg for finding files using git-files (LazyVim#2353)

I found this to be more useful than the current <leader>ff and <leader>fF

* fix(autocmds): apply conceal level change to local buffer options (LazyVim#2409)

* chore(build): auto-generate vimdoc

* chore(main): release 10.10.0 (LazyVim#2400)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* chore(build): auto-generate vimdoc

* fix(dot): remove hyprlang plugin (LazyVim#2623)

* chore(build): auto-generate vimdoc

* fix(neo-tree): Add description to "Y" in Neo-Tree (LazyVim#2642)

It copies the path of the file/directory

* fix(autocmds): nvim already binds q to close for man-files (LazyVim#2594)

* fix(options): don't lower timeoutlen when in VS Code (LazyVim#2568)

Avoid lowering timeoutlen when running in VS Code, to avoid
unwanted timeouts from key mappings.

The lower value of 300ms (down from Neovim's default of 1000ms)
works great outside of VS Code, where it helps trigger the which-key UI
quickly, and where which-key prevents timeouts from occuring.

But in VS Code (where which-key isn't applicable), the lower value
makes it difficult to perform some key mappings in time,
such as `]p`, which requires shifting hand position.

* fix(yanky): properly disable sqlite.lua on Windows (LazyVim#2543)

When directly modifying its `enabled` property, the plugin will remain
disabled even if required by another plugin.

* feat(hipatterns): add shorthand hex color support (LazyVim#2562)

* feat(lang) replace rust-tools.nvim with rustacean.nvim - fixes LazyVim#2113 (LazyVim#2198)

* feat(lang) - move to rustacean.nvim, fixes LazyVim#2113

* update rustacean plugin

* PR comment for lsp settings

* fix(telescope): dont use git_files when .ignore or .rgignore file is present

* feat(lang): add ansible support (LazyVim#1218)

* feat(treesitter): add xml to `ensure_installed` (LazyVim#1962)

* chore(treesitter.lua): fix typo (LazyVim#2026)

* fix typo

* fix typo

* fix(telescope): anonymous keymap (LazyVim#1879)

* fix(telescope): anonymous keymap

* fix(telescope): add desc

* fix(telescope): function name

* fix(telescope): update description

* fix(telescope): diagnostic disable

* feat(lang): add Haskell config (LazyVim#2052)

* feat(util) create gitui extension (LazyVim#2238)

* feat(symbols-outline): use outline.nvim instead of symbols-outline.nvim (LazyVim#2535)

* feat(extras): Add scala support using nvim-metals (LazyVim#1347)

* Add scala support using nvim-metals

nvim-metals:
https://github.com/scalameta/nvim-metals

minimal example configuration from their documentation:
scalameta/nvim-metals#39

* add treesitter syntax highlighting

* feat(lang): add support for helm chart templates (LazyVim#2273)

* feat(lang): add support for helm chart templates

* fix(helm): stop yamlls and disable autostart

* fix(helm): stop yaml & docker compose lsp on helm file types

Revert disabling `autostart` since that kills the LSP globally even when
opening a standard yaml file, like GitHub Workflow file.

* fix(helm): remove docker compose lsp overrides

Since docker compose LSP does not seem to be triggered or started by
opening *.yaml helm files, the config overrides were removed to simplify
Helm config.

* fix(helm): ensure mason installs helm lsp

* feat(omnisharp): add `nvim-dap` configuration (LazyVim#2532)

* feat(omnisharp): add `nvim-dap` configuration

* chore(omnisharp): add `netcoredbg` to `ensure_installed`

* chore: simplify get `netcoredbg` path

* fix(util.ui.fg): Add `link=false` to show effective definition (LazyVim#2542)

Fixes LazyVim#2540 by showing the effective definition instead of the linked
group name.

* feat(extras): Enable project-specific plugin specs using local .lazy.lua (LazyVim#2115)

* feat(extras): Enable project-specific plugin specs using .lazy.lua

* added a warning when extra lazyrc is not the last plugin spec

* feat(lang): add telescope terraform integrations (LazyVim#2235)

* feat(lang): add telescope terraform integrations

Closes LazyVim#2234

Add telescope integrations for:
- https://github.com/ANGkeith/telescope-terraform-doc.nvim
- https://github.com/cappyzawa/telescope-terraform.nvim

* fix(lang): remove event from terraform telescope extensions

* style: formatting

* feat(autocmds): added support for copy/paste through ssh. Needs Neovim >= 0.10.0

* feat(extras): add harpoon2 (LazyVim#2455)

* feat(extras): add harpoon2

* Update lua/lazyvim/plugins/extras/editor/harpoon2.lua

Co-authored-by: Iordanis Petkakis <dpetka2001@gmail.com>

* chore: formatting

---------

Co-authored-by: Iordanis Petkakis <dpetka2001@gmail.com>

* feat(ui): dashboard files searches git files if in git repo (LazyVim#2240)

just like `<leader>ff` keymap for telescope

* fix(lang): Change `rustacean` keymaps to `vim.keymap.set` instead of `which-key` (LazyVim#2660)

Based on this [comment](LazyVim#2198 (review)).

* fix(ansible): incorrect key spec

* feat(lsp): added native codelens support. Enable in lsp settings. (disabled by default). Fixes LazyVim#2656

* feat(java): allow opts for setup_dap_main_class_configs() (LazyVim#2581)

[1] https://github.com/mfussenegger/nvim-jdtls/blob/382b9f625861f47d95876bcfb4c261f3b96077cb/doc/jdtls.txt#L206-L210

* fix(go): adding opts recursive_run (LazyVim#2520)

Adding opts recursive_run to fix the error 'no Go files in /path/project.' This issue is caused by a recent change in the 'nvim-neotest/neotest-go' project, which now [defaults to non-recursive behavior](nvim-neotest/neotest-go#72)

* fix(util): clear buffer root cache when cwd change (LazyVim#2502)

* chore(main): release 10.11.0 (LazyVim#2659)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(extras): show rename of symbols-outline => outline

* chore(main): release 10.11.1 (LazyVim#2664)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat(lang): replace rust-tools.nvim with rustacean.nvim LazyVim#2198

dummy commit to trigger changelog.
original commit message was not correct and didnt get picked up by the changelog

* fix(extras): set correct priority for outline extra. Fixes LazyVim#2666

* chore(main): release 10.12.0 (LazyVim#2667)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(haskell): Make Haskell-snippets lazy load for performance (LazyVim#2676)

* fix(haskell): add filetype to haskell-snippets for lazy load

* format haskell.lua

---------

Co-authored-by: Uthman Mohamed <83053931+1239uth@users.noreply.github.com>

* chore(build): auto-generate vimdoc

* fix(hi-patterns): correct regex for shorthand hex colors. See #LazyVim#2562

* fix(extras): automatically rename extra symbols-outline => outline. Fixes LazyVim#2675

* fix(extras): prevent duplicate extra imports

* chore(main): release 10.12.1 (LazyVim#2677)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(terraform-extra): Drop unnecessary commentstring config for terraform (LazyVim#2680)

* fix(terraform-extra): Drop unnecessary commentstring config for terraform

The commentstring for terraform and hcl files is now handled by nvim-ts-context-commentstring:

JoosepAlviste/nvim-ts-context-commentstring#94

* Fixed terraform.lua issues. I'm bad.

* chore(build): auto-generate vimdoc

* feat(lualine): add more hl options to pretty_path (LazyVim#2687)

* feat(lualine): add more hl options to pretty_path

Adds two additional options to pretty_path: filename_hl and dirpath_hl.

This allows users to customize the highlight group of both the directory
component of the path name and the filenname independently. modified_hl
is still used when the buffer has been modified.

Thanks to dpetka2001 (Iordanis Petkakis) for the changes to the format
function.

* feat: cleanup

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>

* chore(build): auto-generate vimdoc

* fix(options): dont set clipboard in an SSH session, so that OSC52 can be enabled (when supported)

* chore(build): auto-generate vimdoc

* feat(git): add <leader>gf for lazygit commit history on current file (LazyVim#2728)

* Add <leader>gf for lazygit commit history on current file

* Change root dir to git root using git command

* refactor: cleanup

---------

Co-authored-by: Uthman Mohamed <83053931+1239uth@users.noreply.github.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>

* chore(build): auto-generate vimdoc

* fix(rust): don't overwrite `vim.g.rustaceanvim` if it is defined (LazyVim#2720)

* fix(conform): make `lsp_fallback` option user configurable (LazyVim#2616)

* chore(build): auto-generate vimdoc

* fix(markdown): disable headlines.nvim in insert mode. Fixes LazyVim#2717

* fix(markdown): disable headlines.nvim bullets for now

* fix(mini.files): description for `g.` keybinding in mini.files (LazyVim#2693)

If you press `g` in a mini.files menu, the `.` key shows up but doesn't have a description. This adds a desc attribute to the binding so the menu shows a correct description.

* fix(which-key): add group description for folds (LazyVim#2496)

Signed-off-by: Jeff Davis <mr.jefedavis@gmail.com>

* chore(main): release 10.13.0 (LazyVim#2684)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(git): use compatible function for windows and linux (LazyVim#2740)

* chore(build): auto-generate vimdoc

* fix(lazygit): make sure we start lazygit in a valid git root

* chore(build): auto-generate vimdoc

* fix(neotest): add required nvim-nio to test and dap extra (neotest and nvim-dap-ui respectively) (LazyVim#2763)

* Adding required nvim-nio to neotest in test-core

neotest now requires nvim-neotest/nvim-nio to be
installed as per BREAKING CHANGE: nvim-neotest/neotest#337

* Adding nvim-nio as dependency

nvim-dap-ui now requires  nvim-neotest/nvim-nio as a dependency as of recent changes

* chore(build): auto-generate vimdoc

* fix(extras): accept symlinks in User `extras` directory (LazyVim#2745)

* feat(lualine): add `modified_sign` to `pretty_path` (LazyVim#2754)

Closes LazyVim#2752

I left the initial text blank on purpose, so that it doesn't change
anything stylistically and let the user decide what he wants to add
in his personal configuration for `lualine` spec.

* fix(format): format injected langs does not wait 300ms (LazyVim#2737)

* feat(mini.ai): add more objects d,e,g,u,U (LazyVim#2769)

* chore(main): release 10.14.0 (LazyVim#2741)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(lsp): dont auto install disabled lsp servers

* feat(python): added option to configure basedpyright as lsp. Check the python extra docs. Fixes LazyVim#2787

* chore(build): auto-generate vimdoc

* chore(main): release 10.15.0 (LazyVim#2790)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(util.telescope): make `show_untracked` configurable (LazyVim#2789)

* feat: added LazyVim global. Will refactor specs later to use that

* fix(python): basedpyright is now supported by mason-lspconfig

* chore(build): auto-generate vimdoc

* fix(format): Don't leak bufnr into opts tables (LazyVim#2794)

* chore(build): auto-generate vimdoc

* feat: use `vim.uv` everywhere instead of `vim.loop`

* feat: use LazyVim everywhere instead of `require("lazyvim.util")`

* feat(lazyterm): optional shell setup, mainly for pwsh. Fixes LazyVim#2151

* fix(java): dont error when not using cmp. Fixes LazyVim#2038

* feat(telescope-fzf-native): added support for building with cmake. Fixes LazyVim#2132

* fix(cmake): lazy load cmake-tools. Fixes LazyVim#2767

* fix: add shim for vim.uv just in case someone upgrades lazyvim before lazy

* chore(main): release 10.16.0 (LazyVim#2791)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat(options): Disable foldtext for nightly (LazyVim#2447)

* chores(format.lua): Fix typo

* Change gitsigns.nvim hunk preview shortcut

Change `preview_hunk` to recently added `preview_hunk_inline` command

* feat(options): remove redundant commented line

* feat(options): use native folding

see neovim/neovim#20750

* feat(neo-tree): add mapping "O" to open with system default (LazyVim#2758)

* feat(neo-tree): add mapping "O" to open with system default

* feat(neo-tree): add OS checks for system default open commands

* Use `vim.ui.open` if exists

* update OS checks

* Just use vim.ui.open or throw error if doesn't exist

* Make "O" undefined mapping if vim.ui.open isn't available

* fix: use lazy's util.open instead

---------

Co-authored-by: Uthman Mohamed <83053931+1239uth@users.noreply.github.com>
Co-authored-by: saeedahsan <ahsan02@gmail.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>

* chore(build): auto-generate vimdoc

* feat(python): allow configuring other python lsp servers than pyright, basedpyright

* chore(build): auto-generate vimdoc

* feat(util): added util function to get a fg/bg color from the active colorscheme

* feat(lazygit): lazygit now automatically uses colors from your Neovim colorscheme

Disable by setting `vim.g.lazygit_theme = false` in your `options.lua`

* chore(main): release 10.17.0 (LazyVim#2805)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(lazygit): allow overriding default terminal options

* chore(main): release 10.17.1 (LazyVim#2827)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(lazygit): dont error when setting ansi color fails. Fixes LazyVim#2829

* chore(main): release 10.17.2 (LazyVim#2831)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* perf(notify): disable animation notifications. too big impact on performance for too little benefit

To keep using animations, you can set stages = fade_in_slide_out for the
nvim-notify plugin

* chore(main): release 10.17.3 (LazyVim#2833)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat(lazygit): configure lazygit nvim-remote as editor and enable nerdfont icons

can be disabled with `vim.g.lazygit_config = false`

* fix(terminal): dont use backdrop for edgy terminal windows

* feat(extras): add dial extra (LazyVim#2798)

* feat: add dial extra

* refactor: removed print statements

* fix(extras): early return for dial extra

* refactor: dials_by_ft like conform, nvim-lint. Simplified buffer specific groups

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>

* chore(main): release 10.18.0 (LazyVim#2834)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: use `LazyVim.is_win()`

* fix(autocmds): auto create directory on windows for uris. Fixes LazyVim#2442

* fix(keymaps): update all keymap descriptions to be Title Case (LazyVim#2844)

* chore(build): auto-generate vimdoc

* fix(lazygit): error handling for getting lazygit's config path

* fix(lazygit): use `Visual` instead of `CursorLine` for selected line. Fixes LazyVim#2846

* feat(lazygit): allow customizing the lazygit theme. Check the code to change the hl group mapping. Fixes LazyVim#2846

* fix(python-semshi): better highlights (LazyVim#2839)

* chore(main): release 10.19.0 (LazyVim#2835)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(config): type filter was broken for telescope symbols

* fix(nvim-lint): don't duplicate linters. Fixes LazyVim#2852

* feat(cmp): added option `auto_brackets` that adds brackets to functions/methods in configured filetypes

* feat(python): enable auto_brackets for python, since pyright and basedpyright dont support this natively

* chore(build): auto-generate vimdoc

* feat(extras): added extra for the `trouble.nvim` v3 beta

* fix(trouble): show message if use hasnt updated with Lazy yet after enabling the extra

* fix(statuscolumn): right align signs when virtnum > 0

* feat(extras): added extra for mini.diff

* feat(extras): use mini.move instead of native move (LazyVim#2865)

* chore(main): release 10.20.0 (LazyVim#2849)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(trouble-v3): use the filtered symbols list for lualine

* chore(main): release 10.20.1 (LazyVim#2869)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(mini.move): default mini.move setup already maps the correct keys

* feat(trouble): added `<leader>cS` to open a trouble list of all references / definitions / ... of the item under the cursor

* feat(trouble): enabled edgy

* chore(build): auto-generate vimdoc

* fix(tex): don't override conceallevel for tex. Not sure why that was added

* chore(main): release 10.21.0 (LazyVim#2870)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(native_snippets): don't try to enable native snippets on Neovim < 0.10.0 and show warning

* fix: merge conflict

* fix(lsp): dont define diagnostics signs on >= 0.10.0

* fix(lsp): better support for diagnostics icons on Neovim nightly/stable

* chore(main): release 10.21.1 (LazyVim#2873)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(harpoon): optimizes harpoon keys (LazyVim#2877)

* feat(dot): add bashls and shellcheck (LazyVim#2879)

---------

Signed-off-by: Jeff Davis <mr.jefedavis@gmail.com>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Gary Murray <garymjr@gmail.com>
Co-authored-by: Gary Murray <gamurray@fanatics.com>
Co-authored-by: Samuel Abreu <sdepaula@gmail.com>
Co-authored-by: Sergey Kochetkov <skoch13@pm.me>
Co-authored-by: NickSager <121263610+NickSager@users.noreply.github.com>
Co-authored-by: Nick Hester <nickhstr@gmail.com>
Co-authored-by: pr3c0g <precogster@gmail.com>
Co-authored-by: Ricardo Rebelo <ricardo.rebelo@siemens.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pablo <52180403+pablos123@users.noreply.github.com>
Co-authored-by: tippfehlr <tippfehlr@tippfehlr.eu>
Co-authored-by: Frederick Zhang <frederick888@tsundere.moe>
Co-authored-by: Iordanis Petkakis <dpetka2001@gmail.com>
Co-authored-by: Adrian Wilkins <adrian.wilkins@gmail.com>
Co-authored-by: Binh Duc Tran <binhtran432k@gmail.com>
Co-authored-by: Yi <yzhuang@users.noreply.github.com>
Co-authored-by: Michael Olson <48652773+m0lson84@users.noreply.github.com>
Co-authored-by: Luckas <luckasranarison@gmail.com>
Co-authored-by: Aman9das <39594914+Aman9das@users.noreply.github.com>
Co-authored-by: Dennis Eriksen <796800+dennisse@users.noreply.github.com>
Co-authored-by: mbhutton <mbhutton@gmail.com>
Co-authored-by: MoetaYuko <loli@yuko.moe>
Co-authored-by: Daniel Mata <100956688+matadaniel@users.noreply.github.com>
Co-authored-by: Andreas Gerlach <appelgriebsch@users.noreply.github.com>
Co-authored-by: Jakub Kozłowicz <ja.kozlowicz@gmail.com>
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
Co-authored-by: Frederik Buchlák <30214087+fbuchlak@users.noreply.github.com>
Co-authored-by: André Freitas <andrecfreitas58@gmail.com>
Co-authored-by: Marc Jakobi <mrcjkb89@outlook.com>
Co-authored-by: Alafate <alafate.abulimiti@gmail.com>
Co-authored-by: Christian Kleinbölting <seakayone@users.noreply.github.com>
Co-authored-by: Peter Benjamin <petermbenjamin@gmail.com>
Co-authored-by: Võ Quang Chiến <87252943+2giosangmitom@users.noreply.github.com>
Co-authored-by: abeldekat <58370433+abeldekat@users.noreply.github.com>
Co-authored-by: Nybkox <nybkox@gmail.com>
Co-authored-by: Pedro Cattori <pcattori@gmail.com>
Co-authored-by: Wellington Lopes Souza <wellington.lopess@mercadolivre.com>
Co-authored-by: Tang-Tang Zhou <tangtang2995@gmail.com>
Co-authored-by: Uthman Mohamed <83053931+uthmanmoh@users.noreply.github.com>
Co-authored-by: Uthman Mohamed <83053931+1239uth@users.noreply.github.com>
Co-authored-by: Adam Stracener <6558867+NeckBeardPrince@users.noreply.github.com>
Co-authored-by: Pete Kazmier <pete@kazmier.com>
Co-authored-by: Marc Jakobi <marc.jakobi@tiko.energy>
Co-authored-by: Dusty Phillips <86920+dusty-phillips@users.noreply.github.com>
Co-authored-by: Jeff Davis <mr.jefedavis@gmail.com>
Co-authored-by: craempler <74294267+msMatix@users.noreply.github.com>
Co-authored-by: Stefan Krüger <stefan@standa.de>
Co-authored-by: Phúc H. Lê Khắc <phuc.lkh@gmail.com>
Co-authored-by: Alexander Arvidsson <alexander@arvidson.nu>
Co-authored-by: saeedahsan <ahsan02@gmail.com>
Co-authored-by: Feliche-Demian Netliukh <51330172+Demianeen@users.noreply.github.com>
Co-authored-by: Kevin Traver <kevintraver@kevintraver.com>
Co-authored-by: ammon134 <113684938+ammon134@users.noreply.github.com>
Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com>
konosubakonoakua pushed a commit to konosubakonoakua/LazyVim that referenced this pull request Apr 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants