From 15c019b4df1ff3aa3c15eabc512513a0898c27d8 Mon Sep 17 00:00:00 2001 From: Martin Pander Date: Fri, 8 May 2026 20:55:41 +0200 Subject: [PATCH] Fix neovim highlighting --- modules/home/nvim.nix | 7 ++-- modules/home/tmux.nix | 1 + modules/nvim/lua/base.lua | 40 +++++++++++++-------- modules/nvim/lua/filetype.lua | 67 +++++++++++++++++++++++++++++++---- modules/nvim/lua/keymaps.lua | 32 ++++++++++------- modules/nvim/lua/plugins.lua | 22 ++++++------ modules/nvim/writing-init.lua | 4 --- 7 files changed, 121 insertions(+), 52 deletions(-) diff --git a/modules/home/nvim.nix b/modules/home/nvim.nix index 993c1e5..e094795 100644 --- a/modules/home/nvim.nix +++ b/modules/home/nvim.nix @@ -16,6 +16,7 @@ in vimAlias = true; plugins = with pkgs.vimPlugins; [ + catppuccin-nvim vim-repeat vim-surround ts-comments-nvim @@ -56,9 +57,9 @@ in cmp-git nvim-lspconfig lspkind-nvim - copilot-lua - copilot-cmp - CopilotChat-nvim + # copilot-lua + # copilot-cmp + # CopilotChat-nvim # opencode-nvim bullets-vim nvim-dap diff --git a/modules/home/tmux.nix b/modules/home/tmux.nix index 15dc857..ca97cb9 100644 --- a/modules/home/tmux.nix +++ b/modules/home/tmux.nix @@ -89,6 +89,7 @@ in tmuxp.enable = true; extraConfig = '' set -g display-time 1500 + set -s set-clipboard on unbind S bind S command-prompt "switch -t %1" diff --git a/modules/nvim/lua/base.lua b/modules/nvim/lua/base.lua index 7ec9608..01e41cc 100644 --- a/modules/nvim/lua/base.lua +++ b/modules/nvim/lua/base.lua @@ -49,6 +49,7 @@ vim.opt.encoding = 'utf-8' vim.opt.completeopt = 'menu,menuone,noselect' vim.opt.termguicolors = true vim.opt.conceallevel = 1 +vim.opt.updatetime = 300 ---------------------------- ----------- SWAP ----------- @@ -65,6 +66,20 @@ vim.opt.directory = swapdir .. "," .. temp ---------------------------- -------- CLIPBOARD --------- ---------------------------- +-- Force Neovim to use the OSC 52 provider explicitly +-- This often resolves the "waiting" hang by properly handling the sequence +vim.g.clipboard = { + name = 'OSC 52', + copy = { + ['+'] = require('vim.ui.clipboard.osc52').copy('+'), + ['*'] = require('vim.ui.clipboard.osc52').copy('*'), + }, + paste = { + ['+'] = require('vim.ui.clipboard.osc52').paste('+'), + ['*'] = require('vim.ui.clipboard.osc52').paste('*'), + }, +} + if vim.fn.has("wsl") == 1 then vim.g.clipboard = { name = 'WslClipboard', @@ -78,15 +93,17 @@ if vim.fn.has("wsl") == 1 then }, cache_enabled = 0, } - vim.opt.clipboard = 'unnamedplus' end +vim.opt.clipboard = 'unnamedplus' + ---------------------------- -------- COMMANDS ---------- ---------------------------- vim.cmd('filetype plugin indent on') +vim.cmd.colorscheme "catppuccin-latte" ---------------------------- @@ -171,24 +188,17 @@ vim.diagnostic.config({ prefix = '● ', current_line = false, severity = { - -- min = vim.diagnostic.severity.INFO, - max = vim.diagnostic.severity.INFO, - }, - }, - virtual_lines = { - current_line = false, - severity = { - min = vim.diagnostic.severity.WARN, - -- max = vim.diagnostic.severity.WARN, + min = vim.diagnostic.severity.HINT, }, }, + virtual_lines = false, float = { prefix = '', - focusable = false, - style = "minimal", - border = "rounded", - source = "always", - header = "", + scope = 'line', + style = 'minimal', + border = 'rounded', + source = 'always', + header = '', }, }) diff --git a/modules/nvim/lua/filetype.lua b/modules/nvim/lua/filetype.lua index fbb4aa7..cbb35f4 100644 --- a/modules/nvim/lua/filetype.lua +++ b/modules/nvim/lua/filetype.lua @@ -1,5 +1,51 @@ local capabilities = require('cmp_nvim_lsp').default_capabilities() + +vim.lsp.config('gopls', { + cmd = { 'gopls' }, + filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' }, + root_markers = { 'go.work', 'go.mod', '.git' }, + settings = { + gopls = { + semanticTokens = true, -- Still the most important for color! + hints = { + assignVariableTypes = true, + compositeLiteralFields = true, + parameterNames = true, + }, + analyses = { + unusedparams = true, + }, + staticcheck = true, + }, + }, +}) +vim.lsp.enable('gopls') + +-- local lspconfig = require('lspconfig') +-- lspconfig.gopls.setup({ +-- -- These settings solve your "lacking highlighting" issue +-- settings = { +-- gopls = { +-- semanticTokens = true, +-- hints = { +-- assignVariableTypes = true, +-- compositeLiteralFields = true, +-- parameterNames = true, +-- }, +-- analyses = { +-- unusedparams = true, +-- }, +-- staticcheck = true, +-- }, +-- }, +-- -- If you want to keep your DAP or other logic tied to the start: +-- on_attach = function(client, bufnr) +-- -- This runs only when gopls attaches to a buffer +-- require('dap-go').setup() +-- end, +-- }) + vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true }) vim.api.nvim_create_autocmd('FileType', { @@ -7,18 +53,27 @@ vim.api.nvim_create_autocmd('FileType', { pattern = 'python', once = true, callback = function() + vim.lsp.enable('ty') require('dap-python').setup() end, }) vim.api.nvim_create_autocmd('FileType', { group = vim.api.nvim_create_augroup('FileTypeConfigs', { clear = true }), - pattern = 'go', - once = true, - callback = function() - vim.lsp.enable('ty') - vim.lsp.enable('gopls') - require('dap-go').setup() + pattern = { 'go', 'gomod', 'gowork', 'gotmpl' }, + -- pattern = 'go', + -- once = true, + callback = function(args) + -- vim.lsp.enable('gopls') + -- vim.lsp.start('gopls', { + -- bufnr = args.buf, + -- }) + + -- Setup your DAP here if needed + local status, dapgo = pcall(require, "dap-go") + if status then + dapgo.setup() + end end, }) diff --git a/modules/nvim/lua/keymaps.lua b/modules/nvim/lua/keymaps.lua index 9e47649..d424ee9 100644 --- a/modules/nvim/lua/keymaps.lua +++ b/modules/nvim/lua/keymaps.lua @@ -71,14 +71,14 @@ vim.keymap.set('v', 'cf', ) -- Copilot -local cop = require('copilot.panel') -local cos = require('copilot.suggestion') - -vim.keymap.set('n', 'ap', cop.toggle) -vim.keymap.set('n', 'apn', cop.jump_next) -vim.keymap.set('n', 'app', cop.jump_prev) -vim.keymap.set('n', 'apr', cop.refresh) - +-- local cop = require('copilot.panel') +-- local cos = require('copilot.suggestion') +-- +-- vim.keymap.set('n', 'ap', cop.toggle) +-- vim.keymap.set('n', 'apn', cop.jump_next) +-- vim.keymap.set('n', 'app', cop.jump_prev) +-- vim.keymap.set('n', 'apr', cop.refresh) +-- -- vim.keymap.set('n', 'as', cos.accept) -- vim.keymap.set('n', 'ast', cos.toggle_auto_trigger) -- vim.keymap.set('n', 'asl', cos.accept_word) @@ -87,11 +87,11 @@ vim.keymap.set('n', 'apr', cop.refresh) -- vim.keymap.set('n', 'asp', cos.prev) -- vim.keymap.set('n', 'asd', cos.dismiss) -vim.keymap.set('n', 'ac', 'CopilotChatToggle') -vim.keymap.set('n', 'acs', 'CopilotChatStop') -vim.keymap.set('n', 'acr', 'CopilotChatReset') -vim.keymap.set('n', 'acm', 'CopilotChatModels') -vim.keymap.set('n', 'acp', 'CopilotChatPrompts') +-- vim.keymap.set('n', 'ac', 'CopilotChatToggle') +-- vim.keymap.set('n', 'acs', 'CopilotChatStop') +-- vim.keymap.set('n', 'acr', 'CopilotChatReset') +-- vim.keymap.set('n', 'acm', 'CopilotChatModels') +-- vim.keymap.set('n', 'acp', 'CopilotChatPrompts') -- Yanky vim.keymap.set({"n","x"}, "p", "(YankyPutAfter)") @@ -163,6 +163,12 @@ local function tmux_navigate(direction) end end +vim.api.nvim_create_autocmd("CursorHold", { + callback = function() + vim.diagnostic.open_float(nil, { focusable = false }) + end, +}) + vim.keymap.set('n', '', function() tmux_navigate('h') end) vim.keymap.set('n', '', function() tmux_navigate('j') end) vim.keymap.set('n', '', function() tmux_navigate('k') end) diff --git a/modules/nvim/lua/plugins.lua b/modules/nvim/lua/plugins.lua index b9a8a1c..4e7be6c 100644 --- a/modules/nvim/lua/plugins.lua +++ b/modules/nvim/lua/plugins.lua @@ -80,7 +80,7 @@ cmp.setup({ sources = cmp.config.sources({ { name = 'nvim_lsp', priority = 1000 }, { name = 'buffer', priority = 800, keyword_length = 2 }, - { name = 'copilot', priority = 700 }, + -- { name = 'copilot', priority = 700 }, { name = 'path', priority = 600 }, { name = 'cmp_yanky', priority = 500 }, { name = 'git', priority = 400 }, @@ -100,9 +100,9 @@ cmp.setup({ latex_symbols = "[tex]", path = "[path]", cmp_yanky = "[yank]", - copilot = "[copilot]", + -- copilot = "[copilot]", }), - symbol_map = { Copilot = "" } + -- symbol_map = { Copilot = "" } }), }, }) @@ -241,14 +241,14 @@ require('lualine').setup({ }) -require("copilot").setup({ - suggestion = { enabled = false }, - panel = { enabled = false }, -}) -require("copilot_cmp").setup() -require("CopilotChat").setup { - model = 'claude-3.7-sonnet', -} +-- require("copilot").setup({ +-- suggestion = { enabled = false }, +-- panel = { enabled = false }, +-- }) +-- require("copilot_cmp").setup() +-- require("CopilotChat").setup { +-- model = 'claude-3.7-sonnet', +-- } vim.g.bullets_enabled_file_types = { 'markdown', diff --git a/modules/nvim/writing-init.lua b/modules/nvim/writing-init.lua index d13c0f2..f46997c 100644 --- a/modules/nvim/writing-init.lua +++ b/modules/nvim/writing-init.lua @@ -62,10 +62,6 @@ vim.opt.clipboard:append('unnamedplus') vim.cmd('filetype plugin indent on') --- vim.cmd('colorscheme lucius') --- vim.cmd('LuciusWhite') - - ------------------------------ ---------- AUTOGROUPS -------- ------------------------------