-- Install packer local install_path = vim.fn.stdpath("data").."/site/pack/packer/start/packer.nvim" if vim.fn.empty(vim.fn.glob(install_path)) > 0 then vim.fn.system({"git", "clone", "https://github.com/wbthomason/packer.nvim", install_path}) vim.cmd "packadd packer.nvim" end -- Configures dark-notify to use colors from my environment local function config_dark_notify() require("dark_notify").run { onchange = function(_) -- Defined in _colors _G.update_colors() end, } end -- Disable polyglot for langauges I've added special support for vim.g.polyglot_disabled = { "go", "rust" } return require('packer').startup(function() -- luacheck: push globals use use "wbthomason/packer.nvim" -- Quality of life use "tpope/vim-endwise" use "tpope/vim-eunuch" use "tpope/vim-repeat" use "tpope/vim-rsi" use "tpope/vim-surround" use "tpope/vim-vinegar" use "vim-scripts/file-line" use "ludovicchabant/vim-gutentags" use { "tomtom/tcomment_vim", config = function() vim.api.nvim_set_keymap("n", "//", ":TComment", {silent=true, noremap=true}) vim.api.nvim_set_keymap("v", "//", ":TCommentBlock", {silent=true, noremap=true}) end, } use { "FooSoft/vim-argwrap", config = function() vim.api.nvim_set_keymap("n","a", ":ArgWrap", {silent=true, noremap=true}) end, } use { "tpope/vim-fugitive", -- cmd = {"Git"}, } use { "milkypostman/vim-togglelist", config = function() vim.api.nvim_set_keymap("n", "", ":call ToggleQuickfixList()", {silent=true, noremap=true}) vim.api.nvim_set_keymap("n", "", ":call ToggleLocationList()", {silent=true, noremap=true}) end, } use { "mhinz/vim-grepper", config = function() require("plugins.grepper") end, } -- UI use { "ViViDboarder/wombat.nvim", requires = "rktjmp/lush.nvim", } use { "ViViDboarder/wombuddy.nvim", requires = "tjdevries/colorbuddy.vim", } use "vim-scripts/wombat256.vim" use "ishan9299/nvim-solarized-lua" use { "norcalli/nvim-colorizer.lua", config = function() require("colorizer").setup() end, } use { "folke/tokyonight.nvim", run = "fish -c 'echo \"set --path --prepend fish_themes_path \"(pwd)\"/extras\" > ~/.config/fish/conf.d/tokyonight.fish' || true", -- luacheck: no max line length } --[[ use { "vim-airline/vim-airline", config = function() require("plugins.airline") end, requires = { "vim-airline/vim-airline-themes", opt = true }, } --]] use { "nvim-lualine/lualine.nvim", config = function() require("plugins.lualine").config_lualine() end, } use { "cormacrelf/dark-notify", -- Download latest release on install run = "curl -s https://api.github.com/repos/cormacrelf/dark-notify/releases/latest | jq '.assets[].browser_download_url' | xargs curl -Ls | tar xz -C ~/.local/bin/", -- luacheck: no max line length config = config_dark_notify, requires = "nvim-lualine/lualine.nvim", } use { 'mhinz/vim-startify', config = function() require("utils").require_with_local("plugins.startify") end, } -- LSP use { "jose-elias-alvarez/null-ls.nvim", config = function() require("plugins.lsp").config_null_ls() end, requires = { "nvim-lua/plenary.nvim", } } use { "neovim/nvim-lspconfig", config = function() require("plugins.lsp").config_lsp() end, requires = { "hrsh7th/cmp-nvim-lsp", "jose-elias-alvarez/null-ls.nvim", }, } use { "glepnir/lspsaga.nvim", requires = "neovim/nvim-lspconfig", config = function() require("plugins.lsp").config_lsp_saga() end, } --[[ use { "SmiteshP/nvim-gps", requires = "nvim-treesitter/nvim-treesitter" } --]] -- Writing -- abolish/pencil use { "preservim/vim-pencil", cmd = {"Pencil"}, } use { "preservim/vim-textobj-sentence", requires = "kana/vim-textobj-user", } -- Treesitter use { "nvim-treesitter/nvim-treesitter", run = ":TSUpdate", config = function() require("utils").require_with_local("plugins.treesitter") end, } use { "nvim-treesitter/nvim-treesitter-refactor", requires = "nvim-treesitter/nvim-treesitter", } use { "nvim-treesitter/nvim-treesitter-textobjects", requires = "nvim-treesitter/nvim-treesitter", } --[[ use { "nvim-treesitter/completion-treesitter", requires = "nvim-treesitter/nvim-treesitter", } --]] -- Completion --[[ use { "nvim-lua/completion-nvim", config = function() require("plugins.completion").config_complete() end, } --]] use { "hrsh7th/nvim-cmp", config = function() require("plugins.completion").config_cmp() end, requires = { "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-buffer", "f3fora/cmp-spell", "L3MON4D3/LuaSnip", "saadparwaiz1/cmp_luasnip", } } -- Fuzzy Finder use { "nvim-telescope/telescope.nvim", requires = "nvim-lua/plenary.nvim", config = function() require("plugins.telescope") end, } --[[ use { 'junegunn/fzf', run = ":call fzf#install()", } use { 'junegunn/fzf.vim', requires = "junegunn/fzf", config = function() vim.g.fzf_command_prefix = 'FZF' -- Jump to existing window if possible vim.g.fzf_buffers_jump = 1 -- Override key commands -- vim.g.fzf_action = { ['ctrl-t'] = 'tab split', ['ctrl-s'] = 'split', ['ctrl-v'] = 'vsplit', } -- Override git log to show authors vim.g.fzf_commits_log_options = --graph --color=always \z --format="%C(auto)%h %an: %s%d %C(black)%C(bold)%cr" vim.g.fzf_preview_window = {"right:50%", "ctrl-/"} vim.api.nvim_set_keymap("n", "", "FZF", {silent=true, noremap=true}) vim.api.nvim_set_keymap("n", "b", "FZFBuffers", {silent=true, noremap=true}) vim.api.nvim_set_keymap("n", "", "FZFBuffers", {silent=true, noremap=true}) vim.api.nvim_set_keymap("n", "fg", "FZFRg", {silent=true, noremap=true}) vim.api.nvim_set_keymap("n", "r", "FZFTags", {silent=true, noremap=true}) vim.api.nvim_set_keymap("n", "t", "FZFBTags", {silent=true, noremap=true}) vim.api.nvim_set_keymap("n", "g", "FZFBCommits", {silent=true, noremap=true}) end, } use { "ojroques/nvim-lspfuzzy", requires = { "junegunn/fzf", "junegunn/fzf" }, config = function() require("lspfuzzy").setup{ fzf_trim = false, } end, } --]] -- Filetypes use "ViViDboarder/vim-forcedotcom" use "rust-lang/rust.vim" use "hsanson/vim-android" use { 'sheerun/vim-polyglot', config = function() vim.cmd([[ augroup ansible_playbook au BufRead,BufNewFile */playbooks/*.yml,*/playbooks/*.yaml set filetype=yaml.ansible augroup end ]]) end, } use { "dense-analysis/ale", config = function() require("utils").require_with_local("plugins.ale") end, } -- Debuging nvim config use { "tweekmonster/startuptime.vim", cmd = {"StartupTime"}, } -- luacheck: pop end)