Skip to content

Commit

Permalink
feat(nvim): some fun new editor plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
scottames committed Jun 15, 2024
1 parent 05cc73b commit 7e5b2e9
Show file tree
Hide file tree
Showing 4 changed files with 157 additions and 23 deletions.
24 changes: 16 additions & 8 deletions home/private_dot_config/nvim/lazylock.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,10 @@
"branch": "main",
"commit": "e6044aa28e61d4dd9ec86194d6f81743eced0c1c"
},
"mini.splitjoin": {
"branch": "main",
"commit": "db26e1c991ff5f8cf377e800ef7fba6b5618306b"
},
"mkdnflow.nvim": {
"branch": "main",
"commit": "ff300eb9a36e156e0f9d5f134d11c1a84870d7b3"
Expand All @@ -167,10 +171,6 @@
"branch": "main",
"commit": "2cd194d1033ba391d87d386735e15963adbc5f51"
},
"neo-tree.nvim": {
"branch": "v3.x",
"commit": "29f7c215332ba95e470811c380ddbce2cebe2af4"
},
"neogen": {
"branch": "main",
"commit": "6de0add4805165317ab7d3d36b5cef48b1b865f3"
Expand Down Expand Up @@ -243,6 +243,14 @@
"branch": "main",
"commit": "f1f0699a1d49f28e607ffa4361f1bbe757ac5ebc"
},
"nvim-tree-preview.lua": {
"branch": "main",
"commit": "32fd0943f844fbb783ace7438a72bfd750c818e9"
},
"nvim-tree.lua": {
"branch": "master",
"commit": "2086e564c4d23fea714e8a6d63b881e551af2f41"
},
"nvim-treesitter": {
"branch": "master",
"commit": "a80fe081b4c5890980561e0de2458f64aaffbfc7"
Expand Down Expand Up @@ -303,6 +311,10 @@
"branch": "master",
"commit": "d2786877c91aa409c824f27b4ce8a9f560dda60a"
},
"render-markdown": {
"branch": "main",
"commit": "e353f1f566195176b54e2af5b321b517ac240102"
},
"sqlite.lua": {
"branch": "master",
"commit": "d0ffd703b56d090d213b497ed4eb840495f14a11"
Expand All @@ -319,10 +331,6 @@
"branch": "master",
"commit": "3d7fbc7f5e91ef0f96b4d787c78ad9f8820de3ec"
},
"telescope-fzf-native.nvim": {
"branch": "main",
"commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27"
},
"telescope-live-grep-args.nvim": {
"branch": "master",
"commit": "4122e146d199c0d6d1cfb359c76bc1250d522460"
Expand Down
140 changes: 126 additions & 14 deletions home/private_dot_config/nvim/lua/plugins/editor.lua
Original file line number Diff line number Diff line change
Expand Up @@ -46,30 +46,134 @@ return {
},

-- file explorer
{
"nvim-neo-tree/neo-tree.nvim",
{ -- https://github.com/nvim-tree/nvim-tree.lua
"kyazdani42/nvim-tree.lua",
dependencies = {
"b0o/nvim-tree-preview.lua", -- https://github.com/b0o/nvim-tree-preview.lua
"nvim-lua/plenary.nvim",
},
config = true,
keys = {
{
"<leader>3",
function()
require("neo-tree.command").execute({ action = "focus" })
-- require("neo-tree.command").execute({ action = "focus" })
require("nvim-tree.api").tree.toggle()
end,
desc = "NeoTree (root dir)",
desc = "nvim-tree (root dir)",
},
},
opts = {
filesystem = {
follow_current_file = true,
hijack_netrw_behavior = "open_current",
-- show hidden
filtered_items = {
visible = true,
hide_dotfiles = false,
hide_gitignored = true,
},
},
on_attach = function(bufnr)
local function opts(desc)
return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end

local preview = require("nvim-tree-preview")
local api = require("nvim-tree.api")
-- BEGIN_DEFAULT_ON_ATTACH
vim.keymap.set("n", "<C-]>", api.tree.change_root_to_node, opts("CD"))
vim.keymap.set("n", "<C-e>", api.node.open.replace_tree_buffer, opts("Open: In Place"))
vim.keymap.set("n", "<C-k>", api.node.show_info_popup, opts("Info"))
vim.keymap.set("n", "<C-r>", api.fs.rename_sub, opts("Rename: Omit Filename"))
vim.keymap.set("n", "<C-t>", api.node.open.tab, opts("Open: New Tab"))
vim.keymap.set("n", "<C-v>", api.node.open.vertical, opts("Open: Vertical Split"))
vim.keymap.set("n", "<C-x>", api.node.open.horizontal, opts("Open: Horizontal Split"))
vim.keymap.set("n", "<BS>", api.node.navigate.parent_close, opts("Close Directory"))
vim.keymap.set("n", "<CR>", api.node.open.edit, opts("Open"))
vim.keymap.set("n", "<Tab>", api.node.open.preview, opts("Open Preview"))
vim.keymap.set("n", ">", api.node.navigate.sibling.next, opts("Next Sibling"))
vim.keymap.set("n", "<", api.node.navigate.sibling.prev, opts("Previous Sibling"))
vim.keymap.set("n", ".", api.node.run.cmd, opts("Run Command"))
vim.keymap.set("n", "-", api.tree.change_root_to_parent, opts("Up"))
vim.keymap.set("n", "a", api.fs.create, opts("Create File Or Directory"))
vim.keymap.set("n", "bd", api.marks.bulk.delete, opts("Delete Bookmarked"))
vim.keymap.set("n", "bt", api.marks.bulk.trash, opts("Trash Bookmarked"))
vim.keymap.set("n", "bmv", api.marks.bulk.move, opts("Move Bookmarked"))
vim.keymap.set("n", "B", api.tree.toggle_no_buffer_filter, opts("Toggle Filter: No Buffer"))
vim.keymap.set("n", "c", api.fs.copy.node, opts("Copy"))
vim.keymap.set("n", "C", api.tree.toggle_git_clean_filter, opts("Toggle Filter: Git Clean"))
vim.keymap.set("n", "[c", api.node.navigate.git.prev, opts("Prev Git"))
vim.keymap.set("n", "]c", api.node.navigate.git.next, opts("Next Git"))
vim.keymap.set("n", "d", api.fs.remove, opts("Delete"))
vim.keymap.set("n", "D", api.fs.trash, opts("Trash"))
vim.keymap.set("n", "E", api.tree.expand_all, opts("Expand All"))
vim.keymap.set("n", "e", api.fs.rename_basename, opts("Rename: Basename"))
vim.keymap.set("n", "]e", api.node.navigate.diagnostics.next, opts("Next Diagnostic"))
vim.keymap.set("n", "[e", api.node.navigate.diagnostics.prev, opts("Prev Diagnostic"))
vim.keymap.set("n", "F", api.live_filter.clear, opts("Live Filter: Clear"))
vim.keymap.set("n", "f", api.live_filter.start, opts("Live Filter: Start"))
vim.keymap.set("n", "g?", api.tree.toggle_help, opts("Help"))
vim.keymap.set("n", "gy", api.fs.copy.absolute_path, opts("Copy Absolute Path"))
vim.keymap.set("n", "ge", api.fs.copy.basename, opts("Copy Basename"))
vim.keymap.set("n", "H", api.tree.toggle_hidden_filter, opts("Toggle Filter: Dotfiles"))
vim.keymap.set("n", "I", api.tree.toggle_gitignore_filter, opts("Toggle Filter: Git Ignore"))
vim.keymap.set("n", "J", api.node.navigate.sibling.last, opts("Last Sibling"))
vim.keymap.set("n", "K", api.node.navigate.sibling.first, opts("First Sibling"))
vim.keymap.set("n", "L", api.node.open.toggle_group_empty, opts("Toggle Group Empty"))
vim.keymap.set("n", "M", api.tree.toggle_no_bookmark_filter, opts("Toggle Filter: No Bookmark"))
vim.keymap.set("n", "m", api.marks.toggle, opts("Toggle Bookmark"))
vim.keymap.set("n", "o", api.node.open.edit, opts("Open"))
vim.keymap.set("n", "O", api.node.open.no_window_picker, opts("Open: No Window Picker"))
vim.keymap.set("n", "p", api.fs.paste, opts("Paste"))
vim.keymap.set("n", "P", api.node.navigate.parent, opts("Parent Directory"))
vim.keymap.set("n", "q", api.tree.close, opts("Close"))
vim.keymap.set("n", "r", api.fs.rename, opts("Rename"))
vim.keymap.set("n", "R", api.tree.reload, opts("Refresh"))
vim.keymap.set("n", "s", api.node.run.system, opts("Run System"))
vim.keymap.set("n", "S", api.tree.search_node, opts("Search"))
vim.keymap.set("n", "u", api.fs.rename_full, opts("Rename: Full Path"))
vim.keymap.set("n", "U", api.tree.toggle_custom_filter, opts("Toggle Filter: Hidden"))
vim.keymap.set("n", "W", api.tree.collapse_all, opts("Collapse"))
vim.keymap.set("n", "x", api.fs.cut, opts("Cut"))
vim.keymap.set("n", "y", api.fs.copy.filename, opts("Copy Name"))
vim.keymap.set("n", "Y", api.fs.copy.relative_path, opts("Copy Relative Path"))
vim.keymap.set("n", "<2-LeftMouse>", api.node.open.edit, opts("Open"))
vim.keymap.set("n", "<2-RightMouse>", api.tree.change_root_to_node, opts("CD"))
-- END_DEFAULT_ON_ATTACH

vim.keymap.set("n", "Z", preview.watch, opts("Preview (Watch)"))
vim.keymap.set("n", "<Esc>", preview.unwatch, opts("Close Preview/Unwatch"))

-- Option A: Smart tab behavior: Only preview files, expand/collapse directories (recommended)
vim.keymap.set("n", "<Tab>", function()
local ok, node = pcall(api.tree.get_node_under_cursor)
if ok and node then
if node.type == "directory" then
api.node.open.edit()
else
preview.node(node, { toggle_focus = true })
end
end
end, opts("Preview"))
end,
},
},
{ "nvim-neo-tree/neo-tree.nvim", enabled = false },
-- {
-- "nvim-neo-tree/neo-tree.nvim",
-- keys = {
-- {
-- "<leader>3",
-- function()
-- require("neo-tree.command").execute({ action = "focus" })
-- end,
-- desc = "NeoTree (root dir)",
-- },
-- },
-- opts = {
-- filesystem = {
-- follow_current_file = true,
-- hijack_netrw_behavior = "open_current",
-- -- show hidden
-- filtered_items = {
-- visible = true,
-- hide_dotfiles = false,
-- hide_gitignored = true,
-- },
-- },
-- },
-- },

-- buffer remove (additional keys)
{
Expand Down Expand Up @@ -323,4 +427,12 @@ return {
})
end,
},

-- splitjoin
{ -- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-splitjoin.md
"echasnovski/mini.splitjoin",
version = false, -- wait till new 0.7.0 release to put it back on semver
config = true,
event = "VeryLazy",
},
}
14 changes: 14 additions & 0 deletions home/private_dot_config/nvim/lua/plugins/markdown.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,18 @@
return {
{ -- https://github.com/MeanderingProgrammer/markdown.nvim
"MeanderingProgrammer/markdown.nvim",
name = "render-markdown", -- Only needed if you have another plugin named markdown.nvim
dependencies = { "nvim-treesitter/nvim-treesitter" },
config = true,
ft = { "markdown", "txt" },
init = function()
require("which-key").register({
mode = { "n", "v" },
["<leader>tr"] = { name = "Toggle Markdown Render" },
["<leader>mdr"] = { name = "Toggle Markdown Render" },
})
end,
},
-- Configurable tools for working with markdown files in Neovim.
{ -- https://github.com/tadmccorkle/markdown.nvim
"tadmccorkle/markdown.nvim",
Expand Down
2 changes: 1 addition & 1 deletion home/private_dot_config/nvim/lua/plugins/ui.lua
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ return {
{ "<leader>ux", "<cmd>Hardtime toggle<CR>", desc = "Toggle Hardtime" },
},
opts = {
disabled_filetypes = { "qf", "lazy", "mason", "neo-tree", "netrw", "NvimTree", "oil", "trouble" },
disabled_filetypes = { "qf", "lazy", "mason", "neo-tree", "netrw", "NvimTree", "oil", "trouble", "" },
disable_mouse = false,
},
},
Expand Down

0 comments on commit 7e5b2e9

Please sign in to comment.