2023-02-26 12:50:20 +00:00
|
|
|
local ensure_packer = function()
|
|
|
|
local fn = vim.fn
|
|
|
|
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
|
|
|
if fn.empty(fn.glob(install_path)) > 0 then
|
|
|
|
fn.system({ "git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path })
|
|
|
|
vim.cmd([[packadd packer.nvim]])
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
|
|
|
|
local packer_bootstrap = ensure_packer()
|
|
|
|
|
|
|
|
return require("packer").startup(function(use)
|
2023-02-26 13:29:03 +00:00
|
|
|
use({
|
|
|
|
"https://github.com/lewis6991/impatient.nvim",
|
2023-03-31 18:57:27 +00:00
|
|
|
as = "impatient.nvim",
|
2023-02-26 13:29:03 +00:00
|
|
|
config = function()
|
|
|
|
require("impatient")
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
use({ "wbthomason/packer.nvim" })
|
|
|
|
use({ "folke/tokyonight.nvim" })
|
|
|
|
use({ "stevearc/dressing.nvim" })
|
|
|
|
use({ "catppuccin/nvim", as = "catppuccin" })
|
2023-02-26 12:50:20 +00:00
|
|
|
|
2023-02-26 13:29:03 +00:00
|
|
|
-- bufferline
|
|
|
|
use({ "akinsho/bufferline.nvim", tag = "v3.*", requires = "nvim-tree/nvim-web-devicons" })
|
|
|
|
-- 行号模式自动切换
|
|
|
|
use({ "nkakouros-original/numbers.nvim" })
|
|
|
|
-- 文件树
|
|
|
|
use({
|
|
|
|
"nvim-tree/nvim-tree.lua",
|
|
|
|
requires = {
|
|
|
|
"nvim-tree/nvim-web-devicons", -- optional, for file icons
|
|
|
|
},
|
|
|
|
tag = "nightly", -- optional, updated every week. (see issue #1193)
|
|
|
|
})
|
|
|
|
-- 终端管理
|
|
|
|
use({ "akinsho/toggleterm.nvim", tag = "*" })
|
|
|
|
-- LSP管理器
|
|
|
|
use({
|
|
|
|
"williamboman/mason.nvim",
|
|
|
|
"williamboman/mason-lspconfig.nvim",
|
|
|
|
"neovim/nvim-lspconfig",
|
|
|
|
"jose-elias-alvarez/null-ls.nvim",
|
|
|
|
})
|
|
|
|
-- 命令行
|
|
|
|
use({
|
|
|
|
"VonHeikemen/fine-cmdline.nvim",
|
|
|
|
requires = {
|
|
|
|
{ "MunifTanjim/nui.nvim" },
|
|
|
|
},
|
|
|
|
})
|
|
|
|
-- 通知
|
|
|
|
use({ "rcarriga/nvim-notify" })
|
|
|
|
-- 缩进线
|
|
|
|
use({ "lukas-reineke/indent-blankline.nvim" })
|
|
|
|
-- 注释管理
|
|
|
|
use({
|
|
|
|
"numToStr/Comment.nvim",
|
|
|
|
config = function()
|
|
|
|
require("Comment").setup({})
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
-- git管理
|
|
|
|
use({ "lewis6991/gitsigns.nvim" })
|
|
|
|
use({
|
|
|
|
"nvim-lualine/lualine.nvim",
|
|
|
|
requires = { "kyazdani42/nvim-web-devicons", opt = true },
|
|
|
|
})
|
|
|
|
-- 自动修复部分按键
|
|
|
|
use({ "tummetott/unimpaired.nvim" })
|
|
|
|
-- 标签补全
|
|
|
|
use({ "windwp/nvim-autopairs" })
|
|
|
|
use({ "windwp/nvim-ts-autotag" })
|
|
|
|
-- 自动保存
|
|
|
|
use({
|
|
|
|
"Pocco81/auto-save.nvim",
|
|
|
|
})
|
|
|
|
-- lspsaga
|
|
|
|
use({
|
|
|
|
"glepnir/lspsaga.nvim",
|
|
|
|
branch = "main",
|
|
|
|
requires = {
|
|
|
|
"nvim-tree/nvim-web-devicons",
|
|
|
|
--Please make sure you install markdown and markdown_inline parser
|
2023-02-26 12:50:20 +00:00
|
|
|
"nvim-treesitter/nvim-treesitter",
|
2023-02-26 13:29:03 +00:00
|
|
|
"folke/lsp-colors.nvim",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
-- 错误列表
|
|
|
|
use({
|
|
|
|
"folke/trouble.nvim",
|
|
|
|
requires = "nvim-tree/nvim-web-devicons",
|
|
|
|
})
|
|
|
|
-- 上下高亮跳动
|
|
|
|
use({ "danilamihailov/beacon.nvim" })
|
|
|
|
-- markdown lsp
|
|
|
|
use({ "mzlogin/vim-markdown-toc", ft = "markdown" })
|
|
|
|
use({
|
|
|
|
"iamcco/markdown-preview.nvim",
|
|
|
|
run = "cd app && npm install",
|
|
|
|
setup = function()
|
|
|
|
vim.g.mkdp_filetypes = { "markdown" }
|
|
|
|
end,
|
|
|
|
ft = { "markdown" },
|
|
|
|
})
|
|
|
|
-- 跳转
|
|
|
|
use({ "ggandor/leap.nvim" })
|
|
|
|
use({ "ggandor/flit.nvim" })
|
|
|
|
-- 项目管理
|
|
|
|
use({ "ahmedkhalf/project.nvim" })
|
|
|
|
-- TODO 管理
|
|
|
|
use({
|
|
|
|
"folke/todo-comments.nvim",
|
|
|
|
requires = "nvim-lua/plenary.nvim",
|
|
|
|
})
|
|
|
|
-- 代码高亮
|
|
|
|
use({
|
|
|
|
"nvim-treesitter/nvim-treesitter",
|
|
|
|
run = ":TSUpdate",
|
|
|
|
})
|
|
|
|
use({ "nvim-treesitter/playground", after = "nvim-treesitter" })
|
|
|
|
-- 自动完成相关
|
|
|
|
use({
|
|
|
|
"hrsh7th/nvim-cmp",
|
|
|
|
requires = {
|
|
|
|
"onsails/lspkind-nvim",
|
|
|
|
"octaltree/cmp-look",
|
|
|
|
"hrsh7th/cmp-nvim-lsp",
|
|
|
|
"hrsh7th/cmp-buffer",
|
|
|
|
"hrsh7th/cmp-path",
|
|
|
|
"hrsh7th/cmp-calc",
|
|
|
|
"hrsh7th/cmp-cmdline",
|
2023-02-26 12:50:20 +00:00
|
|
|
"hrsh7th/nvim-cmp",
|
2023-02-26 13:29:03 +00:00
|
|
|
"hrsh7th/cmp-vsnip",
|
|
|
|
"hrsh7th/vim-vsnip",
|
|
|
|
"hrsh7th/cmp-emoji",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
use({
|
|
|
|
"L3MON4D3/LuaSnip",
|
|
|
|
requires = {
|
|
|
|
"rafamadriz/friendly-snippets",
|
|
|
|
},
|
2023-03-31 18:57:27 +00:00
|
|
|
tag = "v1.2.1",
|
2023-02-26 13:29:03 +00:00
|
|
|
-- install jsregexp (optional!:).
|
|
|
|
run = "make install_jsregexp",
|
|
|
|
})
|
|
|
|
-- golang ide
|
|
|
|
use({
|
|
|
|
"ray-x/go.nvim",
|
|
|
|
"ray-x/guihua.lua", -- recommended if need floating window support
|
|
|
|
})
|
|
|
|
-- 高亮当前关键词
|
|
|
|
use({ "RRethy/vim-illuminate" })
|
|
|
|
-- 罗列文件中的所有url
|
|
|
|
use("axieax/urlview.nvim")
|
|
|
|
-- 快捷键提示
|
|
|
|
use({
|
|
|
|
"folke/which-key.nvim",
|
|
|
|
config = function()
|
|
|
|
vim.o.timeout = true
|
|
|
|
vim.o.timeoutlen = 300
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
-- debug
|
|
|
|
use({
|
|
|
|
"theHamsta/nvim-dap-virtual-text",
|
|
|
|
"rcarriga/nvim-dap-ui",
|
|
|
|
"mfussenegger/nvim-dap",
|
|
|
|
"folke/neodev.nvim",
|
|
|
|
})
|
|
|
|
-- 命令模式增强
|
|
|
|
use({
|
|
|
|
"gelguy/wilder.nvim",
|
|
|
|
config = function()
|
|
|
|
-- config goes here
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
-- lsp 状态
|
|
|
|
use("nvim-lua/lsp-status.nvim")
|
|
|
|
-- 屏幕保护
|
|
|
|
use("eandrju/cellular-automaton.nvim")
|
|
|
|
-- LSP 进度同步
|
|
|
|
use({
|
|
|
|
"https://github.com/j-hui/fidget.nvim",
|
2023-03-31 18:57:27 +00:00
|
|
|
as = "fidget.nvim",
|
2023-02-26 13:29:03 +00:00
|
|
|
config = function()
|
|
|
|
require("fidget").setup({
|
|
|
|
text = {
|
|
|
|
spinner = "dots",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
-- 模糊搜索
|
|
|
|
use({
|
|
|
|
"nvim-telescope/telescope.nvim",
|
|
|
|
tag = "0.1.1",
|
2023-03-31 18:57:27 +00:00
|
|
|
as = "telescope.nvim",
|
2023-02-26 13:29:03 +00:00
|
|
|
requires = {
|
|
|
|
{ "nvim-lua/plenary.nvim" },
|
|
|
|
{ "nvim-treesitter/nvim-treesitter" },
|
|
|
|
{ "kdheepak/lazygit.nvim" },
|
|
|
|
},
|
|
|
|
})
|
2023-03-31 18:57:27 +00:00
|
|
|
if vim.loop.os_uname().sysname == "Linux" then
|
|
|
|
use({
|
|
|
|
"https://github.com/nvim-telescope/telescope-fzf-native.nvim",
|
|
|
|
run = "make",
|
|
|
|
as = "telescope-fzf-native.nvim",
|
|
|
|
})
|
|
|
|
end
|
2023-02-26 13:29:03 +00:00
|
|
|
use({ "nvim-telescope/telescope-ui-select.nvim" })
|
|
|
|
-- 自定义命令
|
|
|
|
use({
|
|
|
|
"mrjones2014/legendary.nvim",
|
|
|
|
requires = "kkharji/sqlite.lua",
|
|
|
|
})
|
|
|
|
-- protobuf 识别
|
|
|
|
use("wfxr/protobuf.vim")
|
|
|
|
-- 自动保存
|
|
|
|
if packer_bootstrap then
|
|
|
|
require("packer").sync()
|
|
|
|
end
|
|
|
|
end)
|