2022-10-18 10:02:19 +02:00
|
|
|
local packer = require("packer")
|
2022-10-17 17:13:31 +02:00
|
|
|
|
|
|
|
-- auto-compile when lua files in `~/.config/nvim/*` change
|
|
|
|
vim.api.nvim_create_autocmd("BufWritePost", {
|
|
|
|
pattern = "*.lua",
|
|
|
|
callback = function()
|
|
|
|
local cfg_path = vim.fn.resolve(vim.fn.stdpath("config"))
|
|
|
|
vim.defer_fn(function()
|
|
|
|
if vim.fn.expand("%:p"):match(cfg_path) then
|
|
|
|
vim.cmd("silent! PackerCompile")
|
|
|
|
end
|
|
|
|
end, 0)
|
|
|
|
end,
|
2022-07-30 07:17:12 +02:00
|
|
|
})
|
|
|
|
|
2022-12-01 18:00:39 +01:00
|
|
|
local function check_git()
|
2022-12-07 09:30:23 +01:00
|
|
|
local is_repo = vim.fn.filereadable(vim.fn.getcwd() .. "/.git") == 1
|
2022-12-01 18:00:39 +01:00
|
|
|
local git_exists = vim.fn.executable("git") == 1
|
|
|
|
return is_repo and git_exists
|
|
|
|
end
|
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
return packer.startup({
|
|
|
|
function(use)
|
|
|
|
-- Packer managing itself
|
|
|
|
use("wbthomason/packer.nvim")
|
|
|
|
-- startup time or some shit
|
|
|
|
use("lewis6991/impatient.nvim")
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- colour scheme
|
|
|
|
use({
|
2022-11-13 20:27:52 +01:00
|
|
|
"https://git.winston.sh/catppuccin/nvim",
|
2022-10-18 10:02:19 +02:00
|
|
|
as = "catppuccin",
|
|
|
|
config = function()
|
|
|
|
require("config/catppuccin")
|
|
|
|
end,
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-11-02 16:50:16 +01:00
|
|
|
use({
|
|
|
|
"Pocco81/true-zen.nvim",
|
|
|
|
config = function()
|
2022-12-01 18:00:39 +01:00
|
|
|
require("true-zen").setup()
|
2022-11-02 16:50:16 +01:00
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- git gutter
|
|
|
|
use({
|
|
|
|
"lewis6991/gitsigns.nvim",
|
|
|
|
config = function()
|
|
|
|
require("config/gitsigns")
|
|
|
|
end,
|
2022-12-01 18:00:39 +01:00
|
|
|
cond = check_git,
|
2022-10-18 10:02:19 +02:00
|
|
|
})
|
|
|
|
-- rainbow indents
|
|
|
|
use({
|
|
|
|
"lukas-reineke/indent-blankline.nvim",
|
|
|
|
config = function()
|
2022-11-20 19:57:55 +01:00
|
|
|
require("indent_blankline").setup({
|
|
|
|
space_char_blankline = " ",
|
2022-11-29 05:09:05 +01:00
|
|
|
-- show_current_context = true,
|
|
|
|
-- show_current_context_start = true,
|
2022-11-20 19:57:55 +01:00
|
|
|
})
|
2022-10-18 10:02:19 +02:00
|
|
|
vim.g.indent_blankline_filetype_exclude = {
|
|
|
|
"dashboard",
|
|
|
|
"help",
|
|
|
|
"neogitstatus",
|
|
|
|
"fugitive",
|
|
|
|
"packer",
|
|
|
|
"NvimTree",
|
|
|
|
"Trouble",
|
|
|
|
}
|
|
|
|
end,
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
use({
|
|
|
|
"akinsho/bufferline.nvim",
|
|
|
|
config = function()
|
|
|
|
require("config/bufferline")
|
|
|
|
end,
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-12-01 18:00:39 +01:00
|
|
|
use({
|
|
|
|
"feline-nvim/feline.nvim",
|
|
|
|
config = function()
|
|
|
|
require("config/feline")
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- DJI Osmo
|
|
|
|
use({
|
|
|
|
"luukvbaal/stabilize.nvim",
|
|
|
|
config = function()
|
|
|
|
require("stabilize").setup()
|
|
|
|
end,
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- syntax
|
|
|
|
use({
|
|
|
|
"nvim-treesitter/nvim-treesitter",
|
|
|
|
run = function()
|
|
|
|
require("nvim-treesitter.install").update({ with_sync = true })
|
|
|
|
end,
|
|
|
|
config = function()
|
|
|
|
require("config/treesitter")
|
|
|
|
end,
|
|
|
|
})
|
2022-10-21 17:01:46 +02:00
|
|
|
use("nvim-treesitter/playground")
|
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
use({
|
|
|
|
"p00f/nvim-ts-rainbow",
|
|
|
|
requires = "nvim-treesitter/nvim-treesitter",
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- show possible key combos
|
|
|
|
use({
|
|
|
|
"folke/which-key.nvim",
|
|
|
|
config = function()
|
2022-12-01 18:00:39 +01:00
|
|
|
require("config/which-key")
|
2022-10-18 10:02:19 +02:00
|
|
|
end,
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- syntax
|
|
|
|
use("alker0/chezmoi.vim")
|
2022-11-15 22:34:53 +01:00
|
|
|
use({
|
|
|
|
"wuelnerdotexe/vim-astro",
|
|
|
|
config = function()
|
|
|
|
vim.g.astro_typescript = "enable"
|
|
|
|
end,
|
|
|
|
})
|
2022-10-18 10:02:19 +02:00
|
|
|
-- tooling
|
|
|
|
use("gpanders/editorconfig.nvim")
|
|
|
|
-- read and write encrypted pgp files
|
|
|
|
use("jamessan/vim-gnupg")
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- additional functionality
|
|
|
|
use({
|
|
|
|
"numToStr/Comment.nvim",
|
|
|
|
config = function()
|
|
|
|
require("Comment").setup()
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
use({
|
|
|
|
"kylechui/nvim-surround",
|
|
|
|
config = function()
|
|
|
|
require("nvim-surround").setup({})
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
use("ggandor/lightspeed.nvim")
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
use({
|
|
|
|
"windwp/nvim-autopairs",
|
|
|
|
config = function()
|
|
|
|
require("nvim-autopairs").setup({})
|
|
|
|
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
|
|
|
local cmp = require("cmp")
|
|
|
|
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
use({
|
|
|
|
"windwp/nvim-ts-autotag",
|
|
|
|
config = function()
|
|
|
|
require("nvim-ts-autotag").setup()
|
|
|
|
end,
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- git
|
2022-12-01 18:00:39 +01:00
|
|
|
use({
|
|
|
|
"tpope/vim-fugitive",
|
|
|
|
cond = check_git,
|
|
|
|
})
|
2022-10-18 10:02:19 +02:00
|
|
|
-- why not both?
|
|
|
|
use({
|
|
|
|
"TimUntersberger/neogit",
|
|
|
|
requires = "nvim-lua/plenary.nvim",
|
2022-12-01 18:00:39 +01:00
|
|
|
cond = check_git,
|
2022-10-18 10:02:19 +02:00
|
|
|
config = function()
|
|
|
|
Map("n", "<leader>ng", "<Cmd>Neogit<CR>")
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
use("dhruvasagar/vim-table-mode")
|
|
|
|
use({
|
|
|
|
"nvchad/nvim-colorizer.lua",
|
|
|
|
config = function()
|
|
|
|
require("config/colorizer")
|
|
|
|
end,
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- databases
|
|
|
|
use("tpope/vim-dadbod")
|
|
|
|
use("kristijanhusak/vim-dadbod-completion")
|
|
|
|
use({
|
|
|
|
"kristijanhusak/vim-dadbod-ui",
|
|
|
|
config = function()
|
|
|
|
Map("n", "<leader>db", ":DBUIToggle<CR>")
|
|
|
|
vim.g.db_ui_use_nerd_fonts = true
|
|
|
|
vim.g.db_ui_win_position = "right"
|
|
|
|
end,
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- telescope
|
|
|
|
use({
|
|
|
|
"nvim-telescope/telescope.nvim",
|
|
|
|
requires = "nvim-lua/plenary.nvim",
|
|
|
|
config = function()
|
2022-12-01 18:00:39 +01:00
|
|
|
require("config/telescope")
|
2022-10-18 10:02:19 +02:00
|
|
|
end,
|
|
|
|
})
|
|
|
|
use({
|
|
|
|
"nvim-telescope/telescope-fzf-native.nvim",
|
|
|
|
run = "make",
|
|
|
|
requires = "nvim-telescope/telescope.nvim",
|
|
|
|
})
|
|
|
|
use({
|
|
|
|
"nvim-telescope/telescope-file-browser.nvim",
|
|
|
|
config = function()
|
|
|
|
require("telescope").load_extension("file_browser")
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
use({
|
|
|
|
"nvim-telescope/telescope-project.nvim",
|
|
|
|
config = function()
|
|
|
|
require("telescope").load_extension("project")
|
|
|
|
end,
|
|
|
|
})
|
2022-12-11 20:49:09 +01:00
|
|
|
use({
|
|
|
|
'axkirillov/easypick.nvim',
|
|
|
|
requires = 'nvim-telescope/telescope.nvim'
|
|
|
|
})
|
2022-10-17 17:13:31 +02:00
|
|
|
|
2022-12-05 10:50:25 +01:00
|
|
|
use("nvim-tree/nvim-web-devicons")
|
2022-10-18 10:02:19 +02:00
|
|
|
use({
|
2022-11-07 11:57:53 +01:00
|
|
|
"nvim-tree/nvim-tree.lua",
|
2022-12-01 18:00:39 +01:00
|
|
|
keys = { "<C-n>" },
|
2022-10-18 10:02:19 +02:00
|
|
|
config = function()
|
2022-11-07 11:57:53 +01:00
|
|
|
Map("n", "<C-N>", ":NvimTreeToggle<CR>")
|
|
|
|
require("nvim-tree").setup()
|
2022-10-18 10:02:19 +02:00
|
|
|
end,
|
|
|
|
})
|
2022-11-07 11:57:53 +01:00
|
|
|
|
2022-11-29 05:09:05 +01:00
|
|
|
use({
|
|
|
|
"andweeb/presence.nvim",
|
|
|
|
config = function()
|
|
|
|
require("config/presence")
|
|
|
|
end,
|
|
|
|
})
|
2022-10-18 10:02:19 +02:00
|
|
|
use({ "iamcco/markdown-preview.nvim", run = "cd app && yarn install" })
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- LSP
|
|
|
|
use("williamboman/mason.nvim")
|
|
|
|
use("williamboman/mason-lspconfig.nvim")
|
|
|
|
use("neovim/nvim-lspconfig")
|
|
|
|
-- completion
|
|
|
|
use("hrsh7th/nvim-cmp")
|
|
|
|
use("hrsh7th/cmp-buffer")
|
|
|
|
use("hrsh7th/cmp-cmdline")
|
|
|
|
use("hrsh7th/cmp-nvim-lsp")
|
|
|
|
use("hrsh7th/cmp-path")
|
|
|
|
use("hrsh7th/cmp-vsnip")
|
|
|
|
use("hrsh7th/vim-vsnip")
|
|
|
|
use("petertriho/cmp-git")
|
2022-10-21 17:01:46 +02:00
|
|
|
use("onsails/lspkind.nvim")
|
2022-10-18 10:02:19 +02:00
|
|
|
use("rafamadriz/friendly-snippets")
|
|
|
|
use("jose-elias-alvarez/null-ls.nvim")
|
|
|
|
use({
|
|
|
|
"glepnir/lspsaga.nvim",
|
|
|
|
branch = "main",
|
|
|
|
config = function()
|
|
|
|
require("config/lspsaga")
|
|
|
|
end,
|
|
|
|
})
|
2022-12-01 18:00:39 +01:00
|
|
|
use({
|
|
|
|
"ray-x/go.nvim",
|
|
|
|
requires = "ray-x/guihua.lua",
|
|
|
|
})
|
|
|
|
use({
|
|
|
|
"HallerPatrick/py_lsp.nvim",
|
|
|
|
})
|
|
|
|
use({
|
|
|
|
"simrat39/rust-tools.nvim",
|
|
|
|
})
|
2022-11-07 11:57:53 +01:00
|
|
|
|
2022-12-01 18:00:39 +01:00
|
|
|
use({
|
|
|
|
"rcarriga/nvim-dap-ui",
|
|
|
|
requires = {
|
|
|
|
"mfussenegger/nvim-dap",
|
|
|
|
"theHamsta/nvim-dap-virtual-text",
|
|
|
|
},
|
|
|
|
})
|
2022-11-07 11:57:53 +01:00
|
|
|
|
2022-10-21 17:01:46 +02:00
|
|
|
use({ "barreiroleo/ltex-extra.nvim" })
|
2022-10-17 17:13:31 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
use("b0o/schemastore.nvim")
|
|
|
|
use({
|
2022-11-29 05:09:05 +01:00
|
|
|
"zbirenbaum/copilot.lua",
|
2022-10-18 10:02:19 +02:00
|
|
|
config = function()
|
2022-11-29 05:09:05 +01:00
|
|
|
require("config/copilot")
|
2022-10-18 10:02:19 +02:00
|
|
|
end,
|
|
|
|
})
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-18 10:02:19 +02:00
|
|
|
-- organization
|
|
|
|
use({
|
|
|
|
"vimwiki/vimwiki",
|
|
|
|
branch = "dev",
|
|
|
|
config = function()
|
|
|
|
vim.g.vimwiki_global_ext = 0
|
|
|
|
vim.g.vimwiki_list = {
|
|
|
|
{
|
|
|
|
auto_export = 1,
|
|
|
|
path = "~/.local/share/vimwiki/",
|
|
|
|
syntax = "markdown",
|
|
|
|
ext = ".md",
|
|
|
|
path_html = "~/vimwiki/",
|
|
|
|
template_path = "~/.config/vimwiki/templates/",
|
|
|
|
template_default = "default",
|
|
|
|
template_ext = ".tpl",
|
|
|
|
custom_wiki2html = "vimwiki_markdown",
|
|
|
|
html_filename_parameterization = 1,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
use("tools-life/taskwiki")
|
2022-07-30 07:17:12 +02:00
|
|
|
|
2022-10-11 07:40:50 +02:00
|
|
|
use({
|
2022-10-18 10:02:19 +02:00
|
|
|
"skywind3000/asyncrun.vim",
|
2022-10-11 07:40:50 +02:00
|
|
|
config = function()
|
2022-10-18 10:02:19 +02:00
|
|
|
vim.g.asyncrun_open = 6
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
use({ "skywind3000/asynctasks.vim" })
|
|
|
|
use({
|
|
|
|
"GustavoKatel/telescope-asynctasks.nvim",
|
|
|
|
config = function()
|
|
|
|
require("telescope").load_extension("asynctasks")
|
2022-10-11 07:40:50 +02:00
|
|
|
end,
|
|
|
|
})
|
2022-10-18 10:02:19 +02:00
|
|
|
end,
|
|
|
|
config = {
|
|
|
|
display = {
|
2022-10-21 17:01:46 +02:00
|
|
|
open_fn = function()
|
|
|
|
return require("packer.util").float({ border = "double" })
|
|
|
|
end,
|
2022-10-18 10:02:19 +02:00
|
|
|
},
|
|
|
|
},
|
|
|
|
})
|