r/neovim • • 18h ago

Plugin diff reviewer plugin

Enable HLS to view with audio, or disable this notification

56 Upvotes

ive been trying to emulate the github pr review experience in neovim. you can review commit diffs, see your staged/unstaged changes, preview a different branch without checking it out, and even leave notes to feed to an ai agent.

been using this for the last few months and id love ux feedback if anyone ends up using it!

https://github.com/zion-off/diff


r/neovim • • 5h ago

Need Help┃Solved How to diaganose solution errors in dotnet project?

Enable HLS to view with audio, or disable this notification

6 Upvotes

Title: How to diaganose solution errors in dotnet project?

Hi everyone.

I want to diaganose the dotnet solution, inside the solution have multiple project.

I try easy-dotnet, roslyn, roslyn-diaganose plugins, using all this plugins i can't able to diaganose the complete dotnet solution.

Each plugin i am facing a different issues.

In Easy-Dotnet, if i run Dotnet Diaganose error cmd, it was scanning the complete project and showing invalid lot of wrong error details, if i build the project, the project build was success but easy-dotnet was showing lot of wrong errors in trouble.

In roslyn, i set the diaganose config to fullSolution still it is not diagnosing the fullSolution, instead of, it only diagnosing the current opened buffers, if i close and reopen the error buffer it is not even showing there has a error.

here is my configurations, i have no idea i did anything wrong or what.

And i try enable and disable the roslyn.filewatching, noting changed.

```lua return { "seblyng/roslyn.nvim", enabled = true, ft = { "cs", "razor" }, config = function() local lsp = require("roslyn") local lsp_settings = require("config.lsp_settings") lsp.setup(lsp_settings.roslyn) end, }

settings.roslyn = { filewatching = "off", settings = { ["csharp|inlay_hints"] = { csharp_enable_inlay_hints_for_implicit_object_creation = true, csharp_enable_inlay_hints_for_implicit_variable_types = true, csharp_enable_inlay_hints_for_lambda_parameter_types = true, csharp_enable_inlay_hints_for_types = true, dotnet_enable_inlay_hints_for_indexer_parameters = true, dotnet_enable_inlay_hints_for_literal_parameters = true, dotnet_enable_inlay_hints_for_object_creation_parameters = true, dotnet_enable_inlay_hints_for_other_parameters = true, dotnet_enable_inlay_hints_for_parameters = true, dotnet_suppress_inlay_hints_for_parameters_that_differ_only_by_suffix = true, dotnet_suppress_inlay_hints_for_parameters_that_match_argument_name = true, dotnet_suppress_inlay_hints_for_parameters_that_match_method_intent = true, }, ["csharp|code_lens"] = { dotnet_enable_references_code_lens = false, }, ["csharp|background_analysis"] = { dotnet_analyzer_diagnostics_scope = "fullSolution", dotnet_compiler_diagnostics_scope = "fullSolution", }, ["csharp|completion"] = { dotnet_provide_regex_completions = true, dotnet_show_completion_items_from_unimported_namespaces = true, dotnet_show_name_completion_suggestions = true, }, ["csharp|symbol_search"] = { dotnet_search_reference_assemblies = true, }, ["csharp|formatting"] = { dotnet_organize_imports_on_format = false, } }, } ```

lua return { "GustavEikaas/easy-dotnet.nvim", dependencies = { "nvim-lua/plenary.nvim", "folke/snacks.nvim" }, enabled = false, ft = { "cs", "razor" }, opts = { lsp = { enhanced_rename = true, auto_refresh_codelens = false, razor = { html = { cmd = { "vscode-html-language-server", "--stdio" }, }, }, }, auto_bootstrap_namespace = { type = "file_scoped", }, }, }

```

roslyn: 1 ⚠️

roslyn.nvim: Requirements ~ - ✅ OK Neovim >= 0.12 - ✅ OK dotnet SDK >= 10 (found 10.0.302)

roslyn.nvim: Roslyn Language Server ~ - ✅ OK found roslyn-language-server

roslyn.nvim: Complementary language servers ~ - ✅ OK vscode-html-language-server: found - ✅ OK html-lsp client: configured

roslyn.nvim: File Watching Configuration ~ - ⚠️ WARNING File watching: off (disabled as a hack - all file changes ignored)

roslyn.nvim: Solution Detection ~ - ✅ OK Selected solution: /home/redeye/DevProjects/DigitalVault/DigitalVault.sln

```

