From: Lukas Hägele Date: Mon, 5 Jan 2026 13:17:14 +0000 (+0100) Subject: add some more stuff X-Git-Url: https://git.lhaegele.de/?a=commitdiff_plain;h=83908860fec2b90916f8eb53d355287ec14ad7ad;p=dotfiles_nvim.git add some more stuff --- diff --git a/after/ftplugin/lua.lua b/after/ftplugin/lua.lua index 0e82a81..8e7a8cd 100644 --- a/after/ftplugin/lua.lua +++ b/after/ftplugin/lua.lua @@ -1,4 +1,4 @@ local set = vim.opt_local set.shiftwidth = 2 -set.number = true +-- set.number = true diff --git a/init.lua b/init.lua index 703f978..00f7fe6 100644 --- a/init.lua +++ b/init.lua @@ -3,4 +3,3 @@ require("config.lazy") require("config.autocommands") require("config.keymap") require("config.settings") - diff --git a/lua/config/autocommands.lua b/lua/config/autocommands.lua index 7dcbe9e..c21a26b 100644 --- a/lua/config/autocommands.lua +++ b/lua/config/autocommands.lua @@ -28,3 +28,11 @@ vim.keymap.set("n", "st", function() vim.api.nvim_win_set_height(0, 15) end) +-- map tag jumps in help file to gd +vim.api.nvim_create_autocmd({ "FileType" }, { + pattern = { "help" }, + callback = function(opts) + vim.keymap.set("n", "gd", "", { silent = true, buffer = opts.buf }) + end, +}) + diff --git a/lua/config/keymap.lua b/lua/config/keymap.lua index a32b6dd..467c268 100644 --- a/lua/config/keymap.lua +++ b/lua/config/keymap.lua @@ -1,7 +1,10 @@ - -- shortcut escape in insert mode vim.keymap.set('i', 'jj', '') +-- comments +vim.keymap.set("n", "#", "Vgc", { desc = "select line and toggle comment", remap = true }) +vim.keymap.set("v", "#", "gc", { desc = "toggle comment of selected line", remap = true }) + -- move highlighted lines vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") @@ -14,4 +17,12 @@ vim.keymap.set("v", "x", ":lua") -- quickfix commands vim.keymap.set("n", "", "cnext") vim.keymap.set("n", "", "cprev") +vim.keymap.set('n', '', function() + local qf_winid = vim.fn.getqflist({ winid = 0 }).winid + local action = qf_winid > 0 and 'cclose' or 'copen' + vim.cmd('botright '..action) +end, { noremap = true, silent = true }) + +-- build +vim.keymap.set("n", "", "makecopen", { desc = "run makefile and open quickfix list" }) diff --git a/lua/config/plugins/lsp.lua b/lua/config/plugins/lsp.lua index 8ce76f5..5a9b1ed 100644 --- a/lua/config/plugins/lsp.lua +++ b/lua/config/plugins/lsp.lua @@ -3,13 +3,15 @@ return { "neovim/nvim-lspconfig", dependencies = { + -- "lazydev.nvim is a plugin that properly configures LuaLS for editing your Neovim config + -- by lazily updating your workspace libraries." "folke/lazydev.nvim", ft = "lua", -- only load on lua files opts = { - library = { - -- load luvit types when the `vim.uv` word is found - { path = "${3rd}/luv/library", words = { "vim%.uv" } }, - } + library = { + -- load luvit types when the `vim.uv` word is found + { path = "${3rd}/luv/library", words = { "vim%.uv" } }, + } }, }, @@ -18,13 +20,14 @@ return { -- after the language server attaches to the current buffer vim.api.nvim_create_autocmd("LspAttach", { callback = function(args) - local bufnr = args.buf + local bufnr = args.buf local client = assert(vim.lsp.get_client_by_id(args.data.client_id), "must have valid client") local builtin = require "telescope.builtin" - -- Enable completion triggered by + -- Enable completion triggered by vim.opt_local.omnifunc = "v:lua.vim.lsp.omnifunc" + vim.keymap.set("n", "gd", vim.lsp.buf.definition, { buffer = 0 }) vim.keymap.set("n", "gr", builtin.lsp_references, { buffer = 0 }) vim.keymap.set("n", "gf", vim.lsp.buf.declaration, { buffer = 0 }) @@ -36,13 +39,16 @@ return { vim.keymap.set("n", "wd", builtin.lsp_document_symbols, { buffer = 0 }) vim.keymap.set("n", "ww", function() builtin.diagnostics { root_dir = true } - end, { buffer = 0 }) - end + end, { buffer = 0, desc = "open diagnostics in telescope" }) + vim.keymap.set("n", "", vim.diagnostic.setqflist, { desc = "open diagnostics in quickfix list" }) + end }) - local capabilities = require('blink.cmp').get_lsp_capabilities() - require("lspconfig").lua_ls.setup { capabilities = capabilities } - require("lspconfig").clangd.setup { capabilities = capabilities } + vim.lsp.enable("lua_ls") + vim.lsp.enable("clangd") + -- local capabilities = require('blink.cmp').get_lsp_capabilities() + -- require("lspconfig").lua_ls.setup { capabilities = capabilities } + -- require("lspconfig").clangd.setup { capabilities = capabilities } end, } } diff --git a/lua/config/plugins/telescope.lua b/lua/config/plugins/telescope.lua index 63addde..79d35d8 100644 --- a/lua/config/plugins/telescope.lua +++ b/lua/config/plugins/telescope.lua @@ -19,14 +19,17 @@ return { require('telescope').load_extension('fzf') + -- "find in help" vim.keymap.set("n", "fh", require('telescope.builtin').help_tags) + -- "find in project" vim.keymap.set("n", "fp", require('telescope.builtin').find_files) + -- "find in config" vim.keymap.set("n", "fc", function() require('telescope.builtin').find_files { cwd = vim.fn.stdpath("config") } end) - + -- "find in lazy (plugins)" vim.keymap.set("n", "fl", function() require('telescope.builtin').find_files { cwd = vim.fn.stdpath("data") .. "/lazy" diff --git a/lua/config/settings.lua b/lua/config/settings.lua index fca1268..1eff867 100644 --- a/lua/config/settings.lua +++ b/lua/config/settings.lua @@ -1,8 +1,9 @@ vim.opt.clipboard = "unnamedplus" +vim.opt.autowrite = true -vim.opt.tabstop = 4 -vim.opt.softtabstop = 4 -vim.opt.shiftwidth = 4 +vim.opt.tabstop = 2 +vim.opt.softtabstop = 2 +vim.opt.shiftwidth = 2 vim.opt.expandtab = true vim.opt.smartindent = true @@ -19,10 +20,12 @@ vim.opt.incsearch = true vim.opt.ignorecase = true vim.opt.smartcase = true +vim.opt.winborder = "rounded" + -- vim.opt.termguicolors = false vim.opt.scrolloff = 8 -vim.opt.signcolumn = "yes" +vim.opt.signcolumn = "yes:1" vim.opt.isfname:append("@-@") vim.opt.updatetime = 50 diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua deleted file mode 100644 index 268f210..0000000 --- a/plugin/packer_compiled.lua +++ /dev/null @@ -1,174 +0,0 @@ --- Automatically generated packer.nvim plugin loader code - -if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return -end - -vim.api.nvim_command('packadd packer.nvim') - -local no_errors, error_msg = pcall(function() - -_G._packer = _G._packer or {} -_G._packer.inside_compile = true - -local time -local profile_info -local should_profile = false -if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end -else - time = function(chunk, start) end -end - -local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) return a[2] > b[2] end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end - if threshold then - table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)') - end - - _G._packer.profile_output = results -end - -time([[Luarocks path setup]], true) -local package_path_str = "/home/lukas/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/lukas/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/lukas/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/lukas/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/home/lukas/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" -if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str -end - -if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern -end - -time([[Luarocks path setup]], false) -time([[try_loadstring definition]], true) -local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) - if not success then - vim.schedule(function() - vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) - end) - end - return result -end - -time([[try_loadstring definition]], false) -time([[Defining packer_plugins]], true) -_G.packer_plugins = { - LuaSnip = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/LuaSnip", - url = "https://github.com/L3MON4D3/LuaSnip" - }, - ["cmp-nvim-lsp"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", - url = "https://github.com/hrsh7th/cmp-nvim-lsp" - }, - cmp_luasnip = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/cmp_luasnip", - url = "https://github.com/saadparwaiz1/cmp_luasnip" - }, - harpoon = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/harpoon", - url = "https://github.com/theprimeagen/harpoon" - }, - ["hop.nvim"] = { - config = { "\27LJ\2\nU\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\tkeys\28etovxqpdygfblzhckisuran\nsetup\bhop\frequire\0" }, - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/hop.nvim", - url = "https://github.com/phaazon/hop.nvim" - }, - ["kiwi.nvim"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/kiwi.nvim", - url = "https://github.com/serenevoid/kiwi.nvim" - }, - ["nvim-cmp"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/nvim-cmp", - url = "https://github.com/hrsh7th/nvim-cmp" - }, - ["nvim-lspconfig"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", - url = "https://github.com/neovim/nvim-lspconfig" - }, - ["nvim-treesitter"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/nvim-treesitter", - url = "https://github.com/nvim-treesitter/nvim-treesitter" - }, - ["packer.nvim"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/packer.nvim", - url = "https://github.com/wbthomason/packer.nvim" - }, - ["plenary.nvim"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/plenary.nvim", - url = "https://github.com/nvim-lua/plenary.nvim" - }, - ["telescope.nvim"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/telescope.nvim", - url = "https://github.com/nvim-telescope/telescope.nvim" - }, - ["trouble.nvim"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/trouble.nvim", - url = "https://github.com/folke/trouble.nvim" - }, - undotree = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/undotree", - url = "https://github.com/mbbill/undotree" - }, - ["vim-fugitive"] = { - loaded = true, - path = "/home/lukas/.local/share/nvim/site/pack/packer/start/vim-fugitive", - url = "https://github.com/tpope/vim-fugitive" - } -} - -time([[Defining packer_plugins]], false) --- Config for: hop.nvim -time([[Config for hop.nvim]], true) -try_loadstring("\27LJ\2\nU\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\tkeys\28etovxqpdygfblzhckisuran\nsetup\bhop\frequire\0", "config", "hop.nvim") -time([[Config for hop.nvim]], false) - -_G._packer.inside_compile = false -if _G._packer.needs_bufread == true then - vim.cmd("doautocmd BufRead") -end -_G._packer.needs_bufread = false - -if should_profile then save_profiles() end - -end) - -if not no_errors then - error_msg = error_msg:gsub('"', '\\"') - vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') -end