summaryrefslogtreecommitdiff
path: root/nvim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/init.lua')
-rw-r--r--nvim/init.lua160
1 files changed, 60 insertions, 100 deletions
diff --git a/nvim/init.lua b/nvim/init.lua
index d3b7b72..bf19c2d 100644
--- a/nvim/init.lua
+++ b/nvim/init.lua
@@ -1,5 +1,7 @@
+vim.g.mapleader = " "
+
-- set
-vim.opt.nu = true
+vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.tabstop = 4
@@ -8,39 +10,12 @@ vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
-vim.opt.wrap = false -- i didn't like it
-
-vim.opt.swapfile = false
-vim.opt.backup = false
-vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
-vim.opt.undofile = true
-
-vim.opt.hlsearch = true
-vim.opt.incsearch = true
-
-vim.opt.scrolloff = 2
-
-vim.opt.colorcolumn = "80,100,120"
-
-vim.g.netrw_bufsettings = "noma nomod nu nobl nowrap ro"
-vim.g.netrw_banner = 0
-
-vim.opt.signcolumn = "yes"
-vim.opt.list = true
+vim.opt.wrap = false
vim.o.exrc = true
--- remap
-vim.g.mapleader = " "
-
-vim.keymap.set({ "n", "v" }, ";", ":")
-vim.keymap.set({ "n", "v" }, ":", ";")
-
vim.keymap.set("n", "<leader>ff", vim.cmd.Ex)
-vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
-vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
-
vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]])
vim.keymap.set("n", "<leader>Y", [["+Y]])
@@ -52,13 +27,12 @@ vim.keymap.set("n", "<leader>D", [["+D]])
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>")
-vim.keymap.set("i", "<NL>", "<Esc>o")
-vim.keymap.set("n", "<NL>", "o<Esc>")
-
vim.keymap.set("n", "<Esc>", function()
local win_number = vim.api.nvim_get_current_win()
if vim.api.nvim_win_get_config(win_number).relative ~= "" then
vim.cmd("q")
+ else
+ vim.cmd("noh")
end
end)
@@ -89,34 +63,11 @@ vim.keymap.set("n", "<leader>tt", function()
vim.fn.feedkeys(vim.api.nvim_replace_termcodes("<C-l>", true, true, true))
end)
--- what not using lualine does to a mf
vim.cmd([[set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P]]) --default
vim.cmd([[set statusline+=\ ft=%{&filetype}]])
vim.cmd([[set statusline+=\ ff=%{&fileformat}]])
vim.cmd([[set statusline+=\ spaces=%{&expandtab}]])
--- closing "code blocks"
-vim.keymap.set("i", "<C-l>", function()
- if vim.bo.filetype == "html" or vim.bo.filetype == "xml" then
- vim.fn.feedkeys(vim.api.nvim_replace_termcodes(
- [[<Esc>mx?<[^/].\{-}><CR>l"zy/[ >]<CR>`xa<CR></<Esc>"zpa><Esc>O]],
- true, true, true
- ))
- vim.schedule(function()
- vim.cmd("noh")
- end)
- elseif vim.bo.filetype == "lua" then
- vim.fn.feedkeys(vim.api.nvim_replace_termcodes(
- [[<CR>end<Esc>O]], true, true, true
- ))
- else -- reasonable default
- vim.fn.feedkeys(vim.api.nvim_replace_termcodes(
- [[<CR>}<Esc>O]], true, true, true
- ))
- end
-end)
-
--- i've heard you tagged your files so i tagged your file that were not tagged
vim.keymap.set("n", "<leader>tf", function()
local path = vim.api.nvim_buf_get_name(0)
vim.cmd("silent !ctags -a " .. path)
@@ -126,7 +77,6 @@ vim.keymap.set("n", "<leader>td", function()
vim.cmd("silent !ctags -aR .")
end)
-
-- colorscheme
vim.cmd("colorscheme industry")
@@ -141,7 +91,6 @@ vim.api.nvim_set_hl(0, "LineNrAbove", { ctermfg = "LightYellow" })
vim.api.nvim_set_hl(0, "LineNr", { ctermfg = "White" })
vim.api.nvim_set_hl(0, "LineNrBelow", { ctermfg = "LightBlue" })
-
-- lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.uv.fs_stat(lazypath) then
@@ -207,52 +156,66 @@ require("lazy").setup({
"tpope/vim-repeat",
"tpope/vim-surround",
"tpope/vim-commentary",
-
{
- 'VonHeikemen/lsp-zero.nvim',
- branch = 'v3.x',
+ "neovim/nvim-lspconfig",
+ dependencies = {
+ "williamboman/mason.nvim",
+ "williamboman/mason-lspconfig.nvim",
+ "WhoIsSethDaniel/mason-tool-installer.nvim",
+ { "j-hui/fidget.nvim", opts = {} },
+ { "folke/neodev.nvim", opts = {} },
+ },
config = function()
- local lsp_zero = require("lsp-zero")
- lsp_zero.extend_lspconfig()
- local lsp = lsp_zero.preset({})
- local lspconfig = require("lspconfig")
-
- lspconfig.rust_analyzer.setup({})
- lspconfig.zls.setup({})
- lspconfig.lua_ls.setup(lsp.nvim_lua_ls())
- lspconfig.omnisharp.setup({
- cmd = { "OmniSharp" }
- })
- lspconfig.clangd.setup({})
- lspconfig.clangd.setup({})
- lspconfig.hls.setup({})
-
- lsp.setup()
vim.api.nvim_create_autocmd("LspAttach", {
- group = vim.api.nvim_create_augroup("UserLspConfig", {}),
- callback = function(ev)
- 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", "gi", vim.lsp.buf.implementation, opts)
- vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
- vim.keymap.set("n", "gh", vim.diagnostic.open_float, opts)
- vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
- vim.keymap.set({ "n", "i" }, "<C-k>", vim.lsp.buf.signature_help, opts)
- vim.keymap.set("n", "<leader>lr", vim.lsp.buf.rename, opts)
- vim.keymap.set({ "n", "v" }, "<leader><CR>", vim.lsp.buf.code_action, opts)
- vim.keymap.set("n", "<leader>lf", vim.lsp.buf.format, opts)
- vim.keymap.set("n", "<leader>ls", function()
- vim.lsp.stop_client(vim.lsp.get_clients())
- end)
+ group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
+ callback = function(event)
+ local map = function(keys, func, desc)
+ vim.keymap.set("n", keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
+ end
+
+ map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
+ map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
+ map("gi", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
+ map("gt", require('telescope.builtin').lsp_type_definitions, "Type [D]efinition")
+ map("<leader>lr", vim.lsp.buf.rename, "[L]SP [R]ename")
+ map("<leader><CR>", vim.lsp.buf.code_action, "Code Action")
+ map("K", vim.lsp.buf.hover, "Hover Documentation")
+ map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
end,
})
- end
- },
- {
- "williamboman/mason.nvim",
- config = function()
+
+ local capabilities = vim.lsp.protocol.make_client_capabilities()
+ capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities())
+
+ local servers = {
+ lua_ls = {
+ settings = {
+ Lua = {
+ completion = {
+ callSnippet = 'Replace',
+ },
+ },
+ },
+ },
+ }
+
require("mason").setup()
+
+ local ensure_installed = vim.tbl_keys(servers or {})
+ vim.list_extend(ensure_installed, {
+ "stylua",
+ })
+ require("mason-tool-installer").setup({ ensure_installed = ensure_installed })
+
+ require("mason-lspconfig").setup {
+ handlers = {
+ function(server_name)
+ local server = servers[server_name] or {}
+ server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
+ require("lspconfig")[server_name].setup(server)
+ end,
+ },
+ }
end,
},
{ "hrsh7th/cmp-nvim-lsp" },
@@ -269,9 +232,6 @@ require("lazy").setup({
end
},
- { "L3MON4D3/LuaSnip" },
- { "neovim/nvim-lspconfig" },
-
{
"ThePrimeagen/harpoon",
branch = "harpoon2",