feat(lazy)!: Rewrite config with lazy.nvim
This commit is contained in:
parent
054186ccf1
commit
cb49ba5c9a
35 changed files with 429 additions and 675 deletions
|
|
@ -1,18 +0,0 @@
|
||||||
-- Base 16 fleet theme (kinda)
|
|
||||||
-- require('base16-colorscheme').setup({
|
|
||||||
-- base00 = '#181818', base01 = '#292929', base02 = '#292929', base03 = '#6D6D6D',
|
|
||||||
-- base04 = '#535353', base05 = '#d6d6dd', base06 = '#292929', base07 = '#292929',
|
|
||||||
-- base08 = '#d6d6dd', base09 = '#e5c995', base0A = '#70cdb7', base0B = '#d898d8',
|
|
||||||
-- base0C = '#d898d8', base0D = '#e5c995', base0E = '#70cdb7', base0F = '#d6d6dd',
|
|
||||||
-- })
|
|
||||||
|
|
||||||
-- require('base16-colorscheme').setup()
|
|
||||||
-- require('base16-colorscheme').with_config({
|
|
||||||
-- telescope = true,
|
|
||||||
-- indentblankline = true,
|
|
||||||
-- notify = true,
|
|
||||||
-- ts_rainbow = true,
|
|
||||||
-- cmp = true,
|
|
||||||
-- illuminate = true,
|
|
||||||
-- })
|
|
||||||
--
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
function ColorMyPencils(color)
|
|
||||||
color = color or "fleet"
|
|
||||||
vim.cmd.colorscheme(color)
|
|
||||||
end
|
|
||||||
|
|
||||||
ColorMyPencils()
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
require("conform").setup{
|
|
||||||
javascript = { { "prettierd", "prettier" } },
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
|
|
||||||
|
|
||||||
local default_Fugitive = vim.api.nvim_create_augroup("default_Fugitive", {})
|
|
||||||
|
|
||||||
local autocmd = vim.api.nvim_create_autocmd
|
|
||||||
autocmd("BufWinEnter", {
|
|
||||||
group = default_Fugitive,
|
|
||||||
pattern = "*",
|
|
||||||
callback = function()
|
|
||||||
if vim.bo.ft ~= "fugitive" then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local bufnr = vim.api.nvim_get_current_buf()
|
|
||||||
local opts = {buffer = bufnr, remap = false}
|
|
||||||
vim.keymap.set("n", "<leader>gp", function()
|
|
||||||
vim.cmd.Git('push')
|
|
||||||
end, opts)
|
|
||||||
|
|
||||||
-- rebase always
|
|
||||||
vim.keymap.set("n", "<leader>gP", function()
|
|
||||||
vim.cmd.Git({'pull', '--rebase'})
|
|
||||||
end, opts)
|
|
||||||
|
|
||||||
-- NOTE: It allows me to easily set the branch i am pushing and any tracking
|
|
||||||
-- needed if i did not set the branch up correctly
|
|
||||||
vim.keymap.set("n", "<leader>gt", ":Git push -u origin ", opts);
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
require('gitsigns').setup{
|
|
||||||
signs = {
|
|
||||||
add = { text = '▏' },
|
|
||||||
change = { text = '▏' },
|
|
||||||
delete = { text = '_' },
|
|
||||||
topdelete = { text = '‾' },
|
|
||||||
changedelete = { text = '~' },
|
|
||||||
untracked = { text = '┆' },
|
|
||||||
},
|
|
||||||
on_attach = function(bufnr)
|
|
||||||
local gs = package.loaded.gitsigns
|
|
||||||
|
|
||||||
local function map(mode, l, r, opts)
|
|
||||||
opts = opts or {}
|
|
||||||
opts.buffer = bufnr
|
|
||||||
vim.keymap.set(mode, l, r, opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Navigation
|
|
||||||
map('n', ']c', function()
|
|
||||||
if vim.wo.diff then return ']c' end
|
|
||||||
vim.schedule(function() gs.next_hunk() end)
|
|
||||||
return '<Ignore>'
|
|
||||||
end, {expr=true})
|
|
||||||
|
|
||||||
map('n', '[c', function()
|
|
||||||
if vim.wo.diff then return '[c' end
|
|
||||||
vim.schedule(function() gs.prev_hunk() end)
|
|
||||||
return '<Ignore>'
|
|
||||||
end, {expr=true})
|
|
||||||
|
|
||||||
-- Actions
|
|
||||||
map('n', '<leader>hs', gs.stage_hunk)
|
|
||||||
map('n', '<leader>hr', gs.reset_hunk)
|
|
||||||
map('v', '<leader>hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
|
|
||||||
map('v', '<leader>hr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
|
|
||||||
map('n', '<leader>hS', gs.stage_buffer)
|
|
||||||
map('n', '<leader>hu', gs.undo_stage_hunk)
|
|
||||||
map('n', '<leader>hR', gs.reset_buffer)
|
|
||||||
map('n', '<leader>hp', gs.preview_hunk)
|
|
||||||
map('n', '<leader>hb', function() gs.blame_line{full=true} end)
|
|
||||||
map('n', '<leader>tb', gs.toggle_current_line_blame)
|
|
||||||
map('n', '<leader>hd', gs.diffthis)
|
|
||||||
map('n', '<leader>hD', function() gs.diffthis('~') end)
|
|
||||||
map('n', '<leader>td', gs.toggle_deleted)
|
|
||||||
|
|
||||||
-- Text object
|
|
||||||
map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
require "ibl".setup {
|
|
||||||
scope = {
|
|
||||||
enabled = true,
|
|
||||||
highlight = "Label",
|
|
||||||
show_start = false,
|
|
||||||
show_end = false,
|
|
||||||
include = {
|
|
||||||
node_type = {
|
|
||||||
lua = { "table_constructor" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
indent = {
|
|
||||||
char = "▏",
|
|
||||||
},
|
|
||||||
exclude = {
|
|
||||||
buftypes = { "terminal", "nofile" },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
-- require('lualine').setup{
|
|
||||||
-- options = {
|
|
||||||
-- theme = 'base16',
|
|
||||||
-- icons_enabled = true,
|
|
||||||
-- },
|
|
||||||
-- }
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
require('mini.comment').setup()
|
|
||||||
require('mini.surround').setup()
|
|
||||||
require('mini.clue').setup()
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
||||||
require('neoai').setup({
|
|
||||||
models = {
|
|
||||||
{
|
|
||||||
name = "openai",
|
|
||||||
model = "gpt-3.5-turbo-1106", -- "gpt-4-1106-preview",
|
|
||||||
params = nil,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
open_ai = {
|
|
||||||
api_key = {
|
|
||||||
get = function()
|
|
||||||
local key = vim.fn.system("pass show openai/api_key")
|
|
||||||
key = string.gsub(key, "\n", "")
|
|
||||||
return key
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
prompts = {
|
|
||||||
context_prompt = function(context)
|
|
||||||
return context
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
shortcuts = {
|
|
||||||
{
|
|
||||||
name = "textify",
|
|
||||||
key = "<leader>as",
|
|
||||||
desc = "fix text with AI",
|
|
||||||
use_context = true,
|
|
||||||
prompt = [[
|
|
||||||
Please rewrite the text to make it more readable, clear,
|
|
||||||
concise, and fix any grammatical, punctuation, or spelling
|
|
||||||
errors
|
|
||||||
]],
|
|
||||||
modes = { "v" },
|
|
||||||
strip_function = nil,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "gitcommit",
|
|
||||||
key = "<leader>ag",
|
|
||||||
desc = "generate git commit message",
|
|
||||||
use_context = false,
|
|
||||||
prompt = function()
|
|
||||||
return [[
|
|
||||||
With specifications from conventionalcommits.org,
|
|
||||||
the commit message should be formatted as follows:
|
|
||||||
<type>[optional scope]: <description>
|
|
||||||
|
|
||||||
[optional body]
|
|
||||||
|
|
||||||
[optional footer(s)]
|
|
||||||
Here are some examples of commit messages:
|
|
||||||
=========================================
|
|
||||||
feat: holiday-themed devcard
|
|
||||||
|
|
||||||
Our DevCard now features a holiday theme for both Halloween and Christmas!
|
|
||||||
This also includes a link pointing to Chris' article on how to embed it on your GitHub Profile.
|
|
||||||
|
|
||||||
DD-267 #done
|
|
||||||
=========================================
|
|
||||||
build(extension): version 3.8.0
|
|
||||||
=========================================
|
|
||||||
chore!: drop Node 6 from testing matrix
|
|
||||||
|
|
||||||
BREAKING CHANGE: dropping Node 6 which hits end of life in April
|
|
||||||
=========================================
|
|
||||||
ci: use pulumi common new kubernetes helpers
|
|
||||||
=========================================
|
|
||||||
Using the following git diff in order to generate
|
|
||||||
a consise and clear git commit message:
|
|
||||||
]] .. vim.fn.system("git diff --cached --ignore-space-at-eol")
|
|
||||||
end,
|
|
||||||
modes = { "n" },
|
|
||||||
strip_function = nil,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Keybindings
|
|
||||||
vim.keymap.set("n", "<leader>at", "<cmd>NeoAIToggle<cr>",
|
|
||||||
{silent = true, noremap = true}
|
|
||||||
)
|
|
||||||
vim.keymap.set("n", "<leader>ai", ":NeoAIInject YOUR MAY ONLY PROVIDE ONLY THE CODE SNIPPET AND WITHOUT THE CODE BLOCK",
|
|
||||||
{silent = true, noremap = true}
|
|
||||||
)
|
|
||||||
vim.keymap.set("v", "<leader>ac", "<cmd>'<,'>NeoAIContext<cr>iPlease explain shortly",
|
|
||||||
{silent = true, noremap = true}
|
|
||||||
)
|
|
||||||
vim.keymap.set("n", "<leader>ap", "<cmd>put c<cr><cmd>let @c=''<cr>",
|
|
||||||
{silent = true, noremap = true}
|
|
||||||
)
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
require("nvim-tree").setup({
|
|
||||||
sort_by = "case_sensitive",
|
|
||||||
view = { width = 40, },
|
|
||||||
filters = {
|
|
||||||
git_ignored = false,
|
|
||||||
dotfiles = false,
|
|
||||||
},
|
|
||||||
actions = {
|
|
||||||
open_file = {
|
|
||||||
quit_on_open = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
renderer = {
|
|
||||||
group_empty = true,
|
|
||||||
icons = {
|
|
||||||
web_devicons = {
|
|
||||||
file = {
|
|
||||||
enable = true,
|
|
||||||
color = true,
|
|
||||||
},
|
|
||||||
folder = {
|
|
||||||
enable = false,
|
|
||||||
color = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
git_placement = "before",
|
|
||||||
modified_placement = "after",
|
|
||||||
diagnostics_placement = "signcolumn",
|
|
||||||
bookmarks_placement = "signcolumn",
|
|
||||||
padding = " ",
|
|
||||||
symlink_arrow = " ➛ ",
|
|
||||||
show = {
|
|
||||||
file = true,
|
|
||||||
folder = true,
|
|
||||||
folder_arrow = true,
|
|
||||||
git = true,
|
|
||||||
modified = true,
|
|
||||||
diagnostics = true,
|
|
||||||
bookmarks = true,
|
|
||||||
},
|
|
||||||
glyphs = {
|
|
||||||
default = "",
|
|
||||||
symlink = "",
|
|
||||||
bookmark = "",
|
|
||||||
modified = "●",
|
|
||||||
folder = {
|
|
||||||
arrow_closed = "",
|
|
||||||
arrow_open = "",
|
|
||||||
default = "",
|
|
||||||
open = "",
|
|
||||||
empty = "",
|
|
||||||
empty_open = "",
|
|
||||||
symlink = "",
|
|
||||||
symlink_open = "",
|
|
||||||
},
|
|
||||||
git = {
|
|
||||||
unstaged = "✗",
|
|
||||||
staged = "✓",
|
|
||||||
unmerged = "",
|
|
||||||
renamed = "➜",
|
|
||||||
untracked = "★",
|
|
||||||
deleted = "",
|
|
||||||
ignored = "◌",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
require('refactoring').setup()
|
|
||||||
|
|
||||||
vim.keymap.set("x", "<leader>re", ":Refactor extract ")
|
|
||||||
vim.keymap.set("x", "<leader>rf", ":Refactor extract_to_file ")
|
|
||||||
|
|
||||||
vim.keymap.set("x", "<leader>rv", ":Refactor extract_var ")
|
|
||||||
|
|
||||||
vim.keymap.set({ "n", "x" }, "<leader>ri", ":Refactor inline_var")
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>rb", ":Refactor extract_block")
|
|
||||||
vim.keymap.set("n", "<leader>rbf", ":Refactor extract_block_to_file")
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
local builtin = require('telescope.builtin')
|
|
||||||
|
|
||||||
-- Function to check if the current directory is a git directory
|
|
||||||
local function is_git_directory()
|
|
||||||
return vim.fn.system('git rev-parse --is-inside-work-tree') == 1
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Custom function that calls git_files if in a git directory, otherwise find_files
|
|
||||||
local function custom_git_files()
|
|
||||||
if is_git_directory() then
|
|
||||||
builtin.git_files()
|
|
||||||
else
|
|
||||||
builtin.find_files()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Keybindings
|
|
||||||
vim.keymap.set('n', '<leader>pf', function()
|
|
||||||
builtin.find_files({ no_ignore = true, hidden = true })
|
|
||||||
end)
|
|
||||||
vim.keymap.set('n', '<C-p>', custom_git_files, {})
|
|
||||||
vim.keymap.set('n', '<leader>ps', function() builtin.live_grep() end)
|
|
||||||
vim.keymap.set('n', '<leader>vh', builtin.help_tags, {})
|
|
||||||
vim.keymap.set('n', '<leader>fa', function() builtin.find_files({ follow = true, no_ignore = true, hidden = true }) end)
|
|
||||||
vim.keymap.set('n', '<leader>fb', function() builtin.buffers() end)
|
|
||||||
vim.keymap.set('n', '<leader>fc', function() builtin.git_commits() end)
|
|
||||||
vim.keymap.set('n', '<leader>gt', function() builtin.git_status() end)
|
|
||||||
vim.keymap.set('n', '<leader>gg', function() builtin.colorscheme({ enable_preview = true }) end)
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
require("toggleterm").setup()
|
|
||||||
|
|
||||||
-- floating terminal
|
|
||||||
vim.keymap.set("n", "<leader>\\", "<cmd>ToggleTerm direction=float<CR>")
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
require'nvim-treesitter.configs'.setup {
|
|
||||||
indent = {
|
|
||||||
enable = true
|
|
||||||
},
|
|
||||||
-- A list of parser names, or "all"
|
|
||||||
ensure_installed = { "vimdoc", "javascript", "typescript", "c", "lua", "rust" },
|
|
||||||
|
|
||||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
|
||||||
sync_install = false,
|
|
||||||
|
|
||||||
-- Automatically install missing parsers when entering buffer
|
|
||||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
|
||||||
auto_install = true,
|
|
||||||
|
|
||||||
highlight = {
|
|
||||||
-- `false` will disable the whole extension
|
|
||||||
enable = true,
|
|
||||||
|
|
||||||
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
|
||||||
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
|
||||||
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
|
||||||
-- Instead of true it can also be a list of languages
|
|
||||||
additional_vim_regex_highlighting = { "php", "twig" }
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
vim.keymap.set("n", "<leader>xq", "<cmd>TroubleToggle quickfix<cr>",
|
|
||||||
{silent = true, noremap = true}
|
|
||||||
)
|
|
||||||
vim.keymap.set("n", "<leader>xd", "<cmd>TroubleToggle document_diagnostics<cr>",
|
|
||||||
{silent = true, noremap = true}
|
|
||||||
)
|
|
||||||
vim.keymap.set("n", "<leader>xt", "<cmd>TroubleToggle telescope<cr>",
|
|
||||||
{silent = true, noremap = true}
|
|
||||||
)
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>zz", function()
|
|
||||||
require("zen-mode").setup {
|
|
||||||
window = {
|
|
||||||
width = 90,
|
|
||||||
options = { }
|
|
||||||
},
|
|
||||||
}
|
|
||||||
require("zen-mode").toggle()
|
|
||||||
vim.wo.wrap = false
|
|
||||||
vim.wo.number = true
|
|
||||||
vim.wo.rnu = true
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>zZ", function()
|
|
||||||
require("zen-mode").setup {
|
|
||||||
window = {
|
|
||||||
width = 80,
|
|
||||||
options = { }
|
|
||||||
},
|
|
||||||
}
|
|
||||||
require("zen-mode").toggle()
|
|
||||||
vim.wo.wrap = false
|
|
||||||
vim.wo.number = false
|
|
||||||
vim.wo.rnu = false
|
|
||||||
vim.opt.colorcolumn = "0"
|
|
||||||
end)
|
|
||||||
5
init.lua
5
init.lua
|
|
@ -1 +1,4 @@
|
||||||
require("default")
|
require("config.options")
|
||||||
|
require("config.keymaps")
|
||||||
|
require("config.autocmds")
|
||||||
|
require("core.lazy")
|
||||||
|
|
|
||||||
31
lazy-lock.json
Normal file
31
lazy-lock.json
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
||||||
|
"LuaSnip": { "branch": "master", "commit": "df58ee1664cfda71479cd2bbd56114f56599eba6" },
|
||||||
|
"cellular-automaton.nvim": { "branch": "main", "commit": "b7d056dab963b5d3f2c560d92937cb51db61cb5b" },
|
||||||
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
|
||||||
|
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
||||||
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
|
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||||
|
"copilot.vim": { "branch": "release", "commit": "2c31989063b145830d5f0bea8ab529d2aef2427b" },
|
||||||
|
"fleet-theme-nvim": { "branch": "master", "commit": "3d2dfd88583a4fa2c73d8244229490e6d021ceb2" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "5fc573f2d2a49aec74dd6dc977e8b137429d1897" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
|
||||||
|
"lsp-zero.nvim": { "branch": "v3.x", "commit": "8a9ee4e11a3e23101d1d1d11aaac3159ad925cc9" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "a5476087db0a20c05bd1163e1cd4a29b795e73a7" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" },
|
||||||
|
"neodev.nvim": { "branch": "main", "commit": "f972d7e6cd21b691199565cfe3e6487e774a4e8f" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "0b751f6beef40fd47375eaf53d3057e0bfa317e4" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "553c4e0e667167640c5398573f6f3a488ff8047a" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "d8a71826a20dfc9ed3d8a43e28a00611a302b456" },
|
||||||
|
"nvim-treesitter-context": { "branch": "master", "commit": "bf4d15ee4e96ff5201f16a4ed14443670662eb90" },
|
||||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "6be1192965df35f94b8ea6d323354f7dc7a557e4" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "cdbcca210cf3655aa9b31ebf2422763ecd85ee5c" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "366b0837486f60ae0e7550c15de8ff66d057c4cd" },
|
||||||
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
|
||||||
|
"telescope.nvim": { "branch": "master", "commit": "18774ec7929c8a8003a91e9e1f69f6c32258bbfe" },
|
||||||
|
"vim-fetch": { "branch": "master", "commit": "bbb75c3172f766d1a62832df0ec7674c69a560ad" },
|
||||||
|
"vim-fugitive": { "branch": "master", "commit": "46eaf8918b347906789df296143117774e827616" },
|
||||||
|
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
|
||||||
|
}
|
||||||
5
lua/config/autocmds.lua
Normal file
5
lua/config/autocmds.lua
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
vim.api.nvim_create_autocmd({"BufWritePre"}, {
|
||||||
|
group = vim.api.nvim_create_augroup("Default", {}),
|
||||||
|
pattern = "*",
|
||||||
|
command = [[%s/\s\+$//e]],
|
||||||
|
})
|
||||||
30
lua/config/keymaps.lua
Normal file
30
lua/config/keymaps.lua
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>e", "<cmd>:Ex<CR>")
|
||||||
|
vim.keymap.set("i", "<C-c>", "<Esc>")
|
||||||
|
|
||||||
|
-- Keep things centered
|
||||||
|
vim.keymap.set("n", "n", "nzz")
|
||||||
|
vim.keymap.set("n", "N", "Nzz")
|
||||||
|
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||||
|
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||||
|
vim.keymap.set("n", "<C-j>", "<cmd>cnext<CR>zz")
|
||||||
|
vim.keymap.set("n", "<C-k>", "<cmd>cprev<CR>zz")
|
||||||
|
|
||||||
|
-- Copy to system clipboard
|
||||||
|
vim.keymap.set({"n", "v"}, "<leader>y", [["+y]])
|
||||||
|
|
||||||
|
-- Escape terminal mode
|
||||||
|
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>")
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>bd", "<cmd>bd<CR>")
|
||||||
|
|
||||||
|
-- Thanks to Mr. Primeagen
|
||||||
|
vim.keymap.set({"n", "v"}, "<C-f>", "<cmd>silent !tmux neww tmux-sessionizer<CR>")
|
||||||
|
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
|
||||||
|
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||||
|
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||||
|
|
||||||
|
-- Typing too fast...
|
||||||
|
vim.keymap.set("n", "q:", ":q<CR>")
|
||||||
|
|
||||||
|
|
@ -1,15 +1,10 @@
|
||||||
-- disable netrw
|
vim.opt.number = true
|
||||||
vim.g.loaded_netrw = 1
|
|
||||||
vim.g.loaded_netrwPlugin = 1
|
|
||||||
|
|
||||||
vim.opt.nu = true
|
|
||||||
vim.opt.relativenumber = true
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
vim.opt.tabstop = 4
|
vim.opt.tabstop = 4
|
||||||
vim.opt.softtabstop = 4
|
vim.opt.softtabstop = 4
|
||||||
vim.opt.shiftwidth = 4
|
vim.opt.shiftwidth = 4
|
||||||
vim.opt.expandtab = true
|
vim.opt.expandtab = true
|
||||||
|
|
||||||
vim.opt.smartindent = true
|
vim.opt.smartindent = true
|
||||||
|
|
||||||
vim.opt.wrap = false
|
vim.opt.wrap = false
|
||||||
|
|
@ -26,7 +21,9 @@ vim.opt.termguicolors = true
|
||||||
|
|
||||||
vim.opt.scrolloff = 8
|
vim.opt.scrolloff = 8
|
||||||
vim.opt.sidescrolloff = 16
|
vim.opt.sidescrolloff = 16
|
||||||
vim.opt.signcolumn = "yes"
|
|
||||||
vim.opt.isfname:append("@-@")
|
|
||||||
|
|
||||||
vim.opt.updatetime = 50
|
vim.opt.updatetime = 100
|
||||||
|
|
||||||
|
vim.g.netrw_browse_split = 0
|
||||||
|
vim.g.netrw_banner = 0
|
||||||
|
vim.g.netrw_winsize = 25
|
||||||
21
lua/core/lazy.lua
Normal file
21
lua/core/lazy.lua
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
-- Boostrap Lazy.nvim
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not vim.loop.fs_stat(lazypath) then
|
||||||
|
vim.fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--filter=blob:none",
|
||||||
|
"https://github.com/folke/lazy.nvim.git",
|
||||||
|
"--branch=stable", -- latest stable release
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
{ import = "plugins" },
|
||||||
|
}, {
|
||||||
|
install = {
|
||||||
|
colorscheme = { "fleet" },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
require("default.set")
|
|
||||||
require("default.remap")
|
|
||||||
|
|
||||||
local augroup = vim.api.nvim_create_augroup
|
|
||||||
local default_group = augroup('Default', {})
|
|
||||||
|
|
||||||
local autocmd = vim.api.nvim_create_autocmd
|
|
||||||
local yank_group = augroup('HighlightYank', {})
|
|
||||||
|
|
||||||
function R(name)
|
|
||||||
require("plenary.reload").reload_module(name)
|
|
||||||
end
|
|
||||||
|
|
||||||
autocmd('TextYankPost', {
|
|
||||||
group = yank_group,
|
|
||||||
pattern = '*',
|
|
||||||
callback = function()
|
|
||||||
vim.highlight.on_yank({
|
|
||||||
higroup = 'IncSearch',
|
|
||||||
timeout = 40,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
autocmd({"BufWritePre"}, {
|
|
||||||
group = default_group,
|
|
||||||
pattern = "*",
|
|
||||||
command = [[%s/\s\+$//e]],
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.g.netrw_browse_split = 0
|
|
||||||
vim.g.netrw_banner = 0
|
|
||||||
vim.g.netrw_winsize = 25
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
vim.cmd.packadd("packer.nvim")
|
|
||||||
|
|
||||||
return require("packer").startup(function(use)
|
|
||||||
-- Packer can manage itself
|
|
||||||
use "wbthomason/packer.nvim"
|
|
||||||
|
|
||||||
-- gF but better (and real)
|
|
||||||
use "wsdjeg/vim-fetch"
|
|
||||||
|
|
||||||
-- terminal in neovim which already exists but is pretty bad and this one is better
|
|
||||||
use { "akinsho/toggleterm.nvim", tag = '*' }
|
|
||||||
|
|
||||||
-- find everything, maybe too much
|
|
||||||
use {
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
requires = { { "nvim-lua/plenary.nvim" } }
|
|
||||||
}
|
|
||||||
|
|
||||||
-- easy mode
|
|
||||||
use("stevearc/conform.nvim")
|
|
||||||
use("rafamadriz/friendly-snippets")
|
|
||||||
use({ 'echasnovski/mini.nvim', branch = 'stable' })
|
|
||||||
use("ThePrimeagen/refactoring.nvim")
|
|
||||||
|
|
||||||
-- theme stuff
|
|
||||||
-- use {
|
|
||||||
-- 'nvim-lualine/lualine.nvim',
|
|
||||||
-- requires = {
|
|
||||||
-- 'nvim-tree/nvim-web-devicons',
|
|
||||||
-- 'RRethy/nvim-base16',
|
|
||||||
-- }
|
|
||||||
-- }
|
|
||||||
-- use("RRethy/nvim-base16")
|
|
||||||
use("markvincze/panda-vim")
|
|
||||||
use("rebelot/kanagawa.nvim")
|
|
||||||
use("felipeagc/fleet-theme-nvim")
|
|
||||||
use("lukas-reineke/indent-blankline.nvim")
|
|
||||||
|
|
||||||
-- do I need this ?
|
|
||||||
use({
|
|
||||||
"folke/trouble.nvim",
|
|
||||||
config = function()
|
|
||||||
require("trouble").setup {
|
|
||||||
icons = true,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
-- I'm not a netrw fan
|
|
||||||
use {
|
|
||||||
'nvim-tree/nvim-tree.lua',
|
|
||||||
requires = {
|
|
||||||
'nvim-tree/nvim-web-devicons',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
use {
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
run = function()
|
|
||||||
local ts_update = require("nvim-treesitter.install").update({ with_sync = true })
|
|
||||||
ts_update()
|
|
||||||
end
|
|
||||||
}
|
|
||||||
use("nvim-treesitter/nvim-treesitter-context");
|
|
||||||
use("nvim-treesitter/playground")
|
|
||||||
|
|
||||||
-- versionning
|
|
||||||
use("mbbill/undotree")
|
|
||||||
use("tpope/vim-fugitive")
|
|
||||||
use("lewis6991/gitsigns.nvim")
|
|
||||||
|
|
||||||
-- important
|
|
||||||
use("folke/zen-mode.nvim")
|
|
||||||
use("eandrju/cellular-automaton.nvim")
|
|
||||||
|
|
||||||
-- AI stuff
|
|
||||||
use("github/copilot.vim")
|
|
||||||
use {
|
|
||||||
"Bryley/neoai.nvim",
|
|
||||||
requires = {
|
|
||||||
"MunifTanjim/nui.nvim",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-- making neovim actually usable
|
|
||||||
use {
|
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
|
||||||
branch = 'v1.x',
|
|
||||||
requires = {
|
|
||||||
-- LSP Support
|
|
||||||
{ "neovim/nvim-lspconfig" },
|
|
||||||
{ "williamboman/mason.nvim" },
|
|
||||||
{ "williamboman/mason-lspconfig.nvim" },
|
|
||||||
|
|
||||||
-- Autocompletion
|
|
||||||
{ "hrsh7th/nvim-cmp" },
|
|
||||||
{ "hrsh7th/cmp-buffer" },
|
|
||||||
{ "hrsh7th/cmp-path" },
|
|
||||||
{ "saadparwaiz1/cmp_luasnip" },
|
|
||||||
{ "hrsh7th/cmp-nvim-lsp" },
|
|
||||||
{ "hrsh7th/cmp-nvim-lua" },
|
|
||||||
|
|
||||||
-- Snippets
|
|
||||||
{ "L3MON4D3/LuaSnip" },
|
|
||||||
{ "rafamadriz/friendly-snippets" },
|
|
||||||
|
|
||||||
-- Colors
|
|
||||||
{ "folke/lsp-colors.nvim" },
|
|
||||||
}
|
|
||||||
}
|
|
||||||
end)
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
vim.g.mapleader = " "
|
|
||||||
vim.keymap.set("n", "<leader>e", "<cmd>:NvimTreeFindFileToggle<CR>")
|
|
||||||
|
|
||||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
|
||||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
|
||||||
|
|
||||||
vim.keymap.set("n", "J", "mzJ`z")
|
|
||||||
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")
|
|
||||||
|
|
||||||
vim.keymap.set("x", "<leader>p", [["_dP]])
|
|
||||||
|
|
||||||
vim.keymap.set({"n", "v"}, "<leader>y", [["+y]])
|
|
||||||
vim.keymap.set("n", "<leader>Y", [["+Y]])
|
|
||||||
|
|
||||||
vim.keymap.set({"n", "v"}, "<leader>d", [["_d]])
|
|
||||||
|
|
||||||
vim.keymap.set("i", "<C-c>", "<Esc>")
|
|
||||||
|
|
||||||
vim.keymap.set("n", "Q", "<nop>")
|
|
||||||
vim.keymap.set("n", "<C-f>", "<cmd>silent !tmux neww tmux-sessionizer<CR>")
|
|
||||||
vim.keymap.set("n", "<leader>ff", vim.lsp.buf.format)
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<C-j>", "<cmd>cnext<CR>zz")
|
|
||||||
vim.keymap.set("n", "<C-k>", "<cmd>cprev<CR>zz")
|
|
||||||
vim.keymap.set("n", "<leader>j", "<cmd>lnext<CR>zz")
|
|
||||||
vim.keymap.set("n", "<leader>k", "<cmd>lprev<CR>zz")
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
|
|
||||||
vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true })
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader><leader>", function()
|
|
||||||
vim.cmd("so")
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- get out of terminal mode
|
|
||||||
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>")
|
|
||||||
|
|
||||||
-- tab stuff
|
|
||||||
vim.keymap.set("n", "<leader>tn", function()
|
|
||||||
vim.cmd("tabn")
|
|
||||||
end, {})
|
|
||||||
vim.keymap.set("n", "<Tab>", function()
|
|
||||||
vim.cmd("tabn")
|
|
||||||
end, {})
|
|
||||||
vim.keymap.set("n", "<leader>tp", function()
|
|
||||||
vim.cmd("tabp")
|
|
||||||
end, {})
|
|
||||||
vim.keymap.set("n", "<leader>tc", function()
|
|
||||||
vim.cmd("tabc")
|
|
||||||
end, {})
|
|
||||||
vim.keymap.set("n", "<leader>tt", function()
|
|
||||||
vim.cmd("tabnew")
|
|
||||||
end, {})
|
|
||||||
|
|
||||||
-- buffer stuff
|
|
||||||
vim.keymap.set("n", "<leader>bd", function()
|
|
||||||
vim.cmd("bd")
|
|
||||||
end, {})
|
|
||||||
vim.keymap.set("n", "<leader>bn", function()
|
|
||||||
vim.cmd("bn")
|
|
||||||
end, {})
|
|
||||||
vim.keymap.set("n", "<leader>bp", function()
|
|
||||||
vim.cmd("bp")
|
|
||||||
end, {})
|
|
||||||
|
|
||||||
67
lua/plugins/coding.lua
Normal file
67
lua/plugins/coding.lua
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
return {
|
||||||
|
-- Autocomplete
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
version = false,
|
||||||
|
event = "InsertEnter",
|
||||||
|
dependencies = {
|
||||||
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
|
"hrsh7th/cmp-buffer",
|
||||||
|
"hrsh7th/cmp-path",
|
||||||
|
},
|
||||||
|
opts = function()
|
||||||
|
local cmp = require("cmp")
|
||||||
|
local defaults = require("cmp.config.default")()
|
||||||
|
local cmp_format = require("lsp-zero").cmp_format()
|
||||||
|
return {
|
||||||
|
completion = {
|
||||||
|
completeopt = "menu,menuone,noinsert",
|
||||||
|
},
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
|
||||||
|
["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
|
||||||
|
["<C-u>"] = cmp.mapping.scroll_docs(-4),
|
||||||
|
["<C-d>"] = cmp.mapping.scroll_docs(4),
|
||||||
|
["<C-Space>"] = cmp.mapping.complete(),
|
||||||
|
["<C-e>"] = cmp.mapping.abort(),
|
||||||
|
["<C-y>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||||
|
["<S-CR>"] = cmp.mapping.confirm({
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true,
|
||||||
|
}), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||||
|
["<C-CR>"] = function(fallback)
|
||||||
|
cmp.abort()
|
||||||
|
fallback()
|
||||||
|
end,
|
||||||
|
}),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = "nvim_lsp" },
|
||||||
|
{ name = "path" },
|
||||||
|
}, {
|
||||||
|
{ name = "buffer" },
|
||||||
|
}),
|
||||||
|
sorting = defaults.sorting,
|
||||||
|
formatting = cmp_format,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
config = function(_, opts)
|
||||||
|
require("cmp").setup(opts)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
-- Copilot
|
||||||
|
{ 'github/copilot.vim' },
|
||||||
|
-- Comment
|
||||||
|
{
|
||||||
|
'numToStr/Comment.nvim',
|
||||||
|
opts = {
|
||||||
|
-- add any options here
|
||||||
|
},
|
||||||
|
lazy = false,
|
||||||
|
config = function ()
|
||||||
|
require("Comment").setup()
|
||||||
|
end
|
||||||
|
},
|
||||||
|
{ "L3MON4D3/LuaSnip", event = "InsertEnter", },
|
||||||
|
-- Surround
|
||||||
|
{ 'tpope/vim-surround', event = "BufRead", },
|
||||||
|
}
|
||||||
19
lua/plugins/editor.lua
Normal file
19
lua/plugins/editor.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = { },
|
||||||
|
keys = {
|
||||||
|
{ '<leader>wk', '<cmd>WhichKey<CR>', desc = 'Show key mappings' },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ 'wsdjeg/vim-fetch', event = "VeryLazy" },
|
||||||
|
{ 'nvim-tree/nvim-web-devicons' },
|
||||||
|
{
|
||||||
|
'eandrju/cellular-automaton.nvim',
|
||||||
|
event = "VeryLazy",
|
||||||
|
keys = {
|
||||||
|
{ '<leader>mr', '<cmd>CellularAutomaton make_it_rain<CR>', desc = 'Make it rain' },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
4
lua/plugins/fleet.lua
Normal file
4
lua/plugins/fleet.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
return {
|
||||||
|
"felipeagc/fleet-theme-nvim",
|
||||||
|
config = function() vim.cmd("colorscheme fleet") end
|
||||||
|
}
|
||||||
59
lua/plugins/git.lua
Normal file
59
lua/plugins/git.lua
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
return {
|
||||||
|
-- Fugitive
|
||||||
|
{
|
||||||
|
"tpope/vim-fugitive",
|
||||||
|
event = { "BufReadPost", "BufNewFile", "BufWritePre" },
|
||||||
|
config = function()
|
||||||
|
local function map(mode, l, r, desc)
|
||||||
|
vim.keymap.set(mode, l, r, { silent = true, noremap = true, desc = desc })
|
||||||
|
end
|
||||||
|
|
||||||
|
map("n", "<leader>gs", "<cmd>Git<CR>", "Git Status")
|
||||||
|
map("n", "<leader>gd", "<cmd>Gvdiffsplit!<CR>", "Git Diff")
|
||||||
|
map("n", "<leader>gbl", "<cmd>Git blame<CR>", "Git Blame")
|
||||||
|
map("n", "<leader>gc", "<cmd>Git commit<CR>", "Git Commit")
|
||||||
|
map("n", "<leader>gC", "<cmd>Git commit --amend<CR>", "Git Commit Amend")
|
||||||
|
map("n", "<leader>gp", "<cmd>Git push<CR>", "Git Push")
|
||||||
|
map("n", "<leader>gS", "<cmd>Git push --set-upstream origin $(git rev-parse --abbrev-ref HEAD)<CR>", "Git Push Set Upstream")
|
||||||
|
map("n", "<leader>gbs", "<cmd>Git bisect start<CR>", "Git Bisect Start")
|
||||||
|
map("n", "<leader>gbg", "<cmd>Git bisect good<CR>", "Git Bisect Good")
|
||||||
|
map("n", "<leader>gbb", "<cmd>Git bisect bad<CR>", "Git Bisect Bad")
|
||||||
|
map("n", "<leader>gbr", "<cmd>Git bisect reset<CR>", "Git Bisect Reset")
|
||||||
|
end
|
||||||
|
},
|
||||||
|
-- Gitsigns
|
||||||
|
{
|
||||||
|
"lewis6991/gitsigns.nvim",
|
||||||
|
event = { "BufReadPost", "BufNewFile", "BufWritePre", "VeryLazy" },
|
||||||
|
opts = {
|
||||||
|
signs = {
|
||||||
|
add = { text = "▎" },
|
||||||
|
change = { text = "▎" },
|
||||||
|
delete = { text = "" },
|
||||||
|
topdelete = { text = "" },
|
||||||
|
changedelete = { text = "▎" },
|
||||||
|
untracked = { text = "▎" },
|
||||||
|
},
|
||||||
|
on_attach = function(buffer)
|
||||||
|
local gs = package.loaded.gitsigns
|
||||||
|
|
||||||
|
local function map(mode, l, r, desc)
|
||||||
|
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc })
|
||||||
|
end
|
||||||
|
|
||||||
|
map("n", "]h", gs.next_hunk, "Next Hunk")
|
||||||
|
map("n", "[h", gs.prev_hunk, "Prev Hunk")
|
||||||
|
map({ "n", "v" }, "<leader>ghs", "<cmd>Gitsigns stage_hunk<CR>", "Stage Hunk")
|
||||||
|
map({ "n", "v" }, "<leader>ghr", "<cmd>Gitsigns reset_hunk<CR>", "Reset Hunk")
|
||||||
|
map("n", "<leader>ghS", gs.stage_buffer, "Stage Buffer")
|
||||||
|
map("n", "<leader>ghu", gs.undo_stage_hunk, "Undo Stage Hunk")
|
||||||
|
map("n", "<leader>ghR", gs.reset_buffer, "Reset Buffer")
|
||||||
|
map("n", "<leader>ghp", gs.preview_hunk, "Preview Hunk")
|
||||||
|
map("n", "<leader>ghb", function() gs.blame_line({ full = true }) end, "Blame Line")
|
||||||
|
map("n", "<leader>ghd", gs.diffthis, "Diff This")
|
||||||
|
map("n", "<leader>ghD", function() gs.diffthis("~") end, "Diff This ~")
|
||||||
|
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns Select Hunk")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
30
lua/plugins/lsp.lua
Normal file
30
lua/plugins/lsp.lua
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
return {
|
||||||
|
-- LSP
|
||||||
|
{
|
||||||
|
"VonHeikemen/lsp-zero.nvim",
|
||||||
|
config = function()
|
||||||
|
require("plugins.lsp.config")
|
||||||
|
end,
|
||||||
|
dependencies = {
|
||||||
|
{ "neovim/nvim-lspconfig" },
|
||||||
|
{ "williamboman/mason-lspconfig.nvim" },
|
||||||
|
{ "folke/neodev.nvim" },
|
||||||
|
{ "hrsh7th/nvim-cmp" },
|
||||||
|
{ "hrsh7th/cmp-buffer" },
|
||||||
|
{ "hrsh7th/cmp-path" },
|
||||||
|
{ "saadparwaiz1/cmp_luasnip" },
|
||||||
|
{ "hrsh7th/cmp-nvim-lsp" },
|
||||||
|
{ "hrsh7th/cmp-nvim-lua" },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
-- Mason
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
cmd = "Mason",
|
||||||
|
keys = { { "<leader>cm", "<cmd>Mason<cr>", desc = "Mason" } },
|
||||||
|
build = ":MasonUpdate",
|
||||||
|
config = function (_, opts)
|
||||||
|
require("mason").setup(opts)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,67 +1,41 @@
|
||||||
local lsp = require("lsp-zero")
|
local lsp_zero = require('lsp-zero')
|
||||||
local lspconfig = require('lspconfig')
|
local lspconfig = require('lspconfig')
|
||||||
local home = vim.fn.expand('$HOME')
|
|
||||||
|
|
||||||
-- Activate intelephense because I paid for it, yes
|
lspconfig.lua_ls.setup({
|
||||||
lspconfig.intelephense.setup {
|
|
||||||
cmd = { "intelephense", "--stdio" },
|
|
||||||
settings = {
|
settings = {
|
||||||
intelephense = {
|
Lua = {
|
||||||
licenceKeyPath = home .. '/intelephense/license.txt'
|
diagnostics = {
|
||||||
}
|
globals = { 'vim' },
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
|
},
|
||||||
lsp.preset("recommended")
|
|
||||||
|
|
||||||
lsp.ensure_installed({
|
|
||||||
'tsserver',
|
|
||||||
'rust_analyzer',
|
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Fix Undefined global 'vim'
|
lsp_zero.set_sign_icons({
|
||||||
lsp.nvim_workspace()
|
error = '✘',
|
||||||
|
warn = '▲',
|
||||||
|
hint = '⚑',
|
||||||
local cmp = require('cmp')
|
info = ''
|
||||||
local cmp_select = { behavior = cmp.SelectBehavior.Select }
|
|
||||||
local cmp_mappings = lsp.defaults.cmp_mappings({
|
|
||||||
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
|
||||||
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
|
||||||
['<C-y>'] = cmp.mapping.confirm({ select = true }),
|
|
||||||
["<C-Space>"] = cmp.mapping.complete(),
|
|
||||||
})
|
})
|
||||||
|
|
||||||
cmp_mappings['<Tab>'] = nil
|
vim.diagnostic.config({
|
||||||
cmp_mappings['<S-Tab>'] = nil
|
virtual_text = false,
|
||||||
|
severity_sort = true,
|
||||||
lsp.setup_nvim_cmp({
|
float = {
|
||||||
mapping = cmp_mappings
|
style = 'minimal',
|
||||||
|
border = 'none',
|
||||||
|
source = 'always',
|
||||||
|
header = '',
|
||||||
|
prefix = '',
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
lsp.set_preferences({
|
lsp_zero.on_attach(function(_, bufnr)
|
||||||
suggest_lsp_servers = true,
|
|
||||||
sign_icons = {
|
|
||||||
error = 'E',
|
|
||||||
warn = 'W',
|
|
||||||
hint = 'H',
|
|
||||||
info = 'I'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
lsp.on_attach(function(client, bufnr)
|
|
||||||
local opts = { buffer = bufnr, remap = false }
|
local opts = { buffer = bufnr, remap = false }
|
||||||
|
lsp_zero.default_keymaps({buffer = bufnr})
|
||||||
|
|
||||||
-- Format on save
|
|
||||||
-- vim.api.nvim_create_autocmd("BufWritePost", {
|
|
||||||
-- callback = function()
|
|
||||||
-- vim.lsp.buf.format()
|
|
||||||
-- end
|
|
||||||
-- })
|
|
||||||
|
|
||||||
-- Eslint auto fix on save
|
|
||||||
vim.api.nvim_create_autocmd('BufWritePre', {
|
vim.api.nvim_create_autocmd('BufWritePre', {
|
||||||
pattern = { '*.tsx', '*.ts', '*.jsx', '*.js', '*.vue', '*.cjs', '*.mjs', '*.json', '*.css', '*.scss', '*.less', '*.yml' },
|
pattern = { '*.tsx', '*.ts', '*.jsx', '*.js', '*.vue', '*.cjs', '*.mjs', '*.json', '*.css', '*.scss', '*.less', '*.yml', '*.svelte' },
|
||||||
command = 'silent! EslintFixAll',
|
command = 'silent! EslintFixAll',
|
||||||
group = vim.api.nvim_create_augroup('EslintAutocmdsFormatting', {}),
|
group = vim.api.nvim_create_augroup('EslintAutocmdsFormatting', {}),
|
||||||
})
|
})
|
||||||
|
|
@ -80,7 +54,19 @@ lsp.on_attach(function(client, bufnr)
|
||||||
vim.keymap.set("n", "<leader>D", function() vim.lsp.buf.type_definition() end, opts)
|
vim.keymap.set("n", "<leader>D", function() vim.lsp.buf.type_definition() end, opts)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
lsp.setup()
|
require('mason-lspconfig').setup({
|
||||||
|
handlers = {
|
||||||
|
lsp_zero.default_setup,
|
||||||
|
},
|
||||||
|
ensure_installed = {
|
||||||
|
'lua_ls',
|
||||||
|
'html',
|
||||||
|
'eslint',
|
||||||
|
'gopls',
|
||||||
|
'rust_analyzer',
|
||||||
|
'zls',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
vim.diagnostic.config({
|
vim.diagnostic.config({
|
||||||
virtual_text = true
|
virtual_text = true
|
||||||
21
lua/plugins/lsp/keymaps.lua
Normal file
21
lua/plugins/lsp/keymaps.lua
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
vim.keymap.set('n', '<leader>do', vim.diagnostic.open_float)
|
||||||
|
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
|
||||||
|
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
|
||||||
|
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist)
|
||||||
|
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', vim.lsp.buf.hover, 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', '<leader>wa', vim.lsp.buf.add_workspace_folder, opts)
|
||||||
|
vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, opts)
|
||||||
|
vim.keymap.set('n', '<leader>wl', function()
|
||||||
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, opts)
|
||||||
|
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
|
||||||
|
vim.keymap.set({ 'n', 'v' }, '<leader>ca', vim.lsp.buf.code_action, opts)
|
||||||
|
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
|
||||||
|
vim.keymap.set('n', '<leader><leader>', function()
|
||||||
|
vim.lsp.buf.format { async = true }
|
||||||
|
end, opts)
|
||||||
30
lua/plugins/telescope.lua
Normal file
30
lua/plugins/telescope.lua
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
return {
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
cmd = "Telescope",
|
||||||
|
version = false,
|
||||||
|
dependencies = {
|
||||||
|
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
|
||||||
|
{ 'nvim-lua/plenary.nvim' },
|
||||||
|
},
|
||||||
|
extensions = {
|
||||||
|
fzf = {
|
||||||
|
fuzzy = true, -- false will only do exact matching
|
||||||
|
override_generic_sorter = true, -- override the generic sorter
|
||||||
|
override_file_sorter = true, -- override the file sorter
|
||||||
|
case_mode = "smart_case", -- or "ignore_case" or "respect_case"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ '<C-p>', "<cmd>Telescope find_files<CR>", desc = 'Find files' },
|
||||||
|
{ '<leader>ps', "<cmd>Telescope live_grep<CR>", desc = 'Live Grep' },
|
||||||
|
{ '<leader>vh', "<cmd>Telescope help_tags<CR>", desc = 'Help Tags' },
|
||||||
|
{
|
||||||
|
'<leader>fa',
|
||||||
|
function() require("telescope.builtin").find_files({ follow = true, no_ignore = true, hidden = true }) end,
|
||||||
|
desc = 'Find all files'
|
||||||
|
},
|
||||||
|
{ '<leader>fb', "<cmd>Telescope buffers<CR>", desc = 'Find buffer' },
|
||||||
|
{ '<leader>fc', "<cmd>Telescope git_commits<CR>", desc = 'Find commits' },
|
||||||
|
{ '<leader>fg', "<cmd>Telescope git_status<CR>", desc = 'Find git status' },
|
||||||
|
},
|
||||||
|
}
|
||||||
63
lua/plugins/treesitter.lua
Normal file
63
lua/plugins/treesitter.lua
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
version = false,
|
||||||
|
build = ":TSUpdate",
|
||||||
|
event = { "BufReadPost", "BufWritePost", "BufNewFile", "VeryLazy" },
|
||||||
|
init = function(plugin)
|
||||||
|
require("lazy.core.loader").add_to_rtp(plugin)
|
||||||
|
require("nvim-treesitter.query_predicates")
|
||||||
|
end,
|
||||||
|
cmd = { "TSUpdateSync", "TSUpdate", "TSInstall" },
|
||||||
|
keys = {
|
||||||
|
{ "<c-space>", desc = "Increment selection" },
|
||||||
|
{ "<bs>", desc = "Decrement selection", mode = "x" },
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting = { "php", "twig" },
|
||||||
|
},
|
||||||
|
auto_install = true,
|
||||||
|
indent = { enable = true },
|
||||||
|
ensure_installed = { "lua", "vim", "vimdoc", "typescript", "javascript", "go", "c", "cpp", "rust", "zig", "html", "css" },
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
init_selection = "<C-space>",
|
||||||
|
node_incremental = "<C-space>",
|
||||||
|
scope_incremental = false,
|
||||||
|
node_decremental = "<bs>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require("nvim-treesitter.configs").setup(opts)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Show context of the current function
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter-context",
|
||||||
|
event = { "BufReadPost", "BufWritePost", "BufNewFile" },
|
||||||
|
enabled = true,
|
||||||
|
opts = { mode = "cursor", max_lines = 3 },
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>ut",
|
||||||
|
function()
|
||||||
|
local tsc = require("treesitter-context")
|
||||||
|
tsc.toggle()
|
||||||
|
end,
|
||||||
|
desc = "Toggle Treesitter Context",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Automatically add closing tags for HTML and JSX
|
||||||
|
{
|
||||||
|
"windwp/nvim-ts-autotag",
|
||||||
|
event = { "BufReadPost", "BufWritePost", "BufNewFile" },
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue