Compare commits
43 Commits
Author | SHA1 | Date |
---|---|---|
Brendan Lentz | 9a928f56a1 | 2 years ago |
Christian Chiarulli | 839666a6c0 | 2 years ago |
ChristianChiarulli | 4365222349 | 2 years ago |
ChristianChiarulli | 0a9e1cad51 | 2 years ago |
ChristianChiarulli | 9d0438502f | 2 years ago |
Christian Chiarulli | bceb377e3c | 2 years ago |
Christian Chiarulli | 1d8f072a68 | 2 years ago |
Christian Chiarulli | 3efda23509 | 3 years ago |
Christian Chiarulli | cb5f094ae9 | 3 years ago |
Christian Chiarulli | f920985b8b | 3 years ago |
Christian Chiarulli | efc7a3396c | 3 years ago |
Christian Chiarulli | c50e916a8f | 3 years ago |
Briain O'Driscoll | af08b44b08 | 3 years ago |
Briain O'Driscoll | c369fe07c4 | 3 years ago |
Briain O'Driscoll | 8610b9d9a8 | 3 years ago |
Briain O'Driscoll | ae4f15e23d | 3 years ago |
Briain O'Driscoll | fc52e86ef4 | 3 years ago |
Briain O'Driscoll | 23a13baeec | 3 years ago |
Brian Thompson | bf16500e18 | 3 years ago |
Christian Chiarulli | 21877b4ced | 3 years ago |
William Boman | 03e34d4260 | 3 years ago |
Christian Chiarulli | 7a082a3306 | 3 years ago |
Binxptr | 8f60aa4e42 | 3 years ago |
Binxptr | 30a8583c95 | 3 years ago |
Christian Chiarulli | 0df65666da | 3 years ago |
lytex | a5f43d65c8 | 3 years ago |
christianchiarulli | 6169d6a10b | 3 years ago |
christianchiarulli | 8cebbf6b11 | 3 years ago |
ChristianChiarulli | e4715d4424 | 3 years ago |
ChristianChiarulli | 2caada81b4 | 3 years ago |
ChristianChiarulli | 6824f6203b | 3 years ago |
ChristianChiarulli | c0652b11ab | 3 years ago |
ChristianChiarulli | 29296d07e0 | 3 years ago |
ChristianChiarulli | db5cedc818 | 3 years ago |
ChristianChiarulli | 838930d0bf | 3 years ago |
ChristianChiarulli | 442c5ad5c4 | 3 years ago |
ChristianChiarulli | 96055cbe42 | 3 years ago |
christianchiarulli | 0161455b19 | 3 years ago |
christianchiarulli | 5355aa2f5c | 3 years ago |
christianchiarulli | 1159cc615a | 3 years ago |
christianchiarulli | 1d14e44126 | 3 years ago |
christianchiarulli | a7e69ddee3 | 3 years ago |
christianchiarulli | 636d893c01 | 3 years ago |
@ -0,0 +1,4 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
github: christianchiarulli
|
||||||
|
patreon: chrisatmachine
|
@ -0,0 +1,42 @@
|
|||||||
|
local status_ok, alpha = pcall(require, "alpha")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local dashboard = require("alpha.themes.dashboard")
|
||||||
|
dashboard.section.header.val = {
|
||||||
|
[[ __ ]],
|
||||||
|
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
|
||||||
|
[[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]],
|
||||||
|
[[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]],
|
||||||
|
[[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]],
|
||||||
|
[[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]],
|
||||||
|
}
|
||||||
|
dashboard.section.buttons.val = {
|
||||||
|
dashboard.button("f", " Find file", ":Telescope find_files <CR>"),
|
||||||
|
dashboard.button("e", " New file", ":ene <BAR> startinsert <CR>"),
|
||||||
|
dashboard.button("p", " Find project", ":Telescope projects <CR>"),
|
||||||
|
dashboard.button("r", " Recently used files", ":Telescope oldfiles <CR>"),
|
||||||
|
dashboard.button("t", " Find text", ":Telescope live_grep <CR>"),
|
||||||
|
dashboard.button("c", " Configuration", ":e ~/.config/nvim/init.lua <CR>"),
|
||||||
|
dashboard.button("q", " Quit Neovim", ":qa<CR>"),
|
||||||
|
}
|
||||||
|
|
||||||
|
local function footer()
|
||||||
|
-- NOTE: requires the fortune-mod package to work
|
||||||
|
-- local handle = io.popen("fortune")
|
||||||
|
-- local fortune = handle:read("*a")
|
||||||
|
-- handle:close()
|
||||||
|
-- return fortune
|
||||||
|
return "chrisatmachine.com"
|
||||||
|
end
|
||||||
|
|
||||||
|
dashboard.section.footer.val = footer()
|
||||||
|
|
||||||
|
dashboard.section.footer.opts.hl = "Type"
|
||||||
|
dashboard.section.header.opts.hl = "Include"
|
||||||
|
dashboard.section.buttons.opts.hl = "Keyword"
|
||||||
|
|
||||||
|
dashboard.opts.opts.noautocmd = true
|
||||||
|
-- vim.cmd([[autocmd User AlphaReady echo 'ready']])
|
||||||
|
alpha.setup(dashboard.opts)
|
@ -0,0 +1,37 @@
|
|||||||
|
vim.cmd [[
|
||||||
|
augroup _general_settings
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType qf,help,man,lspinfo nnoremap <silent> <buffer> q :close<CR>
|
||||||
|
autocmd TextYankPost * silent!lua require('vim.highlight').on_yank({higroup = 'Visual', timeout = 200})
|
||||||
|
autocmd BufWinEnter * :set formatoptions-=cro
|
||||||
|
autocmd FileType qf set nobuflisted
|
||||||
|
augroup end
|
||||||
|
|
||||||
|
augroup _git
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType gitcommit setlocal wrap
|
||||||
|
autocmd FileType gitcommit setlocal spell
|
||||||
|
augroup end
|
||||||
|
|
||||||
|
augroup _markdown
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType markdown setlocal wrap
|
||||||
|
autocmd FileType markdown setlocal spell
|
||||||
|
augroup end
|
||||||
|
|
||||||
|
augroup _auto_resize
|
||||||
|
autocmd!
|
||||||
|
autocmd VimResized * tabdo wincmd =
|
||||||
|
augroup end
|
||||||
|
|
||||||
|
augroup _alpha
|
||||||
|
autocmd!
|
||||||
|
autocmd User AlphaReady set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2
|
||||||
|
augroup end
|
||||||
|
]]
|
||||||
|
|
||||||
|
-- Autoformat
|
||||||
|
-- augroup _lsp
|
||||||
|
-- autocmd!
|
||||||
|
-- autocmd BufWritePre * lua vim.lsp.buf.formatting()
|
||||||
|
-- augroup end
|
@ -0,0 +1,24 @@
|
|||||||
|
local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local lspconfig = require("lspconfig")
|
||||||
|
|
||||||
|
local servers = { "jsonls", "sumneko_lua" }
|
||||||
|
|
||||||
|
lsp_installer.setup({
|
||||||
|
ensure_installed = servers,
|
||||||
|
})
|
||||||
|
|
||||||
|
for _, server in pairs(servers) do
|
||||||
|
local opts = {
|
||||||
|
on_attach = require("user.lsp.handlers").on_attach,
|
||||||
|
capabilities = require("user.lsp.handlers").capabilities,
|
||||||
|
}
|
||||||
|
local has_custom_opts, server_custom_opts = pcall(require, "user.lsp.settings." .. server)
|
||||||
|
if has_custom_opts then
|
||||||
|
opts = vim.tbl_deep_extend("force", opts, server_custom_opts)
|
||||||
|
end
|
||||||
|
lspconfig[server].setup(opts)
|
||||||
|
end
|
@ -1,28 +0,0 @@
|
|||||||
local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Register a handler that will be called for all installed servers.
|
|
||||||
-- Alternatively, you may also register handlers on specific server instances instead (see example below).
|
|
||||||
lsp_installer.on_server_ready(function(server)
|
|
||||||
local opts = {
|
|
||||||
on_attach = require("user.lsp.handlers").on_attach,
|
|
||||||
capabilities = require("user.lsp.handlers").capabilities,
|
|
||||||
}
|
|
||||||
|
|
||||||
if server.name == "jsonls" then
|
|
||||||
local jsonls_opts = require("user.lsp.settings.jsonls")
|
|
||||||
opts = vim.tbl_deep_extend("force", jsonls_opts, opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
if server.name == "sumneko_lua" then
|
|
||||||
local sumneko_opts = require("user.lsp.settings.sumneko_lua")
|
|
||||||
opts = vim.tbl_deep_extend("force", sumneko_opts, opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- This setup() function is exactly the same as lspconfig's setup function.
|
|
||||||
-- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
|
||||||
server:setup(opts)
|
|
||||||
end)
|
|
||||||
|
|
@ -1,99 +1,100 @@
|
|||||||
local fn = vim.fn
|
local fn = vim.fn
|
||||||
|
|
||||||
-- Automatically install packer
|
-- Automatically install packer
|
||||||
local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim"
|
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
||||||
if fn.empty(fn.glob(install_path)) > 0 then
|
if fn.empty(fn.glob(install_path)) > 0 then
|
||||||
PACKER_BOOTSTRAP = fn.system {
|
PACKER_BOOTSTRAP = fn.system({
|
||||||
"git",
|
"git",
|
||||||
"clone",
|
"clone",
|
||||||
"--depth",
|
"--depth",
|
||||||
"1",
|
"1",
|
||||||
"https://github.com/wbthomason/packer.nvim",
|
"https://github.com/wbthomason/packer.nvim",
|
||||||
install_path,
|
install_path,
|
||||||
}
|
})
|
||||||
print "Installing packer close and reopen Neovim..."
|
print("Installing packer close and reopen Neovim...")
|
||||||
vim.cmd [[packadd packer.nvim]]
|
vim.cmd([[packadd packer.nvim]])
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Autocommand that reloads neovim whenever you save the plugins.lua file
|
-- Autocommand that reloads neovim whenever you save the plugins.lua file
|
||||||
vim.cmd [[
|
vim.cmd([[
|
||||||
augroup packer_user_config
|
augroup packer_user_config
|
||||||
autocmd!
|
autocmd!
|
||||||
autocmd BufWritePost plugins.lua source <afile> | PackerSync
|
autocmd BufWritePost plugins.lua source <afile> | PackerSync
|
||||||
augroup end
|
augroup end
|
||||||
]]
|
]])
|
||||||
|
|
||||||
-- Use a protected call so we don't error out on first use
|
-- Use a protected call so we don't error out on first use
|
||||||
local status_ok, packer = pcall(require, "packer")
|
local status_ok, packer = pcall(require, "packer")
|
||||||
if not status_ok then
|
if not status_ok then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Have packer use a popup window
|
-- Have packer use a popup window
|
||||||
packer.init {
|
packer.init({
|
||||||
display = {
|
display = {
|
||||||
open_fn = function()
|
open_fn = function()
|
||||||
return require("packer.util").float { border = "rounded" }
|
return require("packer.util").float({ border = "rounded" })
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
}
|
})
|
||||||
|
|
||||||
-- Install your plugins here
|
-- Install your plugins here
|
||||||
return packer.startup(function(use)
|
return packer.startup(function(use)
|
||||||
-- My plugins here
|
-- My plugins here
|
||||||
use "wbthomason/packer.nvim" -- Have packer manage itself
|
|
||||||
use "nvim-lua/popup.nvim" -- An implementation of the Popup API from vim in Neovim
|
|
||||||
use "nvim-lua/plenary.nvim" -- Useful lua functions used ny lots of plugins
|
|
||||||
use "windwp/nvim-autopairs" -- Autopairs, integrates with both cmp and treesitter
|
|
||||||
use "numToStr/Comment.nvim" -- Easily comment stuff
|
|
||||||
use "kyazdani42/nvim-web-devicons"
|
|
||||||
use "kyazdani42/nvim-tree.lua"
|
|
||||||
use "akinsho/bufferline.nvim"
|
|
||||||
use "moll/vim-bbye"
|
|
||||||
use 'nvim-lualine/lualine.nvim'
|
|
||||||
use "akinsho/toggleterm.nvim"
|
|
||||||
use "ahmedkhalf/project.nvim"
|
|
||||||
use 'lewis6991/impatient.nvim'
|
|
||||||
use "lukas-reineke/indent-blankline.nvim"
|
|
||||||
|
|
||||||
-- Colorschemes
|
use({ "wbthomason/packer.nvim", commit = "00ec5adef58c5ff9a07f11f45903b9dbbaa1b422" }) -- Have packer manage itself
|
||||||
-- use "lunarvim/colorschemes" -- A bunch of colorschemes you can try out
|
use({ "nvim-lua/plenary.nvim", commit = "968a4b9afec0c633bc369662e78f8c5db0eba249" }) -- Useful lua functions used by lots of plugins
|
||||||
use "lunarvim/darkplus.nvim"
|
use({ "windwp/nvim-autopairs", commit = "fa6876f832ea1b71801c4e481d8feca9a36215ec" }) -- Autopairs, integrates with both cmp and treesitter
|
||||||
|
use({ "numToStr/Comment.nvim", commit = "2c26a00f32b190390b664e56e32fd5347613b9e2" })
|
||||||
|
use({ "JoosepAlviste/nvim-ts-context-commentstring", commit = "88343753dbe81c227a1c1fd2c8d764afb8d36269" })
|
||||||
|
use({ "kyazdani42/nvim-web-devicons", commit = "8d2c5337f0a2d0a17de8e751876eeb192b32310e" })
|
||||||
|
use({ "kyazdani42/nvim-tree.lua", commit = "bdb6d4a25410da35bbf7ce0dbdaa8d60432bc243" })
|
||||||
|
use({ "akinsho/bufferline.nvim", commit = "c78b3ecf9539a719828bca82fc7ddb9b3ba0c353" })
|
||||||
|
use({ "moll/vim-bbye", commit = "25ef93ac5a87526111f43e5110675032dbcacf56" })
|
||||||
|
use({ "nvim-lualine/lualine.nvim", commit = "3362b28f917acc37538b1047f187ff1b5645ecdd" })
|
||||||
|
use({ "akinsho/toggleterm.nvim", commit = "aaeed9e02167c5e8f00f25156895a6fd95403af8" })
|
||||||
|
use({ "ahmedkhalf/project.nvim", commit = "541115e762764bc44d7d3bf501b6e367842d3d4f" })
|
||||||
|
use({ "lewis6991/impatient.nvim", commit = "969f2c5c90457612c09cf2a13fee1adaa986d350" })
|
||||||
|
use({ "lukas-reineke/indent-blankline.nvim", commit = "6177a59552e35dfb69e1493fd68194e673dc3ee2" })
|
||||||
|
use({ "goolord/alpha-nvim", commit = "ef27a59e5b4d7b1c2fe1950da3fe5b1c5f3b4c94" })
|
||||||
|
use("folke/which-key.nvim")
|
||||||
|
|
||||||
-- cmp plugins
|
-- Colorschemes
|
||||||
use "hrsh7th/nvim-cmp" -- The completion plugin
|
use({ "folke/tokyonight.nvim", commit = "8223c970677e4d88c9b6b6d81bda23daf11062bb" })
|
||||||
use "hrsh7th/cmp-buffer" -- buffer completions
|
use("lunarvim/darkplus.nvim")
|
||||||
use "hrsh7th/cmp-path" -- path completions
|
|
||||||
use "hrsh7th/cmp-cmdline" -- cmdline completions
|
|
||||||
use "saadparwaiz1/cmp_luasnip" -- snippet completions
|
|
||||||
use "hrsh7th/cmp-nvim-lsp"
|
|
||||||
|
|
||||||
-- snippets
|
-- cmp plugins
|
||||||
use "L3MON4D3/LuaSnip" --snippet engine
|
use({ "hrsh7th/nvim-cmp", commit = "df6734aa018d6feb4d76ba6bda94b1aeac2b378a" }) -- The completion plugin
|
||||||
use "rafamadriz/friendly-snippets" -- a bunch of snippets to use
|
use({ "hrsh7th/cmp-buffer", commit = "62fc67a2b0205136bc3e312664624ba2ab4a9323" }) -- buffer completions
|
||||||
|
use({ "hrsh7th/cmp-path", commit = "466b6b8270f7ba89abd59f402c73f63c7331ff6e" }) -- path completions
|
||||||
|
use({ "saadparwaiz1/cmp_luasnip", commit = "a9de941bcbda508d0a45d28ae366bb3f08db2e36" }) -- snippet completions
|
||||||
|
use({ "hrsh7th/cmp-nvim-lsp", commit = "affe808a5c56b71630f17aa7c38e15c59fd648a8" })
|
||||||
|
use({ "hrsh7th/cmp-nvim-lua", commit = "d276254e7198ab7d00f117e88e223b4bd8c02d21" })
|
||||||
|
|
||||||
-- LSP
|
-- snippets
|
||||||
use "neovim/nvim-lspconfig" -- enable LSP
|
use({ "L3MON4D3/LuaSnip", commit = "79b2019c68a2ff5ae4d732d50746c901dd45603a" }) --snippet engine
|
||||||
use "williamboman/nvim-lsp-installer" -- simple to use language server installer
|
use({ "rafamadriz/friendly-snippets", commit = "d27a83a363e61009278b6598703a763ce9c8e617" }) -- a bunch of snippets to use
|
||||||
use "tamago324/nlsp-settings.nvim" -- language server settings defined in json for
|
|
||||||
use "jose-elias-alvarez/null-ls.nvim" -- for formatters and linters
|
|
||||||
|
|
||||||
-- Telescope
|
-- LSP
|
||||||
use "nvim-telescope/telescope.nvim"
|
use({ "neovim/nvim-lspconfig", commit = "148c99bd09b44cf3605151a06869f6b4d4c24455" }) -- enable LSP
|
||||||
|
use({ "williamboman/nvim-lsp-installer", commit = "e9f13d7acaa60aff91c58b923002228668c8c9e6" }) -- simple to use language server installer
|
||||||
|
use({ "jose-elias-alvarez/null-ls.nvim", commit = "ff40739e5be6581899b43385997e39eecdbf9465" }) -- for formatters and linters
|
||||||
|
|
||||||
-- Treesitter
|
-- Telescope
|
||||||
use {
|
use({ "nvim-telescope/telescope.nvim", commit = "d96eaa914aab6cfc4adccb34af421bdd496468b0" })
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
run = ":TSUpdate",
|
|
||||||
}
|
|
||||||
use "JoosepAlviste/nvim-ts-context-commentstring"
|
|
||||||
|
|
||||||
-- Git
|
-- Treesitter
|
||||||
use "lewis6991/gitsigns.nvim"
|
use({
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
commit = "518e27589c0463af15463c9d675c65e464efc2fe",
|
||||||
|
})
|
||||||
|
|
||||||
-- Automatically set up your configuration after cloning packer.nvim
|
-- Git
|
||||||
-- Put this at the end after all plugins
|
use({ "lewis6991/gitsigns.nvim", commit = "c18e016864c92ecf9775abea1baaa161c28082c3" })
|
||||||
if PACKER_BOOTSTRAP then
|
|
||||||
require("packer").sync()
|
-- Automatically set up your configuration after cloning packer.nvim
|
||||||
end
|
-- Put this at the end after all plugins
|
||||||
|
if PACKER_BOOTSTRAP then
|
||||||
|
require("packer").sync()
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
@ -1,23 +1,17 @@
|
|||||||
local status_ok, configs = pcall(require, "nvim-treesitter.configs")
|
local status_ok, configs = pcall(require, "nvim-treesitter.configs")
|
||||||
if not status_ok then
|
if not status_ok then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
configs.setup {
|
configs.setup({
|
||||||
ensure_installed = "maintained", -- one of "all", "maintained" (parsers with maintainers), or a list of languages
|
ensure_installed = "all", -- one of "all" or a list of languages
|
||||||
sync_install = false, -- install languages synchronously (only applied to `ensure_installed`)
|
ignore_install = { "" }, -- List of parsers to ignore installing
|
||||||
ignore_install = { "" }, -- List of parsers to ignore installing
|
highlight = {
|
||||||
autopairs = {
|
enable = true, -- false will disable the whole extension
|
||||||
enable = true,
|
disable = { "css" }, -- list of language that will be disabled
|
||||||
},
|
},
|
||||||
highlight = {
|
autopairs = {
|
||||||
enable = true, -- false will disable the whole extension
|
enable = true,
|
||||||
disable = { "" }, -- list of language that will be disabled
|
},
|
||||||
additional_vim_regex_highlighting = true,
|
indent = { enable = true, disable = { "python", "css" } },
|
||||||
},
|
})
|
||||||
indent = { enable = true, disable = { "yaml" } },
|
|
||||||
context_commentstring = {
|
|
||||||
enable = true,
|
|
||||||
enable_autocmd = false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
@ -0,0 +1,187 @@
|
|||||||
|
local status_ok, which_key = pcall(require, "which-key")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local setup = {
|
||||||
|
plugins = {
|
||||||
|
marks = true, -- shows a list of your marks on ' and `
|
||||||
|
registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
|
||||||
|
spelling = {
|
||||||
|
enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions
|
||||||
|
suggestions = 20, -- how many suggestions should be shown in the list?
|
||||||
|
},
|
||||||
|
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
|
||||||
|
-- No actual key bindings are created
|
||||||
|
presets = {
|
||||||
|
operators = false, -- adds help for operators like d, y, ... and registers them for motion / text object completion
|
||||||
|
motions = true, -- adds help for motions
|
||||||
|
text_objects = true, -- help for text objects triggered after entering an operator
|
||||||
|
windows = true, -- default bindings on <c-w>
|
||||||
|
nav = true, -- misc bindings to work with windows
|
||||||
|
z = true, -- bindings for folds, spelling and others prefixed with z
|
||||||
|
g = true, -- bindings for prefixed with g
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- 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 = "»", -- symbol used in the command line area that shows your active key combo
|
||||||
|
separator = "➜", -- symbol used between a key and it's label
|
||||||
|
group = "+", -- symbol prepended to a group
|
||||||
|
},
|
||||||
|
popup_mappings = {
|
||||||
|
scroll_down = "<c-d>", -- binding to scroll down inside the popup
|
||||||
|
scroll_up = "<c-u>", -- binding to scroll up inside the popup
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
border = "rounded", -- none, single, double, shadow
|
||||||
|
position = "bottom", -- bottom, top
|
||||||
|
margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left]
|
||||||
|
padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left]
|
||||||
|
winblend = 0,
|
||||||
|
},
|
||||||
|
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
|
||||||
|
},
|
||||||
|
ignore_missing = true, -- 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
|
||||||
|
triggers = "auto", -- automatically setup triggers
|
||||||
|
-- triggers = {"<leader>"} -- or specify a list manually
|
||||||
|
triggers_blacklist = {
|
||||||
|
-- list of mode / prefixes that should never be hooked by WhichKey
|
||||||
|
-- this is mostly relevant for key maps that start with a native binding
|
||||||
|
-- most people should not need to change this
|
||||||
|
i = { "j", "k" },
|
||||||
|
v = { "j", "k" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local opts = {
|
||||||
|
mode = "n", -- NORMAL mode
|
||||||
|
prefix = "<leader>",
|
||||||
|
buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings
|
||||||
|
silent = true, -- use `silent` when creating keymaps
|
||||||
|
noremap = true, -- use `noremap` when creating keymaps
|
||||||
|
nowait = true, -- use `nowait` when creating keymaps
|
||||||
|
}
|
||||||
|
|
||||||
|
local mappings = {
|
||||||
|
["a"] = { "<cmd>Alpha<cr>", "Alpha" },
|
||||||
|
["b"] = {
|
||||||
|
"<cmd>lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})<cr>",
|
||||||
|
"Buffers",
|
||||||
|
},
|
||||||
|
["e"] = { "<cmd>NvimTreeToggle<cr>", "Explorer" },
|
||||||
|
["w"] = { "<cmd>w!<CR>", "Save" },
|
||||||
|
["q"] = { "<cmd>q!<CR>", "Quit" },
|
||||||
|
["c"] = { "<cmd>Bdelete!<CR>", "Close Buffer" },
|
||||||
|
["h"] = { "<cmd>nohlsearch<CR>", "No Highlight" },
|
||||||
|
["f"] = {
|
||||||
|
"<cmd>lua require('telescope.builtin').find_files(require('telescope.themes').get_dropdown{previewer = false})<cr>",
|
||||||
|
"Find files",
|
||||||
|
},
|
||||||
|
["F"] = { "<cmd>Telescope live_grep theme=ivy<cr>", "Find Text" },
|
||||||
|
["P"] = { "<cmd>lua require('telescope').extensions.projects.projects()<cr>", "Projects" },
|
||||||
|
|
||||||
|
p = {
|
||||||
|
name = "Packer",
|
||||||
|
c = { "<cmd>PackerCompile<cr>", "Compile" },
|
||||||
|
i = { "<cmd>PackerInstall<cr>", "Install" },
|
||||||
|
s = { "<cmd>PackerSync<cr>", "Sync" },
|
||||||
|
S = { "<cmd>PackerStatus<cr>", "Status" },
|
||||||
|
u = { "<cmd>PackerUpdate<cr>", "Update" },
|
||||||
|
},
|
||||||
|
|
||||||
|
g = {
|
||||||
|
name = "Git",
|
||||||
|
g = { "<cmd>lua _LAZYGIT_TOGGLE()<CR>", "Lazygit" },
|
||||||
|
j = { "<cmd>lua require 'gitsigns'.next_hunk()<cr>", "Next Hunk" },
|
||||||
|
k = { "<cmd>lua require 'gitsigns'.prev_hunk()<cr>", "Prev Hunk" },
|
||||||
|
l = { "<cmd>lua require 'gitsigns'.blame_line()<cr>", "Blame" },
|
||||||
|
p = { "<cmd>lua require 'gitsigns'.preview_hunk()<cr>", "Preview Hunk" },
|
||||||
|
r = { "<cmd>lua require 'gitsigns'.reset_hunk()<cr>", "Reset Hunk" },
|
||||||
|
R = { "<cmd>lua require 'gitsigns'.reset_buffer()<cr>", "Reset Buffer" },
|
||||||
|
s = { "<cmd>lua require 'gitsigns'.stage_hunk()<cr>", "Stage Hunk" },
|
||||||
|
u = {
|
||||||
|
"<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>",
|
||||||
|
"Undo Stage Hunk",
|
||||||
|
},
|
||||||
|
o = { "<cmd>Telescope git_status<cr>", "Open changed file" },
|
||||||
|
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
|
||||||
|
c = { "<cmd>Telescope git_commits<cr>", "Checkout commit" },
|
||||||
|
d = {
|
||||||
|
"<cmd>Gitsigns diffthis HEAD<cr>",
|
||||||
|
"Diff",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
l = {
|
||||||
|
name = "LSP",
|
||||||
|
a = { "<cmd>lua vim.lsp.buf.code_action()<cr>", "Code Action" },
|
||||||
|
d = {
|
||||||
|
"<cmd>Telescope lsp_document_diagnostics<cr>",
|
||||||
|
"Document Diagnostics",
|
||||||
|
},
|
||||||
|
w = {
|
||||||
|
"<cmd>Telescope lsp_workspace_diagnostics<cr>",
|
||||||
|
"Workspace Diagnostics",
|
||||||
|
},
|
||||||
|
f = { "<cmd>lua vim.lsp.buf.format{async=true}<cr>", "Format" },
|
||||||
|
i = { "<cmd>LspInfo<cr>", "Info" },
|
||||||
|
I = { "<cmd>LspInstallInfo<cr>", "Installer Info" },
|
||||||
|
j = {
|
||||||
|
"<cmd>lua vim.lsp.diagnostic.goto_next()<CR>",
|
||||||
|
"Next Diagnostic",
|
||||||
|
},
|
||||||
|
k = {
|
||||||
|
"<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>",
|
||||||
|
"Prev Diagnostic",
|
||||||
|
},
|
||||||
|
l = { "<cmd>lua vim.lsp.codelens.run()<cr>", "CodeLens Action" },
|
||||||
|
q = { "<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>", "Quickfix" },
|
||||||
|
r = { "<cmd>lua vim.lsp.buf.rename()<cr>", "Rename" },
|
||||||
|
s = { "<cmd>Telescope lsp_document_symbols<cr>", "Document Symbols" },
|
||||||
|
S = {
|
||||||
|
"<cmd>Telescope lsp_dynamic_workspace_symbols<cr>",
|
||||||
|
"Workspace Symbols",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
s = {
|
||||||
|
name = "Search",
|
||||||
|
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
|
||||||
|
c = { "<cmd>Telescope colorscheme<cr>", "Colorscheme" },
|
||||||
|
h = { "<cmd>Telescope help_tags<cr>", "Find Help" },
|
||||||
|
M = { "<cmd>Telescope man_pages<cr>", "Man Pages" },
|
||||||
|
r = { "<cmd>Telescope oldfiles<cr>", "Open Recent File" },
|
||||||
|
R = { "<cmd>Telescope registers<cr>", "Registers" },
|
||||||
|
k = { "<cmd>Telescope keymaps<cr>", "Keymaps" },
|
||||||
|
C = { "<cmd>Telescope commands<cr>", "Commands" },
|
||||||
|
},
|
||||||
|
|
||||||
|
t = {
|
||||||
|
name = "Terminal",
|
||||||
|
n = { "<cmd>lua _NODE_TOGGLE()<cr>", "Node" },
|
||||||
|
u = { "<cmd>lua _NCDU_TOGGLE()<cr>", "NCDU" },
|
||||||
|
t = { "<cmd>lua _HTOP_TOGGLE()<cr>", "Htop" },
|
||||||
|
p = { "<cmd>lua _PYTHON_TOGGLE()<cr>", "Python" },
|
||||||
|
f = { "<cmd>ToggleTerm direction=float<cr>", "Float" },
|
||||||
|
h = { "<cmd>ToggleTerm size=10 direction=horizontal<cr>", "Horizontal" },
|
||||||
|
v = { "<cmd>ToggleTerm size=80 direction=vertical<cr>", "Vertical" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
which_key.setup(setup)
|
||||||
|
which_key.register(mappings, opts)
|
Loading…
Reference in new issue