my neovim config, who would've thought
1---@type LazySpec
2return {
3 {
4 "stevearc/oil.nvim",
5 event = "VeryLazy",
6 cmd = "Oil",
7 keys = { { "<leader>e", vim.cmd.Oil } },
8 ---@module "oil"
9 ---@type oil.setupOpts
10 opts = {
11 columns = { "icon" },
12 delete_to_trash = true,
13 skip_confirm_for_simple_edits = true,
14 lsp_file_methods = { autosave_changes = true },
15 use_default_keymaps = false,
16 keymaps = {
17 ["."] = "actions.toggle_hidden",
18 ["<CR>"] = "actions.select",
19 ["<tab>"] = "actions.select",
20 ["<C-p>"] = "actions.preview",
21 ["<C-r>"] = "actions.refresh",
22 ["-"] = "actions.open_cwd",
23 [";"] = "actions.parent",
24 ["\\"] = "actions.cd",
25 },
26 view_options = {
27 show_hidden = false,
28 is_always_hidden = function(name, _)
29 return ({
30 [".."] = {}, -- annoying as hell
31 [".git"] = {},
32 [".jj"] = {},
33 [".docker"] = {},
34 ["build"] = {},
35 ["dist"] = {},
36 ["node_modules"] = {},
37 ["elm-stuff"] = {},
38 ["target"] = {},
39 })[name] ~= nil
40 end,
41 is_hidden_file = function(name, _)
42 return ({
43 ["vendor"] = {},
44 [".vscode"] = {},
45 [".bin"] = {},
46 ["tmp"] = {},
47 })[name] ~= nil or vim.startswith(name, ".")
48 end,
49 },
50 },
51 },
52}