feat(neovim): switch from vim-startify to alpha-nvim
This commit is contained in:
parent
2715807cb1
commit
1fa4f85c5d
5 changed files with 70 additions and 53 deletions
home/editors/neovim
33
home/editors/neovim/alpha.lua
Normal file
33
home/editors/neovim/alpha.lua
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
local status_ok, alpha = pcall(require, "alpha")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local keybind_opts = { noremap = true, silent = true, nowait = true }
|
||||||
|
local dashboard = require("alpha.themes.dashboard")
|
||||||
|
dashboard.section.header.val = {
|
||||||
|
[[ __ ]],
|
||||||
|
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
|
||||||
|
[[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]],
|
||||||
|
[[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]],
|
||||||
|
[[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]],
|
||||||
|
[[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]],
|
||||||
|
}
|
||||||
|
dashboard.section.buttons.val = {
|
||||||
|
dashboard.button("p", " " .. " Find project", ":Telescope project display_type=full <CR>", keybind_opts),
|
||||||
|
dashboard.button("s", " " .. " Restore session", ":RestoreSession <CR>", keybind_opts),
|
||||||
|
dashboard.button("f", " " .. " Find file", ":Telescope find_files <CR>", keybind_opts),
|
||||||
|
dashboard.button("e", " " .. " New file", ":ene <BAR> startinsert <CR>", keybind_opts),
|
||||||
|
dashboard.button("r", " " .. " Recent files", ":Telescope oldfiles <CR>", keybind_opts),
|
||||||
|
dashboard.button("t", " " .. " Find text", ":Telescope live_grep <CR>", keybind_opts),
|
||||||
|
dashboard.button("h", " " .. " Neovim Help", ":help<CR>", keybind_opts),
|
||||||
|
dashboard.button("R", " " .. " Neovim Reference", ":help reference<CR>", keybind_opts),
|
||||||
|
dashboard.button("q", " " .. " Quit", ":qa<CR>", keybind_opts),
|
||||||
|
}
|
||||||
|
|
||||||
|
dashboard.section.footer.opts.hl = "Type"
|
||||||
|
dashboard.section.header.opts.hl = "Include"
|
||||||
|
dashboard.section.buttons.opts.hl = "Keyword"
|
||||||
|
|
||||||
|
dashboard.opts.opts.noautocmd = true
|
||||||
|
alpha.setup(dashboard.opts)
|
17
home/editors/neovim/auto-session.lua
Normal file
17
home/editors/neovim/auto-session.lua
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
vim.o.sessionoptions = "buffers,curdir,tabpages,winsize"
|
||||||
|
|
||||||
|
require("auto-session").setup {
|
||||||
|
auto_session_suppress_dirs = { "~/", "~/dev", "~/dev/work" },
|
||||||
|
auto_session_enabled = false,
|
||||||
|
pre_save_cmds = { "tabdo NvimTreeClose" },
|
||||||
|
}
|
||||||
|
|
||||||
|
local wk = require("which-key")
|
||||||
|
wk.register({
|
||||||
|
S = {
|
||||||
|
name = "Session",
|
||||||
|
d = { require("auto-session").DeleteSession, "Delete session" },
|
||||||
|
s = { require("auto-session").SaveSession, "Save session" },
|
||||||
|
r = { require("auto-session").RestoreSession, "Restore session" },
|
||||||
|
},
|
||||||
|
}, { mode = "n", prefix = "<leader>" })
|
|
@ -18,12 +18,14 @@ in {
|
||||||
editorconfig-nvim
|
editorconfig-nvim
|
||||||
direnv-vim
|
direnv-vim
|
||||||
telescope-nvim
|
telescope-nvim
|
||||||
|
telescope-project-nvim
|
||||||
telescope-fzy-native-nvim
|
telescope-fzy-native-nvim
|
||||||
lualine-nvim
|
lualine-nvim
|
||||||
nvim-web-devicons
|
nvim-web-devicons
|
||||||
nvim-tree-lua
|
nvim-tree-lua
|
||||||
toggleterm-nvim
|
toggleterm-nvim
|
||||||
vim-startify
|
alpha-nvim
|
||||||
|
auto-session
|
||||||
vim-visual-multi
|
vim-visual-multi
|
||||||
vim-surround
|
vim-surround
|
||||||
kommentary
|
kommentary
|
||||||
|
@ -66,7 +68,8 @@ in {
|
||||||
# readFile ./vim-surround-fix.vim +
|
# readFile ./vim-surround-fix.vim +
|
||||||
vimLua (lib.foldl (r: f: r + "\n" + readFile f) "" [
|
vimLua (lib.foldl (r: f: r + "\n" + readFile f) "" [
|
||||||
./init.lua
|
./init.lua
|
||||||
./startify.lua
|
./alpha.lua
|
||||||
|
./auto-session.lua
|
||||||
./lualine.lua
|
./lualine.lua
|
||||||
./which-key.lua
|
./which-key.lua
|
||||||
./gitsigns.lua
|
./gitsigns.lua
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
local function formatDirs(files)
|
|
||||||
local results = {}
|
|
||||||
for _, file in ipairs(files) do
|
|
||||||
table.insert(results, { line = file, path = file })
|
|
||||||
end
|
|
||||||
return results
|
|
||||||
end
|
|
||||||
|
|
||||||
local function gitModified()
|
|
||||||
local files = vim.fn.systemlist("git ls-files -m 2>/dev/null")
|
|
||||||
return formatDirs(files)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function gitUntracked()
|
|
||||||
local files = vim.fn.systemlist("git ls-files -o --exclude-standard 2>/dev/null")
|
|
||||||
return formatDirs(files)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function escapePattern(text)
|
|
||||||
return text:gsub("([^%w])", "%%%1")
|
|
||||||
end
|
|
||||||
|
|
||||||
local function listProjects()
|
|
||||||
local gitDirs = vim.fn.finddir(".git", vim.env.HOME .. "/dev/**4", -1)
|
|
||||||
table.insert(gitDirs, 1, "/etc/nixos")
|
|
||||||
return vim.fn.map(gitDirs, function(_, gitDir)
|
|
||||||
local dir = gitDir:gsub(escapePattern(".git"), "")
|
|
||||||
dir = dir == "" and "." or dir
|
|
||||||
local line = dir:gsub(escapePattern(vim.env.HOME), "~")
|
|
||||||
return {
|
|
||||||
line = line,
|
|
||||||
path = dir,
|
|
||||||
} end
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.g.startify_commands = {
|
|
||||||
{h = {"Vim Help", "help"}},
|
|
||||||
{r = {"Vim Reference", "help reference"}},
|
|
||||||
}
|
|
||||||
|
|
||||||
vim.g.startify_lists = {
|
|
||||||
{ header = {" Sessions"}, type = "sessions" },
|
|
||||||
{ header = {" git modified"}, type = gitModified },
|
|
||||||
{ header = {" git untracked"}, type = gitUntracked },
|
|
||||||
{ header = {" Projects"}, type = listProjects },
|
|
||||||
{ header = {" Recent files"}, type = "files" },
|
|
||||||
{ header = {" Commands"}, type = "commands" },
|
|
||||||
}
|
|
|
@ -1,5 +1,17 @@
|
||||||
require("telescope").setup()
|
require("telescope").setup {
|
||||||
|
extensions = {
|
||||||
|
project = {
|
||||||
|
base_dirs = {
|
||||||
|
{ "/etc/nixos" },
|
||||||
|
{ "~/dev", max_depth = 3 },
|
||||||
|
{ "~/dev/work", max_depth = 3 },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
require("telescope").load_extension("fzy_native")
|
require("telescope").load_extension("fzy_native")
|
||||||
|
require("telescope").load_extension("project")
|
||||||
|
|
||||||
local wk = require("which-key")
|
local wk = require("which-key")
|
||||||
|
|
||||||
|
@ -43,7 +55,8 @@ wk.register({
|
||||||
m = { require("telescope.builtin").marks, "Marks" },
|
m = { require("telescope.builtin").marks, "Marks" },
|
||||||
M = { require("telescope.builtin").man_pages, "Man pages" },
|
M = { require("telescope.builtin").man_pages, "Man pages" },
|
||||||
o = { require("telescope.builtin").oldfiles, "Previously open files" },
|
o = { require("telescope.builtin").oldfiles, "Previously open files" },
|
||||||
p = { require("telescope.builtin").pickers, "Pickers" },
|
p = { require("telescope").extensions.project.project, "Pickers" },
|
||||||
|
P = { require("telescope.builtin").pickers, "Pickers" },
|
||||||
q = { require("telescope.builtin").quickfix, "Quickfix" },
|
q = { require("telescope.builtin").quickfix, "Quickfix" },
|
||||||
Q = { require("telescope.builtin").quickfixhistory, "Quickfix history" },
|
Q = { require("telescope.builtin").quickfixhistory, "Quickfix history" },
|
||||||
r = { require("telescope.builtin").resume, "Resume" },
|
r = { require("telescope.builtin").resume, "Resume" },
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue