recovering custom nvim configs
This commit is contained in:
parent
0622ef41cd
commit
ebb0a5aeed
|
@ -0,0 +1,2 @@
|
|||
require("rahcodes.remap")
|
||||
require("rahcodes.sets")
|
|
@ -0,0 +1,21 @@
|
|||
vim.keymap.set("n", "<leader>gs", ":G<CR>")
|
||||
vim.keymap.set("n", "<leader>gh", ":diffget //3<CR>")
|
||||
vim.keymap.set("n", "<leader>gu", ":diffget //2<CR>")
|
||||
vim.keymap.set("n", "<leader>gc", ":GCheckout<CR>")
|
||||
vim.keymap.set("n", "<leader>ga", ":G add %:p<CR><CR>")
|
||||
vim.keymap.set("n", "<leader>gc", ":G commit -v -q<CR>")
|
||||
vim.keymap.set("n", "<leader>gt", ":G commit -v -q %:p<CR>")
|
||||
vim.keymap.set("n", "<leader>gff", ":G ff<CR>")
|
||||
vim.keymap.set("n", "<leader>gfo", ":G fetch origin<CR>")
|
||||
vim.keymap.set("n", "<leader>gd", ":Gdiff<CR>")
|
||||
vim.keymap.set("n", "<leader>ge", ":Gedit<CR>")
|
||||
vim.keymap.set("n", "<leader>gr", ":Gread<CR>")
|
||||
vim.keymap.set("n", "<leader>grb", ":G rebase -i<CR>")
|
||||
vim.keymap.set("n", "<leader>gw", ":Gwrite<CR><CR>")
|
||||
vim.keymap.set("n", "<leader>gl", ":silent! Glog<CR>:bot copen<CR>")
|
||||
vim.keymap.set("n", "<leader>gp", ":Ggrep<Space>")
|
||||
vim.keymap.set("n", "<leader>gm", ":Gmove<Space>")
|
||||
vim.keymap.set("n", "<leader>gbl", ":G blame<CR>")
|
||||
vim.keymap.set("n", "<leader>go", ":G checkout<Space>")
|
||||
vim.keymap.set("n", "<leader>gps", ":Dispatch! git push<CR>")
|
||||
vim.keymap.set("n", "<leader>gpl", ":Dispatch! git pull<CR>")
|
|
@ -0,0 +1,22 @@
|
|||
local Worktree = require("git-worktree")
|
||||
|
||||
-- op = Operations.Switch, Operations.Create, Operations.Delete
|
||||
-- metadata = table of useful values (structure dependent on op)
|
||||
-- Switch
|
||||
-- path = path you switched to
|
||||
-- prev_path = previous worktree path
|
||||
-- Create
|
||||
-- path = path where worktree created
|
||||
-- branch = branch name
|
||||
-- upstream = upstream remote name
|
||||
-- Delete
|
||||
-- path = path where worktree deleted
|
||||
|
||||
Worktree.on_tree_change(function(op, metadata)
|
||||
if op == Worktree.Operations.Switch then
|
||||
print("Switched from " .. metadata.prev_path .. " to " .. metadata.path)
|
||||
end
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>bw", require("telescope").extensions.git_worktree.git_worktrees, { desc = "[B]rowse Git Worktrees" })
|
||||
vim.keymap.set("n", "<leader>cw", require("telescope").extensions.git_worktree.create_git_worktree, { desc = "[C]reate Git [W]orktree" })
|
|
@ -0,0 +1,13 @@
|
|||
require("lualine").setup({
|
||||
options = {
|
||||
theme = "tokyonight",
|
||||
tabline = {
|
||||
lualine_a = { "buffers" },
|
||||
lualine_b = { "branch" },
|
||||
lualine_c = { "filename" },
|
||||
lualine_x = {},
|
||||
lualine_y = {},
|
||||
lualine_z = { "tabs" },
|
||||
},
|
||||
},
|
||||
})
|
|
@ -0,0 +1,75 @@
|
|||
local setup, null_ls = pcall(require, "null-ls")
|
||||
if not setup then
|
||||
return
|
||||
end
|
||||
|
||||
local formatting = null_ls.builtins.formatting
|
||||
local diagnostics = null_ls.builtins.diagnostics
|
||||
local conditional = function(fn)
|
||||
local utils = require("null-ls.utils").make_conditional_utils()
|
||||
return fn(utils)
|
||||
end
|
||||
|
||||
local lsp_formatting = function(bufnr)
|
||||
vim.lsp.buf.format({
|
||||
timeout_ms = 2000,
|
||||
filter = function(client)
|
||||
-- apply whatever logic you want (in this example, we'll only use null-ls)
|
||||
return client.name ~= "tsserver"
|
||||
end,
|
||||
bufnr = bufnr,
|
||||
})
|
||||
end
|
||||
|
||||
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
|
||||
|
||||
-- local my_rubocop_formatter = require("rahcodes.null-ls.rubocop")
|
||||
local rubocop = null_ls.builtins.formatting.rubocop
|
||||
|
||||
null_ls.setup({
|
||||
debug = false,
|
||||
sources = {
|
||||
formatting.prettier,
|
||||
-- formatting.stylua,
|
||||
null_ls.builtins.code_actions.gitsigns,
|
||||
-- setting eslint_d only if we have a ".eslintrc.js" file in the project
|
||||
diagnostics.eslint_d.with({
|
||||
condition = function(utils)
|
||||
return utils.root_has_file({ '.eslintrc.js' })
|
||||
end
|
||||
}),
|
||||
|
||||
-- Here we set a conditional to call the rubocop formatter. If we have a Gemfile in the project, we call "bundle exec rubocop", if not we only call "rubocop".
|
||||
conditional(function(utils)
|
||||
return utils.root_has_file("Gemfile")
|
||||
and rubocop.with({
|
||||
command = "bundle",
|
||||
args = vim.list_extend({ "exec", "rubocop" }, rubocop._opts.args),
|
||||
})
|
||||
or rubocop
|
||||
end),
|
||||
|
||||
-- Same as above, but with diagnostics.rubocop to make sure we use the proper rubocop version for the project
|
||||
conditional(function(utils)
|
||||
return utils.root_has_file("Gemfile")
|
||||
and null_ls.builtins.diagnostics.rubocop.with({
|
||||
command = "bundle",
|
||||
args = vim.list_extend({ "exec", "rubocop" }, null_ls.builtins.diagnostics.rubocop._opts.args),
|
||||
})
|
||||
or null_ls.builtins.diagnostics.rubocop
|
||||
end),
|
||||
},
|
||||
-- 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()
|
||||
lsp_formatting(bufnr)
|
||||
end,
|
||||
})
|
||||
end
|
||||
end,
|
||||
})
|
|
@ -0,0 +1,2 @@
|
|||
pcall(require("telescope").load_extension, "ui-select")
|
||||
pcall(require("telescope").load_extension, "live_grep_args")
|
|
@ -1,5 +1,68 @@
|
|||
-- You can add your own plugins here or in other files in this directory!
|
||||
-- I promise not to create any merge conflicts in this directory :)
|
||||
--
|
||||
-- See the kickstart.nvim README for more information
|
||||
return {}
|
||||
return {
|
||||
{
|
||||
"ThePrimeagen/refactoring.nvim",
|
||||
requires = {
|
||||
{ "nvim-lua/plenary.nvim" },
|
||||
{ "nvim-treesitter/nvim-treesitter" },
|
||||
},
|
||||
config = function()
|
||||
require("refactoring").setup({})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"ThePrimeagen/git-worktree.nvim",
|
||||
},
|
||||
{
|
||||
"folke/tokyonight.nvim",
|
||||
lazy = false, -- make sure we load this during startup if it is your main colorscheme
|
||||
priority = 1000, -- make sure to load this before all the other start plugins
|
||||
config = function()
|
||||
-- load the colorscheme here
|
||||
vim.cmd([[colorscheme tokyonight]])
|
||||
end,
|
||||
},
|
||||
-- formatting & linting
|
||||
"jose-elias-alvarez/null-ls.nvim",
|
||||
-- use("jayp0521/mason-null-ls.nvim")
|
||||
{
|
||||
"kylechui/nvim-surround",
|
||||
version = "*", -- Use for stability; omit to use `main` branch for the latest features
|
||||
event = "VeryLazy",
|
||||
config = function()
|
||||
require("nvim-surround").setup({
|
||||
-- Configuration here, or leave empty to use defaults
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
requires = "nvim-tree/nvim-web-devicons",
|
||||
config = function()
|
||||
require("trouble").setup({
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"rafamadriz/friendly-snippets",
|
||||
config = function()
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
dependencies = {
|
||||
{
|
||||
"nvim-telescope/telescope-live-grep-args.nvim",
|
||||
-- This will not install any breaking changes.
|
||||
-- For major updates, this must be adjusted manually.
|
||||
version = "^1.0.0",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("live_grep_args")
|
||||
end
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
local M = {}
|
||||
|
||||
local function bind(op, outer_opts)
|
||||
outer_opts = outer_opts or {noremap = true}
|
||||
return function(lhs, rhs, opts)
|
||||
opts = vim.tbl_extend("force",
|
||||
outer_opts,
|
||||
opts or {}
|
||||
)
|
||||
vim.keymap.set(op, lhs,rhs, opts)
|
||||
end
|
||||
end
|
||||
|
||||
M.nmap = bind("n", {noremap = false})
|
||||
M.nnoremap = bind("n")
|
||||
M.vnoremap = bind("v")
|
||||
M.xnoremap = bind("x")
|
||||
M.inoremap = bind("i")
|
||||
|
||||
return M
|
|
@ -0,0 +1,69 @@
|
|||
local Remap = require("rahcodes.keymap")
|
||||
local nmap = Remap.nmap
|
||||
|
||||
vim.keymap.set("n", "<leader>pv", 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", "<C-d>", "<C-d>zz")
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||
|
||||
vim.keymap.set("n", "n", "nzzzv")
|
||||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
-- don't bork paste buffer when pasting
|
||||
vim.keymap.set("x", "<leader>p", '"_dP')
|
||||
|
||||
vim.keymap.set("i", "<C-c>", "<Esc>")
|
||||
|
||||
-- vim.keymap.set("n", "/", "/\v")
|
||||
-- vim.keymap.set("v", "/", "/\v")
|
||||
vim.keymap.set("n", "<leader>`", ":noh<cr>")
|
||||
|
||||
-- No Cheating
|
||||
vim.keymap.set("n", "<up>", "<nop>")
|
||||
vim.keymap.set("n", "<down>", "<nop>")
|
||||
vim.keymap.set("n", "<left>", "<nop>")
|
||||
vim.keymap.set("n", "<right>", "<nop>")
|
||||
vim.keymap.set("i", "<up>", "<nop>")
|
||||
vim.keymap.set("i", "<down>", "<nop>")
|
||||
vim.keymap.set("i", "<left>", "<nop>")
|
||||
vim.keymap.set("i", "<right>", "<nop>")
|
||||
|
||||
-- No weird line jumps
|
||||
vim.keymap.set("n", "j", "gj")
|
||||
vim.keymap.set("n", "k", "gk")
|
||||
|
||||
-- Copy to system clipboard
|
||||
vim.keymap.set("n", "<leader>y", '"*y')
|
||||
vim.keymap.set("v", "<leader>y", '"*y')
|
||||
vim.keymap.set("n", "<leader>yy", '"+y')
|
||||
vim.keymap.set("v", "<leader>yy", '"+y')
|
||||
|
||||
vim.keymap.set("n", "<C-f>", "<cmd>silent !tmux neww tmux-sessionizer<CR>")
|
||||
|
||||
-- Move buffers
|
||||
nmap("sp", ":bprev<Return>")
|
||||
nmap("sn", ":bnext<Return>")
|
||||
|
||||
-- Quickfix list navigation
|
||||
vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
|
||||
vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
|
||||
vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz")
|
||||
vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz")
|
||||
|
||||
-- Save
|
||||
nmap("<C-s>", ":wa<CR>")
|
||||
|
||||
-- See `:help telescope.builtin`
|
||||
vim.keymap.set("n", "<leader>m", require("telescope.builtin").oldfiles, { desc = "[?] Find recently opened files" })
|
||||
vim.keymap.set("n", "<leader>/", require("telescope.builtin").find_files, { desc = "[S]earch [F]iles" })
|
||||
|
||||
-- Trouble bindings
|
||||
vim.keymap.set("n", "<leader>xx", function() require("trouble").open() end)
|
||||
vim.keymap.set("n", "<leader>xw", function() require("trouble").open("workspace_diagnostics") end)
|
||||
vim.keymap.set("n", "<leader>xd", function() require("trouble").open("document_diagnostics") end)
|
||||
vim.keymap.set("n", "<leader>xq", function() require("trouble").open("quickfix") end)
|
||||
vim.keymap.set("n", "<leader>xl", function() require("trouble").open("loclist") end)
|
||||
vim.keymap.set("n", "gR", function() require("trouble").open("lsp_references") end)
|
|
@ -0,0 +1,26 @@
|
|||
vim.opt.guicursor = ""
|
||||
|
||||
vim.opt.nu = true
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.expandtab = true
|
||||
|
||||
vim.opt.smartindent = true
|
||||
|
||||
vim.opt.wrap = false
|
||||
|
||||
vim.opt.swapfile = false
|
||||
vim.opt.backup = false
|
||||
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
||||
|
||||
vim.opt.incsearch = true
|
||||
|
||||
vim.opt.scrolloff = 8
|
||||
vim.opt.isfname:append("@-@")
|
||||
|
||||
vim.opt.colorcolumn = "80"
|
||||
|
||||
vim.opt.mouse = "v"
|
|
@ -0,0 +1,22 @@
|
|||
local lsp = require 'lspconfig'
|
||||
lsp.solargraph.setup {
|
||||
cmd = { os.getenv("HOME") .. "/.asdf/shims/solargraph", '--stdio' },
|
||||
filetypes = { "ruby", "rakefile" },
|
||||
settings = {
|
||||
solargraph = {
|
||||
-- root_dir = nvim_lsp.util.root_pattern("Gemfile", ".git", "."),
|
||||
-- root_dir = root_pattern("Gemfile", ".git"),
|
||||
settings = {
|
||||
solargraph = {
|
||||
autoformat = true,
|
||||
completion = true,
|
||||
diagnostic = true,
|
||||
folding = true,
|
||||
references = true,
|
||||
rename = true,
|
||||
symbols = true
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue