diff options
| author | kylo252 <[email protected]> | 2022-09-16 17:47:40 +0200 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2022-09-16 11:47:40 -0400 | 
| commit | 77fdcd43cb77b50fc925487132f6aabd31760337 (patch) | |
| tree | dd29a152104c6c4ce75413a4a0f6445107cce52a | |
| parent | 62d9a4ea9df1828af2cbc6c5f42774f1662aaab4 (diff) | |
feat: add lir.nvim (#3031)
| -rw-r--r-- | lua/lvim/core/builtins/init.lua | 1 | ||||
| -rw-r--r-- | lua/lvim/core/lir.lua | 107 | ||||
| -rw-r--r-- | lua/lvim/plugins.lua | 7 | 
3 files changed, 115 insertions, 0 deletions
| diff --git a/lua/lvim/core/builtins/init.lua b/lua/lvim/core/builtins/init.lua index 5cad2a00..03ee8aec 100644 --- a/lua/lvim/core/builtins/init.lua +++ b/lua/lvim/core/builtins/init.lua @@ -9,6 +9,7 @@ local builtins = {    "lvim.core.telescope",    "lvim.core.treesitter",    "lvim.core.nvimtree", +  "lvim.core.lir",    "lvim.core.project",    "lvim.core.bufferline",    "lvim.core.autopairs", diff --git a/lua/lvim/core/lir.lua b/lua/lvim/core/lir.lua new file mode 100644 index 00000000..38b05b9c --- /dev/null +++ b/lua/lvim/core/lir.lua @@ -0,0 +1,107 @@ +local M = {} + +local Log = require "lvim.core.log" +M.config = function() +  lvim.builtin.lir = { +    active = false, +    on_config_done = nil, +  } + +  local status_ok, actions = pcall(require, "lir.actions") +  if not status_ok then +    return +  end + +  local mark_actions = require "lir.mark.actions" +  local clipboard_actions = require "lir.clipboard.actions" +  lvim.builtin.lir = vim.tbl_extend("force", lvim.builtin.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, +    }, +    icons = { +      lir_folder_icon = { +        icon = "î—¿", +        -- color = "#7ebae4", +        -- color = "#569CD6", +        color = "#42A5F5", +        name = "LirFolderNode", +      }, +    }, +  }) +end + +function M.setup() +  if lvim.builtin.nvimtree.active then +    Log:warn "Unable to configure lir while nvimtree is active! Please set 'lvim.builtin.nvimtree.active=false'" +    return +  end +  local lir = require "lir" +  lir.setup(lvim.builtin.lir.setup) +  require("nvim-web-devicons").set_icon(lvim.builtin.lir.icons) + +  if lvim.builtin.lir.on_config_done then +    lvim.builtin.lir.on_config_done(lir) +  end +end +return M diff --git a/lua/lvim/plugins.lua b/lua/lvim/plugins.lua index bfe76bb8..106403ac 100644 --- a/lua/lvim/plugins.lua +++ b/lua/lvim/plugins.lua @@ -139,6 +139,13 @@ local core_plugins = {      end,      disable = not lvim.builtin.nvimtree.active,    }, +  { +    "christianchiarulli/lir.nvim", +    config = function() +      require("lvim.core.lir").setup() +    end, +    disable = not lvim.builtin.lir.active, +  },    {      "lewis6991/gitsigns.nvim", | 
