-
-- shortcut escape in insert mode
vim.keymap.set('i', 'jj', '<Esc>')
+-- comments
+vim.keymap.set("n", "<space>#", "Vgc", { desc = "select line and toggle comment", remap = true })
+vim.keymap.set("v", "<space>#", "gc", { desc = "toggle comment of selected line", remap = true })
+
-- move highlighted lines
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
-- quickfix commands
vim.keymap.set("n", "<M-j>", "<cmd>cnext<CR>")
vim.keymap.set("n", "<M-k>", "<cmd>cprev<CR>")
+vim.keymap.set('n', '<M-o>', 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", "<M-m>", "<cmd>make<CR><cmd>copen<CR>", { desc = "run makefile and open quickfix list" })
"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" } },
+ }
},
},
-- 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 <c-x><c-o>
+ -- Enable completion triggered by <c-x><c-o>
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 })
vim.keymap.set("n", "<space>wd", builtin.lsp_document_symbols, { buffer = 0 })
vim.keymap.set("n", "<space>ww", function()
builtin.diagnostics { root_dir = true }
- end, { buffer = 0 })
- end
+ end, { buffer = 0, desc = "open diagnostics in telescope" })
+ vim.keymap.set("n", "<M-w>", 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,
}
}
+++ /dev/null
--- 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