diff options
| author | Christian Chiarulli <[email protected]> | 2022-09-15 23:33:08 -0400 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2022-09-15 23:33:08 -0400 | 
| commit | a4c2dc4d0b638a50c3219f247b09e6238a44ec50 (patch) | |
| tree | 250527d4ca3a5644d6d6fbae80d9d5a2abee5b0d /lua/lvim/core/lir.lua | |
| parent | 464ad8b0035cbcaf4864d14da598b77a939026d8 (diff) | |
refactor: small improvements (#3021)
Diffstat (limited to 'lua/lvim/core/lir.lua')
| -rw-r--r-- | lua/lvim/core/lir.lua | 90 | 
1 files changed, 90 insertions, 0 deletions
| diff --git a/lua/lvim/core/lir.lua b/lua/lvim/core/lir.lua new file mode 100644 index 00000000..e14e01cd --- /dev/null +++ b/lua/lvim/core/lir.lua @@ -0,0 +1,90 @@ +local M = {} + +M.config = function() +  local status_ok, lir = pcall(require, "lir") +  if not status_ok then +    return +  end + +  local actions = require "lir.actions" +  local mark_actions = require "lir.mark.actions" +  local clipboard_actions = require "lir.clipboard.actions" + +  lir.setup { +    show_hidden_files = false, +    devicons_enable = true, +    mappings = { +      ["l"] = actions.edit, +      ["<CR>"] = 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"] = function() +        mark_actions.toggle_mark() +        vim.cmd "normal! j" +      end, +      ["c"] = clipboard_actions.copy, +      ["x"] = clipboard_actions.cut, +      ["p"] = clipboard_actions.paste, +    }, +    float = { +      winblend = 0, +      curdir_window = { +        enable = false, +        highlight_dirname = true, +      }, + +      -- -- You can define a function that returns a table to be passed as the third +      -- -- argument of nvim_open_win(). +      win_opts = function() +        local width = math.floor(vim.o.columns * 0.7) +        local height = math.floor(vim.o.lines * 0.7) +        return { +          border = "rounded", +          width = width, +          height = height, +          -- row = 1, +          -- col = math.floor((vim.o.columns - width) / 2), +        } +      end, +    }, +    hide_cursor = false, +    on_init = function() +      -- use visual mode +      vim.api.nvim_buf_set_keymap( +        0, +        "x", +        "J", +        ':<C-u>lua require"lir.mark.actions".toggle_mark("v")<CR>', +        { noremap = true, silent = true } +      ) + +      -- echo cwd +      -- vim.api.nvim_echo({ { vim.fn.expand "%:p", "Normal" } }, false, {}) +    end, +  } + +  -- custom folder icon +  require("nvim-web-devicons").set_icon { +    lir_folder_icon = { +      icon = "î—¿", +      -- color = "#7ebae4", +      -- color = "#569CD6", +      color = "#42A5F5", +      name = "LirFolderNode", +    }, +  } +end +return M | 
