From 69d1e6613e77c7383f75fbc54a2b2c55d6c4cfe9 Mon Sep 17 00:00:00 2001 From: radumacocian Date: Sun, 24 Aug 2025 18:44:25 +0200 Subject: [PATCH] added roslyn and telescope_ui_select --- .config/nvim/after/plugin/lspconfig.lua | 83 +++++++----------- .config/nvim/after/plugin/mason-lspconfig.lua | 1 + .config/nvim/after/plugin/mason.lua | 6 ++ .config/nvim/after/plugin/telescope.lua | 12 ++- .config/nvim/lazy-lock.json | 19 ++-- .config/nvim/lua/wicked/lazy.lua | 1 + ...up%.config%nvim%after%plugin%lspconfig.lua | Bin 6059 -> 33700 bytes ...nfig%nvim%after%plugin%mason-lspconfig.lua | Bin 3191 -> 721 bytes ...%setup%.config%nvim%after%plugin%mason.lua | Bin 2313 -> 1291 bytes ...cts%setup%.config%nvim%lua%wicked%lazy.lua | Bin 19633 -> 2857 bytes 10 files changed, 63 insertions(+), 59 deletions(-) create mode 100644 .config/nvim/after/plugin/mason.lua diff --git a/.config/nvim/after/plugin/lspconfig.lua b/.config/nvim/after/plugin/lspconfig.lua index 78b1ce2..de6c3dc 100644 --- a/.config/nvim/after/plugin/lspconfig.lua +++ b/.config/nvim/after/plugin/lspconfig.lua @@ -24,31 +24,32 @@ lspconfig.cssls.setup { capabilities = capabilities, } lspconfig.lua_ls.setup {} --- require('roslyn').setup({ --- config = { --- 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, --- }, --- }, --- }, --- exe = { --- "dotnet", --- vim.fs.joinpath(vim.fn.stdpath("data"), "roslyn", "Microsoft.CodeAnalysis.LanguageServer.dll"), --- }, --- filewatching = true, --- }) +vim.lsp.config('roslyn', { + 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, + }, + }, +}) + +require('roslyn').setup({ + exe = { + "dotnet", + vim.fs.joinpath(vim.fn.stdpath("data"), "roslyn", "Microsoft.CodeAnalysis.LanguageServer.dll"), + }, + filewatching = true, +}) vim.api.nvim_create_autocmd('LspAttach', { @@ -63,7 +64,14 @@ vim.api.nvim_create_autocmd('LspAttach', { vim.keymap.set('n', 'gi', function() vim.lsp.buf.implementation() end, opts) vim.keymap.set('n', '[d', function() vim.diagnostic.goto_next() end, opts) vim.keymap.set('n', ']d', function() vim.diagnostic.goto_prev() end, opts) - vim.keymap.set('n', 'vca', function() vim.lsp.buf.code_action() end, opts) + vim.keymap.set('n', 'vca', function() + vim.lsp.buf.code_action({ + context = { + diagnostics = vim.diagnostic.get(0), + only = { 'quickfix', 'refactor', 'source' } + } + }) + end, opts) vim.keymap.set('n', 'vrr', function() vim.lsp.buf.references() end, opts) vim.keymap.set('n', 'vrn', function() vim.lsp.buf.rename() end, opts) vim.keymap.set('i', '', function() vim.lsp.buf.signature_help() end, opts) @@ -71,29 +79,6 @@ vim.api.nvim_create_autocmd('LspAttach', { end, }) --- require('blink').setup({ --- cmp = { --- sources = { --- { name = 'lsp' }, --- { name = 'buffer' }, --- { name = 'path' }, --- { name = 'snippets' }, --- }, --- mapping = { --- [''] = 'select_next', --- [''] = 'select_prev', --- [''] = 'confirm', --- [''] = 'trigger', --- }, --- snippets = { --- expand = function(args) --- -- Optional: integrate with luasnip if you still use it --- require('luasnip').lsp_expand(args.body) --- end --- } --- } --- }) - local cmp = require('cmp') local cmp_select = { behavior = cmp.SelectBehavior.Select } diff --git a/.config/nvim/after/plugin/mason-lspconfig.lua b/.config/nvim/after/plugin/mason-lspconfig.lua index 7baee14..9ccee23 100644 --- a/.config/nvim/after/plugin/mason-lspconfig.lua +++ b/.config/nvim/after/plugin/mason-lspconfig.lua @@ -3,6 +3,7 @@ require("mason-lspconfig").setup { ensure_installed = { "lua_ls", "cssls", "angularls", + "roslyn", "gopls", "ts_ls", "eslint" }, diff --git a/.config/nvim/after/plugin/mason.lua b/.config/nvim/after/plugin/mason.lua new file mode 100644 index 0000000..12d8f1f --- /dev/null +++ b/.config/nvim/after/plugin/mason.lua @@ -0,0 +1,6 @@ +require("mason").setup({ + registries = { + "github:mason-org/mason-registry", + "github:Crashdummyy/mason-registry", + }, +}) diff --git a/.config/nvim/after/plugin/telescope.lua b/.config/nvim/after/plugin/telescope.lua index 783798d..add9241 100644 --- a/.config/nvim/after/plugin/telescope.lua +++ b/.config/nvim/after/plugin/telescope.lua @@ -1,6 +1,16 @@ +require('telescope').setup { + extensions = { + ["ui_select"] = { + require('telescope.themes').get_dropdown { + } + } + } +} +require('telescope').load_extension('ui-select') + local builtin = require('telescope.builtin') vim.keymap.set('n', 'pf', builtin.find_files, {}) vim.keymap.set('n', 'p', builtin.git_files, {}) vim.keymap.set('n', 'ps', function() - builtin.grep_string({ search = vim.fn.input("Grep > ") }); + builtin.grep_string({ search = vim.fn.input("Grep > ") }); end) diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 3279b22..7b0c6e9 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,23 +1,24 @@ { "LuaSnip": { "branch": "master", "commit": "de10d8414235b0a8cabfeba60d07c24304e71f5c" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "dotnet.nvim": { "branch": "main", "commit": "f5c52f9f52a3d8ca8dff6916c2228fb41a075274" }, - "everforest-nvim": { "branch": "main", "commit": "2eb7c348f880ba93de4d98cae049c9441f5d4d49" }, + "everforest-nvim": { "branch": "main", "commit": "8db2bd8af38ed7b1bd12baa9a28858ff92e839bf" }, "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "7f0bf635082bb9b7d2b37766054526a6ccafdb85" }, + "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1ec4da522fa49dcecee8d190efda273464dd2192" }, "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, - "neogit": { "branch": "master", "commit": "b8d840ed988ec3751ea2d9c9a66f635c3439564a" }, + "neogit": { "branch": "master", "commit": "802f387b7a44731db2b5f3c0b605ae388b883f1d" }, "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-lspconfig": { "branch": "master", "commit": "9141be4c1332afc83bdf1b0278dbb030f75ff8e3" }, + "nvim-lspconfig": { "branch": "master", "commit": "aaa807fb2ea8d3caf41c153a174c6b7e472a8428" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "3362099de3368aa620a8105b19ed04c2053e38c0" }, + "nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, - "roslyn.nvim": { "branch": "main", "commit": "3b5b6c687ecaeccbac7652673385511a3deba7bb" }, - "smear-cursor.nvim": { "branch": "main", "commit": "58e69a911e7f5296b3d7fec5e7414df5a4ac91fb" }, + "roslyn.nvim": { "branch": "main", "commit": "0c4a6f5b64122b51a64e0c8f7aae140ec979690e" }, + "smear-cursor.nvim": { "branch": "main", "commit": "4b86df8a0c5f46e708616b21a02493bb0e47ecbd" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, "undotree": { "branch": "master", "commit": "28f2f54a34baff90ea6f4a735ef1813ad875c743" }, "vim-merginal": { "branch": "develop", "commit": "3dca10fd8bce10edbc2024651db4ffb6dd2d89de" } diff --git a/.config/nvim/lua/wicked/lazy.lua b/.config/nvim/lua/wicked/lazy.lua index bd5ac42..d4c789a 100644 --- a/.config/nvim/lua/wicked/lazy.lua +++ b/.config/nvim/lua/wicked/lazy.lua @@ -32,6 +32,7 @@ require("lazy").setup({ 'nvim-treesitter/nvim-treesitter', 'theprimeagen/harpoon', 'mbbill/undotree', + 'nvim-telescope/telescope-ui-select.nvim', 'idanarye/vim-merginal', "sphamba/smear-cursor.nvim", 'williamboman/mason.nvim', diff --git a/.vim/undodir/%home%rmaco%projects%setup%.config%nvim%after%plugin%lspconfig.lua b/.vim/undodir/%home%rmaco%projects%setup%.config%nvim%after%plugin%lspconfig.lua index cf0f5fe80fb4a9e996bf847fb3470b49942a02ee..d63628c313df5a3b08ae8b2087eaeda5568ecec6 100644 GIT binary patch literal 33700 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 Hx0n70o^}{j delta 686 zcmZ3|&a_%TF)TB8erTRc{!<2K)4rvB8-fh~soTtcWFkMEKicVqLS&=-=CcFal|2C>un>Fhkk{Stb^cEaSvPDOO$}gKINmWg25@+5?$?U zuM$9E9w6oeVvxxo_0l=T1UD9OkyRsf=sj8uiR(!Au7%=|ncC$U5!CqFR- zBA!}NQk1AroR?WpkXiy1%2&uKO$2d)=BfbANGreb6p09ue*RICTm9$!|RoS%}auBn%kSXCJhvRgxQv$x?h tCjAtkZYv;$B_ALY3|IspG%J*bL~rV3M;l=_kPNH9vHe0r5z)4`$!YH{ZC}me_7l{H=O)@$FKboI zj)~?45yr^FVG7OIA8q-F(b7L&1lm77wTv7>+|ALpkOO)e8SbG|U^E69hGAxzY8jGt z7$3e0oacoVHkPld6N~r5XAZ+aYYa?sfjW*c8I}MuFD#Rb!!jzbldEfztCA)cUlMqq zQ85>nJ^_rmNNy*7BwsIXda4^PF1=MUPPTe|J?HYAYv$erYOB=^+kVF-meT{v(I!Kc zM6&6JD)xdvesoryp5q3I*9?@qtXVT)!Q7Togw3Xi#=NkT1YSh=vkZ@wlF^Qg%oaH; zRp5uQ>-4d6rC&TFI5_ylb_DcLoZ_MFEOm4SnPp-`Gd8P;Q??_!s}>!ZKdGC!lgn(k zA~TY%u51(bRf>`a-JvEF%abL~AXtOblNpUEQrEE~YRGgzRa{n*I zpJca&yF5&3{y<2`O4}Ivq_lmm0b>c2eu_bPwh@I{W3{r&*Kq{<|1%PZ!U2;e&Kz4&7-U~?##6;BvQh}U2Kq?e~I10o-0t!$z r#DyRo%1E*xyFiJw3P}vaM70Z)wvdxDNEgVjT|kTsVD2$(e7*_*wMj^n literal 2313 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 f;st~d%g