From f0b2401c517c304a5b1175109d57e4469ae083cb Mon Sep 17 00:00:00 2001 From: Vladan Popovic Date: Sun, 24 Sep 2023 01:23:39 +0200 Subject: [PATCH] replace nvim-tree with oil --- lua/config/init.lua | 1 + lua/config/oil.lua | 132 ++++++++++++++++++++++++++++++++++++++++++++ lua/keymappings.lua | 2 +- lua/plugins.lua | 82 +-------------------------- 4 files changed, 136 insertions(+), 81 deletions(-) create mode 100644 lua/config/oil.lua diff --git a/lua/config/init.lua b/lua/config/init.lua index 90e69d7..b0d767b 100644 --- a/lua/config/init.lua +++ b/lua/config/init.lua @@ -1,3 +1,4 @@ require('config.cmp') require('config.treesitter') require('config.telescope') +require('config.oil') diff --git a/lua/config/oil.lua b/lua/config/oil.lua new file mode 100644 index 0000000..dadcb0c --- /dev/null +++ b/lua/config/oil.lua @@ -0,0 +1,132 @@ +require('oil').setup({ + default_file_explorer = true, + -- Id is automatically added at the beginning, and name at the end + -- See :help oil-columns + columns = { + "icon", + -- "permissions", + -- "size", + -- "mtime", + }, + -- Buffer-local options to use for oil buffers + buf_options = { + buflisted = false, + bufhidden = "hide", + }, + -- Window-local options to use for oil buffers + win_options = { + wrap = false, + signcolumn = "no", + cursorcolumn = false, + foldcolumn = "0", + spell = false, + list = false, + conceallevel = 3, + concealcursor = "nvic", + }, + -- Send deleted files to the trash instead of permanently deleting them (:help oil-trash) + delete_to_trash = false, + -- Skip the confirmation popup for simple operations + skip_confirm_for_simple_edits = false, + -- Change this to customize the command used when deleting to trash + trash_command = "trash-put", + -- Selecting a new/moved/renamed file or directory will prompt you to save changes first + prompt_save_on_select_new_entry = true, + -- Keymaps in oil buffer. Can be any value that `vim.keymap.set` accepts OR a table of keymap + -- options with a `callback` (e.g. { callback = function() ... end, desc = "", nowait = true }) + -- Additionally, if it is a string that matches "actions.", + -- it will use the mapping at require("oil.actions"). + -- Set to `false` to remove a keymap + -- See :help oil-actions for a list of all available actions + keymaps = { + ["g?"] = "actions.show_help", + [""] = "actions.select", + [""] = "actions.select_vsplit", + [""] = "actions.select_split", + [""] = "actions.select_tab", + [""] = "actions.preview", + [""] = "actions.close", + [""] = "actions.refresh", + ["-"] = "actions.parent", + ["_"] = "actions.open_cwd", + ["`"] = "actions.cd", + ["~"] = "actions.tcd", + ["gs"] = "actions.change_sort", + ["gx"] = "actions.open_external", + ["g."] = "actions.toggle_hidden", + }, + -- Set to false to disable all of the above keymaps + use_default_keymaps = true, + view_options = { + -- Show files and directories that start with "." + show_hidden = false, + -- This function defines what is considered a "hidden" file + is_hidden_file = function(name, bufnr) + return vim.startswith(name, ".") + end, + -- This function defines what will never be shown, even when `show_hidden` is set + is_always_hidden = function(name, bufnr) + return false + end, + sort = { + -- sort order can be "asc" or "desc" + -- see :help oil-columns to see which columns are sortable + { "type", "asc" }, + { "name", "asc" }, + }, + }, + -- Configuration for the floating window in oil.open_float + float = { + -- Padding around the floating window + padding = 2, + max_width = 0, + max_height = 0, + border = "rounded", + win_options = { + winblend = 0, + }, + -- This is the config that will be passed to nvim_open_win. + -- Change values here to customize the layout + override = function(conf) + return conf + end, + }, + -- Configuration for the actions floating preview window + preview = { + -- Width dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) + -- min_width and max_width can be a single value or a list of mixed integer/float types. + -- max_width = {100, 0.8} means "the lesser of 100 columns or 80% of total" + max_width = 0.9, + -- min_width = {40, 0.4} means "the greater of 40 columns or 40% of total" + min_width = { 40, 0.4 }, + -- optionally define an integer/float for the exact width of the preview window + width = nil, + -- Height dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) + -- min_height and max_height can be a single value or a list of mixed integer/float types. + -- max_height = {80, 0.9} means "the lesser of 80 columns or 90% of total" + max_height = 0.9, + -- min_height = {5, 0.1} means "the greater of 5 columns or 10% of total" + min_height = { 5, 0.1 }, + -- optionally define an integer/float for the exact height of the preview window + height = nil, + border = "rounded", + win_options = { + winblend = 0, + }, + }, + -- Configuration for the floating progress window + progress = { + max_width = 0.9, + min_width = { 40, 0.4 }, + width = nil, + max_height = { 10, 0.9 }, + min_height = { 5, 0.1 }, + height = nil, + border = "rounded", + minimized_border = "none", + win_options = { + winblend = 0, + }, + }, + +}) diff --git a/lua/keymappings.lua b/lua/keymappings.lua index e6df730..e75c31e 100644 --- a/lua/keymappings.lua +++ b/lua/keymappings.lua @@ -12,4 +12,4 @@ utils.map("n", "s", "setlocal spell spelllang=en_us") -- Toggle line numbers and file tree utils.map("n", "", "set nonumber!") -utils.map("n", "", "NvimTreeToggle") +utils.map("n", "", "Oil") diff --git a/lua/plugins.lua b/lua/plugins.lua index dda78c5..138e9e6 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -13,86 +13,7 @@ return require('packer').startup(function() use 'nvim-treesitter/nvim-treesitter' - use { - 'nvim-tree/nvim-tree.lua', - requires = 'nvim-tree/nvim-web-devicons', - config = function() require'nvim-tree'.setup { - create_in_closed_folder = false, - disable_netrw = true, - hijack_netrw = true, - respect_buf_cwd = true, - open_on_tab = false, - hijack_cursor = false, - update_cwd = false, - diagnostics = { - enable = true, - icons = { - hint = "", - info = "", - warning = "", - error = "", - } - }, - update_focused_file = { - enable = false, - update_cwd = false, - ignore_list = {} - }, - system_open = { - cmd = nil, - args = {} - }, - filters = { - dotfiles = false, - custom = {} - }, - actions = { - open_file = { - window_picker = { - enable = false, - exclude = { - filetype = { 'notify', 'packer', 'qf' }, - buftype = { 'terminal' } - } - }, - quit_on_open = false, - resize_window = false - } - }, - renderer = { - indent_markers = { - enable = true - }, - add_trailing = true, - group_empty = true, - highlight_opened_files = "all", - highlight_git = true, - root_folder_modifier = ':~', - special_files = { 'README.md', 'Makefile', 'MAKEFILE' } - }, - view = { - hide_root_folder = false, - mappings = { - custom_only = false, - list = {} - }, - float = { - enable = true, - quit_on_focus_loss = true, - open_win_config = { - relative = "editor", - border = "rounded", - width = 30, - height = 30, - row = 1, - col = 1, - } - } - } - } end -} - - -- LSP and completion + -- LSP and related use { 'neovim/nvim-lspconfig' } use { 'nvim-lua/completion-nvim' } @@ -119,4 +40,5 @@ return require('packer').startup(function() use { 'vim-scripts/DrawIt' } use { 'gleam-lang/gleam.vim' } + use { 'stevearc/oil.nvim' } end)