Whichkey rework, dashboard, yazi

This commit is contained in:
agryphus 2024-02-20 21:15:43 -05:00
parent d9ac8b2bd1
commit 92bd99d8ea
13 changed files with 197 additions and 39 deletions

View file

@ -191,13 +191,17 @@ vim.cmd[[colorscheme no-clown-fiesta]]
-- My own color overrides
local hl = vim.api.nvim_set_hl
hl(0, 'TSConstant', { fg = palette.yellow })
hl(0, 'EndOfBuffer', { fg = palette.medium_gray })
hl(0, 'ErrorMsg', { fg = palette.yellow })
hl(0, 'LineNr', { fg = palette.medium_gray })
hl(0, 'MasonNormal', { bg = palette.gray })
hl(0, 'NvimTreeCursorLine', { fg = palette.yellow })
hl(0, 'NvimTreeEndOfBuffer', { fg = palette.medium_gray })
hl(0, 'TSConstant', { fg = palette.yellow })
hl(0, 'EndOfBuffer', { fg = palette.medium_gray })
hl(0, 'ErrorMsg', { fg = palette.yellow })
hl(0, 'LineNr', { fg = palette.medium_gray })
hl(0, 'MasonNormal', { bg = palette.gray })
hl(0, 'NvimTreeCursorLine', { fg = palette.yellow })
hl(0, 'NvimTreeEndOfBuffer', { fg = palette.medium_gray })
hl(0, 'NvimTreeIndentMarker', { fg = palette.medium_gray })
hl(0, 'NvimTreeFolderIcon', { fg = palette.yellow })
hl(0, 'NvimTreeFolderIcon', { fg = palette.yellow })
hl(0, 'WhichKeyFloat', { bg = nil })
hl(0, 'WhichKeyDesc', { link = "function" })
hl(0, 'WhichKey', { fg = palette.medium_gray_blue })
hl(0, 'WhichKeyGroup', { fg = palette.gray_blue, bold = true })

View file

