fresh
This commit is contained in:
commit
0cbbf662e3
473 files changed
+40489
No files matched your search
@@ -0,0 +1,43 @@
|
||||
return {
|
||||
{
|
||||
"Exafunction/codeium.vim",
|
||||
event = "InsertEnter",
|
||||
config = function()
|
||||
local opts = { expr = true, silent = true }
|
||||
|
||||
vim.g.codeium_filetypes = { TelescopePrompt = false, DressingInput = false }
|
||||
|
||||
vim.g.codeium_disable_bindings = 1
|
||||
|
||||
vim.keymap.set("i", "<M-CR>", function()
|
||||
return vim.fn["codeium#Accept"]()
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("i", "<M-]>", function()
|
||||
return vim.fn["codeium#CycleCompletions"](1)
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("i", "<M-[>", function()
|
||||
return vim.fn["codeium#CycleCompletions"](-1)
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("i", "<M-c>", function()
|
||||
return vim.fn["codeium#Clear"]()
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("n", "<leader>cI", "<cmd>CodeiumToggle<cr>", { desc = "Toggle IA" })
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
opts = function(_, opts)
|
||||
local icon = require("lazyvim.config").icons.kinds.Codeium
|
||||
local function show_codeium_status()
|
||||
return icon .. vim.fn["codeium#GetStatusString"]()
|
||||
end
|
||||
|
||||
-- Insert the icon
|
||||
table.insert(opts.sections.lualine_x, 2, show_codeium_status)
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
return {
|
||||
{
|
||||
import = "lazyvim.plugins.extras.coding.copilot",
|
||||
},
|
||||
{
|
||||
"zbirenbaum/copilot.lua",
|
||||
event = "InsertEnter",
|
||||
opts = {
|
||||
suggestion = {
|
||||
enabled = true,
|
||||
auto_trigger = true,
|
||||
keymap = {
|
||||
accept = "<M-CR>",
|
||||
accept_line = "<M-l>",
|
||||
accept_word = "<M-k>",
|
||||
next = "<M-]>",
|
||||
prev = "<M-[>",
|
||||
dismiss = "<M-c>",
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>cI", "<cmd>Copilot toggle<cr>", desc = "Toggle IA" },
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
return {
|
||||
{
|
||||
"jackMort/ChatGPT.nvim",
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
cond = function()
|
||||
local api_key = os.getenv("OPENAI_API_KEY")
|
||||
return api_key and api_key ~= "" and true or false
|
||||
end,
|
||||
opts = {
|
||||
edit_with_instructions = {
|
||||
diff = false,
|
||||
keymaps = {
|
||||
close = "<C-c>",
|
||||
accept = "<C-y>",
|
||||
toggle_diff = "<C-d>",
|
||||
toggle_settings = "<C-o>",
|
||||
cycle_windows = "<Tab>",
|
||||
use_output_as_input = "<C-i>",
|
||||
},
|
||||
},
|
||||
chat = {
|
||||
welcome_message = "",
|
||||
keymaps = {
|
||||
close = { "<C-c>" },
|
||||
yank_last = "<C-y>",
|
||||
yank_last_code = "<C-k>",
|
||||
scroll_up = "<C-u>",
|
||||
scroll_down = "<C-d>",
|
||||
new_session = "<C-n>",
|
||||
cycle_windows = "<Tab>",
|
||||
cycle_modes = "<C-f>",
|
||||
next_message = "<C-j>",
|
||||
prev_message = "<C-k>",
|
||||
select_session = { "<Space>", "o", "<cr>" },
|
||||
rename_session = "r",
|
||||
delete_session = "d",
|
||||
draft_message = "<C-d>",
|
||||
edit_message = "e",
|
||||
delete_message = "d",
|
||||
toggle_settings = "<C-o>",
|
||||
toggle_message_role = "<C-r>",
|
||||
toggle_system_role_open = "<C-s>",
|
||||
stop_generating = "<C-x>",
|
||||
},
|
||||
},
|
||||
openai_params = {
|
||||
model = "gpt-3.5-turbo-16k",
|
||||
-- model = "gpt-4",
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
max_tokens = 300,
|
||||
temperature = 0.3,
|
||||
top_p = 0.3,
|
||||
n = 1,
|
||||
-- temperature = 0,
|
||||
-- top_p = 1,
|
||||
},
|
||||
openai_edit_params = {
|
||||
model = "gpt-3.5-turbo-16k",
|
||||
-- model = "gpt-4",
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
temperature = 0,
|
||||
top_p = 1,
|
||||
n = 1,
|
||||
},
|
||||
show_quickfixes_cmd = "Trouble quickfix",
|
||||
-- actions_paths = { "~/.config/nvim/custom_actions.json" },
|
||||
},
|
||||
cmd = {
|
||||
"ChatGPT",
|
||||
"ChatGPTActAs",
|
||||
"ChatGPTCompleteCode",
|
||||
"ChatGPTEditWithInstructions",
|
||||
"ChatGPTRun",
|
||||
},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "<leader>Cc", "<cmd>ChatGPT<CR>", desc = "ChatGPT" },
|
||||
{ "<leader>Ce", "<cmd>ChatGPTEditWithInstruction<CR>", desc = "Edit with instruction", mode = { "n", "v" } },
|
||||
{ "<leader>Cg", "<cmd>ChatGPTRun grammar_correction<CR>", desc = "Grammar Correction", mode = { "n", "v" } },
|
||||
{ "<leader>Ct", "<cmd>ChatGPTRun translate<CR>", desc = "Translate", mode = { "n", "v" } },
|
||||
{ "<leader>Ck", "<cmd>ChatGPTRun keywords<CR>", desc = "Keywords", mode = { "n", "v" } },
|
||||
{ "<leader>Cd", "<cmd>ChatGPTRun docstring<CR>", desc = "Docstring", mode = { "n", "v" } },
|
||||
{ "<leader>CT", "<cmd>ChatGPTRun add_tests<CR>", desc = "Add Tests", mode = { "n", "v" } },
|
||||
{ "<leader>Co", "<cmd>ChatGPTRun optimize_code<CR>", desc = "Optimize Code", mode = { "n", "v" } },
|
||||
{ "<leader>Cs", "<cmd>ChatGPTRun summarize<CR>", desc = "Summarize", mode = { "n", "v" } },
|
||||
{ "<leader>Cf", "<cmd>ChatGPTRun fix_bugs<CR>", desc = "Fix Bugs", mode = { "n", "v" } },
|
||||
{ "<leader>Cx", "<cmd>ChatGPTRun explain_code<CR>", desc = "Explain Code", mode = { "n", "v" } },
|
||||
{ "<leader>Cr", "<cmd>ChatGPTRun roxygen_edit<CR>", desc = "Roxygen Edit", mode = { "n", "v" } },
|
||||
{ "<leader>Cl", "<cmd>ChatGPTRun code_readability_analysis<CR>", desc = "Code Readability Analysis", mode = { "n", "v" }, },
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
opts = {
|
||||
defaults = {
|
||||
["<leader>C"] = { name = " chatGPT" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
return {
|
||||
{
|
||||
"danymat/neogen",
|
||||
opts = {
|
||||
snippet_engine = "luasnip",
|
||||
enabled = true,
|
||||
},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "<leader>ad", function() require("neogen").generate() end, desc = "Default Annotation" },
|
||||
{ "<leader>ac", function() require("neogen").generate({ type = "class" }) end, desc = "Class" },
|
||||
{ "<leader>af", function() require("neogen").generate({ type = "func" }) end, desc = "Function" },
|
||||
{ "<leader>at", function() require("neogen").generate({ type = "type" }) end, desc = "Type" },
|
||||
{ "<leader>aF", function() require("neogen").generate({ type = "file" }) end, desc = "File" },
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
opts = {
|
||||
defaults = {
|
||||
["<leader>a"] = { name = " annotation" },
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"Zeioth/dooku.nvim",
|
||||
cmd = { "DookuGenerate", "DookuOpen", "DookuAutoSetup" },
|
||||
opts = {},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "<leader>ag", "<Cmd>DookuGenerate<CR>", desc = "Generate HTML Docs" },
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
return {
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"windwp/nvim-autopairs",
|
||||
opts = {},
|
||||
},
|
||||
opts = function()
|
||||
local cmp = require("cmp")
|
||||
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
||||
local ts_utils = require("nvim-treesitter.ts_utils")
|
||||
local ts_node_func_parens_disabled = {
|
||||
-- ecma
|
||||
named_imports = true,
|
||||
-- rust
|
||||
use_declaration = true,
|
||||
}
|
||||
|
||||
local npairs = require("nvim-autopairs")
|
||||
local Rule = require("nvim-autopairs.rule")
|
||||
local cond = require("nvim-autopairs.conds")
|
||||
local brackets = { { "(", ")" }, { "[", "]" }, { "{", "}" } }
|
||||
|
||||
local default_handler = cmp_autopairs.filetypes["*"]["("].handler
|
||||
cmp_autopairs.filetypes["*"]["("].handler = function(char, item, bufnr, rules, commit_character)
|
||||
local node_type = ts_utils.get_node_at_cursor():type()
|
||||
if ts_node_func_parens_disabled[node_type] then
|
||||
if item.data then
|
||||
item.data.funcParensDisabled = true
|
||||
else
|
||||
char = ""
|
||||
end
|
||||
end
|
||||
default_handler(char, item, bufnr, rules, commit_character)
|
||||
end
|
||||
|
||||
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
||||
|
||||
npairs.add_rules({
|
||||
-- Rule for a pair with left-side ' ' and right side ' '
|
||||
Rule(" ", " ")
|
||||
-- Pair will only occur if the conditional function returns true
|
||||
:with_pair(function(opts)
|
||||
-- We are checking if we are inserting a space in (), [], or {}
|
||||
local pair = opts.line:sub(opts.col - 1, opts.col)
|
||||
return vim.tbl_contains({
|
||||
brackets[1][1] .. brackets[1][2],
|
||||
brackets[2][1] .. brackets[2][2],
|
||||
brackets[3][1] .. brackets[3][2],
|
||||
}, pair)
|
||||
end)
|
||||
:with_move(cond.none())
|
||||
:with_cr(cond.none())
|
||||
-- We only want to delete the pair of spaces when the cursor is as such: ( | )
|
||||
:with_del(
|
||||
function(opts)
|
||||
local col = vim.api.nvim_win_get_cursor(0)[2]
|
||||
local context = opts.line:sub(col - 1, col + 2)
|
||||
return vim.tbl_contains({
|
||||
brackets[1][1] .. " " .. brackets[1][2],
|
||||
brackets[2][1] .. " " .. brackets[2][2],
|
||||
brackets[3][1] .. " " .. brackets[3][2],
|
||||
}, context)
|
||||
end
|
||||
),
|
||||
|
||||
-- Javascript arrow key
|
||||
Rule("%(.*%)%s*%=>$", " { }", { "typescript", "typescriptreact", "javascript" })
|
||||
:use_regex(true)
|
||||
:set_end_pair_length(2),
|
||||
|
||||
-- Auto addspace on =
|
||||
Rule("=", "")
|
||||
:with_pair(cond.not_inside_quote())
|
||||
:with_pair(function(opts)
|
||||
local last_char = opts.line:sub(opts.col - 1, opts.col - 1)
|
||||
if last_char:match("[%w%=%s]") then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end)
|
||||
:replace_endpair(function(opts)
|
||||
local prev_2char = opts.line:sub(opts.col - 2, opts.col - 1)
|
||||
local next_char = opts.line:sub(opts.col, opts.col)
|
||||
next_char = next_char == " " and "" or " "
|
||||
if prev_2char:match("%w$") then
|
||||
return "<bs> =" .. next_char
|
||||
end
|
||||
if prev_2char:match("%=$") then
|
||||
return next_char
|
||||
end
|
||||
if prev_2char:match("=") then
|
||||
return "<bs><bs>=" .. next_char
|
||||
end
|
||||
return ""
|
||||
end)
|
||||
:set_end_pair_length(0)
|
||||
:with_move(cond.none())
|
||||
:with_del(cond.none()),
|
||||
})
|
||||
|
||||
-- For each pair of brackets we will add another rule
|
||||
for _, bracket in pairs(brackets) do
|
||||
npairs.add_rules({
|
||||
-- Each of these rules is for a pair with left-side '( ' and right-side ' )' for each bracket type
|
||||
Rule(bracket[1] .. " ", " " .. bracket[2])
|
||||
:with_pair(cond.none())
|
||||
:with_move(function(opts)
|
||||
return opts.char == bracket[2]
|
||||
end)
|
||||
:with_del(cond.none())
|
||||
:use_key(bracket[2])
|
||||
-- Removes the trailing whitespace that can occur without this
|
||||
:replace_map_cr(function(_)
|
||||
return "<C-c>2xi<CR><C-c>O"
|
||||
end),
|
||||
})
|
||||
end
|
||||
end,
|
||||
},
|
||||
{
|
||||
"echasnovski/mini.pairs",
|
||||
enabled = false,
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-emoji",
|
||||
},
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sources, { name = "emoji" })
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"amarakon/nvim-cmp-fonts",
|
||||
},
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sources, { name = "fonts", option = { space_filter = "-" } })
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
local cmp = require("cmp")
|
||||
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"petertriho/cmp-git",
|
||||
opts = {},
|
||||
},
|
||||
opts = function(_, opts)
|
||||
cmp.setup.filetype("gitcommit", {
|
||||
sources = cmp.config.sources({
|
||||
{ name = "git" }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git).
|
||||
}, {
|
||||
{ name = "buffer" },
|
||||
}),
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"chrisgrieser/cmp-nerdfont",
|
||||
},
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sources, { name = "nerdfont" })
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"lukas-reineke/cmp-rg",
|
||||
},
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sources, { name = "rg", keyword_length = 3 })
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"lukas-reineke/cmp-under-comparator",
|
||||
},
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sorting.comparators, 4, require("cmp-under-comparator").under)
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"chrisgrieser/cmp_yanky",
|
||||
},
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sources, { name = "cmp_yanky" })
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
return {
|
||||
"michaelb/sniprun",
|
||||
run = "bash ./install.sh",
|
||||
cmd = { "SnipRun", "SnipInfo", "SnipLive", "SnipClose", "SnipReset", "SnipReplMemoryClean" },
|
||||
opts = {
|
||||
selected_interpreters = {}, --# use those instead of the default for the current filetype
|
||||
repl_enable = { "javascript", "typescript" }, --# enable REPL-like behavior for the given interpreters
|
||||
repl_disable = {}, --# disable REPL-like behavior for the given interpreters
|
||||
|
||||
interpreter_options = {
|
||||
--# interpreter-specific options, see docs / :SnipInfo <name>
|
||||
|
||||
--# use the interpreter name as key
|
||||
GFM_original = {
|
||||
use_on_filetypes = { "markdown.pandoc" }, --# the 'use_on_filetypes' configuration key is
|
||||
--# available for every interpreter
|
||||
},
|
||||
Python3_original = {
|
||||
error_truncate = "auto", --# Truncate runtime errors 'long', 'short' or 'auto'
|
||||
--# the hint is available for every interpreter
|
||||
--# but may not be always respected
|
||||
},
|
||||
},
|
||||
|
||||
--# you can combo different display modes as desired and with the 'Ok' or 'Err' suffix
|
||||
--# to filter only sucessful runs (or errored-out runs respectively)
|
||||
display = {
|
||||
-- "Classic", --# display results in the command-line area
|
||||
-- "VirtualTextOk", --# display ok results as virtual text (multiline is shortened)
|
||||
|
||||
"VirtualText", --# display results as virtual text
|
||||
-- "TempFloatingWindow", --# display results in a floating window
|
||||
-- "LongTempFloatingWindow", --# same as above, but only long results. To use with VirtualText[Ok/Err]
|
||||
-- "Terminal", --# display results in a vertical split
|
||||
-- "TerminalWithCode", --# display results and code history in a vertical split
|
||||
-- "NvimNotify", --# display with the nvim-notify plugin
|
||||
-- "Api" --# return output to a programming interface
|
||||
},
|
||||
|
||||
live_display = { "VirtualTextOk" }, --# display mode used in live_mode
|
||||
|
||||
display_options = {
|
||||
terminal_scrollback = vim.o.scrollback, --# change terminal display scrollback lines
|
||||
terminal_line_number = false, --# whether show line number in terminal window
|
||||
terminal_signcolumn = false, --# whether show signcolumn in terminal window
|
||||
terminal_persistence = true, --# always keep the terminal open (true) or close it at every occasion (false)
|
||||
terminal_width = 45, --# change the terminal display option width
|
||||
notification_timeout = 5, --# timeout for nvim_notify output
|
||||
},
|
||||
|
||||
--# You can use the same keys to customize whether a sniprun producing
|
||||
--# no output should display nothing or '(no output)'
|
||||
show_no_output = {
|
||||
"Classic",
|
||||
"TempFloatingWindow", --# implies LongTempFloatingWindow, which has no effect on its own
|
||||
},
|
||||
|
||||
--# customize highlight groups (setting this overrides colorscheme)
|
||||
-- snipruncolors = {
|
||||
-- SniprunVirtualTextOk = { bg = "#66eeff", fg = "#000000", ctermbg = "Cyan", cterfg = "Black" },
|
||||
-- SniprunFloatingWinOk = { fg = "#66eeff", ctermfg = "Cyan" },
|
||||
-- SniprunVirtualTextErr = { bg = "#881515", fg = "#000000", ctermbg = "DarkRed", cterfg = "Black" },
|
||||
-- SniprunFloatingWinErr = { fg = "#881515", ctermfg = "DarkRed" },
|
||||
-- },
|
||||
|
||||
live_mode_toggle = "off", --# live mode toggle, see Usage - Running for more info
|
||||
|
||||
--# miscellaneous compatibility/adjustement settings
|
||||
inline_messages = false, --# inline_message (0/1) is a one-line way to display messages
|
||||
--# to workaround sniprun not being able to display anything
|
||||
|
||||
borders = "single", --# display borders around floating windows
|
||||
--# possible values are 'none', 'single', 'double', or 'shadow'
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
return {
|
||||
{
|
||||
"andrewferrier/debugprint.nvim",
|
||||
opts = {
|
||||
create_keymaps = false,
|
||||
},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "<Leader>ddl", function() return require("debugprint").debugprint() end, desc = "Print under current line", expr = true },
|
||||
{ "<Leader>ddL", function() return require("debugprint").debugprint({ above = true }) end, desc = "Print above current line", expr = true },
|
||||
{
|
||||
"<Leader>ddv",
|
||||
function() return require("debugprint").debugprint({ variable = true }) end,
|
||||
desc = "Print variable under current line",
|
||||
expr = true,
|
||||
},
|
||||
{
|
||||
"<Leader>ddV",
|
||||
function() return require("debugprint").debugprint({ above = true, variable = true }) end,
|
||||
desc = "Print variable above current line",
|
||||
expr = true,
|
||||
},
|
||||
{ "<Leader>ddd", function() return require("debugprint").deleteprints() end, desc = "Delete all prints" },
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
opts = {
|
||||
defaults = {
|
||||
["<leader>dd"] = { name = "debugPrint" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
return {
|
||||
"monaqa/dial.nvim",
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "<C-a>", function() require("dial.map").manipulate("increment", "normal") end },
|
||||
{ "<C-x>", function() require("dial.map").manipulate("decrement", "normal") end },
|
||||
{ "g<C-a>", function() require("dial.map").manipulate("increment", "gnormal") end },
|
||||
{ "g<C-x>", function() require("dial.map").manipulate("decrement", "gnormal") end },
|
||||
{ "<C-a>", function() require("dial.map").manipulate("increment", "visual") end, mode = "v", },
|
||||
{ "<C-x>", function() require("dial.map").manipulate("decrement", "visual") end, mode = "v", },
|
||||
{ "g<C-a>", function() require("dial.map").manipulate("increment", "gvisual") end, mode = "v", },
|
||||
{ "g<C-x>", function() require("dial.map").manipulate("decrement", "gvisual") end, mode = "v", },
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
"kevinhwang91/nvim-ibus-sw",
|
||||
event = "InsertLeave",
|
||||
opts = {},
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
return {
|
||||
{
|
||||
"smoka7/multicursors.nvim",
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"smoka7/hydra.nvim",
|
||||
},
|
||||
cmd = { "MCstart", "MCvisual", "MCclear", "MCpattern", "MCvisualPattern", "MCunderCursor" },
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ mode = { "v", "n" }, "<leader>m", "<cmd>MCstart<cr>", desc = "Multicursor" },
|
||||
},
|
||||
opts = {
|
||||
hint_config = {
|
||||
border = "rounded",
|
||||
position = "bottom-right",
|
||||
},
|
||||
generate_hints = {
|
||||
normal = true,
|
||||
insert = true,
|
||||
extend = true,
|
||||
config = {
|
||||
column_count = 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
optional = true,
|
||||
opts = function(_, opts)
|
||||
local function is_active()
|
||||
local ok, hydra = pcall(require, "hydra.statusline")
|
||||
return ok and hydra.is_active()
|
||||
end
|
||||
|
||||
local function get_name()
|
||||
local ok, hydra = pcall(require, "hydra.statusline")
|
||||
if ok then
|
||||
return hydra.get_name()
|
||||
end
|
||||
return ""
|
||||
end
|
||||
|
||||
table.insert(opts.sections.lualine_b, { get_name, cond = is_active })
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
return {
|
||||
"chrisgrieser/nvim-recorder",
|
||||
dependencies = { "rcarriga/nvim-notify" },
|
||||
keys = {
|
||||
{ "q", desc = "Start Recording" },
|
||||
{ "Q", desc = "Play Recording" },
|
||||
{ "<C-q>", desc = "Switch Slot" },
|
||||
{ "cq", desc = "Edit Macro" },
|
||||
{ "yq", desc = "Yank Macro" },
|
||||
{ "dq", desc = "Delete All Macros" },
|
||||
},
|
||||
opts = {
|
||||
useNerdFontsIcons = false,
|
||||
slots = { "a", "b", "c", "d" },
|
||||
mapping = {
|
||||
startStopRecording = "q",
|
||||
playMacro = "Q",
|
||||
editMacro = "cq",
|
||||
switchSlot = "<C-q>",
|
||||
deleteAllMacros = "dq",
|
||||
yankMacro = "yq",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
return {
|
||||
"ThePrimeagen/refactoring.nvim",
|
||||
requires = {
|
||||
{ "nvim-lua/plenary.nvim" },
|
||||
{ "nvim-treesitter/nvim-treesitter" },
|
||||
},
|
||||
opts = {},
|
||||
config = function(_, opts)
|
||||
require("lazyvim.util").on_load("telescope.nvim", function()
|
||||
require("telescope").load_extension("refactoring")
|
||||
end)
|
||||
end,
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "<leader>cR", function() require('telescope').extensions.refactoring.refactors() end, mode = { "n", "x" }, desc = "Refactor" },
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
"vidocqh/auto-indent.nvim",
|
||||
event = "LazyFile",
|
||||
opts = {
|
||||
---@param lnum: number
|
||||
---@return number
|
||||
indentexpr = function(lnum)
|
||||
return require("nvim-treesitter.indent").get_indent(lnum)
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
dependencies = {
|
||||
"RRethy/nvim-treesitter-endwise",
|
||||
},
|
||||
opts = {
|
||||
endwise = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
"nmac427/guess-indent.nvim",
|
||||
event = "LazyFile",
|
||||
opts = {},
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
return {
|
||||
"echasnovski/mini.align",
|
||||
opts = {},
|
||||
keys = {
|
||||
{ "ga", mode = { "n", "v" }, desc = "Align" },
|
||||
{ "gA", mode = { "n", "v" }, desc = "Align Preview" },
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
return {
|
||||
"ckolkey/ts-node-action",
|
||||
dependencies = { "nvim-treesitter" },
|
||||
opts = {},
|
||||
--stylua: ignore
|
||||
keys = { { "J", "<cmd>NodeAction<cr>", mode = "n", desc = "Node action" } },
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
dependencies = { "chrisgrieser/nvim-puppeteer" },
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
return {
|
||||
"Wansmer/sibling-swap.nvim",
|
||||
dependencies = "nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
use_default_keymaps = false,
|
||||
highlight_node_at_cursor = true,
|
||||
},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "<C-.>", function() require("sibling-swap").swap_with_right() end, desc = "Move Node Right" },
|
||||
{ "<C-,>", function() require("sibling-swap").swap_with_left() end, desc = "Move Node Left" },
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
return {
|
||||
"chrisgrieser/nvim-spider",
|
||||
opts = {},
|
||||
keys = {
|
||||
{ "w", "<cmd>lua require('spider').motion('w')<CR>", mode = { "n", "o", "x" }, desc = "Spider-w" },
|
||||
{ "e", "<cmd>lua require('spider').motion('e')<CR>", mode = { "n", "o", "x" }, desc = "Spider-e" },
|
||||
{ "b", "<cmd>lua require('spider').motion('b')<CR>", mode = { "n", "o", "x" }, desc = "Spider-b" },
|
||||
{ "E", "<cmd>lua require('spider').motion('ge')<CR>", mode = { "n", "o", "x" }, desc = "Spider-E" },
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
"johmsalas/text-case.nvim",
|
||||
dependencies = { "nvim-telescope/telescope.nvim" },
|
||||
config = function()
|
||||
require("textcase").setup({})
|
||||
require("telescope").load_extension("textcase")
|
||||
end,
|
||||
keys = {
|
||||
{ "gC", "<cmd>TextCaseOpenTelescope<CR>", mode = { "n", "v" }, desc = "Text Case" },
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
return {
|
||||
"chrisgrieser/nvim-various-textobjs",
|
||||
opts = { useDefaultKeymaps = false },
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "im", ft = { "markdown" }, mode = { "o", "x" }, function() require("various-textobjs").mdlink("inner") end, desc = "Markdown Link", },
|
||||
{ "am", ft = { "markdown" }, mode = { "o", "x" }, function() require("various-textobjs").mdlink("outer") end, desc = "Markdown Link", },
|
||||
{ "iC", ft = { "markdown" }, mode = { "o", "x" }, function() require("various-textobjs").mdFencedCodeBlock("inner") end, desc = "CodeBlock", },
|
||||
{ "aC", ft = { "markdown" }, mode = { "o", "x" }, function() require("various-textobjs").mdFencedCodeBlock("outer") end, desc = "CodeBlock", },
|
||||
{ "gd", mode = { "o", "x" }, function() require("various-textobjs").diagnostics() end, desc = "Diagnostics", },
|
||||
{ "iy", ft = { "python" }, mode = { "o", "x" }, function() require("various-textobjs").pyTripleQuotes("inner") end, desc = "Triple Quotes", },
|
||||
{ "ay", ft = { "python" }, mode = { "o", "x" }, function() require("various-textobjs").pyTripleQuotes("outer") end, desc = "Triple Quotes", },
|
||||
{ "iC", ft = { "css", "scss", "less" }, mode = { "o", "x" }, function() require("various-textobjs").cssSelector("inner") end, desc = "CSS Selector", },
|
||||
{ "aC", ft = { "css", "scss", "less" }, mode = { "o", "x" }, function() require("various-textobjs").cssSelector("outer") end, desc = "CSS Selector", },
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
"sustech-data/wildfire.nvim",
|
||||
event = "BufEnter",
|
||||
opts = {},
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
{
|
||||
"altermo/ultimate-autopair.nvim",
|
||||
event = { "InsertEnter", "CmdlineEnter" },
|
||||
branch = "v0.6", --recomended as each new version will have breaking changes
|
||||
opts = {},
|
||||
},
|
||||
{
|
||||
"echasnovski/mini.pairs",
|
||||
enabled = false,
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
return {
|
||||
{
|
||||
import = "lazyvim.plugins.extras.coding.yanky",
|
||||
},
|
||||
{
|
||||
"gbprod/yanky.nvim",
|
||||
opts = function(_, opts)
|
||||
local utils = require("yanky.utils")
|
||||
local mapping = require("yanky.telescope.mapping")
|
||||
|
||||
opts.highlight = { timer = 250 }
|
||||
opts.ring = { storage = jit.os:find("Windows") and "shada" or "sqlite" }
|
||||
opts.picker = {
|
||||
telescope = {
|
||||
use_default_mappings = false,
|
||||
mappings = {
|
||||
default = mapping.put("p"),
|
||||
i = {
|
||||
["<c-g>"] = mapping.put("p"),
|
||||
["<c-h>"] = mapping.put("P"),
|
||||
["<c-x>"] = mapping.delete(),
|
||||
["<c-r>"] = mapping.set_register(utils.get_default_register()),
|
||||
},
|
||||
n = {
|
||||
p = mapping.put("p"),
|
||||
P = mapping.put("P"),
|
||||
d = mapping.delete(),
|
||||
r = mapping.set_register(utils.get_default_register()),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
end,
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{"<leader>sy", function() require("telescope").extensions.yank_history.yank_history({}) end, mode = {"n", "v"}, desc = "Yank History"},
|
||||
},
|
||||
},
|
||||
}
|
||||
Reference in new issue
Block a user