mirror of
https://github.com/Baipyrus/nvim-config.git
synced 2024-12-26 13:21:45 +00:00
Compare commits
6 Commits
f885992d12
...
82e70e57fe
Author | SHA1 | Date | |
---|---|---|---|
82e70e57fe | |||
f89e199cfd | |||
37d246d9ec | |||
c5a53918be | |||
075ae35440 | |||
90a0c655cc |
@ -10,10 +10,12 @@
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"conflict-marker.vim": { "branch": "master", "commit": "62742b2ffe7a433988759c67b5c5a22eff74a14b" },
|
||||
"conform.nvim": { "branch": "master", "commit": "4dd429fe3f47077f4e50cdaf03f7877ce9b213e0" },
|
||||
"crates.nvim": { "branch": "main", "commit": "8bf8358ee326d5d8c11dcd7ac0bcc9ff97dbc785" },
|
||||
"dashboard-nvim": { "branch": "master", "commit": "d2c5a4d1341f5ca1ed2ecb4ecfcff2bc8ea18b14" },
|
||||
"dressing.nvim": { "branch": "master", "commit": "1b7921eecc65af1baf8ac1dc06f0794934cbcfb2" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "e2a175c2abe2d4f65357da1c98c59a5cfb2b543f" },
|
||||
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "7c27a30450130cd59c4994a6755e3c5d74d83e76" },
|
||||
@ -21,6 +23,7 @@
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "04e44b09ee3ff189c69ab082edac1ef7ae2e256c" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "d5800897d9180cea800023f2429bce0a94ed6064" },
|
||||
"lazygit": { "branch": "master", "commit": "095eb130e9c141a91cf7c4dc9c26f11a07824fec" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "640260d7c2d98779cab89b1e7088ab14ea354a02" },
|
||||
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
@ -29,6 +32,7 @@
|
||||
"mini.ai": { "branch": "main", "commit": "9b9b7cfa38b4871c3e44cfe89cf6d53fd40684d9" },
|
||||
"mini.icons": { "branch": "main", "commit": "a2742459f0ee32806c2438ca06b4d8b331f3f4d4" },
|
||||
"mini.pairs": { "branch": "main", "commit": "7e834c5937d95364cc1740e20d673afe2d034cdb" },
|
||||
"mini.surround": { "branch": "main", "commit": "48a9795c9d352c771e1ab5dedab6063c0a2df037" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" },
|
||||
"noice.nvim": { "branch": "main", "commit": "3cd84d402e0b5a56cf06b6c7f644a3cc9a3956a6" },
|
||||
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
|
||||
@ -41,6 +45,8 @@
|
||||
"nvim-treesitter": { "branch": "master", "commit": "b065b59196edb10a7c29bfbed88cc225b7e3de37" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "3e450cd85243da99dc23ebbf14f9c70e9a0c26a4" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" },
|
||||
"oil.nvim": { "branch": "master", "commit": "52cc8a1fb35ea6ce1df536143add7ce7215c63c0" },
|
||||
"omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "aad7bf06b4ca0de816b919d475a75b30f5f62b61" },
|
||||
"overseer.nvim": { "branch": "master", "commit": "c416be50c2715a7f631d67e21154b8e6cd873ca3" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" },
|
||||
@ -58,5 +64,9 @@
|
||||
"vim-dadbod": { "branch": "master", "commit": "fe5a55e92b2dded7c404006147ef97fb073d8b1b" },
|
||||
"vim-dadbod-completion": { "branch": "master", "commit": "880f7e9f2959e567c718d52550f9fae1aa07aa81" },
|
||||
"vim-dadbod-ui": { "branch": "master", "commit": "f29c85ab42861c6ef683289b0c6a51e0d436dcf6" },
|
||||
"vim-flog": { "branch": "master", "commit": "afbbe41355122722a9e6beb23055e2b63187fc1e" },
|
||||
"vim-fugitive": { "branch": "master", "commit": "d4877e54cef67f5af4f950935b1ade19ed6b7370" },
|
||||
"vim-lastplace": { "branch": "master", "commit": "e58cb0df716d3c88605ae49db5c4741db8b48aa9" },
|
||||
"vim-merginal": { "branch": "develop", "commit": "3dca10fd8bce10edbc2024651db4ffb6dd2d89de" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" }
|
||||
}
|
||||
|
@ -1,3 +1,16 @@
|
||||
-- Autocmds are automatically loaded on the VeryLazy event
|
||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||
-- Add any additional autocmds here
|
||||
|
||||
vim.api.nvim_create_autocmd("UIEnter", {
|
||||
group = vim.api.nvim_create_augroup("SetGUISettings", { clear = true }),
|
||||
callback = function()
|
||||
-- Options specifically targeted at Neovide
|
||||
if vim.g.neovide then
|
||||
vim.o.guifont = "CaskaydiaCove Nerd Font Mono:h14"
|
||||
vim.g.neovide_hide_mouse_when_typing = true
|
||||
vim.g.neovide_cursor_animation_length = 0
|
||||
vim.g.neovide_cursor_trail_length = 0
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
@ -1,3 +1,60 @@
|
||||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
|
||||
-- Diagnostic keymaps
|
||||
vim.keymap.del("n", "<C-W><C-D>")
|
||||
vim.keymap.del("n", "<C-W>d")
|
||||
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show diagnostic [E]rror messages" })
|
||||
vim.keymap.del("n", "<leader>qq")
|
||||
vim.keymap.set("n", "<leader>q", vim.diagnostic.setqflist, { desc = "Open diagnostic [Q]uickfix list" })
|
||||
|
||||
-- Open terminal in current window
|
||||
vim.keymap.del("n", "<C-/>")
|
||||
vim.keymap.del("n", "<leader>ft")
|
||||
vim.keymap.del("n", "<leader>fT")
|
||||
vim.keymap.set({ "n", "v" }, "<leader>to", function()
|
||||
LazyVim.terminal()
|
||||
end, { desc = "[T]erminal [O]pen" })
|
||||
|
||||
-- Disable arrow keys in normal mode
|
||||
vim.keymap.set({ "n", "v" }, "<left>", '<cmd>echo "Use h to move!!"<CR>')
|
||||
vim.keymap.set({ "n", "v" }, "<right>", '<cmd>echo "Use l to move!!"<CR>')
|
||||
vim.keymap.set({ "n", "v" }, "<up>", '<cmd>echo "Use k to move!!"<CR>')
|
||||
vim.keymap.set({ "n", "v" }, "<down>", '<cmd>echo "Use j to move!!"<CR>')
|
||||
|
||||
vim.keymap.del("n", "<leader>cd")
|
||||
-- Populate CMD to prepare for change directory
|
||||
vim.keymap.set("n", "<leader>cd ", ":cd ", { desc = "Prepare CMD for [C]hange [D]irectory" })
|
||||
-- Navigate to 'base' directory, the initial dir that nvim was run in
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>cdb",
|
||||
"<cmd>cd " .. vim.g.base_dir .. "<cr>",
|
||||
{ desc = "[C]hange [D]irectory to [B]ase directory" }
|
||||
)
|
||||
-- Navigate to 'user home' directory
|
||||
vim.keymap.set("n", "<leader>cdh", "<cmd>cd " .. vim.env.HOME .. "<cr>", { desc = "[C]hange [D]irectory to [H]ome" })
|
||||
-- Automatically navigate to config directory
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>cdn",
|
||||
"<cmd>cd " .. vim.fn.stdpath("config") .. "<cr>",
|
||||
{ desc = "[C]hange [D]irectory to [N]eovim" }
|
||||
)
|
||||
|
||||
-- Resizing windows
|
||||
vim.keymap.set({ "n", "v" }, "<M-,>", "<C-W><")
|
||||
vim.keymap.set({ "n", "v" }, "<M-.>", "<C-W>>")
|
||||
vim.keymap.set({ "n", "v" }, "<M-=>", "<C-W>+")
|
||||
vim.keymap.set({ "n", "v" }, "<M-->", "<C-W>-")
|
||||
|
||||
if vim.g.neovide then
|
||||
-- System clipboard keybinds in normal and visual mode
|
||||
vim.keymap.set({ "n", "v" }, "<C-S-c>", '"+y', { desc = "Yank to System clipboard" })
|
||||
vim.keymap.set({ "n", "v" }, "<C-S-v>", '"+p', { desc = "Paste from System clipboard" })
|
||||
-- Clipboard for command and insert mode
|
||||
vim.keymap.set({ "c", "i" }, "<C-S-v>", "<C-R>+", { desc = "Paste from System clipboard" })
|
||||
-- Clipboard for terminal mode
|
||||
vim.keymap.set({ "t" }, "<C-S-v>", '<C-\\><C-n>"+pi', { desc = "Paste from System clipboard" })
|
||||
end
|
||||
|
@ -20,6 +20,7 @@ require("lazy").setup({
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- coding extras
|
||||
{ import = "lazyvim.plugins.extras.coding.luasnip" },
|
||||
{ import = "lazyvim.plugins.extras.coding.mini-surround" },
|
||||
-- editor extras
|
||||
{ import = "lazyvim.plugins.extras.editor.overseer" },
|
||||
-- formatting extras
|
||||
|
@ -1,3 +1,41 @@
|
||||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Save start directory as base
|
||||
vim.g.base_dir = vim.fn.getcwd()
|
||||
|
||||
-- Set display language
|
||||
vim.cmd("silent! language en_US")
|
||||
|
||||
-- Detect and use PowerShell on Windows
|
||||
if vim.fn.has("win32") == 1 or vim.fn.has("wsl") == 1 then
|
||||
LazyVim.terminal.setup("pwsh")
|
||||
end
|
||||
|
||||
-- Indenting
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.breakindent = true
|
||||
|
||||
-- Set characters to view whitespaces
|
||||
vim.opt.listchars = {
|
||||
tab = "» ",
|
||||
trail = "·",
|
||||
nbsp = "␣",
|
||||
}
|
||||
|
||||
-- Preview substitutions live, as you type!
|
||||
vim.opt.inccommand = "split"
|
||||
|
||||
-- Minimal spacing to keep around the cursor.
|
||||
vim.opt.scrolloff = 8
|
||||
vim.opt.sidescrolloff = 12
|
||||
|
||||
-- Set cursor pointer to block
|
||||
vim.opt.guicursor = "n-v-i-c:block-Cursor"
|
||||
|
48
lua/plugins/catppuccin.lua
Normal file
48
lua/plugins/catppuccin.lua
Normal file
@ -0,0 +1,48 @@
|
||||
return {
|
||||
-- add catppuccin
|
||||
{
|
||||
"catppuccin/nvim",
|
||||
lazy = true,
|
||||
name = "catppuccin",
|
||||
opts = {
|
||||
integrations = {
|
||||
cmp = true,
|
||||
dashboard = true,
|
||||
gitsigns = true,
|
||||
indent_blankline = { enabled = true },
|
||||
mason = true,
|
||||
markdown = true,
|
||||
mini = true,
|
||||
native_lsp = {
|
||||
enabled = true,
|
||||
underlines = {
|
||||
errors = { "undercurl" },
|
||||
hints = { "undercurl" },
|
||||
warnings = { "undercurl" },
|
||||
information = { "undercurl" },
|
||||
},
|
||||
},
|
||||
semantic_tokens = true,
|
||||
telescope = true,
|
||||
treesitter = true,
|
||||
which_key = true,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>tt",
|
||||
function()
|
||||
vim.cmd.colorscheme(vim.o.background == "dark" and "catppuccin-latte" or "catppuccin-mocha")
|
||||
end,
|
||||
desc = "[T]oggle [T]heme",
|
||||
},
|
||||
},
|
||||
},
|
||||
-- Configure LazyVim to load catppuccin
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "catppuccin-mocha",
|
||||
},
|
||||
},
|
||||
}
|
42
lua/plugins/conflict-marker.lua
Normal file
42
lua/plugins/conflict-marker.lua
Normal file
@ -0,0 +1,42 @@
|
||||
-- Disable the default highlight group
|
||||
vim.g.conflict_marker_highlight_group = ""
|
||||
|
||||
-- Include text after begin and end markers
|
||||
vim.g.conflict_marker_begin = "^<<<<<<< .*$"
|
||||
vim.g.conflict_marker_end = "^>>>>>>> .*$"
|
||||
|
||||
-- Git conflict marker management plugin
|
||||
return {
|
||||
{
|
||||
"rhysd/conflict-marker.vim",
|
||||
config = function()
|
||||
-- Highlight groups
|
||||
vim.cmd("highlight ConflictMarkerBegin guibg=#2f7366")
|
||||
vim.cmd("highlight ConflictMarkerOurs guibg=#2e5049")
|
||||
vim.cmd("highlight ConflictMarkerTheirs guibg=#344f69")
|
||||
vim.cmd("highlight ConflictMarkerEnd guibg=#2f628e")
|
||||
vim.cmd("highlight ConflictMarkerCommonAncestorsHunk guibg=#754a81")
|
||||
|
||||
-- Read all lines in buffer, check if there is any conflict marker
|
||||
function git_conflict_detection()
|
||||
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
|
||||
-- Check if strict regex is contained in any line
|
||||
local beginning = vim.fn.match(lines, vim.g.conflict_marker_begin)
|
||||
local ending = vim.fn.match(lines, vim.g.conflict_marker_end)
|
||||
local enabled = vim.diagnostic.is_enabled()
|
||||
local conflict = beginning > -1 or ending > -1
|
||||
if conflict and enabled then
|
||||
vim.diagnostic.enable(false)
|
||||
elseif not conflict and not enabled then
|
||||
vim.diagnostic.enable(true)
|
||||
end
|
||||
end
|
||||
|
||||
-- Autocommand to disable diagnostics on buffer enter
|
||||
vim.api.nvim_create_autocmd({ "BufRead", "BufWritePre" }, {
|
||||
group = vim.api.nvim_create_augroup("git-conflict-lsp-disable", { clear = true }),
|
||||
callback = git_conflict_detection,
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
@ -5,4 +5,5 @@ return {
|
||||
{ "folke/trouble.nvim", enabled = false },
|
||||
{ "nvim-neo-tree/neo-tree.nvim", enabled = false },
|
||||
{ "folke/persistence.nvim", enabled = false },
|
||||
{ "jesseduffield/lazygit", enabled = false },
|
||||
}
|
||||
|
3
lua/plugins/fidget.lua
Normal file
3
lua/plugins/fidget.lua
Normal file
@ -0,0 +1,3 @@
|
||||
return {
|
||||
{ "j-hui/fidget.nvim", opts = {} },
|
||||
}
|
23
lua/plugins/fugitive.lua
Normal file
23
lua/plugins/fugitive.lua
Normal file
@ -0,0 +1,23 @@
|
||||
return {
|
||||
{
|
||||
-- Git related plugins
|
||||
"tpope/vim-fugitive",
|
||||
dependencies = {
|
||||
{
|
||||
"rbong/vim-flog",
|
||||
lazy = true,
|
||||
cmd = { "Flogsplit" },
|
||||
},
|
||||
"idanarye/vim-merginal",
|
||||
},
|
||||
keys = {
|
||||
-- Switch in fugitive.vim status window with the current one
|
||||
{ "<leader>gs", "<cmd>Gedit :<cr>", desc = "[G]it [S]tatus" },
|
||||
{ "<leader>gF", "<cmd>Git fetch<cr>", desc = "[G]it [F]etch" },
|
||||
{ "<leader>gP", "<cmd>Git push<cr>", desc = "[G]it [P]ush" },
|
||||
{ "<leader>gp", "<cmd>Git pull<cr>", desc = "[G]it [P]ull" },
|
||||
{ "<leader>gl", "<cmd>Flogsplit<cr><cmd>wincmd k<cr><cmd>q<cr>", desc = "[G]it [L]og" },
|
||||
{ "<leader>gm", "<cmd>Merginal<cr>", desc = "[G]it [M]erginal" },
|
||||
},
|
||||
},
|
||||
}
|
6
lua/plugins/lastplace.lua
Normal file
6
lua/plugins/lastplace.lua
Normal file
@ -0,0 +1,6 @@
|
||||
-- Plugin to intelligently reopen files at last edit position
|
||||
return {
|
||||
{
|
||||
"farmergreg/vim-lastplace",
|
||||
},
|
||||
}
|
27
lua/plugins/lazygit.lua
Normal file
27
lua/plugins/lazygit.lua
Normal file
@ -0,0 +1,27 @@
|
||||
return {
|
||||
{
|
||||
"jesseduffield/lazygit",
|
||||
keys = {
|
||||
{
|
||||
"<leader>gf",
|
||||
false,
|
||||
},
|
||||
{
|
||||
"<leader>gg",
|
||||
false,
|
||||
},
|
||||
{
|
||||
"<leader>gG",
|
||||
false,
|
||||
},
|
||||
{
|
||||
"<leader>gl",
|
||||
false,
|
||||
},
|
||||
{
|
||||
"<leader>gL",
|
||||
false,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
11
lua/plugins/lualine.lua
Normal file
11
lua/plugins/lualine.lua
Normal file
@ -0,0 +1,11 @@
|
||||
return {
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
opts = {
|
||||
options = {
|
||||
section_separators = { left = "", right = "" },
|
||||
component_separators = { left = "", right = "" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
42
lua/plugins/mason.lua
Normal file
42
lua/plugins/mason.lua
Normal file
@ -0,0 +1,42 @@
|
||||
return {
|
||||
{
|
||||
|
||||
"williamboman/mason.nvim",
|
||||
cmd = "Mason",
|
||||
keys = { { "<leader>cm", "<cmd>Mason<cr>", desc = "Mason" } },
|
||||
build = ":MasonUpdate",
|
||||
opts_extend = { "ensure_installed" },
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"eslint_d",
|
||||
"prettierd",
|
||||
"markdownlint",
|
||||
"isort",
|
||||
"powershell-editor-services",
|
||||
},
|
||||
},
|
||||
---@param opts MasonSettings | {ensure_installed: string[]}
|
||||
config = function(_, opts)
|
||||
require("mason").setup(opts)
|
||||
local mr = require("mason-registry")
|
||||
mr:on("package:install:success", function()
|
||||
vim.defer_fn(function()
|
||||
-- trigger FileType event to possibly load this newly installed LSP server
|
||||
require("lazy.core.handler.event").trigger({
|
||||
event = "FileType",
|
||||
buf = vim.api.nvim_get_current_buf(),
|
||||
})
|
||||
end, 100)
|
||||
end)
|
||||
|
||||
mr.refresh(function()
|
||||
for _, tool in ipairs(opts.ensure_installed) do
|
||||
local p = mr.get_package(tool)
|
||||
if not p:is_installed() then
|
||||
p:install()
|
||||
end
|
||||
end
|
||||
end)
|
||||
end,
|
||||
},
|
||||
}
|
33
lua/plugins/oil.lua
Normal file
33
lua/plugins/oil.lua
Normal file
@ -0,0 +1,33 @@
|
||||
return {
|
||||
{
|
||||
"stevearc/oil.nvim",
|
||||
-- Optional dependencies
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
config = function()
|
||||
-- Fix oil absolute path to relative path conversion
|
||||
vim.api.nvim_create_augroup("OilRelPathFix", {})
|
||||
vim.api.nvim_create_autocmd("BufLeave", {
|
||||
group = "OilRelPathFix",
|
||||
pattern = "oil:///*",
|
||||
callback = function()
|
||||
vim.cmd("cd .")
|
||||
end,
|
||||
})
|
||||
|
||||
local oil = require("oil")
|
||||
oil.setup({
|
||||
view_options = {
|
||||
show_hidden = true,
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>fe", function()
|
||||
if vim.bo.filetype == "oil" then
|
||||
oil.close()
|
||||
else
|
||||
oil.open()
|
||||
end
|
||||
end, { desc = "[F]ile [E]xplorer" })
|
||||
end,
|
||||
},
|
||||
}
|
56
lua/plugins/overseer.lua
Normal file
56
lua/plugins/overseer.lua
Normal file
@ -0,0 +1,56 @@
|
||||
-- Reference: overseer.nvim/lua/overseer/window.lua
|
||||
local function is_open()
|
||||
for _, winid in ipairs(vim.api.nvim_tabpage_list_wins(0)) do
|
||||
local bufnr = vim.api.nvim_win_get_buf(winid)
|
||||
if vim.bo[bufnr].filetype == "OverseerList" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
return {
|
||||
{
|
||||
"stevearc/overseer.nvim",
|
||||
opts = {
|
||||
task_list = {
|
||||
bindings = {
|
||||
["<C-h>"] = false,
|
||||
["<C-j>"] = false,
|
||||
["<C-k>"] = false,
|
||||
["<C-l>"] = false,
|
||||
["q"] = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>ow", false },
|
||||
{ "<leader>oo", false },
|
||||
{
|
||||
"<leader>ol",
|
||||
function()
|
||||
-- Get currently open windows (detects splits)
|
||||
local curWindows = #vim.api.nvim_tabpage_list_wins(0)
|
||||
-- Use builtin toggle if already using splits
|
||||
if curWindows ~= (is_open() and 2 or 1) then
|
||||
vim.cmd("OverseerToggle")
|
||||
return
|
||||
end
|
||||
|
||||
-- Otherwise, toggle overseer in fullscreen
|
||||
overseer.toggle({ winid = 0 })
|
||||
local bufnr = vim.api.nvim_get_current_buf()
|
||||
if is_open() then
|
||||
-- Maximize height
|
||||
vim.cmd.winc("_")
|
||||
elseif vim.bo[bufnr].filetype == "" and vim.bo.buftype ~= "terminal" then
|
||||
-- Delete empty buffer created by overseer
|
||||
vim.api.nvim_buf_delete(bufnr, {})
|
||||
end
|
||||
end,
|
||||
desc = "[O]verseer [L]og",
|
||||
},
|
||||
{ "<leader>or", "<cmd>OverseerRun<cr>", desc = "[O]verseer [R]un" },
|
||||
},
|
||||
},
|
||||
}
|
39
lua/plugins/telescope.lua
Normal file
39
lua/plugins/telescope.lua
Normal file
@ -0,0 +1,39 @@
|
||||
return {
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
opts = {
|
||||
defaults = {
|
||||
mappings = {
|
||||
i = { ["<c-enter>"] = "to_fuzzy_refine" },
|
||||
},
|
||||
},
|
||||
extensions = {
|
||||
["ui-select"] = {
|
||||
require("telescope.themes").get_dropdown(),
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>gs",
|
||||
false,
|
||||
},
|
||||
{
|
||||
"<leader>sf",
|
||||
LazyVim.pick("files"),
|
||||
},
|
||||
{
|
||||
"<leader><space>",
|
||||
false,
|
||||
},
|
||||
{
|
||||
"<leader><leader>",
|
||||
function()
|
||||
require("telescope.builtin").buffers({
|
||||
sort_mru = true,
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
126
lua/plugins/treesitter.lua
Normal file
126
lua/plugins/treesitter.lua
Normal file
@ -0,0 +1,126 @@
|
||||
return {
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
version = false, -- last release is way too old and doesn't work on Windows
|
||||
build = ":TSUpdate",
|
||||
event = { "LazyFile", "VeryLazy" },
|
||||
lazy = vim.fn.argc(-1) == 0, -- load treesitter early when opening a file from the cmdline
|
||||
init = function(plugin)
|
||||
-- PERF: add nvim-treesitter queries to the rtp and it's custom query predicates early
|
||||
-- This is needed because a bunch of plugins no longer `require("nvim-treesitter")`, which
|
||||
-- no longer trigger the **nvim-treesitter** module to be loaded in time.
|
||||
-- Luckily, the only things that those plugins need are the custom queries, which we make available
|
||||
-- during startup.
|
||||
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_extend = { "ensure_installed" },
|
||||
---@type TSConfig
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
opts = {
|
||||
auto_install = true,
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"c",
|
||||
"diff",
|
||||
"html",
|
||||
"javascript",
|
||||
"jsdoc",
|
||||
"json",
|
||||
"jsonc",
|
||||
"lua",
|
||||
"luadoc",
|
||||
"luap",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"printf",
|
||||
"python",
|
||||
"query",
|
||||
"regex",
|
||||
"toml",
|
||||
"tsx",
|
||||
"typescript",
|
||||
"vim",
|
||||
"vimdoc",
|
||||
"xml",
|
||||
"yaml",
|
||||
-- other
|
||||
"svelte",
|
||||
"php",
|
||||
"rust",
|
||||
"c_sharp",
|
||||
"go",
|
||||
"powershell",
|
||||
"gitcommit",
|
||||
"gitignore",
|
||||
},
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = "<C-space>",
|
||||
node_incremental = "<C-space>",
|
||||
scope_incremental = false,
|
||||
node_decremental = "<bs>",
|
||||
},
|
||||
},
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
["aa"] = "@parameter.outer",
|
||||
["ia"] = "@parameter.inner",
|
||||
["af"] = "@function.outer",
|
||||
["if"] = "@function.inner",
|
||||
["ac"] = "@class.outer",
|
||||
["ic"] = "@class.inner",
|
||||
},
|
||||
},
|
||||
move = {
|
||||
enable = true,
|
||||
set_jumps = true, -- whether to set jumps in the jumplist
|
||||
goto_next_start = {
|
||||
["]m"] = "@function.outer",
|
||||
["]]"] = "@class.outer",
|
||||
},
|
||||
goto_next_end = {
|
||||
["]M"] = "@function.outer",
|
||||
["]["] = "@class.outer",
|
||||
},
|
||||
goto_previous_start = {
|
||||
["[m"] = "@function.outer",
|
||||
["[["] = "@class.outer",
|
||||
},
|
||||
goto_previous_end = {
|
||||
["[M"] = "@function.outer",
|
||||
["[]"] = "@class.outer",
|
||||
},
|
||||
},
|
||||
swap = {
|
||||
enable = true,
|
||||
swap_next = {
|
||||
["<leader>a"] = "@parameter.inner",
|
||||
},
|
||||
swap_previous = {
|
||||
["<leader>A"] = "@parameter.inner",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
---@param opts TSConfig
|
||||
config = function(_, opts)
|
||||
if type(opts.ensure_installed) == "table" then
|
||||
opts.ensure_installed = LazyVim.dedup(opts.ensure_installed)
|
||||
end
|
||||
require("nvim-treesitter.configs").setup(opts)
|
||||
end,
|
||||
},
|
||||
}
|
Loading…
Reference in New Issue
Block a user