summaryrefslogtreecommitdiff
path: root/lua/lvim
diff options
context:
space:
mode:
authorChristian Chiarulli <[email protected]>2022-09-19 11:44:04 -0400
committerGitHub <[email protected]>2022-09-19 11:44:04 -0400
commita331ef711bc6c73e78535e9b4fa44d54c937aa88 (patch)
tree05df2aa93b7a147393f6daf4483380c88eb6e408 /lua/lvim
parent68fdbaa51d658899d4405b2660bfbe360e9dfed4 (diff)
feat: add lir.nvim again (#3038)
Diffstat (limited to 'lua/lvim')
-rw-r--r--lua/lvim/core/autocmds.lua30
-rw-r--r--lua/lvim/core/builtins/init.lua1
-rw-r--r--lua/lvim/core/lir.lua117
-rw-r--r--lua/lvim/core/which-key.lua2
-rw-r--r--lua/lvim/plugin-loader.lua2
-rw-r--r--lua/lvim/plugins.lua9
6 files changed, 158 insertions, 3 deletions
diff --git a/lua/lvim/core/autocmds.lua b/lua/lvim/core/autocmds.lua
index ef7122e5..525d2338 100644
--- a/lua/lvim/core/autocmds.lua
+++ b/lua/lvim/core/autocmds.lua
@@ -10,6 +10,36 @@ function M.load_defaults()
user_config_file = user_config_file:gsub("\\", "/")
end
+ vim.api.nvim_create_autocmd({ "FileType" }, {
+ pattern = {
+ "Jaq",
+ "qf",
+ "help",
+ "man",
+ "lspinfo",
+ "spectre_panel",
+ "lir",
+ "DressingSelect",
+ "tsplayground",
+ "Markdown",
+ },
+ callback = function()
+ vim.cmd [[
+ nnoremap <silent> <buffer> q :close<CR>
+ nnoremap <silent> <buffer> <esc> :close<CR>
+ set nobuflisted
+ ]]
+ end,
+ })
+
+ vim.api.nvim_create_autocmd({ "FileType" }, {
+ pattern = { "lir" },
+ callback = function()
+ vim.opt_local.number = false
+ vim.opt_local.relativenumber = false
+ end,
+ })
+
local definitions = {
{
"TextYankPost",
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..694ea4eb
--- /dev/null
+++ b/lua/lvim/core/lir.lua
@@ -0,0 +1,117 @@
+local M = {}
+
+local Log = require "lvim.core.log"
+
+M.config = function()
+ lvim.builtin.lir = {
+ active = true,
+ on_config_done = nil,
+ }
+
+ 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
+
+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 status_ok, lir = pcall(require, "lir")
+ if not status_ok then
+ return
+ end
+
+ 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/core/which-key.lua b/lua/lvim/core/which-key.lua
index 7d75dee1..8b4f7b8b 100644
--- a/lua/lvim/core/which-key.lua
+++ b/lua/lvim/core/which-key.lua
@@ -15,7 +15,7 @@ M.config = function()
motions = false, -- adds help for motions
text_objects = false, -- help for text objects triggered after entering an operator
windows = false, -- default bindings on <c-w>
- nav = true, -- misc bindings to work with windows
+ nav = false, -- misc bindings to work with windows
z = false, -- bindings for folds, spelling and others prefixed with z
g = false, -- bindings for prefixed with g
},
diff --git a/lua/lvim/plugin-loader.lua b/lua/lvim/plugin-loader.lua
index c10fe75e..5c4e6cb2 100644
--- a/lua/lvim/plugin-loader.lua
+++ b/lua/lvim/plugin-loader.lua
@@ -20,7 +20,7 @@ function plugin_loader.init(opts)
package_root = opts.package_root or join_paths(vim.fn.stdpath "data", "site", "pack"),
compile_path = compile_path,
snapshot_path = snapshot_path,
- max_jobs = 40,
+ max_jobs = 100,
log = { level = "warn" },
git = {
clone_timeout = 300,
diff --git a/lua/lvim/plugins.lua b/lua/lvim/plugins.lua
index bfe76bb8..a483dbc0 100644
--- a/lua/lvim/plugins.lua
+++ b/lua/lvim/plugins.lua
@@ -139,7 +139,14 @@ local core_plugins = {
end,
disable = not lvim.builtin.nvimtree.active,
},
-
+ -- Lir
+ {
+ "christianchiarulli/lir.nvim",
+ config = function()
+ require("lvim.core.lir").setup()
+ end,
+ disable = not lvim.builtin.lir.active,
+ },
{
"lewis6991/gitsigns.nvim",