LunarVim/lua/plugins.lua

289 lines
6 KiB
Lua
Raw Normal View History

2021-03-14 20:10:28 +01:00
local execute = vim.api.nvim_command
local fn = vim.fn
2021-07-07 05:22:46 +02:00
local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim"
2021-03-14 20:10:28 +01:00
if fn.empty(fn.glob(install_path)) > 0 then
2021-07-07 05:22:46 +02:00
execute("!git clone https://github.com/wbthomason/packer.nvim " .. install_path)
execute "packadd packer.nvim"
2021-03-14 20:10:28 +01:00
end
2021-07-01 04:32:35 +02:00
local packer_ok, packer = pcall(require, "packer")
2021-07-05 03:14:01 +02:00
if not packer_ok then
2021-07-07 05:22:46 +02:00
return
2021-07-05 03:14:01 +02:00
end
2021-07-01 04:32:35 +02:00
2021-07-07 05:22:46 +02:00
packer.init {
2021-07-10 05:03:07 +02:00
-- package_root = require("packer.util").join_paths(vim.fn.stdpath "data", "lvim", "pack"),
2021-07-07 05:22:46 +02:00
git = { clone_timeout = 300 },
display = {
open_fn = function()
return require("packer.util").float { border = "single" }
end,
},
}
2021-07-01 04:32:35 +02:00
return require("packer").startup(function(use)
2021-07-07 05:22:46 +02:00
-- Packer can manage itself as an optional plugin
use "wbthomason/packer.nvim"
-- TODO: refactor all of this (for now it works, but yes I know it could be wrapped in a simpler function)
2021-07-07 05:22:46 +02:00
use { "neovim/nvim-lspconfig" }
2021-07-10 19:27:52 +02:00
use {
"kabouzeid/nvim-lspinstall",
event = "VimEnter",
config = function()
require("lspinstall").setup()
end,
}
2021-07-07 05:22:46 +02:00
use { "nvim-lua/popup.nvim" }
use { "nvim-lua/plenary.nvim" }
use { "tjdevries/astronauta.nvim" }
2021-07-10 09:19:44 +02:00
-- Telescope
2021-07-07 05:22:46 +02:00
use {
"nvim-telescope/telescope.nvim",
config = [[require('lv-telescope')]],
}
-- Autocomplete
use {
"hrsh7th/nvim-compe",
-- event = "InsertEnter",
2021-07-07 05:22:46 +02:00
config = function()
require("lv-compe").config()
end,
}
2021-07-10 16:51:53 +02:00
-- Autopairs
use {
"windwp/nvim-autopairs",
-- event = "InsertEnter",
2021-07-10 16:51:53 +02:00
after = { "telescope.nvim" },
config = function()
require "lv-autopairs"
end,
}
-- Snippets
2021-07-07 05:22:46 +02:00
use { "hrsh7th/vim-vsnip", event = "InsertEnter" }
use { "rafamadriz/friendly-snippets", event = "InsertEnter" }
-- Treesitter
2021-07-09 02:07:55 +02:00
use { "nvim-treesitter/nvim-treesitter" }
2021-07-07 05:22:46 +02:00
-- Formatter.nvim
2021-07-08 03:57:36 +02:00
use {
"mhartington/formatter.nvim",
2021-07-08 03:57:36 +02:00
config = function()
require "lv-formatter"
2021-07-08 03:57:36 +02:00
end,
event = "BufRead",
}
2021-07-07 05:22:46 +02:00
2021-07-10 09:19:44 +02:00
-- NvimTree
2021-07-07 05:22:46 +02:00
use {
"kyazdani42/nvim-tree.lua",
2021-07-10 09:19:44 +02:00
-- event = "BufWinOpen",
2021-07-07 05:22:46 +02:00
-- cmd = "NvimTreeToggle",
2021-07-07 05:54:48 +02:00
commit = "fd7f60e242205ea9efc9649101c81a07d5f458bb",
2021-07-07 05:22:46 +02:00
config = function()
require("lv-nvimtree").config()
end,
}
use {
"lewis6991/gitsigns.nvim",
config = function()
require("lv-gitsigns").config()
end,
event = "BufRead",
}
-- whichkey
2021-07-08 01:27:27 +02:00
use {
"folke/which-key.nvim",
config = function()
require "lv-which-key"
end,
event = "BufWinEnter",
}
2021-07-07 05:22:46 +02:00
-- Comments
use {
"terrortylor/nvim-comment",
2021-07-10 16:51:53 +02:00
event = "BufRead",
2021-07-07 05:22:46 +02:00
config = function()
local status_ok, nvim_comment = pcall(require, "nvim_comment")
if not status_ok then
return
end
nvim_comment.setup()
end,
}
2021-07-12 17:58:30 +02:00
-- whichkey
use {
"airblade/vim-rooter",
config = function()
vim.g.rooter_silent_chdir = 1
end,
}
2021-07-07 05:22:46 +02:00
-- Icons
use { "kyazdani42/nvim-web-devicons" }
-- Status Line and Bufferline
2021-07-08 03:57:36 +02:00
use {
"glepnir/galaxyline.nvim",
config = function()
require "lv-galaxyline"
end,
2021-07-10 06:09:54 +02:00
event = "BufWinEnter",
disable = not O.plugin.galaxyline.active,
2021-07-08 03:57:36 +02:00
}
2021-07-07 05:22:46 +02:00
use {
"romgrk/barbar.nvim",
config = function()
2021-07-08 03:57:36 +02:00
require "lv-barbar"
2021-07-07 05:22:46 +02:00
end,
2021-07-08 03:57:36 +02:00
event = "BufWinEnter",
2021-07-07 05:22:46 +02:00
}
2021-07-10 09:19:44 +02:00
-- Debugging
use {
"mfussenegger/nvim-dap",
2021-07-10 21:34:59 +02:00
-- event = "BufWinEnter",
2021-07-10 09:19:44 +02:00
config = function()
require "lv-dap"
end,
disable = not O.plugin.dap.active,
}
-- Debugger management
use {
"Pocco81/DAPInstall.nvim",
2021-07-10 21:34:59 +02:00
-- event = "BufWinEnter",
2021-07-10 09:19:44 +02:00
-- event = "BufRead",
disable = not O.plugin.dap.active,
}
2021-07-07 05:22:46 +02:00
-- Builtins, these do not load by default
-- Dashboard
use {
"ChristianChiarulli/dashboard-nvim",
2021-07-07 05:29:34 +02:00
event = "BufWinEnter",
2021-07-10 03:01:23 +02:00
config = function()
require("lv-dashboard").config()
end,
2021-07-07 05:22:46 +02:00
disable = not O.plugin.dashboard.active,
}
2021-07-10 01:38:15 +02:00
-- TODO: remove in favor of akinsho/nvim-toggleterm.lua
2021-07-10 09:19:44 +02:00
-- Floating terminal
use {
"numToStr/FTerm.nvim",
event = "BufWinEnter",
config = function()
require("lv-floatterm").config()
end,
disable = not O.plugin.floatterm.active,
}
2021-07-07 05:22:46 +02:00
-- Zen Mode
use {
"folke/zen-mode.nvim",
cmd = "ZenMode",
2021-07-10 08:39:00 +02:00
event = "BufRead",
2021-07-07 05:22:46 +02:00
config = function()
require("lv-zen").config()
end,
disable = not O.plugin.zen.active,
}
use {
"lukas-reineke/indent-blankline.nvim",
event = "BufRead",
setup = function()
vim.g.indentLine_enabled = 1
vim.g.indent_blankline_char = ""
vim.g.indent_blankline_filetype_exclude = {
"help",
"terminal",
"dashboard",
}
vim.g.indent_blankline_buftype_exclude = { "terminal" }
vim.g.indent_blankline_show_trailing_blankline_indent = false
vim.g.indent_blankline_show_first_indent_level = true
end,
disable = not O.plugin.indent_line.active,
}
2021-07-10 09:19:44 +02:00
---------------------------------------------------------------------------------
2021-07-07 05:22:46 +02:00
-- LANGUAGE SPECIFIC GOES HERE
use {
"lervag/vimtex",
ft = "tex",
}
-- Rust tools
-- TODO: use lazy loading maybe?
use {
"simrat39/rust-tools.nvim",
disable = not O.lang.rust.rust_tools.active,
}
-- Elixir
use { "elixir-editors/vim-elixir", ft = { "elixir", "eelixir", "euphoria3" } }
-- Javascript / Typescript
use {
"jose-elias-alvarez/nvim-lsp-ts-utils",
ft = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
}
2021-07-09 07:37:03 +02:00
use {
"mfussenegger/nvim-jdtls",
2021-07-10 21:34:59 +02:00
-- ft = { "java" },
2021-07-09 07:37:03 +02:00
disable = not O.lang.java.java_tools.active,
}
2021-07-07 05:22:46 +02:00
-- Custom semantic text objects
use {
"nvim-treesitter/nvim-treesitter-textobjects",
disable = not O.plugin.ts_textobjects.active,
}
-- Smart text objects
use {
"RRethy/nvim-treesitter-textsubjects",
disable = not O.plugin.ts_textsubjects.active,
}
-- Text objects using hint labels
use {
"mfussenegger/nvim-ts-hint-textobject",
event = "BufRead",
disable = not O.plugin.ts_hintobjects.active,
}
for _, plugin in pairs(O.user_plugins) do
packer.use(plugin)
end
end)