dotfiles/dot_config/nvim/lua/plugins.lua

394 lines
8.8 KiB
Lua
Raw Normal View History

2022-07-30 07:17:12 +02:00
require("utils")
vim.cmd([[packadd packer.nvim]])
local packer = require("packer")
2022-10-11 07:40:50 +02:00
if not packer then
return
end
2022-07-30 07:17:12 +02:00
-- slow internet...
packer.init({
2022-10-11 07:40:50 +02:00
git = { clone_timeout = 180 },
profile = {
enable = true,
},
2022-07-30 07:17:12 +02:00
})
return packer.startup(function(use)
2022-10-11 07:40:50 +02:00
-- 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-11 07:40:50 +02:00
-- colour scheme
use({
"catppuccin/nvim",
as = "catppuccin",
run = ":CatppuccinCompile",
config = function()
require("config/catppuccin")
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- git gutter
use({
"lewis6991/gitsigns.nvim",
config = function()
require("config/gitsigns")
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- rainbow indents
use({
"lukas-reineke/indent-blankline.nvim",
config = function()
require("indent_blankline").setup({
space_char_blankline = " ",
show_current_conext = true,
char_highlight_list = {
"IndentBlanklineIndent1",
"IndentBlanklineIndent2",
"IndentBlanklineIndent3",
"IndentBlanklineIndent4",
"IndentBlanklineIndent5",
"IndentBlanklineIndent6",
},
})
vim.g.indent_blankline_filetype_exclude = {
"dashboard",
"help",
"neogitstatus",
"fugitive",
"packer",
"NvimTree",
"Trouble",
}
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- top bar
use({
"akinsho/bufferline.nvim",
config = function()
require("config/bufferline")
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- bottom bar
use({
"feline-nvim/feline.nvim",
requires = "kyazdani42/nvim-web-devicons",
after = { "catppuccin" },
config = function()
require("config/feline")
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- DJI Osmo
use({
"luukvbaal/stabilize.nvim",
config = function()
require("stabilize").setup()
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +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,
})
use({ "p00f/nvim-ts-rainbow", requires = "nvim-treesitter/nvim-treesitter" })
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- show possible key combos
use({
"folke/which-key.nvim",
config = function()
require("which-key").setup({})
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- syntax
use("alker0/chezmoi.vim")
use("digitaltoad/vim-pug")
use("ron-rs/ron.vim")
use("elkowar/yuck.vim")
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +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-11 07:40:50 +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")
-- make those above work in repeat commands
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
use({
"windwp/nvim-autopairs",
config = function()
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,
})
--
-- git
use("tpope/vim-fugitive")
-- why not both?
use({
"TimUntersberger/neogit",
requires = "nvim-lua/plenary.nvim",
config = function()
Nmap("<leader>ng", "<Cmd>Neogit<CR>")
end,
})
use("dhruvasagar/vim-table-mode")
use({
"kyazdani42/nvim-tree.lua",
config = function()
require("nvim-tree").setup({ update_cwd = true })
Nmap("<C-n>", ":NvimTreeToggle<CR>")
Nmap("<leader>r", ":NvimTreeRefresh<CR>")
end,
})
use({
"nvchad/nvim-colorizer.lua",
config = function()
require("config/colorizer")
end,
})
use({
"simrat39/symbols-outline.nvim",
config = function()
require("symbols-outline").setup()
Nmap("<leader>so", ":SymbolsOutline<CR>")
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- databases
use({
"kristijanhusak/vim-dadbod-ui",
requires = "tpope/vim-dadbod",
config = function()
Nmap("<leader>db", ":DBUIToggle<CR>")
vim.g.db_ui_use_nerd_fonts = true
vim.g.db_ui_win_position = "right"
end,
})
use({
"kristijanhusak/vim-dadbod-completion",
requires = { { "tpope/vim-dadbod" }, { "hrsh7th/nvim-cmp" } },
config = function()
require("cmp").setup.buffer({
sources = { { name = "vim-dadbod-completion" } },
})
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- telescope
use({
"nvim-telescope/telescope.nvim",
requires = "nvim-lua/plenary.nvim",
config = function()
-- Find files using Telescope command-line sugar.
Nmap("<leader>fc", "<cmd>Telescope conventional_commits<CR>")
Nmap("<leader>fr", "<cmd>Telescope asynctasks all<CR>")
Nmap("<leader>ff", "<cmd>Telescope find_files<CR>")
Nmap("<leader>fg", "<cmd>Telescope live_grep<CR>")
Nmap("<leader>fb", "<cmd>Telescope buffers<CR>")
Nmap("<leader>fh", "<cmd>Telescope help_tags<CR>")
end,
})
use({
"nvim-telescope/telescope-fzf-native.nvim",
run = "make",
requires = "nvim-telescope/telescope.nvim",
config = function()
local telescope = require("telescope")
telescope.setup({
extensions = {
fzf = {
fuzzy = true,
override_generic_sorter = true,
override_file_sorter = true,
case_mode = "smart_case",
},
},
})
telescope.load_extension("fzf")
end,
})
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,
})
use({
"nvim-telescope/telescope-packer.nvim",
config = function()
require("telescope").load_extension("packer")
end,
})
use({
"olacin/telescope-cc.nvim",
requires = {
{ "nvim-telescope/telescope.nvim" },
{ "nvim-lua/popup.nvim" },
},
config = function()
require("telescope").load_extension("conventional_commits")
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
use({
"andweeb/presence.nvim",
config = function()
require("config/presence")
end,
})
use({ "iamcco/markdown-preview.nvim", run = "cd app && yarn install" })
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- external extensions
use("williamboman/mason.nvim")
-- LSP
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-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
use({
"simrat39/rust-tools.nvim",
config = function()
require("rust-tools").setup({})
end,
})
use("b0o/schemastore.nvim")
--
use({
"folke/trouble.nvim",
config = function()
require("trouble").setup({})
end,
})
use({
"glepnir/lspsaga.nvim",
config = function()
require("config/lspsaga")
end,
})
--
use({
"github/copilot.vim",
config = function()
Imap(
"<C-J>",
"copilot#Accept(<Tab>)",
{ noremap = true, silent = true, expr = true }
)
vim.g.copilot_no_tab_map = true
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +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")
use({
"skywind3000/asyncrun.vim",
config = function()
vim.g.asyncrun_open = 6
end,
})
use({ "skywind3000/asynctasks.vim" })
use({
"GustavoKatel/telescope-asynctasks.nvim",
config = function()
require("telescope").load_extension("asynctasks")
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- startup
use({
"glepnir/dashboard-nvim",
config = function()
require("config/dashboard")
end,
})
2022-07-30 07:17:12 +02:00
2022-10-11 07:40:50 +02:00
-- automatic theme switching
if vim.fn.has("macunix") then
use({
"f-person/auto-dark-mode.nvim",
config = function()
local auto_dark_mode = require("auto-dark-mode")
auto_dark_mode.setup({
---@diagnostic disable-next-line: assign-type-mismatch
update_interval = 1000,
set_dark_mode = function()
vim.cmd("Catppuccin frappe")
end,
set_light_mode = function()
vim.cmd("Catppuccin latte")
end,
})
auto_dark_mode.init()
end,
})
end
2022-07-30 07:17:12 +02:00
end)