From 031b6403df5a959179e23f4ae55e146816c3b61a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hamal=20Dvo=C5=99=C3=A1k?= Date: Thu, 24 Apr 2025 10:57:08 +0200 Subject: [PATCH] Updates for 0.11 --- README.md | 5 - after/syntax/c.vim | 1 - build.sh | 15 --- init.vim | 3 +- lua/config/lsp/init.lua | 183 +++++++++--------------------------- lua/init.lua | 17 ++++ nvim.vim | 17 +++- opt/bin/lua-language-server | 1 - opt/lua-language-server | 1 - 9 files changed, 77 insertions(+), 166 deletions(-) delete mode 100644 README.md delete mode 100644 after/syntax/c.vim delete mode 100755 build.sh delete mode 120000 opt/bin/lua-language-server delete mode 160000 opt/lua-language-server diff --git a/README.md b/README.md deleted file mode 100644 index c91b637..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# NVIM Configuration - -## Lua - - diff --git a/after/syntax/c.vim b/after/syntax/c.vim deleted file mode 100644 index ff4aa0e..0000000 --- a/after/syntax/c.vim +++ /dev/null @@ -1 +0,0 @@ -syn keyword cOperator assert diff --git a/build.sh b/build.sh deleted file mode 100755 index 9c47c8d..0000000 --- a/build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -e - -( - cd opt/lua-language-server - git submodule update --init --recursive - - ( - cd 3rd/luamake - ./compile/build.sh - ) - - 3rd/luamake/luamake rebuild -) - -# EOF diff --git a/init.vim b/init.vim index d7b310c..e778cee 100644 --- a/init.vim +++ b/init.vim @@ -19,9 +19,10 @@ set ts=2 set et set smartcase -"set smarttab set nohlsearch +let g:c_syntax_for_h = 1 + autocmd FileType c,cpp set cindent autocmd FileType c,cpp set cinoptions=:0,l0,t0,g0,(0 diff --git a/lua/config/lsp/init.lua b/lua/config/lsp/init.lua index a4e850c..7eb779a 100644 --- a/lua/config/lsp/init.lua +++ b/lua/config/lsp/init.lua @@ -10,150 +10,59 @@ require("config.lsp.vls") require("config.lsp.rust_analyzer") local api = vim.api +local opts = { noremap = true, silent = true } local keymap = vim.keymap.set -local function keymappings(_, bufnr) - local opts = { noremap = true, silent = true } +keymap("n", "[d", "lua vim.diagnostic.jump({count = -1, float = true})", opts) +keymap("n", "]d", "lua vim.diagnostic.jump({count = 1, float = true})", opts) +keymap("n", "[e", "lua vim.diagnostic.jump({count = -1, severity = vim.diagnostic.severity.ERROR, float = true})", opts) +keymap("n", "]e", "lua vim.diagnostic.jump({count = -1, severity = vim.diagnostic.severity.ERROR, float = true})", opts) - keymap("n", "K", vim.lsp.buf.hover, { buffer = bufnr }) - keymap("n", "[d", "lua vim.diagnostic.goto_prev()", opts) - keymap("n", "]d", "lua vim.diagnostic.goto_next()", opts) - keymap("n", "[e", "lua vim.diagnostic.goto_prev({severity = vim.diagnostic.severity.ERROR})", opts) - keymap("n", "]e", "lua vim.diagnostic.goto_next({severity = vim.diagnostic.severity.ERROR})", opts) +keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) +keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) +keymap("n", "gh", "lua vim.lsp.buf.signature_help()", opts) +keymap("n", "gI", "lua vim.lsp.buf.implementation()", opts) +keymap("n", "gt", "lua vim.lsp.buf.type_definition()", opts) - keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) - keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) - keymap("n", "gh", "lua vim.lsp.buf.signature_help()", opts) - keymap("n", "gI", "lua vim.lsp.buf.implementation()", opts) - keymap("n", "gb", "lua vim.lsp.buf.type_definition()", opts) +keymap("n", "ca", "lua require('fzf-lua').lsp_code_actions()", opts) - keymap("n", "ca", "lua require('fzf-lua').lsp_code_actions()", opts) +keymap("n", "gl", "lua vim.diagnostic.reset()", opts) - keymap("n", "gl", "lua vim.diagnostic.reset()", opts) +-- Automatic completion triggering +-- vim.api.nvim_create_autocmd('LspAttach', { +-- callback = function(ev) +-- local client = vim.lsp.get_client_by_id(ev.data.client_id) +-- if client:supports_method('textDocument/completion') then +-- vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true }) +-- end +-- end, +-- }) - -- api.nvim_set_keymap("i", "", [[pumvisible() ? "\" : "\"]], { noremap = true, expr = true }) - -- api.nvim_set_keymap("i", "", [[pumvisible() ? "\" : "\"]], { noremap = true, expr = true }) -end - -local function highlighting(client, bufnr) - if client.server_capabilities.documentHighlightProvider then - local lsp_highlight_grp = api.nvim_create_augroup("LspDocumentHighlight", { clear = true }) - api.nvim_create_autocmd("CursorHold", { - callback = function() - vim.schedule(vim.lsp.buf.document_highlight) - end, - group = lsp_highlight_grp, - buffer = bufnr, - }) - api.nvim_create_autocmd("CursorMoved", { - callback = function() - vim.schedule(vim.lsp.buf.clear_references) - end, - group = lsp_highlight_grp, - buffer = bufnr, - }) - end -end - -local function lsp_handlers() - local diagnostics = { - Error = "E:", - Warning = "W:", - Hint = "", - Information = "I:", - Question = "Q:", - } - local signs = { - { name = "DiagnosticSignError", text = diagnostics.Error }, - { name = "DiagnosticSignWarn", text = diagnostics.Warning }, - { name = "DiagnosticSignHint", text = diagnostics.Hint }, - { name = "DiagnosticSignInfo", text = diagnostics.Info }, - } - for _, sign in ipairs(signs) do - vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = sign.name }) - end - - -- LSP handlers configuration - local config = { - float = { - focusable = true, - style = "minimal", - border = "rounded", - }, - - diagnostic = { - virtual_text = false, - signs = { - active = signs, - }, - underline = true, - update_in_insert = false, - severity_sort = true, - float = { - focusable = true, - style = "minimal", - border = "rounded", - source = "always", - header = "", - prefix = "", - }, - }, - } - - vim.diagnostic.config(config.diagnostic) - vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, config.float) - vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, config.float) -end - -local function formatting(client, bufnr) - if client.server_capabilities.documentFormattingProvider then - local function format() - local view = vim.fn.winsaveview() - vim.lsp.buf.format({ - async = true, - filter = function(attached_client) - return attached_client.name ~= "" - end, - }) - vim.fn.winrestview(view) +vim.api.nvim_create_autocmd('LspAttach', { + callback = function(ev) + local client = vim.lsp.get_client_by_id(ev.data.client_id) + if client:supports_method('textDocument/completion') then + vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = false }) end - - local lsp_format_grp = api.nvim_create_augroup("LspFormat", { clear = true }) - api.nvim_create_autocmd("BufWritePre", { - callback = function() - vim.schedule(format) - end, - group = lsp_format_grp, - buffer = bufnr, - }) - end -end - -local function on_attach(client, bufnr) - if client.server_capabilities.completionProvider then - vim.bo[bufnr].omnifunc = "v:lua.vim.lsp.omnifunc" - vim.bo[bufnr].completefunc = "v:lua.vim.lsp.omnifunc" - end - - if client.server_capabilities.definitionProvider then - vim.bo[bufnr].tagfunc = "v:lua.vim.lsp.tagfunc" - end - - if client.server_capabilities.documentFormattingProvider then - vim.bo[bufnr].formatexpr = "v:lua.vim.lsp.formatexpr()" - end - - keymappings(client, bufnr) - --highlighting(client, bufnr) - --formatting(client, bufnr) -end - -lsp_handlers() - -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) - on_attach(client, bufnr) end, }) + +-- Old on-attach +-- vim.api.nvim_create_autocmd('LspAttach', { +-- callback = function(ev) +-- local client = vim.lsp.get_client_by_id(ev.data.client_id) +-- +-- if client.server_capabilities.completionProvider then +-- vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" +-- vim.bo[ev.buf].completefunc = "v:lua.vim.lsp.omnifunc" +-- end +-- +-- if client.server_capabilities.definitionProvider then +-- vim.bo[ev.buf].tagfunc = "v:lua.vim.lsp.tagfunc" +-- end +-- +-- if client.server_capabilities.documentFormattingProvider then +-- vim.bo[ev.buf].formatexpr = "v:lua.vim.lsp.formatexpr()" +-- end +-- end, +-- }) diff --git a/lua/init.lua b/lua/init.lua index 23f57ff..514fa1b 100644 --- a/lua/init.lua +++ b/lua/init.lua @@ -5,6 +5,23 @@ vim.api.nvim_create_autocmd({ "VimLeave" }, { end, }) +vim.diagnostic.config({ + -- Use the default configuration + -- virtual_lines = true, + + -- Alternatively, customize specific options + -- virtual_lines = { + -- -- Only show virtual line diagnostics for the current cursor line + -- current_line = true, + -- }, + + -- Open in floating window + float = { + source = 'always', + border = 'shadow', + }, +}) + require("nvim-web-devicons").setup {} require("fidget").setup { diff --git a/nvim.vim b/nvim.vim index d47e327..ea9d28d 100644 --- a/nvim.vim +++ b/nvim.vim @@ -1,6 +1,13 @@ execute pathogen#infect() -colorscheme vim +colorscheme wildcharm +highlight SignColumn guibg=#222222 + +set winblend=0 + +if has('nvim-0.11') + set winborder=solid +end highlight ExtraWhitespace ctermbg=darkgreen guibg=darkgreen match ExtraWhitespace /\s\+$\| \+\ze\t/ @@ -20,10 +27,10 @@ autocmd BufNewFile *.adoc 0r ~/.vim/template/adoc autocmd BufNewFile,BufRead *.pio setfiletype pioasm -highlight Pmenu ctermbg=235 guibg=black -highlight Pmenu ctermfg=white guifg=white -highlight PmenuSel ctermbg=235 guibg=black -highlight PmenuSel ctermfg=yellow guifg=yellow +"highlight Pmenu ctermbg=235 guibg=black +"highlight Pmenu ctermfg=white guifg=white +"highlight PmenuSel ctermbg=235 guibg=black +"highlight PmenuSel ctermfg=yellow guifg=yellow " For Pandoc let g:pandoc#spell#enabled=0 diff --git a/opt/bin/lua-language-server b/opt/bin/lua-language-server deleted file mode 120000 index e6a9c9b..0000000 --- a/opt/bin/lua-language-server +++ /dev/null @@ -1 +0,0 @@ -../lua-language-server/bin/lua-language-server \ No newline at end of file diff --git a/opt/lua-language-server b/opt/lua-language-server deleted file mode 160000 index 2dfb12a..0000000 --- a/opt/lua-language-server +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2dfb12ad3759acb7ff47b4c5c54ad0a62c598b22