local opt = vim.opt local map = vim.keymap.set local g = vim.g g.mapleader = " " opt.shiftwidth = 4 opt.tabstop = 4 opt.softtabstop = 4 opt.smarttab = true opt.smartindent = true opt.undofile = true opt.undodir = vim.fn.stdpath("config") .. "/undo" opt.number = true opt.relativenumber = true opt.fillchars = "eob: " g.loaded_netrw = 1 g.loaded_netrwPlugin = 1 opt.termguicolors = true opt.spell = false opt.spelllang = { "en_us" } opt.shell = "/run/current-system/sw/bin/nu" vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "single", }) vim.diagnostic.config({ float = { border = "single" } }) map("n", "u", ":Telescope") map("n", "t", ":tabnew") map("n", "", ":tabn") map("n", "", ":tabp") map("n", "", ":bw") map("n", ".", vim.diagnostic.open_float) map("n", "=", "=") map("n", "x", "!chmod +x %") vim.api.nvim_create_autocmd("LspAttach", { group = vim.api.nvim_create_augroup("UserLspConfig", {}), callback = function(ev) vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" local opts = { buffer = ev.buf } map("n", "K", function() vim.lsp.buf.hover({ border = "single" }) end, opts) map("n", "gi", vim.lsp.buf.implementation, opts) map("n", "", vim.lsp.buf.signature_help, opts) map("n", "wa", vim.lsp.buf.add_workspace_folder, opts) map("n", "wr", vim.lsp.buf.remove_workspace_folder, opts) map("n", "wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, opts) map("n", "D", vim.lsp.buf.type_definition, opts) map("n", "rn", vim.lsp.buf.rename, opts) map({ "n", "v" }, "ca", vim.lsp.buf.code_action, opts) map("n", "gr", vim.lsp.buf.references, opts) map("n", "f", function() vim.lsp.buf.format({ async = true }) end, opts) end, }) local builtin = require("telescope.builtin") map("n", "ff", builtin.find_files, {}) map("n", "fg", builtin.live_grep, {}) map("n", "fb", builtin.buffers, {}) map("n", "fh", builtin.help_tags, {}) local treeapi = require("nvim-tree.api") map("n", "e", treeapi.tree.toggle, {}) map("n", "", 'lua require("FTerm").toggle()') map("t", "", 'lua require("FTerm").toggle()')