refactor: reorganize post-configuration functions into utils module
This commit is contained in:
@@ -35,14 +35,14 @@ vim.g.useimage = true ---@type boolean Options: <true|false>
|
|||||||
vim.g.ignore_no_lazy = false ---@type boolean Options: <true|false>
|
vim.g.ignore_no_lazy = false ---@type boolean Options: <true|false>
|
||||||
-- Enable codesnap for code screenshots
|
-- Enable codesnap for code screenshots
|
||||||
vim.g.codesnap = true ---@type boolean Options: <true|false>
|
vim.g.codesnap = true ---@type boolean Options: <true|false>
|
||||||
|
-- Enable encouraging feedback
|
||||||
|
vim.g.encourage_me = true ---@type boolean Options: <true|false>
|
||||||
-- Enable Auto-hiding cursorline
|
-- Enable Auto-hiding cursorline
|
||||||
vim.g.auto_cursorline = true ---@type boolean Options: <true|false>
|
vim.g.auto_cursorline = true ---@type boolean Options: <true|false>
|
||||||
-- Enable Auto-save
|
-- Enable Auto-save
|
||||||
vim.g.auto_save = true ---@type boolean Options: <true|false>
|
vim.g.auto_save = true ---@type boolean Options: <true|false>
|
||||||
-- Animate blinky cursor
|
-- Animate blinky cursor
|
||||||
vim.g.blinky = true ---@type boolean Options: <true|false>
|
vim.g.blinky = true ---@type boolean Options: <true|false>
|
||||||
-- Use Rootiest cmd window instead of cmdline
|
|
||||||
vim.g.rootiest_cmd = false ---@type boolean Options: <true|false>
|
|
||||||
-- Use experimental cmp performance fork
|
-- Use experimental cmp performance fork
|
||||||
vim.g.cmp_performance_enabled = true ---@type boolean Options: <true|false>
|
vim.g.cmp_performance_enabled = true ---@type boolean Options: <true|false>
|
||||||
-- Use dev mode for rootiest plugins
|
-- Use dev mode for rootiest plugins
|
||||||
@@ -118,5 +118,6 @@ vim.g.completion_round_borders_enabled = true ---@type boolean Options: <true|f
|
|||||||
|
|
||||||
-- stylua: ignore end
|
-- stylua: ignore end
|
||||||
|
|
||||||
-- Post-Config Operations
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━ Post-Config Functions ━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
require("config.post-ops")
|
-- Setup blinky cursor
|
||||||
|
require("utils.blinky").setup(vim.g.blinky)
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
---@module "config.post_ops"
|
|
||||||
--- This module contains the functions that exectute after
|
|
||||||
--- the options.lua file has been loaded.
|
|
||||||
-- ╭─────────────────────────────────────────────────────────╮
|
|
||||||
-- │ Post Ops │
|
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
|
||||||
|
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.apply_options = function()
|
|
||||||
-- Setup blinky cursor
|
|
||||||
require("utils.blinky").setup(vim.g.blinky)
|
|
||||||
|
|
||||||
-- Setup Rootiest cmd window
|
|
||||||
require("utils.cmd_window").setup({
|
|
||||||
override_cmdline = vim.g.rootiest_cmd and true or nil,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Setup post-ops module
|
|
||||||
M.setup = function()
|
|
||||||
M.apply_options()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Call setup
|
|
||||||
M.setup()
|
|
||||||
|
|
||||||
return M
|
|
||||||
@@ -6,6 +6,13 @@
|
|||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
|
M.chatgpt = {
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
}
|
||||||
|
|
||||||
--- nvim-cmp dependencies
|
--- nvim-cmp dependencies
|
||||||
---@return table The nvim-cmp dependencies
|
---@return table The nvim-cmp dependencies
|
||||||
M.cmp = {
|
M.cmp = {
|
||||||
|
|||||||
+403
-95
@@ -30,6 +30,94 @@ M.capsword = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
M.chatgpt = {
|
||||||
|
func = function()
|
||||||
|
-- Add ChatGPT menu
|
||||||
|
require("data.func").add_keymap(M.group.chatgpt)
|
||||||
|
-- Add ChatGPT keys
|
||||||
|
return M.chatgpt.keys
|
||||||
|
end,
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>cxc",
|
||||||
|
"<cmd>ChatGPT<cr>",
|
||||||
|
desc = "ChatGPT",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxe",
|
||||||
|
"<cmd>ChatGPTEditWithInstruction<cr>",
|
||||||
|
desc = "Edit with instruction",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxg",
|
||||||
|
"<cmd>ChatGPTRun grammar_correction<cr>",
|
||||||
|
desc = "Grammar Correction",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxt",
|
||||||
|
"<cmd>ChatGPTRun translate<cr>",
|
||||||
|
desc = "Translate",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxk",
|
||||||
|
"<cmd>ChatGPTRun keywords<cr>",
|
||||||
|
desc = "Keywords",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxd",
|
||||||
|
"<cmd>ChatGPTRun docstring<cr>",
|
||||||
|
desc = "Docstring",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxa",
|
||||||
|
"<cmd>ChatGPTRun add_tests<cr>",
|
||||||
|
desc = "Add Tests",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxo",
|
||||||
|
"<cmd>ChatGPTRun optimize_code<cr>",
|
||||||
|
desc = "Optimize Code",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxs",
|
||||||
|
"<cmd>ChatGPTRun summarize<cr>",
|
||||||
|
desc = "Summarize",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxf",
|
||||||
|
"<cmd>ChatGPTRun fix_bugs<cr>",
|
||||||
|
desc = "Fix Bugs",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxr",
|
||||||
|
"<cmd>ChatGPTRun explain_code<cr>",
|
||||||
|
desc = "Explain Code",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxr",
|
||||||
|
"<cmd>ChatGPTRun roxygen_edit<cr>",
|
||||||
|
desc = "Roxygen Edit",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cxl",
|
||||||
|
"<cmd>ChatGPTRun code_readability_analysis<cr>",
|
||||||
|
desc = "Code Readability Analysis",
|
||||||
|
mode = { "n", "v" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
M.codesnap = {
|
M.codesnap = {
|
||||||
{ -- Save selected code snapshot into clipboard
|
{ -- Save selected code snapshot into clipboard
|
||||||
"<leader>cy",
|
"<leader>cy",
|
||||||
@@ -69,75 +157,83 @@ M.flash = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
M.minimap = {
|
M.minimap = {
|
||||||
{ -- Toggle minimap
|
func = function()
|
||||||
"<leader>nt",
|
-- Add NeoMiniMap menu
|
||||||
"<cmd>Neominimap toggle<cr>",
|
require("data.func").add_keymap(M.group.minimap)
|
||||||
desc = "Toggle minimap",
|
-- Add NeoMiniMap keys
|
||||||
},
|
return M.minimap.keys
|
||||||
{ -- Enable minimap
|
end,
|
||||||
"<leader>no",
|
keys = {
|
||||||
"<cmd>Neominimap on<cr>",
|
{ -- Toggle minimap
|
||||||
desc = "Enable minimap",
|
"<leader>nt",
|
||||||
},
|
"<cmd>Neominimap toggle<cr>",
|
||||||
{ -- Disable minimap
|
desc = "Toggle minimap",
|
||||||
"<leader>nc",
|
},
|
||||||
"<cmd>Neominimap off<cr>",
|
{ -- Enable minimap
|
||||||
desc = "Disable minimap",
|
"<leader>no",
|
||||||
},
|
"<cmd>Neominimap on<cr>",
|
||||||
{ -- Refresh minimap
|
desc = "Enable minimap",
|
||||||
"<leader>nf",
|
},
|
||||||
"<cmd>Neominimap focus<cr>",
|
{ -- Disable minimap
|
||||||
desc = "Focus on minimap",
|
"<leader>nc",
|
||||||
},
|
"<cmd>Neominimap off<cr>",
|
||||||
{ -- Unfocus minimap
|
desc = "Disable minimap",
|
||||||
"<leader>nu",
|
},
|
||||||
"<cmd>Neominimap unfocus<cr>",
|
{ -- Refresh minimap
|
||||||
desc = "Unfocus minimap",
|
"<leader>nf",
|
||||||
},
|
"<cmd>Neominimap focus<cr>",
|
||||||
{ -- Toggle focus
|
desc = "Focus on minimap",
|
||||||
"<leader>ns",
|
},
|
||||||
"<cmd>Neominimap toggleFocus<cr>",
|
{ -- Unfocus minimap
|
||||||
desc = "Toggle focus on minimap",
|
"<leader>nu",
|
||||||
},
|
"<cmd>Neominimap unfocus<cr>",
|
||||||
{ -- Toggle minimap for current window
|
desc = "Unfocus minimap",
|
||||||
"<leader>nwt",
|
},
|
||||||
"<cmd>Neominimap winToggle<cr>",
|
{ -- Toggle focus
|
||||||
desc = "Toggle minimap for current window",
|
"<leader>ns",
|
||||||
},
|
"<cmd>Neominimap toggleFocus<cr>",
|
||||||
{ -- Refresh minimap for current window
|
desc = "Toggle focus on minimap",
|
||||||
"<leader>nwr",
|
},
|
||||||
"<cmd>Neominimap winRefresh<cr>",
|
{ -- Toggle minimap for current window
|
||||||
desc = "Refresh minimap for current window",
|
"<leader>nwt",
|
||||||
},
|
"<cmd>Neominimap winToggle<cr>",
|
||||||
{ -- Enable minimap for current window
|
desc = "Toggle minimap for current window",
|
||||||
"<leader>nwo",
|
},
|
||||||
"<cmd>Neominimap winOn<cr>",
|
{ -- Refresh minimap for current window
|
||||||
desc = "Enable minimap for current window",
|
"<leader>nwr",
|
||||||
},
|
"<cmd>Neominimap winRefresh<cr>",
|
||||||
{ -- Disable minimap for current window
|
desc = "Refresh minimap for current window",
|
||||||
"<leader>nwc",
|
},
|
||||||
"<cmd>Neominimap winOff<cr>",
|
{ -- Enable minimap for current window
|
||||||
desc = "Disable minimap for current window",
|
"<leader>nwo",
|
||||||
},
|
"<cmd>Neominimap winOn<cr>",
|
||||||
{ -- Toggle minimap for current buffer
|
desc = "Enable minimap for current window",
|
||||||
"<leader>nbt",
|
},
|
||||||
"<cmd>Neominimap bufToggle<cr>",
|
{ -- Disable minimap for current window
|
||||||
desc = "Toggle minimap for current buffer",
|
"<leader>nwc",
|
||||||
},
|
"<cmd>Neominimap winOff<cr>",
|
||||||
{ -- Refresh minimap for current buffer
|
desc = "Disable minimap for current window",
|
||||||
"<leader>nbr",
|
},
|
||||||
"<cmd>Neominimap bufRefresh<cr>",
|
{ -- Toggle minimap for current buffer
|
||||||
desc = "Refresh minimap for current buffer",
|
"<leader>nbt",
|
||||||
},
|
"<cmd>Neominimap bufToggle<cr>",
|
||||||
{ -- Enable minimap for current buffer
|
desc = "Toggle minimap for current buffer",
|
||||||
"<leader>nbo",
|
},
|
||||||
"<cmd>Neominimap bufOn<cr>",
|
{ -- Refresh minimap for current buffer
|
||||||
desc = "Enable minimap for current buffer",
|
"<leader>nbr",
|
||||||
},
|
"<cmd>Neominimap bufRefresh<cr>",
|
||||||
{ -- Disable minimap for current buffer
|
desc = "Refresh minimap for current buffer",
|
||||||
"<leader>nbc",
|
},
|
||||||
"<cmd>Neominimap bufOff<cr>",
|
{ -- Enable minimap for current buffer
|
||||||
desc = "Disable minimap for current buffer",
|
"<leader>nbo",
|
||||||
|
"<cmd>Neominimap bufOn<cr>",
|
||||||
|
desc = "Enable minimap for current buffer",
|
||||||
|
},
|
||||||
|
{ -- Disable minimap for current buffer
|
||||||
|
"<leader>nbc",
|
||||||
|
"<cmd>Neominimap bufOff<cr>",
|
||||||
|
desc = "Disable minimap for current buffer",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -244,44 +340,257 @@ M.gitgraph = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
M.gist = {
|
M.gist = {
|
||||||
{ -- Create Gist
|
func = function()
|
||||||
"<leader>gnc",
|
-- Add gists menu
|
||||||
"<cmd>GistCreate<cr>",
|
require("data.func").add_keymap(M.group.gist)
|
||||||
desc = "Create Gist",
|
-- Add gists keys
|
||||||
mode = { "n", "x" },
|
return M.gist.keys
|
||||||
},
|
end,
|
||||||
{ -- Find Gists
|
keys = {
|
||||||
"<leader>gnf",
|
{ -- Create Gist
|
||||||
"<cmd>GistList<cr>",
|
"<leader>gnc",
|
||||||
desc = "Find Gists",
|
"<cmd>GistCreate<cr>",
|
||||||
|
desc = "Create Gist",
|
||||||
|
mode = { "n", "x" },
|
||||||
|
},
|
||||||
|
{ -- Find Gists
|
||||||
|
"<leader>gnf",
|
||||||
|
"<cmd>GistList<cr>",
|
||||||
|
desc = "Find Gists",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
M.groups = {
|
M.undotree = function()
|
||||||
{ -- Gists menu
|
require("data.func").add_keymap(
|
||||||
|
"<leader>uu",
|
||||||
|
"<cmd>UndotreeToggle<cr>",
|
||||||
|
"Toggle UndoTree"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.gp = {
|
||||||
|
func = function()
|
||||||
|
-- Use which-key directly
|
||||||
|
if pcall(require, "which-key") then
|
||||||
|
require("which-key").add(M.gp.keys)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
keys = {
|
||||||
|
-- VISUAL mode mappings
|
||||||
|
-- s, x, v modes are handled the same way by which_key
|
||||||
|
{
|
||||||
|
mode = { "v" },
|
||||||
|
nowait = true,
|
||||||
|
remap = false,
|
||||||
|
{
|
||||||
|
"<C-g><C-t>",
|
||||||
|
":<C-u>'<,'>GpChatNew tabnew<cr>",
|
||||||
|
desc = "ChatNew tabnew",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-g><C-v>",
|
||||||
|
":<C-u>'<,'>GpChatNew vsplit<cr>",
|
||||||
|
desc = "ChatNew vsplit",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-g><C-x>",
|
||||||
|
":<C-u>'<,'>GpChatNew split<cr>",
|
||||||
|
desc = "ChatNew split",
|
||||||
|
},
|
||||||
|
{ "<C-g>a", ":<C-u>'<,'>GpAppend<cr>", desc = "Visual Append (after)" },
|
||||||
|
{
|
||||||
|
"<C-g>b",
|
||||||
|
":<C-u>'<,'>GpPrepend<cr>",
|
||||||
|
desc = "Visual Prepend (before)",
|
||||||
|
},
|
||||||
|
{ "<C-g>c", ":<C-u>'<,'>GpChatNew<cr>", desc = "Visual Chat New" },
|
||||||
|
{ "<C-g>g", group = "generate into new .." },
|
||||||
|
{ "<C-g>ge", ":<C-u>'<,'>GpEnew<cr>", desc = "Visual GpEnew" },
|
||||||
|
{ "<C-g>gn", ":<C-u>'<,'>GpNew<cr>", desc = "Visual GpNew" },
|
||||||
|
{ "<C-g>gp", ":<C-u>'<,'>GpPopup<cr>", desc = "Visual Popup" },
|
||||||
|
{ "<C-g>gt", ":<C-u>'<,'>GpTabnew<cr>", desc = "Visual GpTabnew" },
|
||||||
|
{ "<C-g>gv", ":<C-u>'<,'>GpVnew<cr>", desc = "Visual GpVnew" },
|
||||||
|
{ "<C-g>i", ":<C-u>'<,'>GpImplement<cr>", desc = "Implement selection" },
|
||||||
|
{ "<C-g>n", "<cmd>GpNextAgent<cr>", desc = "Next Agent" },
|
||||||
|
{ "<C-g>p", ":<C-u>'<,'>GpChatPaste<cr>", desc = "Visual Chat Paste" },
|
||||||
|
{ "<C-g>r", ":<C-u>'<,'>GpRewrite<cr>", desc = "Visual Rewrite" },
|
||||||
|
{ "<C-g>s", "<cmd>GpStop<cr>", desc = "GpStop" },
|
||||||
|
{ "<C-g>t", ":<C-u>'<,'>GpChatToggle<cr>", desc = "Visual Toggle Chat" },
|
||||||
|
{ "<C-g>w", group = "Whisper" },
|
||||||
|
{ "<C-g>wa", ":<C-u>'<,'>GpWhisperAppend<cr>", desc = "Whisper Append" },
|
||||||
|
{
|
||||||
|
"<C-g>wb",
|
||||||
|
":<C-u>'<,'>GpWhisperPrepend<cr>",
|
||||||
|
desc = "Whisper Prepend",
|
||||||
|
},
|
||||||
|
{ "<C-g>we", ":<C-u>'<,'>GpWhisperEnew<cr>", desc = "Whisper Enew" },
|
||||||
|
{ "<C-g>wn", ":<C-u>'<,'>GpWhisperNew<cr>", desc = "Whisper New" },
|
||||||
|
{ "<C-g>wp", ":<C-u>'<,'>GpWhisperPopup<cr>", desc = "Whisper Popup" },
|
||||||
|
{
|
||||||
|
"<C-g>wr",
|
||||||
|
":<C-u>'<,'>GpWhisperRewrite<cr>",
|
||||||
|
desc = "Whisper Rewrite",
|
||||||
|
},
|
||||||
|
{ "<C-g>wt", ":<C-u>'<,'>GpWhisperTabnew<cr>", desc = "Whisper Tabnew" },
|
||||||
|
{ "<C-g>wv", ":<C-u>'<,'>GpWhisperVnew<cr>", desc = "Whisper Vnew" },
|
||||||
|
{ "<C-g>ww", ":<C-u>'<,'>GpWhisper<cr>", desc = "Whisper" },
|
||||||
|
{ "<C-g>x", ":<C-u>'<,'>GpContext<cr>", desc = "Visual GpContext" },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- NORMAL mode mappings
|
||||||
|
{
|
||||||
|
mode = { "n" },
|
||||||
|
nowait = true,
|
||||||
|
remap = false,
|
||||||
|
{ "<C-g><C-t>", "<cmd>GpChatNew tabnew<cr>", desc = "New Chat tabnew" },
|
||||||
|
{ "<C-g><C-v>", "<cmd>GpChatNew vsplit<cr>", desc = "New Chat vsplit" },
|
||||||
|
{ "<C-g><C-x>", "<cmd>GpChatNew split<cr>", desc = "New Chat split" },
|
||||||
|
{ "<C-g>a", "<cmd>GpAppend<cr>", desc = "Append (after)" },
|
||||||
|
{ "<C-g>b", "<cmd>GpPrepend<cr>", desc = "Prepend (before)" },
|
||||||
|
{ "<C-g>c", "<cmd>GpChatNew<cr>", desc = "New Chat" },
|
||||||
|
{ "<C-g>f", "<cmd>GpChatFinder<cr>", desc = "Chat Finder" },
|
||||||
|
{ "<C-g>g", group = "generate into new .." },
|
||||||
|
{ "<C-g>ge", "<cmd>GpEnew<cr>", desc = "GpEnew" },
|
||||||
|
{ "<C-g>gn", "<cmd>GpNew<cr>", desc = "GpNew" },
|
||||||
|
{ "<C-g>gp", "<cmd>GpPopup<cr>", desc = "Popup" },
|
||||||
|
{ "<C-g>gt", "<cmd>GpTabnew<cr>", desc = "GpTabnew" },
|
||||||
|
{ "<C-g>gv", "<cmd>GpVnew<cr>", desc = "GpVnew" },
|
||||||
|
{ "<C-g>n", "<cmd>GpNextAgent<cr>", desc = "Next Agent" },
|
||||||
|
{ "<C-g>r", "<cmd>GpRewrite<cr>", desc = "Inline Rewrite" },
|
||||||
|
{ "<C-g>s", "<cmd>GpStop<cr>", desc = "GpStop" },
|
||||||
|
{ "<C-g>t", "<cmd>GpChatToggle<cr>", desc = "Toggle Chat" },
|
||||||
|
{ "<C-g>w", group = "Whisper" },
|
||||||
|
{
|
||||||
|
"<C-g>wa",
|
||||||
|
"<cmd>GpWhisperAppend<cr>",
|
||||||
|
desc = "Whisper Append (after)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-g>wb",
|
||||||
|
"<cmd>GpWhisperPrepend<cr>",
|
||||||
|
desc = "Whisper Prepend (before)",
|
||||||
|
},
|
||||||
|
{ "<C-g>we", "<cmd>GpWhisperEnew<cr>", desc = "Whisper Enew" },
|
||||||
|
{ "<C-g>wn", "<cmd>GpWhisperNew<cr>", desc = "Whisper New" },
|
||||||
|
{ "<C-g>wp", "<cmd>GpWhisperPopup<cr>", desc = "Whisper Popup" },
|
||||||
|
{
|
||||||
|
"<C-g>wr",
|
||||||
|
"<cmd>GpWhisperRewrite<cr>",
|
||||||
|
desc = "Whisper Inline Rewrite",
|
||||||
|
},
|
||||||
|
{ "<C-g>wt", "<cmd>GpWhisperTabnew<cr>", desc = "Whisper Tabnew" },
|
||||||
|
{ "<C-g>wv", "<cmd>GpWhisperVnew<cr>", desc = "Whisper Vnew" },
|
||||||
|
{ "<C-g>ww", "<cmd>GpWhisper<cr>", desc = "Whisper" },
|
||||||
|
{ "<C-g>x", "<cmd>GpContext<cr>", desc = "Toggle GpContext" },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- INSERT mode mappings
|
||||||
|
{
|
||||||
|
mode = { "i" },
|
||||||
|
nowait = true,
|
||||||
|
remap = false,
|
||||||
|
{ "<C-g><C-t>", "<cmd>GpChatNew tabnew<cr>", desc = "New Chat tabnew" },
|
||||||
|
{ "<C-g><C-v>", "<cmd>GpChatNew vsplit<cr>", desc = "New Chat vsplit" },
|
||||||
|
{ "<C-g><C-x>", "<cmd>GpChatNew split<cr>", desc = "New Chat split" },
|
||||||
|
{ "<C-g>a", "<cmd>GpAppend<cr>", desc = "Append (after)" },
|
||||||
|
{ "<C-g>b", "<cmd>GpPrepend<cr>", desc = "Prepend (before)" },
|
||||||
|
{ "<C-g>c", "<cmd>GpChatNew<cr>", desc = "New Chat" },
|
||||||
|
{ "<C-g>f", "<cmd>GpChatFinder<cr>", desc = "Chat Finder" },
|
||||||
|
{ "<C-g>g", group = "generate into new .." },
|
||||||
|
{ "<C-g>ge", "<cmd>GpEnew<cr>", desc = "GpEnew" },
|
||||||
|
{ "<C-g>gn", "<cmd>GpNew<cr>", desc = "GpNew" },
|
||||||
|
{ "<C-g>gp", "<cmd>GpPopup<cr>", desc = "Popup" },
|
||||||
|
{ "<C-g>gt", "<cmd>GpTabnew<cr>", desc = "GpTabnew" },
|
||||||
|
{ "<C-g>gv", "<cmd>GpVnew<cr>", desc = "GpVnew" },
|
||||||
|
{ "<C-g>n", "<cmd>GpNextAgent<cr>", desc = "Next Agent" },
|
||||||
|
{ "<C-g>r", "<cmd>GpRewrite<cr>", desc = "Inline Rewrite" },
|
||||||
|
{ "<C-g>s", "<cmd>GpStop<cr>", desc = "GpStop" },
|
||||||
|
{ "<C-g>t", "<cmd>GpChatToggle<cr>", desc = "Toggle Chat" },
|
||||||
|
{ "<C-g>w", group = "Whisper" },
|
||||||
|
{
|
||||||
|
"<C-g>wa",
|
||||||
|
"<cmd>GpWhisperAppend<cr>",
|
||||||
|
desc = "Whisper Append (after)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<C-g>wb",
|
||||||
|
"<cmd>GpWhisperPrepend<cr>",
|
||||||
|
desc = "Whisper Prepend (before)",
|
||||||
|
},
|
||||||
|
{ "<C-g>we", "<cmd>GpWhisperEnew<cr>", desc = "Whisper Enew" },
|
||||||
|
{ "<C-g>wn", "<cmd>GpWhisperNew<cr>", desc = "Whisper New" },
|
||||||
|
{ "<C-g>wp", "<cmd>GpWhisperPopup<cr>", desc = "Whisper Popup" },
|
||||||
|
{
|
||||||
|
"<C-g>wr",
|
||||||
|
"<cmd>GpWhisperRewrite<cr>",
|
||||||
|
desc = "Whisper Inline Rewrite",
|
||||||
|
},
|
||||||
|
{ "<C-g>wt", "<cmd>GpWhisperTabnew<cr>", desc = "Whisper Tabnew" },
|
||||||
|
{ "<C-g>wv", "<cmd>GpWhisperVnew<cr>", desc = "Whisper Vnew" },
|
||||||
|
{ "<C-g>ww", "<cmd>GpWhisper<cr>", desc = "Whisper" },
|
||||||
|
{ "<C-g>x", "<cmd>GpContext<cr>", desc = "Toggle GpContext" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
M.group = {
|
||||||
|
chatgpt = { -- ChatGPT
|
||||||
|
lhs = "<leader>cx",
|
||||||
|
group = "ChatGPT",
|
||||||
|
icon = { icon = "", color = "blue" },
|
||||||
|
},
|
||||||
|
gist = { -- Gists menu
|
||||||
lhs = "<leader>gn",
|
lhs = "<leader>gn",
|
||||||
group = "Gists",
|
group = "Gists",
|
||||||
icon = { icon = "", color = "orange" },
|
icon = { icon = "", color = "orange" },
|
||||||
},
|
},
|
||||||
|
minimap = { -- MiniMap menu
|
||||||
|
lhs = "<leader>n",
|
||||||
|
group = "MiniMap",
|
||||||
|
icon = { icon = "", color = "green" },
|
||||||
|
},
|
||||||
|
nvimup = { -- Neovim Updater menu
|
||||||
|
lhs = "<leader>qu",
|
||||||
|
group = "Neovim Updater",
|
||||||
|
icon = { icon = "", color = "red" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
M.groups = {
|
||||||
{ -- Lazy menu
|
{ -- Lazy menu
|
||||||
lhs = "<leader>l",
|
lhs = "<leader>l",
|
||||||
group = "Lazy",
|
group = "Lazy",
|
||||||
icon = { icon = "", color = "red" },
|
icon = { icon = "", color = "red" },
|
||||||
},
|
},
|
||||||
{ -- MiniMap menu
|
}
|
||||||
lhs = "<leader>n",
|
|
||||||
group = "MiniMap",
|
M.nvimup = {
|
||||||
icon = { icon = "", color = "green" },
|
{
|
||||||
|
"<Leader>quU",
|
||||||
|
":UpdateNeovim<CR>",
|
||||||
|
desc = "Update Neovim",
|
||||||
},
|
},
|
||||||
{ -- Code action menu
|
{
|
||||||
lhs = "<leader>C",
|
"<Leader>quD",
|
||||||
group = "CodeActions",
|
function()
|
||||||
icon = { icon = "", color = "yellow" },
|
require("nvim_updater").update_neovim({ build_type = "Debug" })
|
||||||
|
end,
|
||||||
|
desc = "Debug Build Neovim",
|
||||||
},
|
},
|
||||||
{ -- Neovim Updater menu
|
{
|
||||||
lhs = "<leader>qu",
|
"<Leader>quR",
|
||||||
group = "Neovim Updater",
|
function()
|
||||||
icon = { icon = "", color = "red" },
|
require("nvim_updater").update_neovim({ build_type = "Release" })
|
||||||
|
end,
|
||||||
|
desc = "Release Build Neovim",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<Leader>quC",
|
||||||
|
function()
|
||||||
|
require("nvim_updater").remove_source_dir()
|
||||||
|
end,
|
||||||
|
desc = "Clean Neovim Source",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -725,9 +1034,8 @@ M.telescope = {
|
|||||||
sources = { "emoji", "kaomoji", "gitmoji", "nerd", "math" },
|
sources = { "emoji", "kaomoji", "gitmoji", "nerd", "math" },
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
"i",
|
|
||||||
|
|
||||||
desc = "Pick Icon",
|
desc = "Pick Icon",
|
||||||
|
mode = "i",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
toggleterm = {
|
toggleterm = {
|
||||||
|
|||||||
+323
-46
@@ -165,6 +165,14 @@ M.border = {
|
|||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Cursor Styles ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
M.cursors = {
|
||||||
|
smooth = "",
|
||||||
|
block = "█",
|
||||||
|
line = "⎸",
|
||||||
|
underline = "_",
|
||||||
|
}
|
||||||
|
|
||||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Type tables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Type tables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
|
||||||
--- General exclusion list for buffers and filetypes
|
--- General exclusion list for buffers and filetypes
|
||||||
@@ -262,6 +270,51 @@ M.bufferline = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--- CodeSnap configuration options
|
||||||
|
M.codesnap = {
|
||||||
|
save_path = "~/Pictures/Screenshots/",
|
||||||
|
has_breadcrumbs = true,
|
||||||
|
show_workspace = true,
|
||||||
|
bg_theme = "default",
|
||||||
|
watermark = "Rootiest Snippets",
|
||||||
|
code_font_family = "Iosevka NF",
|
||||||
|
code_font_size = 12,
|
||||||
|
}
|
||||||
|
|
||||||
|
--- Flash configuration options
|
||||||
|
M.flash = {
|
||||||
|
modes = { char = { jump_labels = true } },
|
||||||
|
}
|
||||||
|
|
||||||
|
--- Smart-Scrolloff configuration options
|
||||||
|
M.smartscrolloff = { scrolloff_percentage = 0.25 }
|
||||||
|
|
||||||
|
--- AutoCursorline configuration options
|
||||||
|
M.autocursorline = { wait_ms = 2000 }
|
||||||
|
|
||||||
|
--- SmoothCursor
|
||||||
|
M.smoothcursor = {
|
||||||
|
cursor = M.cursors.smooth,
|
||||||
|
}
|
||||||
|
|
||||||
|
--- Suda configuration options
|
||||||
|
M.suda = function()
|
||||||
|
vim.g.suda_smart_edit = 1
|
||||||
|
vim.cmd("let g:suda#prompt = ' Enter Sudo Password '")
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Autosave configuration options
|
||||||
|
M.autosave = {
|
||||||
|
execution_message = {
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
--- Kulala plugin types
|
||||||
|
M.kulala = {
|
||||||
|
ft = { "http", "https", "ftp", "ftps" },
|
||||||
|
}
|
||||||
|
|
||||||
--- LazyVim configuration options
|
--- LazyVim configuration options
|
||||||
M.lazyvim = {
|
M.lazyvim = {
|
||||||
opts = {
|
opts = {
|
||||||
@@ -455,6 +508,61 @@ M.gitblame = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--- ChatGPT configuration options
|
||||||
|
M.chatgpt = {
|
||||||
|
openai_params = {
|
||||||
|
model = "gpt-4o-mini",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- GP ChatBot configuration options
|
||||||
|
M.gp = function()
|
||||||
|
require("which-key").setup({
|
||||||
|
triggers = "<C-g>",
|
||||||
|
mode = M.all_modes,
|
||||||
|
})
|
||||||
|
return {
|
||||||
|
hooks = {
|
||||||
|
-- example of adding command which writes unit tests for the selected code
|
||||||
|
UnitTests = function(gp, params)
|
||||||
|
local template = "I have the following code from {{filename}}:\n\n"
|
||||||
|
.. "```{{filetype}}\n{{selection}}\n```\n\n"
|
||||||
|
.. "Please respond by writing table driven unit tests for the code above."
|
||||||
|
local agent = gp.get_command_agent()
|
||||||
|
gp.Prompt(params, gp.Target.vnew, agent, template)
|
||||||
|
end,
|
||||||
|
-- example of adding command which explains the selected code
|
||||||
|
Explain = function(gp, params)
|
||||||
|
local template = "I have the following code from {{filename}}:\n\n"
|
||||||
|
.. "```{{filetype}}\n{{selection}}\n```\n\n"
|
||||||
|
.. "Please respond by explaining the code above."
|
||||||
|
local agent = gp.get_chat_agent()
|
||||||
|
gp.Prompt(params, gp.Target.popup, agent, template)
|
||||||
|
end,
|
||||||
|
-- example of usig enew as a function specifying type for the new buffer
|
||||||
|
CodeReview = function(gp, params)
|
||||||
|
local template = "I have the following code from {{filename}}:\n\n"
|
||||||
|
.. "```{{filetype}}\n{{selection}}\n```\n\n"
|
||||||
|
.. "Please analyze for code smells and suggest improvements."
|
||||||
|
local agent = gp.get_chat_agent()
|
||||||
|
gp.Prompt(params, gp.Target.enew("markdown"), agent, template)
|
||||||
|
end,
|
||||||
|
-- example of adding command which opens new chat dedicated for translation
|
||||||
|
Translator = function(gp, params)
|
||||||
|
local chat_system_prompt =
|
||||||
|
"You are a Translator, please translate between English and Chinese."
|
||||||
|
gp.cmd.ChatNew(params, chat_system_prompt)
|
||||||
|
end,
|
||||||
|
-- example of making :%GpChatNew a dedicated command which
|
||||||
|
-- opens new chat with the entire current buffer as a context
|
||||||
|
BufferChatNew = function(gp, _)
|
||||||
|
-- call GpChatNew command in range mode on whole buffer
|
||||||
|
vim.api.nvim_command("%" .. gp.config.cmd_prefix .. "ChatNew")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
--- Telescope configuration options
|
--- Telescope configuration options
|
||||||
M.telescope = {
|
M.telescope = {
|
||||||
cmdline = {
|
cmdline = {
|
||||||
@@ -541,51 +649,68 @@ M.whichkey = {
|
|||||||
|
|
||||||
--- Git-Graph plugin options
|
--- Git-Graph plugin options
|
||||||
M.gitgraph = {
|
M.gitgraph = {
|
||||||
--- Git-graph symbols check for kitty
|
opts = {
|
||||||
symbols = function()
|
-- GitGraph Hooks
|
||||||
if require("data.func").is_kitty() then
|
hooks = {
|
||||||
return {
|
-- Check diff of a commit
|
||||||
merge_commit = "",
|
on_select_commit = function(commit)
|
||||||
commit = "",
|
vim.notify("DiffviewOpen " .. commit.hash .. "^!")
|
||||||
merge_commit_end = "",
|
vim.cmd(":DiffviewOpen " .. commit.hash .. "^!")
|
||||||
commit_end = "",
|
end,
|
||||||
|
-- Check diff from commit a -> commit b
|
||||||
|
on_select_range_commit = function(from, to)
|
||||||
|
vim.notify("DiffviewOpen " .. from.hash .. "~1.." .. to.hash)
|
||||||
|
vim.cmd(":DiffviewOpen " .. from.hash .. "~1.." .. to.hash)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
--- Git-graph symbols check for kitty
|
||||||
|
symbols = function()
|
||||||
|
if require("data.func").is_kitty() then
|
||||||
|
return {
|
||||||
|
merge_commit = "",
|
||||||
|
commit = "",
|
||||||
|
merge_commit_end = "",
|
||||||
|
commit_end = "",
|
||||||
|
|
||||||
-- Advanced symbols
|
-- Advanced symbols
|
||||||
GVER = "",
|
GVER = "",
|
||||||
GHOR = "",
|
GHOR = "",
|
||||||
GCLD = "",
|
GCLD = "",
|
||||||
GCRD = "╭",
|
GCRD = "╭",
|
||||||
GCLU = "",
|
GCLU = "",
|
||||||
GCRU = "",
|
GCRU = "",
|
||||||
GLRU = "",
|
GLRU = "",
|
||||||
GLRD = "",
|
GLRD = "",
|
||||||
GLUD = "",
|
GLUD = "",
|
||||||
GRUD = "",
|
GRUD = "",
|
||||||
GFORKU = "",
|
GFORKU = "",
|
||||||
GFORKD = "",
|
GFORKD = "",
|
||||||
GRUDCD = "",
|
GRUDCD = "",
|
||||||
GRUDCU = "",
|
GRUDCU = "",
|
||||||
GLUDCD = "",
|
GLUDCD = "",
|
||||||
GLUDCU = "",
|
GLUDCU = "",
|
||||||
GLRDCL = "",
|
GLRDCL = "",
|
||||||
GLRDCR = "",
|
GLRDCR = "",
|
||||||
GLRUCL = "",
|
GLRUCL = "",
|
||||||
GLRUCR = "",
|
GLRUCR = "",
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
-- Fallback
|
-- Fallback
|
||||||
return {
|
return {
|
||||||
merge_commit = "",
|
merge_commit = "",
|
||||||
commit = "",
|
commit = "",
|
||||||
merge_commit_end = "",
|
merge_commit_end = "",
|
||||||
commit_end = "",
|
commit_end = "",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
-- Git graph timestamp style
|
format = {
|
||||||
timestamp = "%H:%M:%S %d-%m-%Y",
|
-- Git graph timestamp style
|
||||||
-- Git graph fields to display
|
timestamp = "%H:%M:%S %d-%m-%Y",
|
||||||
fields = { "hash", "timestamp", "author", "branch_name", "tag" },
|
-- Git graph fields to display
|
||||||
|
fields = { "hash", "timestamp", "author", "branch_name", "tag" },
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Highlights module options
|
--- Highlights module options
|
||||||
@@ -611,8 +736,18 @@ M.ibl = {
|
|||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
},
|
},
|
||||||
|
solid = {
|
||||||
|
"▏",
|
||||||
|
"▎",
|
||||||
|
"▍",
|
||||||
|
"▌",
|
||||||
|
"▋",
|
||||||
|
"▊",
|
||||||
|
"▉",
|
||||||
|
"█",
|
||||||
|
},
|
||||||
none = { " " },
|
none = { " " },
|
||||||
basic = { "" },
|
baric = { "" },
|
||||||
},
|
},
|
||||||
scope_char = {
|
scope_char = {
|
||||||
light = { "" },
|
light = { "" },
|
||||||
@@ -624,6 +759,122 @@ M.ibl = {
|
|||||||
arrow = { "" },
|
arrow = { "" },
|
||||||
tab = { "" },
|
tab = { "" },
|
||||||
},
|
},
|
||||||
|
tab_char = {
|
||||||
|
fancy = {
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
},
|
||||||
|
none = { " " },
|
||||||
|
basic = { "" },
|
||||||
|
simple = { "" },
|
||||||
|
arrow = { "" },
|
||||||
|
tab = { "" },
|
||||||
|
mini = { "" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
--- Mini.Indentscope configuration options
|
||||||
|
M.miniindentscope = {
|
||||||
|
symbol = M.ibl.scope_char.hard[1],
|
||||||
|
options = { try_as_border = true, border = "both" },
|
||||||
|
}
|
||||||
|
|
||||||
|
--- Navic Icons
|
||||||
|
M.navic = {
|
||||||
|
icons = {
|
||||||
|
classic = {
|
||||||
|
File = " ",
|
||||||
|
Module = " ",
|
||||||
|
Namespace = " ",
|
||||||
|
Package = " ",
|
||||||
|
Class = " ",
|
||||||
|
Method = " ",
|
||||||
|
Property = " ",
|
||||||
|
Field = " ",
|
||||||
|
Constructor = " ",
|
||||||
|
Enum = "",
|
||||||
|
Interface = "",
|
||||||
|
Function = " ",
|
||||||
|
Variable = " ",
|
||||||
|
Constant = " ",
|
||||||
|
String = " ",
|
||||||
|
Number = " ",
|
||||||
|
Boolean = "◩ ",
|
||||||
|
Array = " ",
|
||||||
|
Object = " ",
|
||||||
|
Key = " ",
|
||||||
|
Null = " ",
|
||||||
|
EnumMember = " ",
|
||||||
|
Struct = " ",
|
||||||
|
Event = " ",
|
||||||
|
Operator = " ",
|
||||||
|
TypeParameter = " ",
|
||||||
|
},
|
||||||
|
trouble = {
|
||||||
|
File = " ",
|
||||||
|
Module = " ",
|
||||||
|
Namespace = " ",
|
||||||
|
Package = " ",
|
||||||
|
Class = " ",
|
||||||
|
Method = " ",
|
||||||
|
Property = " ",
|
||||||
|
Field = " ",
|
||||||
|
Constructor = " ",
|
||||||
|
Enum = " ",
|
||||||
|
Interface = " ",
|
||||||
|
Function = " ",
|
||||||
|
Variable = " ",
|
||||||
|
Constant = " ",
|
||||||
|
String = " ",
|
||||||
|
Number = " ",
|
||||||
|
Boolean = " ",
|
||||||
|
Array = " ",
|
||||||
|
Object = " ",
|
||||||
|
Key = " ",
|
||||||
|
Null = " ",
|
||||||
|
EnumMember = " ",
|
||||||
|
Struct = " ",
|
||||||
|
Event = " ",
|
||||||
|
Operator = " ",
|
||||||
|
TypeParameter = " ",
|
||||||
|
},
|
||||||
|
vscode = {
|
||||||
|
File = " ",
|
||||||
|
Module = " ",
|
||||||
|
Namespace = " ",
|
||||||
|
Package = " ",
|
||||||
|
Class = " ",
|
||||||
|
Method = " ",
|
||||||
|
Property = " ",
|
||||||
|
Field = " ",
|
||||||
|
Constructor = " ",
|
||||||
|
Enum = " ",
|
||||||
|
Interface = " ",
|
||||||
|
Function = " ",
|
||||||
|
Variable = " ",
|
||||||
|
Constant = " ",
|
||||||
|
String = " ",
|
||||||
|
Number = " ",
|
||||||
|
Boolean = " ",
|
||||||
|
Array = " ",
|
||||||
|
Object = " ",
|
||||||
|
Key = " ",
|
||||||
|
Null = " ",
|
||||||
|
EnumMember = " ",
|
||||||
|
Struct = " ",
|
||||||
|
Event = " ",
|
||||||
|
Operator = " ",
|
||||||
|
TypeParameter = " ",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Smart-Splits plugin options
|
--- Smart-Splits plugin options
|
||||||
@@ -638,7 +889,6 @@ M.smart_splits = {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Neominiap plugin options
|
--- Neominiap plugin options
|
||||||
M.minimap = {
|
M.minimap = {
|
||||||
-- Width of minimap
|
-- Width of minimap
|
||||||
@@ -737,6 +987,7 @@ M.trouble = {
|
|||||||
opts = {
|
opts = {
|
||||||
modes = {
|
modes = {
|
||||||
symbols = { -- Configure symbols mode
|
symbols = { -- Configure symbols mode
|
||||||
|
focus = true,
|
||||||
win = {
|
win = {
|
||||||
type = "split", -- split window
|
type = "split", -- split window
|
||||||
relative = "win", -- relative to current window
|
relative = "win", -- relative to current window
|
||||||
@@ -745,6 +996,22 @@ M.trouble = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
icons = {
|
||||||
|
indent = {
|
||||||
|
top = " ",
|
||||||
|
-- middle = "├╴",
|
||||||
|
middle = "",
|
||||||
|
-- last = "└╴",
|
||||||
|
-- last = "-╴",
|
||||||
|
last = "╰╴",
|
||||||
|
fold_open = " ",
|
||||||
|
fold_closed = " ",
|
||||||
|
ws = " ",
|
||||||
|
},
|
||||||
|
folder_closed = " ",
|
||||||
|
folder_open = " ",
|
||||||
|
kinds = M.navic.icons.vscode,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1003,6 +1270,9 @@ M.auto_dark_mode = {
|
|||||||
--- Image.nvim enabled filetypes
|
--- Image.nvim enabled filetypes
|
||||||
M.image = "markdown"
|
M.image = "markdown"
|
||||||
|
|
||||||
|
--- Noice configuration options
|
||||||
|
M.noice = { presets = { inc_rename = true } }
|
||||||
|
|
||||||
--- Todo-comments plugin options
|
--- Todo-comments plugin options
|
||||||
M.todo = {
|
M.todo = {
|
||||||
keywords = {
|
keywords = {
|
||||||
@@ -1079,6 +1349,13 @@ M.colorful_winsep = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--- Colorful Window Separators configuration options
|
||||||
|
M.winsep = {
|
||||||
|
only_line_seq = false,
|
||||||
|
symbols = M.colorful_winsep.symbols,
|
||||||
|
no_exec_files = M.colorful_winsep.no_exec_files,
|
||||||
|
}
|
||||||
|
|
||||||
--- Toggleterm plugin options
|
--- Toggleterm plugin options
|
||||||
M.toggleterm = {
|
M.toggleterm = {
|
||||||
--- Sets the terminal panel size
|
--- Sets the terminal panel size
|
||||||
|
|||||||
+11
-13
@@ -31,19 +31,17 @@ return {
|
|||||||
opts = { provider = "openai" },
|
opts = { provider = "openai" },
|
||||||
enabled = data.cond.minuet,
|
enabled = data.cond.minuet,
|
||||||
},
|
},
|
||||||
-- {
|
{ -- ChatGPT
|
||||||
-- "jackMort/ChatGPT.nvim",
|
"jackMort/ChatGPT.nvim",
|
||||||
-- event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
-- opts = {},
|
keys = data.keys.chatgpt.func,
|
||||||
-- dependencies = {
|
opts = data.types.chatgpt,
|
||||||
-- "MunifTanjim/nui.nvim",
|
dependencies = data.deps.chatgpt,
|
||||||
-- "nvim-lua/plenary.nvim",
|
},
|
||||||
-- "folke/trouble.nvim",
|
{ -- GP
|
||||||
-- "nvim-telescope/telescope.nvim",
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
{
|
|
||||||
"robitx/gp.nvim",
|
"robitx/gp.nvim",
|
||||||
opts = {},
|
lazy = false,
|
||||||
|
opts = data.types.gp,
|
||||||
|
keys = data.keys.gp.func,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-4
@@ -57,6 +57,17 @@ return { -- cmp
|
|||||||
}
|
}
|
||||||
luasnip.config.setup({})
|
luasnip.config.setup({})
|
||||||
|
|
||||||
|
local has_words_before = function()
|
||||||
|
unpack = unpack or table.unpack
|
||||||
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
|
return col ~= 0
|
||||||
|
and vim.api
|
||||||
|
.nvim_buf_get_lines(0, line - 1, line, true)[1]
|
||||||
|
:sub(col, col)
|
||||||
|
:match("%s")
|
||||||
|
== nil
|
||||||
|
end
|
||||||
|
|
||||||
cmp.setup({
|
cmp.setup({
|
||||||
snippet = {
|
snippet = {
|
||||||
expand = function(args)
|
expand = function(args)
|
||||||
@@ -78,14 +89,33 @@ return { -- cmp
|
|||||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||||
["<C-y>"] = cmp.mapping.confirm({ select = true }),
|
["<C-y>"] = cmp.mapping.confirm({ select = true }),
|
||||||
["<C-Space>"] = cmp.mapping.complete({}),
|
["<C-Space>"] = cmp.mapping.complete({}),
|
||||||
["<Tab>"] = cmp.mapping(function()
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
if luasnip.expand_or_locally_jumpable() then
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
-- cmp.confirm({ select = true })
|
||||||
|
elseif luasnip.expand_or_locally_jumpable() then
|
||||||
luasnip.expand_or_jump()
|
luasnip.expand_or_jump()
|
||||||
|
elseif vim.snippet.active({ direction = 1 }) then
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.snippet.jump(1)
|
||||||
|
end)
|
||||||
|
elseif has_words_before() then
|
||||||
|
cmp.complete()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
end
|
end
|
||||||
end, { "i", "s" }),
|
end, { "i", "s" }),
|
||||||
["<S-Tab>"] = cmp.mapping(function()
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
if luasnip.locally_jumpable(-1) then
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.locally_jumpable(-1) then
|
||||||
luasnip.jump(-1)
|
luasnip.jump(-1)
|
||||||
|
elseif vim.snippet.active({ direction = -1 }) then
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.snippet.jump(-1)
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
end
|
end
|
||||||
end, { "i", "s" }),
|
end, { "i", "s" }),
|
||||||
}),
|
}),
|
||||||
@@ -98,8 +128,10 @@ return { -- cmp
|
|||||||
{ name = "dotenv" },
|
{ name = "dotenv" },
|
||||||
{ name = "calc" },
|
{ name = "calc" },
|
||||||
{ name = "conventionalcommits" },
|
{ name = "conventionalcommits" },
|
||||||
|
{ name = "nerd", priority = 9997 },
|
||||||
{ name = "gitmoji", priority = 9998 },
|
{ name = "gitmoji", priority = 9998 },
|
||||||
{ name = "emoji", priority = 9999 },
|
{ name = "emoji", priority = 9999 },
|
||||||
|
{ name = "math", priority = 9999 },
|
||||||
},
|
},
|
||||||
formatting = {
|
formatting = {
|
||||||
fields = { "abbr", "kind", "menu" },
|
fields = { "abbr", "kind", "menu" },
|
||||||
|
|||||||
+19
-44
@@ -24,6 +24,16 @@ return {
|
|||||||
{ -- Treesitter-context
|
{ -- Treesitter-context
|
||||||
import = "lazyvim.plugins.extras.ui.treesitter-context",
|
import = "lazyvim.plugins.extras.ui.treesitter-context",
|
||||||
},
|
},
|
||||||
|
{ -- Mini.Indentscope
|
||||||
|
import = "lazyvim.plugins.extras.ui.mini-indentscope",
|
||||||
|
},
|
||||||
|
{ -- Mini Indentscope
|
||||||
|
"echasnovski/mini.indentscope",
|
||||||
|
opts = data.types.miniindentscope,
|
||||||
|
},
|
||||||
|
{ -- Navic
|
||||||
|
import = "lazyvim.plugins.extras.editor.navic",
|
||||||
|
},
|
||||||
{ -- Trouble
|
{ -- Trouble
|
||||||
"folke/trouble.nvim",
|
"folke/trouble.nvim",
|
||||||
cmd = data.cmd.trouble,
|
cmd = data.cmd.trouble,
|
||||||
@@ -31,9 +41,7 @@ return {
|
|||||||
},
|
},
|
||||||
{ -- Flash
|
{ -- Flash
|
||||||
"folke/flash.nvim",
|
"folke/flash.nvim",
|
||||||
opts = {
|
opts = data.types.flash,
|
||||||
modes = { char = { jump_labels = true } },
|
|
||||||
},
|
|
||||||
keys = data.keys.flash,
|
keys = data.keys.flash,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -52,7 +60,7 @@ return {
|
|||||||
{ -- NeoMiniMap
|
{ -- NeoMiniMap
|
||||||
"Isrothy/neominimap.nvim",
|
"Isrothy/neominimap.nvim",
|
||||||
lazy = false,
|
lazy = false,
|
||||||
keys = data.keys.minimap,
|
keys = data.keys.minimap.func,
|
||||||
init = data.types.minimap.init(),
|
init = data.types.minimap.init(),
|
||||||
cond = data.types.minimap.cond(),
|
cond = data.types.minimap.cond(),
|
||||||
},
|
},
|
||||||
@@ -81,16 +89,12 @@ return {
|
|||||||
"gen740/SmoothCursor.nvim",
|
"gen740/SmoothCursor.nvim",
|
||||||
event = "BufEnter",
|
event = "BufEnter",
|
||||||
-- lazy = true,
|
-- lazy = true,
|
||||||
opts = {
|
opts = data.types.smoothcursor,
|
||||||
cursor = "",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{ -- Smart Scrolloff
|
{ -- Smart Scrolloff
|
||||||
"tonymajestro/smart-scrolloff.nvim",
|
"tonymajestro/smart-scrolloff.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
opts = {
|
opts = data.types.smartscrolloff,
|
||||||
scrolloff_percentage = 0.25,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{ -- Recorder
|
{ -- Recorder
|
||||||
"chrisgrieser/nvim-recorder",
|
"chrisgrieser/nvim-recorder",
|
||||||
@@ -114,19 +118,13 @@ return {
|
|||||||
{ -- Colorful window separators
|
{ -- Colorful window separators
|
||||||
"nvim-zh/colorful-winsep.nvim",
|
"nvim-zh/colorful-winsep.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
opts = {
|
opts = data.types.winsep,
|
||||||
only_line_seq = false,
|
|
||||||
symbols = data.types.colorful_winsep.symbols,
|
|
||||||
no_exec_files = data.types.colorful_winsep.no_exec_files,
|
|
||||||
},
|
|
||||||
event = { "WinLeave" },
|
event = { "WinLeave" },
|
||||||
},
|
},
|
||||||
{ -- Auto Cursorline
|
{ -- Auto Cursorline
|
||||||
"delphinus/auto-cursorline.nvim",
|
"delphinus/auto-cursorline.nvim",
|
||||||
enabled = data.func.check_global_var("auto_cursorline", true, true),
|
enabled = data.func.check_global_var("auto_cursorline", true, true),
|
||||||
opts = {
|
opts = data.types.autocursorline,
|
||||||
wait_ms = 2000,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{ -- Bars N Lines
|
{ -- Bars N Lines
|
||||||
"OXY2DEV/bars-N-lines.nvim",
|
"OXY2DEV/bars-N-lines.nvim",
|
||||||
@@ -134,31 +132,10 @@ return {
|
|||||||
lazy = false,
|
lazy = false,
|
||||||
config = data.types.barsNlines.config,
|
config = data.types.barsNlines.config,
|
||||||
},
|
},
|
||||||
{ -- UndoTree Telescope extension
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
dependencies = {
|
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
"debugloop/telescope-undo.nvim",
|
|
||||||
},
|
|
||||||
opts = function()
|
|
||||||
require("telescope").load_extension("undo")
|
|
||||||
vim.keymap.set("n", "<leader>uU", "<cmd>Telescope undo<cr>")
|
|
||||||
return {
|
|
||||||
extensions = {
|
|
||||||
undo = {},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ -- UndoTree
|
{ -- UndoTree
|
||||||
"mbbill/undotree",
|
"mbbill/undotree",
|
||||||
config = function()
|
opts = {},
|
||||||
data.func.add_keymap(
|
keys = data.keys.undotree,
|
||||||
"<leader>uu",
|
|
||||||
"<cmd>UndotreeToggle<cr>",
|
|
||||||
"Toggle UndoTree"
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
},
|
},
|
||||||
{ -- NumberToggle
|
{ -- NumberToggle
|
||||||
"sitiom/nvim-numbertoggle",
|
"sitiom/nvim-numbertoggle",
|
||||||
@@ -166,8 +143,6 @@ return {
|
|||||||
{
|
{
|
||||||
"folke/noice.nvim",
|
"folke/noice.nvim",
|
||||||
optional = true,
|
optional = true,
|
||||||
opts = {
|
opts = data.types.noice,
|
||||||
presets = { inc_rename = true },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-23
@@ -13,7 +13,7 @@ return {
|
|||||||
"Rawnly/gist.nvim",
|
"Rawnly/gist.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
cmd = data.cmd.gist,
|
cmd = data.cmd.gist,
|
||||||
keys = data.keys.gist,
|
keys = data.keys.gist.func,
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
{ -- LazyGit
|
{ -- LazyGit
|
||||||
@@ -46,28 +46,7 @@ return {
|
|||||||
},
|
},
|
||||||
{ -- Git Graph
|
{ -- Git Graph
|
||||||
"isakbm/gitgraph.nvim",
|
"isakbm/gitgraph.nvim",
|
||||||
opts = {
|
opts = data.types.gitgraph.opts,
|
||||||
symbols = data.types.gitgraph.symbols(),
|
|
||||||
format = {
|
|
||||||
timestamp = data.types.gitgraph.timestamp,
|
|
||||||
fields = data.types.gitgraph.fields,
|
|
||||||
},
|
|
||||||
hooks = {
|
|
||||||
-- Check diff of a commit
|
|
||||||
on_select_commit = function(commit)
|
|
||||||
vim.notify("DiffviewOpen " .. commit.hash .. "^!")
|
|
||||||
vim.cmd(":DiffviewOpen " .. commit.hash .. "^!")
|
|
||||||
end,
|
|
||||||
-- Check diff from commit a -> commit b
|
|
||||||
on_select_range_commit = function(from, to)
|
|
||||||
vim.notify("DiffviewOpen " .. from.hash .. "~1.." .. to.hash)
|
|
||||||
vim.cmd(":DiffviewOpen " .. from.hash .. "~1.." .. to.hash)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
keys = data.keys.gitgraph,
|
keys = data.keys.gitgraph,
|
||||||
},
|
},
|
||||||
{ -- Telescope Git Worktree
|
|
||||||
"ThePrimeagen/git-worktree.nvim",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,34 +1,14 @@
|
|||||||
|
local data = require("data")
|
||||||
|
|
||||||
return { -- Neovim Updater
|
return { -- Neovim Updater
|
||||||
"rootiest/nvim-updater.nvim",
|
"rootiest/nvim-updater.nvim",
|
||||||
lazy = false,
|
lazy = false,
|
||||||
opts = {},
|
opts = {},
|
||||||
keys = {
|
keys = function()
|
||||||
{
|
-- Add Neovim Updater menu
|
||||||
"<Leader>quU",
|
data.func.add_keymap(data.keys.group.nvimup)
|
||||||
":UpdateNeovim<CR>",
|
-- Add Neovim Updater keys
|
||||||
desc = "Update Neovim",
|
return data.keys.nvimup
|
||||||
},
|
end,
|
||||||
{
|
|
||||||
"<Leader>quD",
|
|
||||||
function()
|
|
||||||
require("nvim_updater").update_neovim({ build_type = "Debug" })
|
|
||||||
end,
|
|
||||||
desc = "Debug Build Neovim",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<Leader>quR",
|
|
||||||
function()
|
|
||||||
require("nvim_updater").update_neovim({ build_type = "Release" })
|
|
||||||
end,
|
|
||||||
desc = "Release Build Neovim",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<Leader>quC",
|
|
||||||
function()
|
|
||||||
require("nvim_updater").remove_source_dir()
|
|
||||||
end,
|
|
||||||
desc = "Clean Neovim Source",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
dev = vim.g.rootiest_dev or false,
|
dev = vim.g.rootiest_dev or false,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
|
-- │ Telescope Plugins │
|
||||||
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
|
---@module "plugins.telescope"
|
||||||
|
--- This module defines the telescope plugins specs for the Neovim configuration.
|
||||||
|
|
||||||
|
local data = require("data")
|
||||||
|
|
||||||
|
local P = { -- Define Telescope Plugins Specs
|
||||||
|
{ -- Telescope Cmdline
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"jonarrien/telescope-cmdline.nvim",
|
||||||
|
},
|
||||||
|
keys = data.keys.telescope.cmdline,
|
||||||
|
opts = data.types.telescope.cmdline,
|
||||||
|
config = function(_, opts)
|
||||||
|
require("telescope").setup(opts)
|
||||||
|
require("telescope").load_extension("cmdline")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{ -- Telescope All Recent
|
||||||
|
"prochri/telescope-all-recent.nvim",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
"kkharji/sqlite.lua",
|
||||||
|
-- optional, if using telescope for vim.ui.select
|
||||||
|
"stevearc/dressing.nvim",
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
default = {
|
||||||
|
disable = true, -- disable any unkown pickers (recommended)
|
||||||
|
use_cwd = true, -- differentiate scoring for each picker based on cwd
|
||||||
|
sorting = "frecency", -- sorting: options: 'recent' and 'frecency'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ -- Telescope Spell checker
|
||||||
|
"matkrin/telescope-spell-errors.nvim",
|
||||||
|
lazy = true,
|
||||||
|
cmd = data.cmd.spell_errors,
|
||||||
|
config = function()
|
||||||
|
require("telescope").load_extension("spell_errors")
|
||||||
|
end,
|
||||||
|
dependencies = data.deps.needs_telescope,
|
||||||
|
},
|
||||||
|
{ -- Telescope symbols
|
||||||
|
"nvim-telescope/telescope-symbols.nvim",
|
||||||
|
config = function() end,
|
||||||
|
keys = data.keys.telescope.symbols,
|
||||||
|
lazy = false,
|
||||||
|
},
|
||||||
|
{ -- Telescope Toggleterm
|
||||||
|
"ryanmsnyder/toggleterm-manager.nvim",
|
||||||
|
dependencies = {
|
||||||
|
"akinsho/nvim-toggleterm.lua",
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
"nvim-lua/plenary.nvim", -- only needed because it's a dependency of telescope
|
||||||
|
},
|
||||||
|
config = true,
|
||||||
|
keys = data.keys.telescope.toggleterm,
|
||||||
|
},
|
||||||
|
{ -- Telescope Lazy
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
dependencies = "tsakirist/telescope-lazy.nvim",
|
||||||
|
keys = data.keys.telescope.lazy,
|
||||||
|
},
|
||||||
|
{ -- Telescope Luasnip
|
||||||
|
"benfowler/telescope-luasnip.nvim",
|
||||||
|
module = "telescope._extensions.luasnip", -- if you wish to lazy-load
|
||||||
|
config = function()
|
||||||
|
require("telescope").load_extension("luasnip")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{ -- Telescope Git Worktree
|
||||||
|
"ThePrimeagen/git-worktree.nvim",
|
||||||
|
},
|
||||||
|
{ -- UndoTree Telescope extension
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"debugloop/telescope-undo.nvim",
|
||||||
|
},
|
||||||
|
opts = function()
|
||||||
|
require("telescope").load_extension("undo")
|
||||||
|
vim.keymap.set("n", "<leader>uU", "<cmd>Telescope undo<cr>")
|
||||||
|
return {
|
||||||
|
extensions = {
|
||||||
|
undo = {},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return P
|
||||||
+5
-84
@@ -32,11 +32,7 @@ return {
|
|||||||
enabled = data.func.check_global_var("auto_save", true, true),
|
enabled = data.func.check_global_var("auto_save", true, true),
|
||||||
cmd = data.cmd.autosave,
|
cmd = data.cmd.autosave,
|
||||||
event = { "InsertLeave", "TextChanged" },
|
event = { "InsertLeave", "TextChanged" },
|
||||||
opts = {
|
opts = data.types.autosave,
|
||||||
execution_message = {
|
|
||||||
enabled = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{ -- Ripgrep substitute
|
{ -- Ripgrep substitute
|
||||||
"chrisgrieser/nvim-rip-substitute",
|
"chrisgrieser/nvim-rip-substitute",
|
||||||
@@ -55,21 +51,13 @@ return {
|
|||||||
enabled = data.func.check_global_var("codesnap", true, true),
|
enabled = data.func.check_global_var("codesnap", true, true),
|
||||||
lazy = true,
|
lazy = true,
|
||||||
build = "make",
|
build = "make",
|
||||||
opts = {
|
opts = data.types.codesnap,
|
||||||
save_path = "~/Pictures/Screenshots/",
|
|
||||||
has_breadcrumbs = true,
|
|
||||||
show_workspace = true,
|
|
||||||
bg_theme = "default",
|
|
||||||
watermark = "Rootiest Snippets",
|
|
||||||
code_font_family = "Iosevka NF",
|
|
||||||
code_font_size = 12,
|
|
||||||
},
|
|
||||||
cmd = data.cmd.codesnap,
|
cmd = data.cmd.codesnap,
|
||||||
keys = data.keys.codesnap,
|
keys = data.keys.codesnap,
|
||||||
},
|
},
|
||||||
{ -- Kulala
|
{ -- Kulala
|
||||||
"mistweaverco/kulala.nvim",
|
"mistweaverco/kulala.nvim",
|
||||||
ft = { "http", "https", "ftp", "ftps" },
|
ft = data.types.kulala.ft,
|
||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
{ -- Hardtime
|
{ -- Hardtime
|
||||||
@@ -110,6 +98,7 @@ return {
|
|||||||
},
|
},
|
||||||
{ -- Encourage
|
{ -- Encourage
|
||||||
"r-cha/encourage.nvim",
|
"r-cha/encourage.nvim",
|
||||||
|
enabled = data.func.check_global_var("encourage", true, true),
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
{ -- Helpview
|
{ -- Helpview
|
||||||
@@ -120,19 +109,7 @@ return {
|
|||||||
{ -- Suda
|
{ -- Suda
|
||||||
"lambdalisue/vim-suda",
|
"lambdalisue/vim-suda",
|
||||||
cmd = data.cmd.suda,
|
cmd = data.cmd.suda,
|
||||||
config = function()
|
config = data.types.suda,
|
||||||
vim.g.suda_smart_edit = 1
|
|
||||||
vim.cmd("let g:suda#prompt = ' Enter Sudo Password '")
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ -- Spell checker
|
|
||||||
"matkrin/telescope-spell-errors.nvim",
|
|
||||||
lazy = true,
|
|
||||||
cmd = data.cmd.spell_errors,
|
|
||||||
config = function()
|
|
||||||
require("telescope").load_extension("spell_errors")
|
|
||||||
end,
|
|
||||||
dependencies = data.deps.needs_telescope,
|
|
||||||
},
|
},
|
||||||
{ -- Pigeon
|
{ -- Pigeon
|
||||||
"Pheon-Dev/pigeon",
|
"Pheon-Dev/pigeon",
|
||||||
@@ -144,60 +121,4 @@ return {
|
|||||||
enable_line_number = true,
|
enable_line_number = true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ -- Telescope Cmdline
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
dependencies = {
|
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
"jonarrien/telescope-cmdline.nvim",
|
|
||||||
},
|
|
||||||
keys = data.keys.telescope.cmdline,
|
|
||||||
opts = data.types.telescope.cmdline,
|
|
||||||
config = function(_, opts)
|
|
||||||
require("telescope").setup(opts)
|
|
||||||
require("telescope").load_extension("cmdline")
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"prochri/telescope-all-recent.nvim",
|
|
||||||
dependencies = {
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
"kkharji/sqlite.lua",
|
|
||||||
-- optional, if using telescope for vim.ui.select
|
|
||||||
"stevearc/dressing.nvim",
|
|
||||||
},
|
|
||||||
opts = {
|
|
||||||
default = {
|
|
||||||
disable = true, -- disable any unkown pickers (recommended)
|
|
||||||
use_cwd = true, -- differentiate scoring for each picker based on cwd
|
|
||||||
sorting = "frecency", -- sorting: options: 'recent' and 'frecency'
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{ -- Telescope symbols
|
|
||||||
"nvim-telescope/telescope-symbols.nvim",
|
|
||||||
config = function() end,
|
|
||||||
keys = data.keys.telescope.symbols,
|
|
||||||
},
|
|
||||||
{ -- Telescope Toggleterm
|
|
||||||
"ryanmsnyder/toggleterm-manager.nvim",
|
|
||||||
dependencies = {
|
|
||||||
"akinsho/nvim-toggleterm.lua",
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
"nvim-lua/plenary.nvim", -- only needed because it's a dependency of telescope
|
|
||||||
},
|
|
||||||
config = true,
|
|
||||||
keys = data.keys.telescope.toggleterm,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
dependencies = "tsakirist/telescope-lazy.nvim",
|
|
||||||
keys = data.keys.telescope.lazy,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"benfowler/telescope-luasnip.nvim",
|
|
||||||
module = "telescope._extensions.luasnip", -- if you wish to lazy-load
|
|
||||||
config = function()
|
|
||||||
require("telescope").load_extension("luasnip")
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,140 +0,0 @@
|
|||||||
---@module "utils.cmd_window"
|
|
||||||
--- This module provides a function to open a floating window with a completion menu.
|
|
||||||
-- ╭─────────────────────────────────────────────────────────╮
|
|
||||||
-- │ Rootiest Command Window │
|
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
|
||||||
|
|
||||||
local M = {}
|
|
||||||
|
|
||||||
function M.open_floating_window_with_completion()
|
|
||||||
local buf = vim.api.nvim_create_buf(false, true) -- Create a new buffer
|
|
||||||
local win_height = 1 -- Height of floating window
|
|
||||||
local win_width = math.floor(vim.o.columns * 0.25) -- Width of floating window
|
|
||||||
local row = math.floor((vim.o.lines - win_height) / 2) -- Position row
|
|
||||||
local col = math.floor((vim.o.columns - win_width) / 2) -- Position column
|
|
||||||
local win_border = "rounded"
|
|
||||||
|
|
||||||
-- Create a floating window
|
|
||||||
local win = vim.api.nvim_open_win(buf, true, {
|
|
||||||
relative = "editor",
|
|
||||||
width = win_width,
|
|
||||||
height = win_height,
|
|
||||||
col = col,
|
|
||||||
row = row,
|
|
||||||
border = win_border,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Set the buffer's filetype
|
|
||||||
vim.bo[buf].filetype = "cmdline" -- Set a unique filetype
|
|
||||||
|
|
||||||
-- Variables to manage history
|
|
||||||
_G.history_index = 0
|
|
||||||
_G.history_size = vim.fn.histnr("cmd")
|
|
||||||
|
|
||||||
-- Function to close the window
|
|
||||||
M.close_window = function()
|
|
||||||
vim.api.nvim_win_close(win, true) -- Close the window
|
|
||||||
-- Switch back to normal mode
|
|
||||||
vim.api.nvim_command("stopinsert")
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Function to execute the command
|
|
||||||
M.execute_command = function()
|
|
||||||
local cmd = vim.api.nvim_buf_get_lines(buf, 0, -1, false)[1] or ""
|
|
||||||
-- Ensure abbreviation expansion
|
|
||||||
vim.api.nvim_command("execute 'silent! " .. cmd .. "'")
|
|
||||||
M.close_window()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Function to handle navigation and clear buffer
|
|
||||||
M.handle_history_navigation = function(direction)
|
|
||||||
-- Update history index
|
|
||||||
_G.history_index = (_G.history_index + direction) % _G.history_size
|
|
||||||
if _G.history_index < 0 then
|
|
||||||
_G.history_index = _G.history_size - 1
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Clear the buffer
|
|
||||||
vim.api.nvim_buf_set_lines(buf, 0, -1, false, {})
|
|
||||||
|
|
||||||
-- Fetch history item and insert into buffer
|
|
||||||
local history_cmd = vim.fn["histget"]("cmd", _G.history_index + 1)
|
|
||||||
vim.api.nvim_buf_set_lines(buf, 0, -1, false, { history_cmd or "" })
|
|
||||||
vim.api.nvim_win_set_cursor(win, { 1, #history_cmd or 0 })
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Setup keymaps for buffer
|
|
||||||
-- Map <CR> to execute the command
|
|
||||||
vim.api.nvim_buf_set_keymap(
|
|
||||||
buf,
|
|
||||||
"i",
|
|
||||||
"<CR>",
|
|
||||||
[[<cmd>lua require('utils.cmd_window').execute_command()<CR>]],
|
|
||||||
{ noremap = true, silent = true }
|
|
||||||
)
|
|
||||||
-- Map <ESC> to close the window
|
|
||||||
vim.api.nvim_buf_set_keymap(
|
|
||||||
buf,
|
|
||||||
"i",
|
|
||||||
"<ESC>",
|
|
||||||
[[<cmd>lua require('utils.cmd_window').close_window()<CR>]],
|
|
||||||
{ noremap = true, silent = true }
|
|
||||||
)
|
|
||||||
-- Map <Up> to navigate command history
|
|
||||||
vim.api.nvim_buf_set_keymap(
|
|
||||||
buf,
|
|
||||||
"i",
|
|
||||||
"<Up>",
|
|
||||||
[[<cmd>lua require('utils.cmd_window').handle_history_navigation(-1)<CR>]],
|
|
||||||
{ noremap = true, silent = true }
|
|
||||||
)
|
|
||||||
-- Map <Down> to navigate command history
|
|
||||||
vim.api.nvim_buf_set_keymap(
|
|
||||||
buf,
|
|
||||||
"i",
|
|
||||||
"<Down>",
|
|
||||||
[[<cmd>lua require('utils.cmd_window').handle_history_navigation(1)<CR>]],
|
|
||||||
{ noremap = true, silent = true }
|
|
||||||
)
|
|
||||||
-- Map <C-n> to navigate command history
|
|
||||||
vim.api.nvim_buf_set_keymap(
|
|
||||||
buf,
|
|
||||||
"i",
|
|
||||||
"<C-n>",
|
|
||||||
[[<cmd>lua require('utils.cmd_window').handle_history_navigation(1)<CR>]],
|
|
||||||
{ noremap = true, silent = true }
|
|
||||||
)
|
|
||||||
-- Map <C-p> to navigate command history
|
|
||||||
vim.api.nvim_buf_set_keymap(
|
|
||||||
buf,
|
|
||||||
"i",
|
|
||||||
"<C-p>",
|
|
||||||
[[<cmd>lua require('utils.cmd_window').handle_history_navigation(-1)<CR>]],
|
|
||||||
{ noremap = true, silent = true }
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Start in insert mode
|
|
||||||
vim.api.nvim_command("startinsert")
|
|
||||||
end
|
|
||||||
|
|
||||||
M.setup = function(opts)
|
|
||||||
opts = opts or {}
|
|
||||||
|
|
||||||
-- Add a user command to open the floating window
|
|
||||||
vim.api.nvim_create_user_command(
|
|
||||||
"FloatingWindowWithCompletion",
|
|
||||||
M.open_floating_window_with_completion,
|
|
||||||
{}
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Optionally override default command-line behavior
|
|
||||||
if opts.override_cmdline then
|
|
||||||
require("data").func.add_keymap(
|
|
||||||
":",
|
|
||||||
"<cmd>lua require('utils.cmd_window').open_floating_window_with_completion()<cr>",
|
|
||||||
"FloatingWindowWithCompletion"
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
@@ -74,20 +74,19 @@ function M.setup_indent_highlight()
|
|||||||
require("ibl").setup({
|
require("ibl").setup({
|
||||||
indent = {
|
indent = {
|
||||||
char = vim.g.indent_char or data.types.ibl.indent_char.none,
|
char = vim.g.indent_char or data.types.ibl.indent_char.none,
|
||||||
|
tab_char = vim.g.tab_char or data.types.ibl.tab_char.simple,
|
||||||
highlight = {
|
highlight = {
|
||||||
"IndentBlanklineIndent",
|
"IndentBlanklineIndent",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
scope = {
|
scope = {
|
||||||
show_start = true,
|
enabled = false,
|
||||||
highlight = {
|
-- show_start = true,
|
||||||
"IndentsScopeHighlight",
|
-- highlight = {
|
||||||
"IndentsScopeHighlight",
|
-- "IndentsScopeHighlight",
|
||||||
},
|
-- "IndentsScopeHighlight",
|
||||||
char = vim.g.scope_char or data.types.ibl.scope_char.hard,
|
-- },
|
||||||
},
|
-- char = vim.g.scope_char or data.types.ibl.scope_char.hard,
|
||||||
whitespace = {
|
|
||||||
remove_blankline_trail = true,
|
|
||||||
},
|
},
|
||||||
exclude = {
|
exclude = {
|
||||||
filetypes = data.types.highlights.exclude,
|
filetypes = data.types.highlights.exclude,
|
||||||
|
|||||||
Reference in New Issue
Block a user