summaryrefslogtreecommitdiff
path: root/lua/lvim
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lvim')
-rw-r--r--lua/lvim/core/gitsigns.lua25
-rw-r--r--lua/lvim/core/illuminate.lua4
-rw-r--r--lua/lvim/core/lir.lua10
-rw-r--r--lua/lvim/core/nvimtree.lua224
-rw-r--r--lua/lvim/core/project.lua24
-rw-r--r--lua/lvim/core/which-key.lua24
6 files changed, 215 insertions, 96 deletions
diff --git a/lua/lvim/core/gitsigns.lua b/lua/lvim/core/gitsigns.lua
index cc727c8b..1c8619c8 100644
--- a/lua/lvim/core/gitsigns.lua
+++ b/lua/lvim/core/gitsigns.lua
@@ -37,15 +37,14 @@ M.config = function()
linehl = "GitSignsChangeLn",
},
},
+ signcolumn = true,
numhl = false,
linehl = false,
- keymaps = {
- -- Default keymap options
- noremap = true,
- buffer = true,
- },
- signcolumn = true,
word_diff = false,
+ watch_gitdir = {
+ interval = 1000,
+ follow_files = true,
+ },
attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
@@ -54,9 +53,10 @@ M.config = function()
delay = 1000,
ignore_whitespace = false,
},
- current_line_blame_formatter_opts = {
- relative_time = false,
- },
+ current_line_blame_formatter = "<author>, <author_time:%Y-%m-%d> - <summary>",
+ sign_priority = 6,
+ status_formatter = nil, -- Use default
+ update_debounce = 200,
max_file_length = 40000,
preview_config = {
-- Options passed to nvim_open_win
@@ -66,13 +66,6 @@ M.config = function()
row = 0,
col = 1,
},
- watch_gitdir = {
- interval = 1000,
- follow_files = true,
- },
- sign_priority = 6,
- update_debounce = 200,
- status_formatter = nil, -- Use default
yadm = { enable = false },
},
}
diff --git a/lua/lvim/core/illuminate.lua b/lua/lvim/core/illuminate.lua
index a3ca6711..808ce724 100644
--- a/lua/lvim/core/illuminate.lua
+++ b/lua/lvim/core/illuminate.lua
@@ -13,6 +13,10 @@ M.config = function()
},
-- delay: delay in milliseconds
delay = 120,
+ -- filetype_overrides: filetype specific overrides.
+ -- The keys are strings to represent the filetype while the values are tables that
+ -- supports the same keys passed to .configure except for filetypes_denylist and filetypes_allowlist
+ filetype_overrides = {},
-- filetypes_denylist: filetypes to not illuminate, this overrides filetypes_allowlist
filetypes_denylist = {
"dirvish",
diff --git a/lua/lvim/core/lir.lua b/lua/lvim/core/lir.lua
index 7920f802..d60881e2 100644
--- a/lua/lvim/core/lir.lua
+++ b/lua/lvim/core/lir.lua
@@ -18,6 +18,7 @@ M.config = function()
lvim.builtin.lir = vim.tbl_extend("force", lvim.builtin.lir, {
show_hidden_files = false,
+ ignore = {}, -- { ".DS_Store" "node_modules" } etc.
devicons_enable = true,
mappings = {
["l"] = actions.edit,
@@ -52,8 +53,8 @@ M.config = function()
highlight_dirname = true,
},
- -- -- You can define a function that returns a table to be passed as the third
- -- -- argument of nvim_open_win().
+ -- 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)
@@ -61,8 +62,6 @@ M.config = function()
border = "rounded",
width = width,
height = height,
- -- row = 1,
- -- col = math.floor((vim.o.columns - width) / 2),
}
end,
},
@@ -76,9 +75,6 @@ M.config = function()
':<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,
})
end
diff --git a/lua/lvim/core/nvimtree.lua b/lua/lvim/core/nvimtree.lua
index a62a7d71..5653b35a 100644
--- a/lua/lvim/core/nvimtree.lua
+++ b/lua/lvim/core/nvimtree.lua
@@ -6,55 +6,61 @@ function M.config()
active = true,
on_config_done = nil,
setup = {
- ignore_ft_on_setup = {
- "startify",
- "dashboard",
- "alpha",
- },
auto_reload_on_write = false,
- hijack_directories = {
- enable = false,
- },
- update_cwd = true,
- diagnostics = {
- enable = lvim.use_icons,
- show_on_dirs = false,
- icons = {
- hint = lvim.icons.diagnostics.BoldHint,
- info = lvim.icons.diagnostics.BoldInformation,
- warning = lvim.icons.diagnostics.BoldWarning,
- error = lvim.icons.diagnostics.BoldError,
- },
- },
- update_focused_file = {
- enable = true,
- update_cwd = true,
- ignore_list = {},
- },
- system_open = {
- cmd = nil,
- args = {},
- },
- git = {
- enable = true,
- ignore = false,
- timeout = 200,
- },
+ disable_netrw = false,
+ hijack_cursor = false,
+ hijack_netrw = true,
+ hijack_unnamed_buffer_when_opening = false,
+ ignore_buffer_on_setup = false,
+ open_on_setup = false,
+ open_on_setup_file = false,
+ sort_by = "name",
+ root_dirs = {},
+ prefer_startup_root = false,
+ sync_root_with_cwd = true,
+ reload_on_bufenter = false,
+ respect_buf_cwd = false,
+ on_attach = "disable",
+ remove_keymaps = false,
+ select_prompts = false,
view = {
+ adaptive_size = false,
+ centralize_selection = false,
width = 30,
hide_root_folder = false,
side = "left",
+ preserve_window_proportions = false,
+ number = false,
+ relativenumber = false,
+ signcolumn = "yes",
mappings = {
custom_only = false,
list = {},
},
- number = false,
- relativenumber = false,
- signcolumn = "yes",
+ float = {
+ enable = false,
+ quit_on_focus_loss = true,
+ open_win_config = {
+ relative = "editor",
+ border = "rounded",
+ width = 30,
+ height = 30,
+ row = 1,
+ col = 1,
+ },
+ },
},
renderer = {
+ add_trailing = false,
+ group_empty = false,
+ highlight_git = true,
+ full_name = false,
+ highlight_opened_files = "none",
+ root_folder_label = ":t",
+ indent_width = 2,
indent_markers = {
enable = false,
+ inline_arrows = true,
icons = {
corner = "â””",
edge = "│",
@@ -64,57 +70,92 @@ function M.config()
},
icons = {
webdev_colors = lvim.use_icons,
+ git_placement = "before",
+ padding = " ",
+ symlink_arrow = " âž› ",
show = {
- git = lvim.use_icons,
- folder = lvim.use_icons,
file = lvim.use_icons,
+ folder = lvim.use_icons,
folder_arrow = lvim.use_icons,
+ git = lvim.use_icons,
},
glyphs = {
default = lvim.icons.ui.Text,
symlink = lvim.icons.ui.FileSymlink,
- git = {
- deleted = lvim.icons.git.FileDeleted,
- ignored = lvim.icons.git.FileIgnored,
- renamed = lvim.icons.git.FileRenamed,
- staged = lvim.icons.git.FileStaged,
- unmerged = lvim.icons.git.FileUnmerged,
- unstaged = lvim.icons.git.FileUnstaged,
- untracked = lvim.icons.git.FileUntracked,
- },
+ bookmark = lvim.icons.ui.BookMark,
folder = {
+ arrow_closed = lvim.icons.ui.TriangleShortArrowRight,
+ arrow_open = lvim.icons.ui.TriangleShortArrowDown,
default = lvim.icons.ui.Folder,
+ open = lvim.icons.ui.FolderOpen,
empty = lvim.icons.ui.EmptyFolder,
empty_open = lvim.icons.ui.EmptyFolderOpen,
- open = lvim.icons.ui.FolderOpen,
symlink = lvim.icons.ui.FolderSymlink,
+ symlink_open = lvim.icons.ui.FolderOpen,
+ },
+ git = {
+ unstaged = lvim.icons.git.FileUnstaged,
+ staged = lvim.icons.git.FileStaged,
+ unmerged = lvim.icons.git.FileUnmerged,
+ renamed = lvim.icons.git.FileRenamed,
+ untracked = lvim.icons.git.FileUntracked,
+ deleted = lvim.icons.git.FileDeleted,
+ ignored = lvim.icons.git.FileIgnored,
},
},
},
- highlight_git = true,
- group_empty = false,
- root_folder_modifier = ":t",
+ special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" },
+ symlink_destination = true,
+ },
+ hijack_directories = {
+ enable = false,
+ auto_open = true,
+ },
+ update_focused_file = {
+ enable = true,
+ debounce_delay = 15,
+ update_root = true,
+ ignore_list = {},
+ },
+ ignore_ft_on_setup = {
+ "startify",
+ "dashboard",
+ "alpha",
+ },
+ diagnostics = {
+ enable = lvim.use_icons,
+ show_on_dirs = false,
+ show_on_open_dirs = true,
+ debounce_delay = 50,
+ severity = {
+ min = vim.diagnostic.severity.HINT,
+ max = vim.diagnostic.severity.ERROR,
+ },
+ icons = {
+ hint = lvim.icons.diagnostics.BoldHint,
+ info = lvim.icons.diagnostics.BoldInformation,
+ warning = lvim.icons.diagnostics.BoldWarning,
+ error = lvim.icons.diagnostics.BoldError,
+ },
},
filters = {
dotfiles = false,
+ git_clean = false,
+ no_buffer = false,
custom = { "node_modules", "\\.cache" },
exclude = {},
},
- trash = {
- cmd = "trash",
- require_confirm = true,
+ filesystem_watchers = {
+ enable = true,
+ debounce_delay = 50,
+ ignore_dirs = {},
},
- log = {
- enable = false,
- truncate = false,
- types = {
- all = false,
- config = false,
- copy_paste = false,
- diagnostics = false,
- git = false,
- profile = false,
- },
+ git = {
+ enable = true,
+ ignore = false,
+ show_on_dirs = true,
+ show_on_open_dirs = true,
+ timeout = 200,
},
actions = {
use_system_clipboard = true,
@@ -123,11 +164,25 @@ function M.config()
global = false,
restrict_above_cwd = false,
},
+ expand_all = {
+ max_folder_discovery = 300,
+ exclude = {},
+ },
+ file_popup = {
+ open_win_config = {
+ col = 1,
+ row = 1,
+ relative = "cursor",
+ border = "shadow",
+ style = "minimal",
+ },
+ },
open_file = {
quit_on_open = false,
resize_window = false,
window_picker = {
enable = true,
+ picker = "default",
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
exclude = {
filetype = { "notify", "packer", "qf", "diff", "fugitive", "fugitiveblame" },
@@ -135,6 +190,45 @@ function M.config()
},
},
},
+ remove_file = {
+ close_window = true,
+ },
+ },
+ trash = {
+ cmd = "trash",
+ require_confirm = true,
+ },
+ live_filter = {
+ prefix = "[FILTER]: ",
+ always_show_folders = true,
+ },
+ tab = {
+ sync = {
+ open = false,
+ close = false,
+ ignore = {},
+ },
+ },
+ notify = {
+ threshold = vim.log.levels.INFO,
+ },
+ log = {
+ enable = false,
+ truncate = false,
+ types = {
+ all = false,
+ config = false,
+ copy_paste = false,
+ dev = false,
+ diagnostics = false,
+ git = false,
+ profile = false,
+ watcher = false,
+ },
+ },
+ system_open = {
+ cmd = nil,
+ args = {},
},
},
}
diff --git a/lua/lvim/core/project.lua b/lua/lvim/core/project.lua
index c3734a16..17473c55 100644
--- a/lua/lvim/core/project.lua
+++ b/lua/lvim/core/project.lua
@@ -21,18 +21,30 @@ function M.config()
-- detection_methods = { "lsp", "pattern" }, -- NOTE: lsp detection will get annoying with multiple langs in one project
detection_methods = { "pattern" },
- ---@usage patterns used to detect root dir, when **"pattern"** is in detection_methods
+ -- All the patterns used to detect root dir, when **"pattern"** is in
+ -- detection_methods
patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json", "pom.xml" },
- ---@ Show hidden files in telescope when searching for files in a project
+ -- Table of lsp clients to ignore by name
+ -- eg: { "efm", ... }
+ ignore_lsp = {},
+
+ -- Don't calculate root dir on specific directories
+ -- Ex: { "~/.cargo/*", ... }
+ exclude_dirs = {},
+
+ -- Show hidden files in telescope
show_hidden = false,
- ---@usage When set to false, you will get a message when project.nvim changes your directory.
- -- When set to false, you will get a message when project.nvim changes your directory.
+ -- When set to false, you will get a message when project.nvim changes your
+ -- directory.
silent_chdir = true,
- ---@usage list of lsp client names to ignore when using **lsp** detection. eg: { "efm", ... }
- ignore_lsp = {},
+ -- What scope to change the directory, valid options are
+ -- * global (default)
+ -- * tab
+ -- * win
+ scope_chdir = "global",
---@type string
---@usage path to store the project history for use in telescope
diff --git a/lua/lvim/core/which-key.lua b/lua/lvim/core/which-key.lua
index 31479a91..d1585702 100644
--- a/lua/lvim/core/which-key.lua
+++ b/lua/lvim/core/which-key.lua
@@ -8,6 +8,10 @@ M.config = function()
plugins = {
marks = false, -- shows a list of your marks on ' and `
registers = false, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
+ spelling = {
+ enabled = true,
+ suggestions = 20,
+ }, -- use which-key for spelling hints
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
-- No actual key bindings are created
presets = {
@@ -19,7 +23,16 @@ M.config = function()
z = false, -- bindings for folds, spelling and others prefixed with z
g = false, -- bindings for prefixed with g
},
- spelling = { enabled = true, suggestions = 20 }, -- use which-key for spelling hints
+ },
+ -- add operators that will trigger motion and text object completion
+ -- to enable all native operators, set the preset / operators plugin above
+ operators = { gc = "Comments" },
+ key_labels = {
+ -- override the label used to display some keys. It doesn't effect WK in any other way.
+ -- For example:
+ -- ["<space>"] = "SPC",
+ -- ["<cr>"] = "RET",
+ -- ["<tab>"] = "TAB",
},
icons = {
breadcrumb = lvim.icons.ui.DoubleChevronRight, -- symbol used in the command line area that shows your active key combo
@@ -43,9 +56,10 @@ M.config = function()
spacing = 3, -- spacing between columns
align = "left", -- align columns left, center or right
},
- hidden = { "<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate
ignore_missing = false, -- enable this to hide mappings for which you didn't specify a label
+ hidden = { "<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ " }, -- hide mapping boilerplate
show_help = true, -- show help message on the command line when the popup is visible
+ show_keys = true, -- show the currently pressed key and its label as a message in the command line
triggers = "auto", -- automatically setup triggers
-- triggers = {"<leader>"} -- or specify a list manually
triggers_blacklist = {
@@ -55,6 +69,12 @@ M.config = function()
i = { "j", "k" },
v = { "j", "k" },
},
+ -- disable the WhichKey popup for certain buf types and file types.
+ -- Disabled by deafult for Telescope
+ disable = {
+ buftypes = {},
+ filetypes = { "TelescopePrompt" },
+ },
},
opts = {