diff --git a/init.lua b/init.lua index b87ed78..8a0d70f 100644 --- a/init.lua +++ b/init.lua @@ -16,7 +16,7 @@ vim.api.nvim_create_autocmd("LspAttach", { vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) vim.keymap.set("n", "r", vim.lsp.buf.rename, opts) vim.keymap.set("n", "a", vim.lsp.buf.code_action, opts) - vim.keymap.set("n", "for", function() + vim.keymap.set("n", "lf", function() vim.lsp.buf.format({ async = true }) end, opts) vim.keymap.set("n", "e", vim.diagnostic.open_float, opts) diff --git a/lazy-lock.json b/lazy-lock.json index 4387c38..5f58475 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -11,6 +11,7 @@ "nvim-treesitter-endwise": { "branch": "master", "commit": "8fe8a95630f4f2c72a87ba1927af649e0bfaa244" }, "nvim-ts-autotag": { "branch": "main", "commit": "8e1c0a389f20bf7f5b0dd0e00306c1247bda2595" }, "nvim-web-devicons": { "branch": "master", "commit": "d7462543c9e366c0d196c7f67a945eaaf5d99414" }, + "oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" }, "rustaceanvim": { "branch": "master", "commit": "f2f0c1231a5b019dbc1fd6dafac1751c878925a3" }, "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" } } diff --git a/lua/plugins/oil.lua b/lua/plugins/oil.lua new file mode 100644 index 0000000..5a06ea1 --- /dev/null +++ b/lua/plugins/oil.lua @@ -0,0 +1,65 @@ +return { + 'stevearc/oil.nvim', + lazy = false, + dependencies = { 'nvim-tree/nvim-web-devicons' }, + + ---@module 'oil' + ---@type oil.SetupOpts + opts = { + -- Substitutes netrw as the default browser + default_file_explorer = true, + + -- Visible buffer columns + columns = { + 'icon', + -- 'permissions', + -- 'size', + -- 'mtime', + }, + + -- Oil buffer options + buf_options = { + buflisted = false, + bufhidden = 'hide', + }, + + -- Floating window + float = { + padding = 2, + max_width = 80, + max_height = 30, + border = 'rounded', + win_options = { + winblend = 0, + }, + }, + + view_options = { + show_hidden = true, -- show hidden files/dirs + is_always_hidden = function(name, _) + -- always hide the .git dir + return name == '.git' + end + }, + + 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', + ['g.'] = 'actions.toggle_hidden', + }, + use_default_keymaps = false, + }, + + keys = { + { '-', 'Oil', desc = 'Open parent directory' }, + { '-', function() require('oil').open_float() end, desc = 'Open parent directory (float)' } + } +} diff --git a/lua/settings.lua b/lua/settings.lua index 0f17daa..59f22eb 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -31,6 +31,10 @@ vim.opt.hlsearch = false -- do not keep matches highlighted vim.opt.splitbelow = true -- horizontal splits open below vim.opt.splitright = true -- vertical splits open to the right +-- Misc +vim.opt.undofile = true -- persist between sessions +vim.opt.updatetime = 250 -- lower the update delay + -- Diagnostics vim.diagnostic.config({ virtual_text = true, -- use virtual text for diagnostics