mirror of
https://git.sr.ht/~coasteen/dotfiles
synced 2025-11-04 14:47:38 +01:00
80 lines
2.5 KiB
Lua
80 lines
2.5 KiB
Lua
local cfg = vim.opt
|
|
local cmd = vim.cmd
|
|
local g = vim.g
|
|
|
|
g.mapleader = " "
|
|
|
|
cfg.shiftwidth = 4
|
|
cfg.tabstop = 4
|
|
cfg.softtabstop = 4
|
|
cfg.smarttab = true
|
|
cfg.smartindent = true
|
|
|
|
cfg.number = true
|
|
cfg.relativenumber = true
|
|
|
|
cfg.fillchars = "eob: "
|
|
|
|
g.loaded_netrw = 1
|
|
g.loaded_netrwPlugin = 1
|
|
|
|
cfg.termguicolors = true
|
|
|
|
cfg.spell = false
|
|
cfg.spelllang = { "en_us" }
|
|
|
|
if vim.loop.os_uname().sysname == "Linux" then
|
|
cfg.shell = "/run/current-system/sw/bin/zsh"
|
|
else
|
|
cfg.shell = "/run/current-system/sw/bin/zsh"
|
|
end
|
|
|
|
vim.cmd([[colorscheme gruvbox]])
|
|
|
|
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
|
|
border = "single",
|
|
})
|
|
vim.diagnostic.config({ float = { border = "single" } })
|
|
|
|
vim.keymap.set("n", "<leader>u", ":Telescope<cr>")
|
|
vim.keymap.set("n", "<A-Right>", ":bn<cr>")
|
|
vim.keymap.set("n", "<A-Left>", ":bp<cr>")
|
|
vim.keymap.set("n", "<A-q>", ":bw<cr>")
|
|
|
|
vim.keymap.set("n", "<leader>.", vim.diagnostic.open_float)
|
|
|
|
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 }
|
|
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
|
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
|
vim.keymap.set("n", "K", function()
|
|
vim.lsp.buf.hover({ border = "single" })
|
|
end, opts)
|
|
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
|
|
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
|
|
vim.keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, opts)
|
|
vim.keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, opts)
|
|
vim.keymap.set("n", "<space>wl", function()
|
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
|
end, opts)
|
|
vim.keymap.set("n", "<space>D", vim.lsp.buf.type_definition, opts)
|
|
vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts)
|
|
vim.keymap.set({ "n", "v" }, "<space>ca", vim.lsp.buf.code_action, opts)
|
|
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
|
|
vim.keymap.set("n", "<space>f", function()
|
|
vim.lsp.buf.format({ async = true })
|
|
end, opts)
|
|
end,
|
|
})
|
|
|
|
local builtin = require("telescope.builtin")
|
|
vim.keymap.set("n", "<leader>ff", builtin.find_files, {})
|
|
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {})
|
|
vim.keymap.set("n", "<leader>fb", builtin.buffers, {})
|
|
vim.keymap.set("n", "<leader>fh", builtin.help_tags, {})
|
|
local treeapi = require("nvim-tree.api")
|
|
vim.keymap.set("n", "<leader>e", treeapi.tree.toggle, {})
|