diff options
| author | jdhao <jdhao@hotmail.com> | 2022-09-10 23:56:04 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-10 23:56:04 +0800 |
| commit | 89effe8b172ef871ca38a90ff77003f5a796e521 (patch) | |
| tree | 6a1dc5a4f79f08678bdb8903a7920e8545718fa7 /lua/plugins.lua | |
| parent | 9ba728e201657892681cafc2c6fe8ad997873b49 (diff) | |
| parent | aaeb6a813a9044892e5bb76ba4a3a61db08eae4d (diff) | |
Merge pull request #103 from jdhao/format
format with stylua
Diffstat (limited to 'lua/plugins.lua')
| -rw-r--r-- | lua/plugins.lua | 256 |
1 files changed, 136 insertions, 120 deletions
diff --git a/lua/plugins.lua b/lua/plugins.lua index 8d8cc0c..f09d6b9 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -26,16 +26,16 @@ end vim.cmd("packadd packer.nvim") local packer = require("packer") -local packer_util = require('packer.util') +local packer_util = require("packer.util") -packer.startup({ +packer.startup { function(use) -- it is recommended to put impatient.nvim before any other plugins - use { 'lewis6991/impatient.nvim', config = [[require('impatient')]] } + use { "lewis6991/impatient.nvim", config = [[require('impatient')]] } - use({ "wbthomason/packer.nvim", opt = true }) + use { "wbthomason/packer.nvim", opt = true } - use({ "onsails/lspkind-nvim", event = "VimEnter" }) + use { "onsails/lspkind-nvim", event = "VimEnter" } -- auto-completion engine use { "hrsh7th/nvim-cmp", after = "lspkind-nvim", config = [[require('config.nvim-cmp')]] } @@ -44,312 +44,328 @@ packer.startup({ use { "hrsh7th/cmp-path", after = "nvim-cmp" } use { "hrsh7th/cmp-buffer", after = "nvim-cmp" } use { "hrsh7th/cmp-omni", after = "nvim-cmp" } - use { "quangnguyen30192/cmp-nvim-ultisnips", after = { 'nvim-cmp', 'ultisnips' } } + use { "quangnguyen30192/cmp-nvim-ultisnips", after = { "nvim-cmp", "ultisnips" } } if vim.g.is_mac then - use { "hrsh7th/cmp-emoji", after = 'nvim-cmp' } + use { "hrsh7th/cmp-emoji", after = "nvim-cmp" } end -- nvim-lsp configuration (it relies on cmp-nvim-lsp, so it should be loaded after cmp-nvim-lsp). - use({ "neovim/nvim-lspconfig", after = "cmp-nvim-lsp", config = [[require('config.lsp')]] }) + use { "neovim/nvim-lspconfig", after = "cmp-nvim-lsp", config = [[require('config.lsp')]] } if vim.g.is_mac then - use({ "nvim-treesitter/nvim-treesitter", event = 'BufEnter', run = ":TSUpdate", - config = [[require('config.treesitter')]] }) + use { + "nvim-treesitter/nvim-treesitter", + event = "BufEnter", + run = ":TSUpdate", + config = [[require('config.treesitter')]], + } end -- Python indent (follows the PEP8 style) - use({ "Vimjas/vim-python-pep8-indent", ft = { "python" } }) + use { "Vimjas/vim-python-pep8-indent", ft = { "python" } } -- Python-related text object - use({ "jeetsukumaran/vim-pythonsense", ft = { "python" } }) + use { "jeetsukumaran/vim-pythonsense", ft = { "python" } } - use({ "machakann/vim-swap", event = "VimEnter" }) + use { "machakann/vim-swap", event = "VimEnter" } -- IDE for Lisp if utils.executable("sbcl") then -- use 'kovisoft/slimv' - use({ "vlime/vlime", rtp = "vim/", ft = { "lisp" } }) + use { "vlime/vlime", rtp = "vim/", ft = { "lisp" } } end -- Super fast buffer jump use { - 'phaazon/hop.nvim', + "phaazon/hop.nvim", event = "VimEnter", config = function() - vim.defer_fn(function() require('config.nvim_hop') end, 2000) - end + vim.defer_fn(function() + require("config.nvim_hop") + end, 2000) + end, } -- Show match number and index for searching use { - 'kevinhwang91/nvim-hlslens', - branch = 'main', - keys = { { 'n', '*' }, { 'n', '#' }, { 'n', 'n' }, { 'n', 'N' } }, - config = [[require('config.hlslens')]] + "kevinhwang91/nvim-hlslens", + branch = "main", + keys = { { "n", "*" }, { "n", "#" }, { "n", "n" }, { "n", "N" } }, + config = [[require('config.hlslens')]], } -- Stay after pressing * and search selected text - use({ "haya14busa/vim-asterisk", event = 'VimEnter' }) + use { "haya14busa/vim-asterisk", event = "VimEnter" } -- File search, tag search and more if vim.g.is_win then - use({ "Yggdroot/LeaderF", cmd = "Leaderf" }) + use { "Yggdroot/LeaderF", cmd = "Leaderf" } else - use({ "Yggdroot/LeaderF", cmd = "Leaderf", run = ":LeaderfInstallCExtension" }) + use { "Yggdroot/LeaderF", cmd = "Leaderf", run = ":LeaderfInstallCExtension" } end use { - 'nvim-telescope/telescope.nvim', cmd = 'Telescope', - requires = { { 'nvim-lua/plenary.nvim' } } + "nvim-telescope/telescope.nvim", + cmd = "Telescope", + requires = { { "nvim-lua/plenary.nvim" } }, } -- search emoji and other symbols - use { 'nvim-telescope/telescope-symbols.nvim', after = 'telescope.nvim' } + use { "nvim-telescope/telescope-symbols.nvim", after = "telescope.nvim" } -- A list of colorscheme plugin you may want to try. Find what suits you. - use({ "lifepillar/vim-gruvbox8", opt = true }) - use({ "navarasu/onedark.nvim", opt = true }) - use({ "sainnhe/edge", opt = true }) - use({ "sainnhe/sonokai", opt = true }) - use({ "sainnhe/gruvbox-material", opt = true }) - use({ "shaunsingh/nord.nvim", opt = true }) - use({ "NTBBloodbath/doom-one.nvim", opt = true }) - use({ "sainnhe/everforest", opt = true }) - use({ "EdenEast/nightfox.nvim", opt = true }) - use({ "rebelot/kanagawa.nvim", opt = true }) - use({ "catppuccin/nvim", as = "catppuccin", opt = true }) - - use { 'kyazdani42/nvim-web-devicons', event = 'VimEnter' } + use { "lifepillar/vim-gruvbox8", opt = true } + use { "navarasu/onedark.nvim", opt = true } + use { "sainnhe/edge", opt = true } + use { "sainnhe/sonokai", opt = true } + use { "sainnhe/gruvbox-material", opt = true } + use { "shaunsingh/nord.nvim", opt = true } + use { "NTBBloodbath/doom-one.nvim", opt = true } + use { "sainnhe/everforest", opt = true } + use { "EdenEast/nightfox.nvim", opt = true } + use { "rebelot/kanagawa.nvim", opt = true } + use { "catppuccin/nvim", as = "catppuccin", opt = true } + + use { "kyazdani42/nvim-web-devicons", event = "VimEnter" } use { - 'nvim-lualine/lualine.nvim', - event = 'VimEnter', - config = [[require('config.statusline')]] + "nvim-lualine/lualine.nvim", + event = "VimEnter", + config = [[require('config.statusline')]], } - use({ "akinsho/bufferline.nvim", event = "VimEnter", config = [[require('config.bufferline')]] }) + use { "akinsho/bufferline.nvim", event = "VimEnter", config = [[require('config.bufferline')]] } -- fancy start screen - use { 'glepnir/dashboard-nvim', event = "VimEnter", config = [[require('config.dashboard-nvim')]] } + use { "glepnir/dashboard-nvim", event = "VimEnter", config = [[require('config.dashboard-nvim')]] } - use({ + use { "lukas-reineke/indent-blankline.nvim", - event = 'VimEnter', - config = [[require('config.indent-blankline')]] - }) + event = "VimEnter", + config = [[require('config.indent-blankline')]], + } -- Highlight URLs inside vim - use({ "itchyny/vim-highlighturl", event = "VimEnter" }) + use { "itchyny/vim-highlighturl", event = "VimEnter" } -- notification plugin - use({ + use { "rcarriga/nvim-notify", event = "BufEnter", config = function() - vim.defer_fn(function() require('config.nvim-notify') end, 2000) - end - }) + vim.defer_fn(function() + require("config.nvim-notify") + end, 2000) + end, + } -- For Windows and Mac, we can open an URL in the browser. For Linux, it may -- not be possible since we maybe in a server which disables GUI. if vim.g.is_win or vim.g.is_mac then -- open URL in browser - use({ "tyru/open-browser.vim", event = "VimEnter" }) + use { "tyru/open-browser.vim", event = "VimEnter" } end -- Only install these plugins if ctags are installed on the system if utils.executable("ctags") then -- show file tags in vim window - use({ "liuchengxu/vista.vim", cmd = "Vista" }) + use { "liuchengxu/vista.vim", cmd = "Vista" } end -- Snippet engine and snippet template - use({ "SirVer/ultisnips", event = 'InsertEnter' }) - use({ "honza/vim-snippets", after = 'ultisnips' }) + use { "SirVer/ultisnips", event = "InsertEnter" } + use { "honza/vim-snippets", after = "ultisnips" } -- Automatic insertion and deletion of a pair of characters - use({ "Raimondi/delimitMate", event = "InsertEnter" }) + use { "Raimondi/delimitMate", event = "InsertEnter" } -- Comment plugin - use({ "tpope/vim-commentary", event = "VimEnter" }) + use { "tpope/vim-commentary", event = "VimEnter" } -- Multiple cursor plugin like Sublime Text? -- use 'mg979/vim-visual-multi' -- Autosave files on certain events - use({ "907th/vim-auto-save", event = "InsertEnter" }) + use { "907th/vim-auto-save", event = "InsertEnter" } -- Show undo history visually - use({ "simnalamburt/vim-mundo", cmd = { "MundoToggle", "MundoShow" } }) + use { "simnalamburt/vim-mundo", cmd = { "MundoToggle", "MundoShow" } } -- Manage your yank history if vim.g.is_win or vim.g.is_mac then - use({ "svermeulen/vim-yoink", event = "VimEnter" }) + use { "svermeulen/vim-yoink", event = "VimEnter" } end -- Handy unix command inside Vim (Rename, Move etc.) - use({ "tpope/vim-eunuch", cmd = { "Rename", "Delete" } }) + use { "tpope/vim-eunuch", cmd = { "Rename", "Delete" } } -- Repeat vim motions - use({ "tpope/vim-repeat", event = "VimEnter" }) + use { "tpope/vim-repeat", event = "VimEnter" } - use({ "nvim-zh/better-escape.vim", event = { "InsertEnter" } }) + use { "nvim-zh/better-escape.vim", event = { "InsertEnter" } } if vim.g.is_mac then - use({ "lyokha/vim-xkbswitch", event = { "InsertEnter" } }) + use { "lyokha/vim-xkbswitch", event = { "InsertEnter" } } elseif vim.g.is_win then - use({ "Neur1n/neuims", event = { "InsertEnter" } }) + use { "Neur1n/neuims", event = { "InsertEnter" } } end -- Auto format tools - use({ "sbdchd/neoformat", cmd = { "Neoformat" } }) + use { "sbdchd/neoformat", cmd = { "Neoformat" } } -- Git command inside vim - use({ "tpope/vim-fugitive", event = "User InGitRepo", config = [[require('config.fugitive')]] }) + use { "tpope/vim-fugitive", event = "User InGitRepo", config = [[require('config.fugitive')]] } -- Better git log display - use({ "rbong/vim-flog", requires = "tpope/vim-fugitive", cmd = { "Flog" } }) + use { "rbong/vim-flog", requires = "tpope/vim-fugitive", cmd = { "Flog" } } - use({ "christoomey/vim-conflicted", requires = "tpope/vim-fugitive", cmd = { "Conflicted" } }) + use { "christoomey/vim-conflicted", requires = "tpope/vim-fugitive", cmd = { "Conflicted" } } use { - 'ruifm/gitlinker.nvim', - requires = 'nvim-lua/plenary.nvim', + "ruifm/gitlinker.nvim", + requires = "nvim-lua/plenary.nvim", event = "User InGitRepo", - config = [[require('config.git-linker')]] + config = [[require('config.git-linker')]], } -- Show git change (change, delete, add) signs in vim sign column - use({ 'lewis6991/gitsigns.nvim', config = [[require('config.gitsigns')]] }) + use { "lewis6991/gitsigns.nvim", config = [[require('config.gitsigns')]] } -- Better git commit experience - use({ "rhysd/committia.vim", opt = true, setup = [[vim.cmd('packadd committia.vim')]] }) + use { "rhysd/committia.vim", opt = true, setup = [[vim.cmd('packadd committia.vim')]] } - use({ "kevinhwang91/nvim-bqf", ft = "qf", config = [[require('config.bqf')]] }) + use { "kevinhwang91/nvim-bqf", ft = "qf", config = [[require('config.bqf')]] } -- Another markdown plugin - use({ "plasticboy/vim-markdown", ft = { "markdown" } }) + use { "plasticboy/vim-markdown", ft = { "markdown" } } -- Faster footnote generation - use({ "vim-pandoc/vim-markdownfootnotes", ft = { "markdown" } }) + use { "vim-pandoc/vim-markdownfootnotes", ft = { "markdown" } } -- Vim tabular plugin for manipulate tabular, required by markdown plugins - use({ "godlygeek/tabular", cmd = { "Tabularize" } }) + use { "godlygeek/tabular", cmd = { "Tabularize" } } -- Markdown JSON header highlight plugin - use({ "elzr/vim-json", ft = { "json", "markdown" } }) + use { "elzr/vim-json", ft = { "json", "markdown" } } -- Markdown previewing (only for Mac and Windows) if vim.g.is_win or vim.g.is_mac then - use({ + use { "iamcco/markdown-preview.nvim", run = function() fn["mkdp#util#install"]() end, ft = { "markdown" }, - }) + } end - use({ 'folke/zen-mode.nvim', cmd = 'ZenMode', config = [[require('config.zen-mode')]] }) + use { "folke/zen-mode.nvim", cmd = "ZenMode", config = [[require('config.zen-mode')]] } if vim.g.is_mac then - use({ "rhysd/vim-grammarous", ft = { "markdown" } }) + use { "rhysd/vim-grammarous", ft = { "markdown" } } end - use({ "chrisbra/unicode.vim", event = "VimEnter" }) + use { "chrisbra/unicode.vim", event = "VimEnter" } -- Additional powerful text object for vim, this plugin should be studied -- carefully to use its full power - use({ "wellle/targets.vim", event = "VimEnter" }) + use { "wellle/targets.vim", event = "VimEnter" } -- Plugin to manipulate character pairs quickly - use({ "machakann/vim-sandwich", event = "VimEnter" }) + use { "machakann/vim-sandwich", event = "VimEnter" } -- Add indent object for vim (useful for languages like Python) - use({ "michaeljsmith/vim-indent-object", event = "VimEnter" }) + use { "michaeljsmith/vim-indent-object", event = "VimEnter" } -- Only use these plugin on Windows and Mac and when LaTeX is installed if vim.g.is_win or vim.g.is_mac and utils.executable("latex") then - use({ "lervag/vimtex", ft = { "tex" } }) + use { "lervag/vimtex", ft = { "tex" } } end -- Since tmux is only available on Linux and Mac, we only enable these plugins -- for Linux and Mac if utils.executable("tmux") then -- .tmux.conf syntax highlighting and setting check - use({ "tmux-plugins/vim-tmux", ft = { "tmux" } }) + use { "tmux-plugins/vim-tmux", ft = { "tmux" } } end -- Modern matchit implementation - use({ "andymass/vim-matchup", event = "VimEnter" }) + use { "andymass/vim-matchup", event = "VimEnter" } -- Smoothie motions - use({ + use { "karb94/neoscroll.nvim", event = "VimEnter", config = function() - vim.defer_fn(function() require('config.neoscroll') end, 2000) - end - }) + vim.defer_fn(function() + require("config.neoscroll") + end, 2000) + end, + } - use({ "tpope/vim-scriptease", cmd = { "Scriptnames", "Message", "Verbose" } }) + use { "tpope/vim-scriptease", cmd = { "Scriptnames", "Message", "Verbose" } } -- Asynchronous command execution - use({ "skywind3000/asyncrun.vim", opt = true, cmd = { "AsyncRun" } }) + use { "skywind3000/asyncrun.vim", opt = true, cmd = { "AsyncRun" } } - use({ "cespare/vim-toml", ft = { "toml" }, branch = "main" }) + use { "cespare/vim-toml", ft = { "toml" }, branch = "main" } -- Edit text area in browser using nvim if vim.g.is_win or vim.g.is_mac then - use({ + use { "glacambre/firenvim", - run = function() fn["firenvim#install"](0) end, + run = function() + fn["firenvim#install"](0) + end, opt = true, setup = [[vim.cmd('packadd firenvim')]], - }) + } end -- Debugger plugin if vim.g.is_win or vim.g.is_linux then - use({ "sakhnik/nvim-gdb", run = { "bash install.sh" }, opt = true, setup = [[vim.cmd('packadd nvim-gdb')]] }) + use { "sakhnik/nvim-gdb", run = { "bash install.sh" }, opt = true, setup = [[vim.cmd('packadd nvim-gdb')]] } end -- Session management plugin - use({ "tpope/vim-obsession", cmd = 'Obsession' }) + use { "tpope/vim-obsession", cmd = "Obsession" } if vim.g.is_linux then - use({ "ojroques/vim-oscyank", cmd = { 'OSCYank', 'OSCYankReg' } }) + use { "ojroques/vim-oscyank", cmd = { "OSCYank", "OSCYankReg" } } end -- The missing auto-completion for cmdline! - use({ "gelguy/wilder.nvim", opt = true, setup = [[vim.cmd('packadd wilder.nvim')]] }) + use { "gelguy/wilder.nvim", opt = true, setup = [[vim.cmd('packadd wilder.nvim')]] } -- showing keybindings - use { "folke/which-key.nvim", + use { + "folke/which-key.nvim", event = "VimEnter", config = function() - vim.defer_fn(function() require('config.which-key') end, 2000) - end + vim.defer_fn(function() + require("config.which-key") + end, 2000) + end, } -- show and trim trailing whitespaces - use { 'jdhao/whitespace.nvim', event = 'VimEnter' } + use { "jdhao/whitespace.nvim", event = "VimEnter" } -- file explorer use { - 'kyazdani42/nvim-tree.lua', - requires = { 'kyazdani42/nvim-web-devicons' }, - config = [[require('config.nvim-tree')]] + "kyazdani42/nvim-tree.lua", + requires = { "kyazdani42/nvim-web-devicons" }, + config = [[require('config.nvim-tree')]], } - use { 'ii14/emmylua-nvim', ft = 'lua' } + use { "ii14/emmylua-nvim", ft = "lua" } - use { 'j-hui/fidget.nvim', after = 'nvim-lspconfig', config = [[require('config.fidget-nvim')]] } + use { "j-hui/fidget.nvim", after = "nvim-lspconfig", config = [[require('config.fidget-nvim')]] } end, config = { max_jobs = 16, - compile_path = packer_util.join_paths(fn.stdpath('data'), 'site', 'lua', 'packer_compiled.lua'), + compile_path = packer_util.join_paths(fn.stdpath("data"), "site", "lua", "packer_compiled.lua"), }, -}) +} -- For fresh install, we need to install plugins. Otherwise, we just need to require `packer_compiled.lua`. if fresh_install then @@ -357,9 +373,9 @@ if fresh_install then -- So plugin installation should be done after the startup process. packer.sync() else - local status, _ = pcall(require, 'packer_compiled') + local status, _ = pcall(require, "packer_compiled") if not status then local msg = "File packer_compiled.lua not found: run PackerSync to fix!" - vim.notify(msg, vim.log.levels.ERROR, { title = 'nvim-config' }) + vim.notify(msg, vim.log.levels.ERROR, { title = "nvim-config" }) end end |