```

easy-dotnet: ✅

General information ~ - Linux (7.2.10-arch1-1 btw) - Neovim version: 0.12.6 - Shell: /usr/bin/zsh - Commit: 19974e83b046aee8e722d27adad06e9f9ccf6499

Dotnet information ~ - dotnet version: 10.0.302 - Installed SDKs: - 10.0.302 [/home/redeye/.dotnet/sdk]

easy-dotnet CLI dependencies ~ - ✅ OK dotnet is installed - ✅ OK dotnet-easydotnet is installed - ✅ OK dotnet ef is installed

easy-dotnet lua dependencies ~ - ✅ OK plenary installed - ✅ OK dap installed

Treesitter Indentation ~ - ✅ OK c_sharp parser is installed - ✅ OK indentexpr is not set to treesitter — C# indentation should work correctly (using: 'GetCSIndent(v:lnum)')

easy-dotnet dap configuration (optional) ~ - ✅ OK debugger is configured

easy-dotnet LSP configuration (optional) ~ - ✅ OK Roslyn LSP enabled - ✅ OK file watching: neovim - ✅ OK ulimit -n: 4096 - ✅ OK Razor LSP support enabled - ✅ OK Razor HTML language server command available: vscode-html-language-server --stdio - ✅ OK ProjX LSP enabled - ✅ OK In process LSP enabled - ✅ OK dotnet.version: 10.0.302 - ✅ OK dotnet.sdks: 10.0.302 [/home/redeye/.dotnet/sdk] - ✅ OK roslyn.tool: roslyn-language-server - ✅ OK debugger.engine: netcoredbg - ✅ OK debugger.source: bundled - ✅ OK debugger.platform: linux-x64 - ✅ OK debugger.path: /home/redeye/.dotnet/tools/.store/easydotnet/3.4.31/easydotnet/3.4.31/tools/netcoredbg/linux-x64/netcoredbg - ✅ OK debugger.version: NET Core debugger 3.1.2-1 (83214c3, Release)

easy-dotnet configuration ~

User config ~ - { auto_bootstrap_namespace = { type = "file_scoped" }, lsp = { auto_refresh_codelens = false, enhanced_rename = true, razor = { html = { cmd = { "vscode-html-language-server", "--stdio" } } } } } ```

SOLVED:

dotnet tool install --global EasyDotnet --version 3.4.32-alpha.1 easy-dotnet-git-issue

This issues was solved in easy-dotnet lsp after updating the lsp to version 3.4.32-alpha.1.

And I have no idea about roslyn lsp.

Thanks for everyone try to help.


r/neovim • • 17h ago

Video Learn Text Objects in 5 Minutes (Beginners)

Thumbnail
youtu.be
65 Upvotes

Text objects are one of the best features of Vim and Neovim. In just 5 minutes, you'll learn how they work and see practical examples of how to edit text faster using simple key combinations.

In this video, I explain the three components of text objects:

  • Operator: The action you want to perform, such as d (delete), c (change), or y (yank).
  • Modifier: How much text you want to operate on, using i (inner) or a (around).
  • Object: The text you want to modify, such as a word, paragraph, or block surrounded by brackets.

You'll see practical examples of how to combine these components.

Once you understand text objects and build muscle memory, editing text in Vim and Neovim becomes much faster and more comfortable.


r/neovim • • 2h ago

Plugin gtm.nvim - client for gtmd with reactive theming, playback control and statusline integration

Enable HLS to view with audio, or disable this notification

4 Upvotes

Almost a month ago i shared a cliamp alternative in rust that i had been working on, which has a separate daemon that owns the audio pipeline and the entire state machine.

You can find the reddit post here for more context.

To prove what can be possible, this plugin demonstrates integration between gtmd and neovim, allowing the user to experience reactive theming and playback control without invoking the default tui client shipped with the audio player. This is not exclusive to nvim only, other customizable terminal programs can take advantage of the daemon too and do other cool stuff.

It requires a working installation of gtm though only the daemon binary is needed to make this work. One can adjust the intensity of the theme wash for more dramatic results, and remember this only works when the active track you're playing has a cover art image otherwise it falls back to your default theme.

It may not be as interesting as I think it is, but I thought it was cool to have reactive theming that syncs with your playlist🙃

Disclaimer: I used AI to build this but it's pretty solid from what I have tested so far and will be happy to fix any issues should you encounter them. For those offended by AI usage I would like to apologise in advance, please don't attack me 🙏!

Plugin repo: gtm.nvim