@ -0,0 +1,58 @@
local alpha = require("alpha")
local dashboard = require("alpha.themes.dashboard")
math.randomseed(os.time())
local function pick_color()
local colors = {"String", "Identifier", "Keyword", "Number"}
return colors[math.random(#colors)]
end
local function footer()
local total_plugins = #vim.tbl_keys(packer_plugins)
local version = vim.version()
local nvim_version_info = " NVIM v" .. version.major .. "." .. version.minor .. "." .. version.patch
return nvim_version_info .. " 󰏖 " .. total_plugins .. " plugins"
end
-- Set header
dashboard.section.header.val = {
" ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣭⣿⣶⣿⣦⣼⣆ ",
" ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ",
" ⠈ ⠈⢿⣿⣟⠦⠄⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ",
" ⣸⣿⣿⢧⠄⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ",
" ⢠⣿⣿⣿⠈ ⠡⠌⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ",
" ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿ ",
" ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷⠄ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ",
"⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ",
"⠙⠃ ⣼⣿⡟⠌ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿⠐⣿⣿⡇ ⠛⠻⢷⣄",
" ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ⠁",
" ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣀⣤⣾⡿⠃ ",
"⢀⣀⠀⣠⣀⣠⣾⣿⣿⡿⠛⠋⠉⠉⠉ ⠉⠉⠉⠉⠛⠻⣿⣿⣷⣄⣀⢿⡽⢻⣦",
"⠻⠶⠾⠿⠿⠿⠋⠉ N E O V I M ⠉⠻⠿⠿⠿⠿⠿⠋",
}
-- Set menu
dashboard.section.buttons.val = {
dashboard.button( "e", " New file" , ":ene <BAR> startinsert <CR>"),
dashboard.button( "q", "󰩈 Quit NVIM", ":qa<CR>"),
}
vim.api.nvim_create_autocmd("VimEnter", {
once = true,
callback = function()
math.randomseed(os.time())
local fg_color = tostring(math.random(0, 12))
local hi_setter = "hi AlphaHeader ctermfg="
vim.cmd(hi_setter .. fg_color)
end
})
dashboard.section.footer.val = footer()
dashboard.section.header.opts.hl = "Include"
dashboard.section.footer.opts.hl = "String"
alpha.setup(dashboard.opts)

View file

@ -1,2 +1,4 @@
vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
local wk = require("which-key")
wk.register({g = { name = "git" }, prefix = "<leader>"})
vim.keymap.set("n", "<leader>gs", vim.cmd.Git, { desc = "Git status" })

View file

@ -1,4 +1,4 @@
vim.keymap.set("n", "<leader>e", function ()
vim.cmd("Lf")
end)
-- vim.keymap.set("n", "<leader>e", function ()
-- vim.cmd("Lf")
-- end)

View file

@ -9,17 +9,23 @@ lsp_zero.on_attach(function(client, bufnr)
lsp_zero.default_keymaps({buffer = bufnr})
end)
-- LUA
lspconfig.lua_ls.setup({
settings = {
Lua = {
diagnostics = {
-- Making sure that lua recognizes the global variable 'vim'
globals = { 'vim' },
globals = { 'vim', 'xplr' },
},
},
},
})
-- RUST
-- Must run `rustup default stable` and then `rustup component add rust-analyzer`
-- upon first install
lspconfig.rust_analyzer.setup({})
lspconfig.clangd.setup({
capabilities = lsp_capabilities,
})
@ -53,3 +59,11 @@ cmp.setup({
}
})
-- DIAGNOSTICS
-- Show all diagnostics on current line in floating window
vim.api.nvim_set_keymap(
'n', 'gl', ':lua vim.diagnostic.open_float()<CR>',
{ noremap = true, silent = true }
)

View file

@ -1,6 +1,7 @@
vim.cmd([[
vim.keymap.set("n", "<leader>mp", "<Plug>MarkdownPreview",
{ desc = "Markdown prewview" })
nmap <leader>mp <Plug>MarkdownPreview
vim.cmd([[
" set to 1, nvim will open the preview window after entering the markdown buffer
" default: 0

View file

@ -1,14 +1,29 @@
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>pf", builtin.find_files, {})
vim.keymap.set("n", "<leader>ps", function()
builtin.grep_string({ search = vim.fn.input("Grep > ") })
end)
vim.keymap.set("n", "<leader>ht", builtin.colorscheme, {})
require("telescope").setup{
defaults = {
file_ignore_patterns = { ".git\\", ".pyc", ".mypy_cache\\", "node_modules\\", ".svg" }
}
}
local wk = require("which-key")
-- <leader> p
wk.register({p = { name = "project" }, prefix = "<leader>"})
vim.keymap.set("n", "<leader>pf", builtin.find_files, {desc = "Project find"})
vim.keymap.set("n", "<leader>ps", function ()
builtin.grep_string({ search = vim.fn.input("Grep > ") })
end , {desc = "Project search"})
-- <leader> f
wk.register({f = { name = "find" }, prefix = "<leader>"})
vim.keymap.set("n", "<leader>fr", builtin.oldfiles, { desc = "Find recent" })
-- <leader> h
wk.register({h = { name = "help" }, prefix = "<leader>"})
vim.keymap.set("n", "<leader>ht", builtin.colorscheme, { desc = "Load theme" })
vim.keymap.set("n", "<leader>hf", builtin.commands , { desc = "Describe function" })
vim.keymap.set("n", "<leader>hk", builtin.keymaps , { desc = "Describe key" })
vim.keymap.set("n", "<leader>hv", builtin.vim_options, { desc = "Describe key" })
vim.keymap.set("n", "<leader>hh", builtin.help_tags , { desc = "Search local wiki" })

16
after/plugin/whichkey.lua Normal file
View file

@ -0,0 +1,16 @@
require("which-key").setup({
window = {
border = "single", -- none, single, double, shadow
position = "bottom", -- bottom, top
margin = { 0, 0, 0, 0 }, -- extra window margin [top, right, bottom, left]. When between 0 and 1, will be treated as a percentage of the screen size.
padding = { 0, 2, 0, 2 }, -- extra window padding [top, right, bottom, left]
winblend = 0, -- value between 0-100 0 for fully opaque and 100 for fully transparent
zindex = 1000, -- positive value to position WhichKey above other floating windows.
},
layout = {
height = { min = 4, max = 25 }, -- min and max height of the columns
width = { min = 20, max = 50 }, -- min and max width of the columns
spacing = 3, -- spacing between columns
align = "left", -- align columns left, center or right
},
})

4
after/plugin/yazi.lua Normal file
View file

@ -0,0 +1,4 @@
vim.keymap.set("n", "<leader>e", function ()
vim.cmd("Yazi")
end)

0
init.lua Executable file → Normal file
View file

View file

@ -12,25 +12,28 @@ end
local packer_bootstrap = ensure_packer()
return require("packer").startup(function(use)
use "goolord/alpha-nvim"
use "wbthomason/packer.nvim"
-- -- Dashboard
-- use {
-- 'glepnir/dashboard-nvim',
-- event = 'VimEnter',
-- requires = {'nvim-tree/nvim-web-devicons'},
-- config = function()
-- require('dashboard').setup {
-- -- config
-- }
-- end,
-- }
use "DreamMaoMao/yazi.nvim"
use "whonore/Coqtail"
use {
"folke/which-key.nvim",
config = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end
}
-- File manager in nvim
use {
"ptzz/lf.vim",
requires = { {"voldikss/vim-floaterm"} },
}
vim.cmd("let g:lf_map_keys = 0") -- Need to put here or else doesn't work
-- Zen mode
use "folke/zen-mode.nvim"
@ -97,6 +100,12 @@ return require("packer").startup(function(use)
}
}
-- Better diagnostics
use {
"folke/trouble.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
}
-- Linting
use "jose-elias-alvarez/null-ls.nvim"
@ -116,10 +125,10 @@ return require("packer").startup(function(use)
})
-- Jupyter notebook integration
use {
"glacambre/firenvim",
run = function() vim.fn["firenvim#install"](0) end
}
-- use {
-- "glacambre/firenvim",
-- run = function() vim.fn["firenvim#install"](0) end
-- }
if packer_bootstrap then
require('packer').sync()

View file

@ -13,7 +13,6 @@ vim.keymap.set("n", "N", "Nzzzv")
-- easier escape back to normal mode
vim.keymap.set("i", "<C-c>", "<Esc>")
-- lol
vim.keymap.set("n", "Q", "<nop>")
-- universal find and replace
@ -35,7 +34,27 @@ vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>d", "\"_d")
vim.keymap.set("v", "<leader>d", "\"_d")
vim.keymap.set("n", "<leader>tc",
function ()
local col = "78"
print(vim.o.cc)
if vim.o.cc == col then
vim.o.cc = ""
else
vim.o.cc = col
end
end,
{desc = "Toggle color column"})
-- case insensitive search
vim.keymap.set("n", "<leader>/", "/\\c")
vim.keymap.set("n", "<leader>?", "?\\c")
vim.keymap.set("n", "<leader>hF",
function()
local result = vim.treesitter.get_captures_at_cursor(0)
print(vim.inspect(result))
end,
{ noremap = true, silent = false, desc = "Describe face" }
)

View file

@ -1,5 +1,3 @@
-- vim.opt.guicursor = ""
vim.opt.nu = true
vim.opt.relativenumber = true
@ -9,9 +7,27 @@ vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.opt.linebreak = true
local autocmd = vim.api.nvim_create_autocmd
autocmd("bufenter", {
pattern = "*",
callback = function()
if vim.bo.ft ~= "terminal" then
vim.opt.laststatus = 2
else
vim.opt.laststatus = 0
end
end,
})
-- Only search with case if capital letter is typed
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.wrap = true
vim.opt.splitbelow = true
vim.opt.scrolloff = 8
vim.opt.signcolumn = "auto"