summaryrefslogtreecommitdiff
path: root/home/config/nvim/lua/tree.lua
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-06-21 22:52:21 -0400
committerFreya Murphy <freya@freyacat.org>2024-06-21 22:52:21 -0400
commitcf5d8d92f1904511006a89970349dbf723ae1732 (patch)
tree2deb7af8e9031a502b6b7f1c263198e4d6b93f9f /home/config/nvim/lua/tree.lua
parentupdate guixstrap (diff)
downloaddotfiles-guix-cf5d8d92f1904511006a89970349dbf723ae1732.tar.gz
dotfiles-guix-cf5d8d92f1904511006a89970349dbf723ae1732.tar.bz2
dotfiles-guix-cf5d8d92f1904511006a89970349dbf723ae1732.zip
update things
Diffstat (limited to 'home/config/nvim/lua/tree.lua')
-rw-r--r--home/config/nvim/lua/tree.lua120
1 files changed, 120 insertions, 0 deletions
diff --git a/home/config/nvim/lua/tree.lua b/home/config/nvim/lua/tree.lua
new file mode 100644
index 0000000..aef5023
--- /dev/null
+++ b/home/config/nvim/lua/tree.lua
@@ -0,0 +1,120 @@
+vim.g.loaded_netrw = 1
+vim.g.loaded_netrwPlugin = 1
+
+local function on_attach(bufnr)
+ local api = require("nvim-tree.api")
+
+ local function opts(desc)
+ return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
+ end
+
+ local function edit_or_open()
+ local node = api.tree.get_node_under_cursor()
+
+ if node.nodes ~= nil then
+ -- expand or collapse folder
+ api.node.open.edit()
+ else
+ -- open file
+ api.node.open.edit()
+ -- Close the tree if file was opened
+ api.tree.close()
+ end
+ end
+
+ api.config.mappings.default_on_attach(bufnr)
+ vim.keymap.set("n", "<CR>", edit_or_open, opts("Open"))
+end
+
+require("nvim-tree").setup({
+ sort_by = "case_sensitive",
+ view = {
+ adaptive_size = false,
+ centralize_selection = true,
+ width = 30,
+ side = "left",
+ preserve_window_proportions = false,
+ number = false,
+ relativenumber = false,
+ signcolumn = "yes",
+ float = {
+ enable = false,
+ quit_on_focus_loss = true,
+ open_win_config = {
+ relative = "editor",
+ border = "rounded",
+ width = 30,
+ height = 30,
+ row = 1,
+ col = 1,
+ },
+ },
+ },
+ renderer = {
+ group_empty = true,
+ },
+ actions = {
+ use_system_clipboard = true,
+ change_dir = {
+ enable = true,
+ global = false,
+ restrict_above_cwd = false,
+ },
+ expand_all = {
+ max_folder_discovery = 300,
+ exclude = {},
+ },
+ file_popup = {
+ open_win_config = {
+ col = 1,
+ row = 1,
+ relative = "cursor",
+ border = "shadow",
+ style = "minimal",
+ },
+ },
+ open_file = {
+ window_picker = {
+ enable = false,
+ picker = "default",
+ chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
+ exclude = {
+ filetype = { "notify", "lazy", "qf", "diff", "fugitive", "fugitiveblame" },
+ buftype = { "nofile", "terminal", "help" },
+ },
+ }
+ },
+ remove_file = {
+ close_window = true,
+ },
+
+ },
+ tab = {
+ sync = {
+ open = false,
+ close = false,
+ ignore = {},
+ },
+ },
+ git = {
+ enable = true,
+ ignore = false,
+ show_on_dirs = true,
+ show_on_open_dirs = true,
+ timeout = 200,
+ },
+ filters = {
+ dotfiles = false,
+ git_clean = false,
+ no_buffer = false,
+ custom = { "node_modules", "\\.cache" },
+ exclude = {},
+ },
+ update_cwd = true,
+ respect_buf_cwd = true,
+ update_focused_file = {
+ enable = true,
+ update_cwd = true
+ },
+ on_attach = on_attach
+})