From 2d7c3cd696815d80709a6f66d5eda06c8da43f83 Mon Sep 17 00:00:00 2001 From: Luka Jankovic Date: Wed, 22 Jan 2025 01:00:40 +0100 Subject: [PATCH] Nvim settings, lsp, git --- .config/nvim/lazy-lock.json | 3 +++ .config/nvim/lua/config/settings.lua | 9 +++++++ .config/nvim/lua/plugins/git-messenger.lua | 7 ++++++ .config/nvim/lua/plugins/gitsigns.lua | 7 +++--- .config/nvim/lua/plugins/lsp.lua | 29 ++++++++++++++++++---- .config/nvim/lua/plugins/lspsaga.lua | 22 ++++++++++++++++ 6 files changed, 68 insertions(+), 9 deletions(-) create mode 100644 .config/nvim/lua/plugins/git-messenger.lua create mode 100644 .config/nvim/lua/plugins/lspsaga.lua diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index c31646e..1c0ea21 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -2,9 +2,12 @@ "codeium.nvim": { "branch": "main", "commit": "ebed4f7cc8a18184d8332d421ca10bed5f7d59a1" }, "conform.nvim": { "branch": "master", "commit": "70019124aa4f2e6838be9fbd2007f6d13b27a96d" }, "deadcolumn.nvim": { "branch": "master", "commit": "897c905aef1a268ce4cc507d5cce048ed808fa7a" }, + "git-messenger.vim": { "branch": "master", "commit": "edc603d4cda7894a743e383e16c638e206d03148" }, "gitsigns.nvim": { "branch": "main", "commit": "76d88f3b584e1f83b2aa51663a32cc6ee8d97eff" }, "indent-blankline.nvim": { "branch": "master", "commit": "7a698a1d7ed755af9f5a88733b23ca246ce2df28" }, "lazy.nvim": { "branch": "main", "commit": "d8f26efd456190241afd1b0f5235fe6fdba13d4a" }, + "lsp_signature.nvim": { "branch": "master", "commit": "5b64964ed02098c85613ee3d20f96bed1dfb64cc" }, + "lspsaga.nvim": { "branch": "main", "commit": "13b3cdc9a53ec821b9e693ee71501cc2d6cf206c" }, "lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "e942edf5c85b6a2ab74059ea566cac5b3e1514a4" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, diff --git a/.config/nvim/lua/config/settings.lua b/.config/nvim/lua/config/settings.lua index f4125f7..c0adae6 100644 --- a/.config/nvim/lua/config/settings.lua +++ b/.config/nvim/lua/config/settings.lua @@ -9,6 +9,15 @@ vim.o.shiftwidth = 4 -- Clipboard vim.o.clipboard = "unnamedplus" +vim.api.nvim_exec( + [[ + augroup YankHighlight + autocmd! + autocmd TextYankPost * silent! lua vim.highlight.on_yank() + augroup end + ]], + false +) -- Restore cursor local restore_cursor_augroup = vim.api.nvim_create_augroup("restore_cursor_shape_on_exit", { clear = true }) diff --git a/.config/nvim/lua/plugins/git-messenger.lua b/.config/nvim/lua/plugins/git-messenger.lua new file mode 100644 index 0000000..fc56862 --- /dev/null +++ b/.config/nvim/lua/plugins/git-messenger.lua @@ -0,0 +1,7 @@ +return { + 'rhysd/git-messenger.vim', + cmd = { 'GitMessenger' }, + keys = { + { "gm", "GitMessenger", desc = "[G]it [M]essenger" }, + } +} diff --git a/.config/nvim/lua/plugins/gitsigns.lua b/.config/nvim/lua/plugins/gitsigns.lua index eaaaadd..f9349b4 100644 --- a/.config/nvim/lua/plugins/gitsigns.lua +++ b/.config/nvim/lua/plugins/gitsigns.lua @@ -1,9 +1,8 @@ return { "lewis6991/gitsigns.nvim", - opt = { - current_line_blame = false, - }, config = function() - require("gitsigns").setup() + require("gitsigns").setup({ + current_line_blame = true, + }) end, } diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua index f1eae49..8d8af4d 100644 --- a/.config/nvim/lua/plugins/lsp.lua +++ b/.config/nvim/lua/plugins/lsp.lua @@ -24,7 +24,30 @@ return { }) end, }, - "neovim/nvim-lspconfig", + { + "ray-x/lsp_signature.nvim", + event = "VeryLazy", + opts = {}, + config = function(_, opts) + require 'lsp_signature'.setup(opts) + + vim.api.nvim_create_autocmd("LspAttach", { + callback = function(args) + local bufnr = args.buf + local client = vim.lsp.get_client_by_id(args.data.client_id) + if vim.tbl_contains({ 'null-ls' }, client.name) then -- blacklist lsp + return + end + require("lsp_signature").on_attach({ + -- ... setup options here ... + }, bufnr) + end, + }) + end + }, + { + "neovim/nvim-lspconfig", + }, { "stevearc/conform.nvim", event = { "BufWritePre" }, @@ -98,10 +121,6 @@ return { end return { - format_on_save = { - lsp_fallback = true, - timeout_ms = 500, - }, formatters = formatters, formatters_by_ft = formatters_by_ft, } diff --git a/.config/nvim/lua/plugins/lspsaga.lua b/.config/nvim/lua/plugins/lspsaga.lua new file mode 100644 index 0000000..06b145c --- /dev/null +++ b/.config/nvim/lua/plugins/lspsaga.lua @@ -0,0 +1,22 @@ +return { + 'nvimdev/lspsaga.nvim', + config = function() + require("lspsaga").setup({ + ui = { + code_action = '⋯', + expand = '+', + collapse = '-' + } + }) + end, + dependencies = { + { 'nvim-tree/nvim-web-devicons' }, + { 'nvim-treesitter/nvim-treesitter' }, + }, + event = "LspAttach", + keys = { + { "fi", "Lspsaga finder", desc = "LSP Find References" }, + { "ci", "Lspsaga incoming_calls", desc = "Incoming Calls" }, + { "co", "Lspsaga outgoing_calls", desc = "Outgoing Calls" }, + } +}