summaryrefslogtreecommitdiff
path: root/lua/lvim/core/lir.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lvim/core/lir.lua')
-rw-r--r--lua/lvim/core/lir.lua90
1 files changed, 90 insertions, 0 deletions
diff --git a/lua/lvim/core/lir.lua b/lua/lvim/core/lir.lua
new file mode 100644
index 00000000..e14e01cd
--- /dev/null
+++ b/lua/lvim/core/lir.lua
@@ -0,0 +1,90 @@
+local M = {}
+
+M.config = function()
+ local status_ok, lir = pcall(require, "lir")
+ if not status_ok then
+ return
+ end
+
+ local actions = require "lir.actions"
+ local mark_actions = require "lir.mark.actions"
+ local clipboard_actions = require "lir.clipboard.actions"
+
+ lir.setup {
+ show_hidden_files = false,
+ devicons_enable = true,
+ mappings = {
+ ["l"] = actions.edit,
+ ["<CR>"] = actions.edit,
+ ["<C-s>"] = actions.split,
+ ["v"] = actions.vsplit,
+ ["<C-t>"] = actions.tabedit,
+
+ ["h"] = actions.up,
+ ["q"] = actions.quit,
+
+ ["A"] = actions.mkdir,
+ ["a"] = actions.newfile,
+ ["r"] = actions.rename,
+ ["@"] = actions.cd,
+ ["Y"] = actions.yank_path,
+ ["i"] = actions.toggle_show_hidden,
+ ["d"] = actions.delete,
+
+ ["J"] = function()
+ mark_actions.toggle_mark()
+ vim.cmd "normal! j"
+ end,
+ ["c"] = clipboard_actions.copy,
+ ["x"] = clipboard_actions.cut,
+ ["p"] = clipboard_actions.paste,
+ },
+ float = {
+ winblend = 0,
+ curdir_window = {
+ enable = false,
+ highlight_dirname = true,
+ },
+
+ -- -- You can define a function that returns a table to be passed as the third
+ -- -- argument of nvim_open_win().
+ win_opts = function()
+ local width = math.floor(vim.o.columns * 0.7)
+ local height = math.floor(vim.o.lines * 0.7)
+ return {
+ border = "rounded",
+ width = width,
+ height = height,
+ -- row = 1,
+ -- col = math.floor((vim.o.columns - width) / 2),
+ }
+ end,
+ },
+ hide_cursor = false,
+ on_init = function()
+ -- use visual mode
+ vim.api.nvim_buf_set_keymap(
+ 0,
+ "x",
+ "J",
+ ':<C-u>lua require"lir.mark.actions".toggle_mark("v")<CR>',
+ { noremap = true, silent = true }
+ )
+
+ -- echo cwd
+ -- vim.api.nvim_echo({ { vim.fn.expand "%:p", "Normal" } }, false, {})
+ end,
+ }
+
+ -- custom folder icon
+ require("nvim-web-devicons").set_icon {
+ lir_folder_icon = {
+ icon = "î—¿",
+ -- color = "#7ebae4",
+ -- color = "#569CD6",
+ color = "#42A5F5",
+ name = "LirFolderNode",
+ },
+ }
+end
+return M