summaryrefslogtreecommitdiff
path: root/fnl/plugins/editor/lir.fnl
diff options
context:
space:
mode:
authorGustaf Rydholm <gustaf.rydholm@gmail.com>2023-01-15 22:47:30 +0100
committerGustaf Rydholm <gustaf.rydholm@gmail.com>2023-01-15 22:47:30 +0100
commit10b175f252104458d7478d8a2822818850cfdf92 (patch)
treeee926d33bee6b4acfe45fce0dd8aa9e94f03f06a /fnl/plugins/editor/lir.fnl
parent9d4f654187869f96e27ab54a88708aba5959f1ba (diff)
Refactor file structure
Diffstat (limited to 'fnl/plugins/editor/lir.fnl')
-rw-r--r--fnl/plugins/editor/lir.fnl52
1 files changed, 52 insertions, 0 deletions
diff --git a/fnl/plugins/editor/lir.fnl b/fnl/plugins/editor/lir.fnl
new file mode 100644
index 0000000..8caa8e4
--- /dev/null
+++ b/fnl/plugins/editor/lir.fnl
@@ -0,0 +1,52 @@
+;; Simple file manager.
+
+(fn opts [actions mark-actions clipboard-actions]
+ {:show_hidden_files false
+ :devicons {:enable true :highlight_dirname false}
+ :mappings {:l 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 (fn []
+ (mark-actions.toggle_mark)
+ (vim.cmd "normal! j"))
+ :c clipboard-actions.copy
+ :x clipboard-actions.cut
+ :p clipboard-actions.paste}
+ :float {:winblend 0
+ :curdir_window {:enable false :highlight_dirname true}
+ :win_opts (fn []
+ (let [width (math.floor (* vim.o.columns 0.7))
+ height (math.floor (* vim.o.lines 0.7))]
+ {:border :rounded : width : height}))}
+ :hide_cursor false
+ :on_init (fn []
+ (vim.api.nvim_buf_set_keymap 0 :x :J
+ ":<C-u>lua require(\"lir.mark.actions\").toggle_mark(\"v\")<CR>"
+ {:noremap true :silent true}))})
+
+(fn setup []
+ (let [actions (require :lir.actions)
+ clipboard-actions (require :lir.clipboard.actions)
+ mark-actions (require :lir.mark.actions)
+ lir (require :lir)]
+ (tset vim.g :loaded_netrw 1)
+ (tset vim.g :loaded_netrwPlugin 1)
+ (lir.setup (opts actions mark-actions clipboard-actions))
+ (vim.keymap.set :n "-" ":lua require'lir.float'.toggle()<cr>"
+ {:noremap true :silent true})))
+
+{1 :tamago324/lir.nvim
+ :keys "-"
+ :config (fn []
+ (setup))
+ :dependencies [:kyazdani42/nvim-web-devicons]}