1
0
Fork 0
dotfiles/common/.config/nvim/lua/plugins/editor.lua

166 lines
6 KiB
Lua

---@type LazySpec
return {
{ "ggandor/flit.nvim", optional = true, enabled = false },
{
"zbirenbaum/copilot.lua",
optional = true,
opts = {
filetypes = {
yaml = true,
[""] = false,
},
},
keys = {
{ "<leader>a", "", desc = "+ai", mode = { "n" } },
{
"<leader>at",
"<CMD>Copilot toggle<CR>",
desc = "Toggle (Copilot)",
},
},
},
{
"folke/todo-comments.nvim",
event = "VeryLazy",
opts = {
highlight = {
multiline = false,
},
},
},
{
"NvChad/nvim-colorizer.lua",
cmd = { "ColorizerToggle", "ColorizerAttachToBuffer", "ColorizerDetachFromBuffer", "ColorizerReloadAllBuffers" },
opts = { user_default_options = { names = false } },
keys = {
{ "<leader>uH", "<cmd>ColorizerToggle<cr>", desc = "Toggle Colorizer" },
},
},
{
"zk-org/zk-nvim",
ft = { "markdown" },
main = "zk",
opts = {
picker = "telescope",
lsp = {
cmd = { "zk", "lsp" },
name = "zk",
config = {
on_attach = function(client)
if client.name == "zk" then
require("zk").cd()
end
end,
},
auto_attach = {
enabled = true,
filetypes = { "markdown" },
},
},
},
--stylua: ignore
keys = {
{ "<leader>z", "", desc = "+zk", mode = { "n", "v" } },
{ "<leader>zn", function() require("zk.commands").get("ZkNew")({ title = vim.fn.input('Title: ') }) end, desc = "New Note", mode = { "n", "v" } },
{ "<leader>znt", function() require("zk.commands").get("ZkNewFromTitleSelection")() end, desc = "Title from selection", mode = { "v" } },
{
"<leader>znc",
function()
require("zk.commands").get("ZkNewFromContentSelection")({
title = vim.fn.input(
'Title: ')
})
end,
desc = "Content from selection",
mode = { "v" }
},
{ "<leader>zb", function() require("zk.commands").get("ZkBacklinks")() end, desc = "Links" },
{ "<leader>zl", function() require("zk.commands").get("ZkLinks")() end, desc = "Backlinks" },
{ "<leader>zx", function() require("zk.commands").get("ZkIndex")() end, desc = "Index" },
{ "<leader>zf", function() require("zk.commands").get("ZkNotes")({ sort = { 'modified' } }) end, desc = "Find Notes" },
{ "<leader>zt", function() require("zk.commands").get("ZkTags")() end, desc = "Find Note Tags" },
{ "<leader>zf", function() require("zk.commands").get("ZkMatch")() end, desc = "Find Notes (Match Selection)", mode = { "v" } },
{ "<leader>zi", function() require("zk.commands").get("ZkInsertLinkAtSelection")() end, desc = "Insert Link", mode = { "n", "v" } },
},
},
{
"nvim-telescope/telescope.nvim",
optional = true,
dependencies = { { "debugloop/telescope-undo.nvim" } },
opts = function()
LazyVim.on_load("telescope.nvim", function()
require("telescope").load_extension("undo")
end)
end,
keys = {
{
"<leader>su",
"<cmd>Telescope undo<cr>",
desc = "Undo",
},
},
},
{
"echasnovski/mini.surround",
optional = true,
opts = {
highlight_duration = 0,
custom_surroundings = {
B = {
input = { "{{ ().*() }}" },
output = { left = "{{ ", right = " }}" },
},
M = {
input = { "{% ().*() %}" },
output = { left = "{% ", right = " %}" },
},
T = {
input = { "%f[%w_%.][%w_%.]+%b<>", "^.-<().*()>$" },
output = function()
local type_name = require("mini.surround").user_input("Type name")
if type_name == nil then
return nil
end
return { left = ("%s<"):format(type_name), right = ">" }
end,
},
},
},
},
{
"echasnovski/mini.ai",
optional = true,
opts = {
custom_textobjects = {
B = {
require("mini.ai").gen_spec.pair("{{ ", " }}"),
},
},
},
},
{
"akinsho/bufferline.nvim",
optional = true,
keys = {
{ "<leader>bs", desc = "Sort Bufferline" },
{ "<leader>bsd", "<Cmd>BufferLineSortByDirectory<CR>", desc = "By Directory" },
{ "<leader>bse", "<Cmd>BufferLineSortByExtension<CR>", desc = "By Extension" },
{ "<leader>bsr", "<Cmd>BufferLineSortByRelativeDirectory<CR>", desc = "By Relative Directory" },
{ "<leader>bst", "<Cmd>BufferLineSortByTabs<CR>", desc = "By Tabs" },
},
},
{
"nvim-neo-tree/neo-tree.nvim",
optional = true,
opts = {
filesystem = {
filtered_items = {
visible = true,
},
window = {
mappings = require("lib").generate_shortcut_maps(),
},
},
},
},
}