diff --git a/.config/nvim/after/plugin/lsp.lua b/.config/nvim/after/plugin/lsp.lua index 6fdab072..5b8781c9 100644 --- a/.config/nvim/after/plugin/lsp.lua +++ b/.config/nvim/after/plugin/lsp.lua @@ -3,7 +3,7 @@ local nnoremap = Remap.nnoremap local inoremap = Remap.inoremap local sumneko_root_path = "/usr/lib/lua-language-server" -local sumneko_binary = "/usr/bin/lua-language-server" +local sumneko_binary = "/usr/local/bin/lua-language-server" -- Setup nvim-cmp. local cmp = require("cmp") @@ -30,23 +30,23 @@ cmp.setup({ -- vim.fn["UltiSnips#Anon"](args.body) end, }, - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), - [''] = cmp.mapping.confirm({ select = true }), - }), + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.confirm({ select = true }), + }), formatting = { format = function(entry, vim_item) vim_item.kind = lspkind.presets.default[vim_item.kind] local menu = source_mapping[entry.source.name] --- if entry.source.name == "cmp_tabnine" then --- if entry.completion_item.data ~= nil and entry.completion_item.data.detail ~= nil then --- menu = entry.completion_item.data.detail .. " " .. menu --- end --- vim_item.kind = "" --- end + -- if entry.source.name == "cmp_tabnine" then + -- if entry.completion_item.data ~= nil and entry.completion_item.data.detail ~= nil then + -- menu = entry.completion_item.data.detail .. " " .. menu + -- end + -- vim_item.kind = "" + -- end vim_item.menu = menu return vim_item end, @@ -82,42 +82,78 @@ tabnine:setup({ run_on_every_keystroke = true, snippet_placeholder = "..", }) -]]-- +]] +-- local function config(_config) return vim.tbl_deep_extend("force", { on_attach = function() - nnoremap("gD", function() vim.lsp.buf.definition() end) - nnoremap("gd", function() vim.lsp.buf.definition() end) - nnoremap("K", function() vim.lsp.buf.hover() end) - nnoremap("gi", function() vim.lsp.buf.implementation() end) - nnoremap("wa", function() vim.lsp.buf.add_workspace_folder() end) - nnoremap("wr", function() vim.lsp.buf.remove_workspace_folder() end) - nnoremap("wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end) - nnoremap("vws", function() vim.lsp.buf.workspace_symbol() end) - nnoremap("vd", function() vim.diagnostic.open_float() end) - nnoremap("[d", function() vim.diagnostic.goto_next() end) - nnoremap("]d", function() vim.diagnostic.goto_prev() end) - nnoremap("ca", function() vim.lsp.buf.code_action() end) - nnoremap("vco", function() vim.lsp.buf.code_action({ - filter = function(code_action) - if not code_action or not code_action.data then - return false - end - - local data = code_action.data.id - return string.sub(data, #data - 1, #data) == ":0" - end, - apply = true - }) end) - nnoremap("gr", function() vim.lsp.buf.references() end) - nnoremap("rn", function() vim.lsp.buf.rename() end) - inoremap("", function() vim.lsp.buf.signature_help() end) - nnoremap("f", function() vim.lsp.buf.format({ async = true }) end) + nnoremap("gD", function() + vim.lsp.buf.definition() + end) + nnoremap("gd", function() + vim.lsp.buf.definition() + end) + nnoremap("K", function() + vim.lsp.buf.hover() + end) + nnoremap("gi", function() + vim.lsp.buf.implementation() + end) + nnoremap("wa", function() + vim.lsp.buf.add_workspace_folder() + end) + nnoremap("wr", function() + vim.lsp.buf.remove_workspace_folder() + end) + nnoremap("wl", function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end) + nnoremap("vws", function() + vim.lsp.buf.workspace_symbol() + end) + nnoremap("vd", function() + vim.diagnostic.open_float() + end) + nnoremap("[d", function() + vim.diagnostic.goto_next() + end) + nnoremap("]d", function() + vim.diagnostic.goto_prev() + end) + nnoremap("ca", function() + vim.lsp.buf.code_action() + end) + nnoremap("vco", function() + vim.lsp.buf.code_action({ + filter = function(code_action) + if not code_action or not code_action.data then + return false + end + + local data = code_action.data.id + return string.sub(data, #data - 1, #data) == ":0" + end, + apply = true, + }) + end) + nnoremap("gr", function() + vim.lsp.buf.references() + end) + nnoremap("rn", function() + vim.lsp.buf.rename() + end) + inoremap("", function() + vim.lsp.buf.signature_help() + end) + nnoremap("f", function() + vim.lsp.buf.format({ async = true }) + end) end, }, _config or {}) end +require("lspconfig").solargraph.setup(config()) require("lspconfig").zls.setup(config()) require("lspconfig").tsserver.setup(config()) @@ -147,15 +183,6 @@ require("lspconfig").gopls.setup(config({ -- who even uses this? require("lspconfig").rust_analyzer.setup(config({ cmd = { "rustup", "run", "nightly", "rust-analyzer" }, - --[[ - settings = { - rust = { - unstable_features = true, - build_on_save = false, - all_features = true, - }, - } - --]] })) require("lspconfig").sumneko_lua.setup(config({ @@ -216,4 +243,3 @@ require("luasnip.loaders.from_vscode").lazy_load({ include = nil, -- Load all languages exclude = {}, }) - diff --git a/.config/nvim/after/plugin/mason.lua b/.config/nvim/after/plugin/mason.lua index 87b303c3..af02d2bf 100644 --- a/.config/nvim/after/plugin/mason.lua +++ b/.config/nvim/after/plugin/mason.lua @@ -1,33 +1,33 @@ local mason_status, mason = pcall(require, "mason") if not mason_status then - return + return end local mason_lspconfig_status, mason_lspconfig = pcall(require, "mason-lspconfig") if not mason_lspconfig_status then - return + return end local mason_null_ls_status, mason_null_ls = pcall(require, "mason-null-ls") if not mason_null_ls_status then - return + return end mason.setup() mason_lspconfig.setup({ - ensure_installed = { - "tsserver", - "html", - "cssls", - "sumneko_lua", - } + ensure_installed = { + "tsserver", + "html", + "cssls", + "sumneko_lua", + }, }) mason_null_ls.setup({ - ensure_installed = { - "prettier", - "stylua", - "eslint_d", - } + ensure_installed = { + "prettier", + "stylua", + "eslint_d", + }, }) diff --git a/.config/nvim/after/plugin/null-ls.lua b/.config/nvim/after/plugin/null-ls.lua index 268d3f1f..9a754f5c 100644 --- a/.config/nvim/after/plugin/null-ls.lua +++ b/.config/nvim/after/plugin/null-ls.lua @@ -1,6 +1,6 @@ local setup, null_ls = pcall(require, "null-ls") if not setup then - return + return end local formatting = null_ls.builtins.formatting @@ -8,24 +8,24 @@ local diagnostics = null_ls.builtins.diagnostics local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) null_ls.setup({ - sources = { - formatting.prettier, - formatting.stylua, - diagnostics.eslint_d - }, - -- format on save - on_attach = function(client, bufnr) - if client.supports_method("textDocument/formatting") then - vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) - vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup, - buffer = bufnr, - callback = function() - -- on 0.8, you should use vim.lsp.buf.format({ bufnr = bufnr }) instead - vim.lsp.buf.format({ bufnr = bufnr }) - end, - }) - end - end, + sources = { + formatting.prettier, + formatting.stylua, + diagnostics.eslint_d, + diagnostics.rubocop, + }, + -- format on save + on_attach = function(client, bufnr) + if client.supports_method("textDocument/formatting") then + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + -- on 0.8, you should use vim.lsp.buf.format({ bufnr = bufnr }) instead + vim.lsp.buf.format({ bufnr = bufnr }) + end, + }) + end + end, }) - diff --git a/.config/nvim/lua/rahcodes/packer.lua b/.config/nvim/lua/rahcodes/packer.lua index 3fbcb28e..babc9328 100644 --- a/.config/nvim/lua/rahcodes/packer.lua +++ b/.config/nvim/lua/rahcodes/packer.lua @@ -60,6 +60,8 @@ return require("packer").startup(function(use) end, }) + use("tpope/vim-fugitive") + use({ "folke/trouble.nvim", requires = "kyazdani42/nvim-web-devicons", @@ -72,6 +74,16 @@ return require("packer").startup(function(use) end, }) + use({ + "kylechui/nvim-surround", + tag = "*", -- Use for stability; omit to use `main` branch for the latest features + config = function() + require("nvim-surround").setup({ + -- Configuration here, or leave empty to use defaults + }) + end, + }) + -- Automatically set up your configuration after cloning packer.nvim -- Put this at the end after all plugins if packer_bootstrap then diff --git a/.config/nvim/lua/rahcodes/remap.lua b/.config/nvim/lua/rahcodes/remap.lua index 8578e44b..d869b66e 100644 --- a/.config/nvim/lua/rahcodes/remap.lua +++ b/.config/nvim/lua/rahcodes/remap.lua @@ -1,14 +1,70 @@ -local nnoremap = require("rahcodes.keymap").nnoremap +local Remap = require("rahcodes.keymap") +local nnoremap = Remap.nnoremap +local vnoremap = Remap.vnoremap +local inoremap = Remap.inoremap +local nmap = Remap.nmap nnoremap("pv", "Ex") -local builtin = require('telescope.builtin') -vim.keymap.set('n', 'ff', builtin.find_files, {}) -vim.keymap.set('n', 'fg', builtin.live_grep, {}) -vim.keymap.set('n', 'fb', builtin.buffers, {}) -vim.keymap.set('n', 'fh', builtin.help_tags, {}) +local builtin = require("telescope.builtin") +vim.keymap.set("n", "ff", builtin.find_files, {}) +vim.keymap.set("n", "fg", builtin.live_grep, {}) +vim.keymap.set("n", "fb", builtin.buffers, {}) +vim.keymap.set("n", "fh", builtin.help_tags, {}) -vim.keymap.set('n', 'm', builtin.oldfiles, {}) -vim.keymap.set('n', 'gb', builtin.git_branches, {}) -vim.keymap.set('n', 'gs', builtin.git_status, {}) -vim.keymap.set('n', '', builtin.git_files, {}) +vim.keymap.set("n", "m", builtin.oldfiles, {}) +vim.keymap.set("n", "gb", builtin.git_branches, {}) +-- vim.keymap.set('n', 'gs', builtin.git_status, {}) +vim.keymap.set("n", "", builtin.git_files, {}) + +-- Git Fugitive +nnoremap("gs", ":G") +nnoremap("gh", ":diffget //3") +nnoremap("gu", ":diffget //2") +nnoremap("gc", ":GCheckout") +nnoremap("ga", ":G add %:p") +nnoremap("gc", ":G commit -v -q") +nnoremap("gt", ":G commit -v -q %:p") +nnoremap("gca", ":G commit --amend --no-edit") +nnoremap("gd", ":Gdiff") +nnoremap("ge", ":Gedit") +nnoremap("gr", ":Gread") +nnoremap("gw", ":Gwrite") +nnoremap("gl", ":silent! Glog:bot copen") +nnoremap("gp", ":Ggrep") +nnoremap("gm", ":Gmove") +nnoremap("gb", ":G branch") +nnoremap("go", ":G checkout") +nnoremap("gps", ":Dispatch! git push") +nnoremap("gpl", ":Dispatch! git pull") + +vnoremap("J", ":m '>+1gv=gv") +vnoremap("K", ":m '<-2gv=gv") + +nnoremap("/", "/\v") +vnoremap("/", "/\v") +nnoremap("/", ":Rg") +vnoremap("/", ":Rg") +nnoremap("`", ":noh") + +-- No Cheating +nnoremap("", "") +nnoremap("", "") +nnoremap("", "") +nnoremap("", "") +inoremap("", "") +inoremap("", "") +inoremap("", "") +inoremap("", "") + +-- No weird line jumps +nnoremap("j", "gj") +nnoremap("k", "gk") + +-- Copy to system clipboard +vnoremap("y", '"*y') +vnoremap("yy", '"+y') + +-- Move buffers +nmap("sp", ":bprev") +nmap("sn", ":bnext")