fix: golang lsp action

This commit is contained in:
Young Xu 2023-02-26 21:29:03 +08:00
parent 842191f4d0
commit 1f3896974d
Signed by: xuthus5
GPG Key ID: A23CF9620CBB55F9
38 changed files with 877 additions and 456 deletions

View File

@ -19,6 +19,8 @@ go install github.com/jesseduffield/lazygit@latest
npm install eslint --global npm install eslint --global
npm install -g typescript typescript-language-server npm install -g typescript typescript-language-server
npm install -g @volar/vue-language-server npm install -g @volar/vue-language-server
npm install -g eslint_d
go install github.com/yoheimuta/protolint/cmd/protolint@latest
``` ```
### 记忆项 ### 记忆项

1
ftplugin/javascript.vim Normal file
View File

@ -0,0 +1 @@
vnoremap <silent><buffer> D :<c-u>call SurroundVaddPairs("/** ", " */")<cr>

51
ftplugin/markdown.vim Normal file
View File

@ -0,0 +1,51 @@
hi MDTask ctermfg=1
hi MDDoneText ctermfg=37 cterm=italic,strikethrough
hi MDTodoText cterm=NONE
hi MDDoneDate cterm=strikethrough ctermfg=71
hi MDTodoDate ctermfg=71
hi Deadline ctermfg=162 cterm=bold,underline
hi NearDeadline ctermfg=178 cterm=bold
au FileType markdown syn match markdownError "\w\@<=\w\@="
au FileType markdown syn match MDDoneDate /[SD]:\d\{4\}\([\/-]\d\d\)\{2\}/ contained
au FileType markdown syn match MDTodoDate /[SD]:\d\{4\}\([\/-]\d\d\)\{2\}/ contained
au FileType markdown syn match MDDoneText /- \[x\] \zs.*/ contains=MDDoneDate contained
au FileType markdown syn match MDTodoText /- \[ \] \zs.*/ contains=MDTodoDate contained
au FileType markdown syn match MDTask /- \[\(x\| \)\] .*/ contains=MDDoneText,MDTodoText
au FileType markdown call matchadd('Deadline', 'D:'.strftime("%Y-%m-%d"))
au FileType markdown call matchadd('NearDeadline', 'D:'.strftime("%Y-%m-%d", localtime() + 3600 * 24))
au FileType markdown call matchadd('NearDeadline', 'D:'.strftime("%Y-%m-%d", localtime() + 3600 * 48))
let b:md_block = '```'
setlocal shiftwidth=2
setlocal softtabstop=2
setlocal tabstop=2
nnoremap <silent><buffer> <CR> :call <SID>toggleTodoStatus()<CR><CR>
nnoremap <silent><buffer> <2-LeftMouse> :call <SID>toggleTodoStatus()<CR>:w<CR><2-LeftMouse>
vnoremap <silent><buffer> B :<c-u>call SurroundVaddPairs("**", "**")<cr>
vnoremap <silent><buffer> I :<c-u>call SurroundVaddPairs("*", "*")<cr>
vnoremap <silent><buffer> T :<c-u>call SurroundVaddPairs("- [ ] ", "")<cr>
vnoremap <silent><buffer> ` :<c-u>call SurroundVaddPairs("`", "`")<cr>
vnoremap <silent><buffer> C :<c-u>call SurroundVaddPairs("```plaintext", "```")<cr>
fun! s:toggleTodoStatus()
let line = getline('.')
if line =~ glob2regpat('*- \[ \]*')
call setline('.', substitute(line, '\[ \]', '[x]', ''))
elseif line =~ glob2regpat('*- \[x\]*')
call setline('.', substitute(line, '\[x\]', '[ ]', ''))
endif
endf
nnoremap <silent><buffer> <F6> :call <SID>toggleMPTheme()<CR>
inoremap <silent><buffer> <F6> <ESC>:call <SID>toggleMPTheme()<CR>
fun! s:toggleMPTheme()
if g:mkdp_theme == 'dark'
let g:mkdp_theme = 'light'
else
let g:mkdp_theme = 'dark'
endif
exec 'MarkdownPreviewStop'
sleep 1
exec 'MarkdownPreview'
endf

1
ftplugin/mysql.vim Normal file
View File

@ -0,0 +1 @@
let g:omni_sql_no_default_maps = 1

105
ftplugin/proto.vim Normal file
View File

@ -0,0 +1,105 @@
" Protocol Buffers - Google's data interchange format
" Copyright 2008 Google Inc. All rights reserved.
" https://developers.google.com/protocol-buffers/
"
" Redistribution and use in source and binary forms, with or without
" modification, are permitted provided that the following conditions are
" met:
"
" * Redistributions of source code must retain the above copyright
" notice, this list of conditions and the following disclaimer.
" * Redistributions in binary form must reproduce the above
" copyright notice, this list of conditions and the following disclaimer
" in the documentation and/or other materials provided with the
" distribution.
" * Neither the name of Google Inc. nor the names of its
" contributors may be used to endorse or promote products derived from
" this software without specific prior written permission.
"
" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
" This is the Vim syntax file for Google Protocol Buffers.
"
" Usage:
"
" 1. cp proto.vim ~/.vim/syntax/
" 2. Add the following to ~/.vimrc:
"
" augroup filetype
" au! BufRead,BufNewFile *.proto setfiletype proto
" augroup end
"
" Or just create a new file called ~/.vim/ftdetect/proto.vim with the
" previous lines on it.
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn case match
syn keyword pbTodo contained TODO FIXME XXX
syn cluster pbCommentGrp contains=pbTodo
syn keyword pbSyntax syntax import option
syn keyword pbStructure package message group oneof
syn keyword pbRepeat optional required repeated
syn keyword pbDefault default
syn keyword pbExtend extend extensions to max reserved
syn keyword pbRPC service rpc returns
syn keyword pbType int32 int64 uint32 uint64 sint32 sint64
syn keyword pbType fixed32 fixed64 sfixed32 sfixed64
syn keyword pbType float double bool string bytes
syn keyword pbTypedef enum
syn keyword pbBool true false
syn match pbInt /-\?\<\d\+\>/
syn match pbInt /\<0[xX]\x+\>/
syn match pbFloat /\<-\?\d*\(\.\d*\)\?/
syn region pbComment start="\/\*" end="\*\/" contains=@pbCommentGrp,@Spell
syn region pbComment start="//" skip="\\$" end="$" keepend contains=@pbCommentGrp,@Spell
syn region pbString start=/"/ skip=/\\./ end=/"/ contains=@Spell
syn region pbString start=/'/ skip=/\\./ end=/'/ contains=@Spell
if version >= 508 || !exists("did_proto_syn_inits")
if version < 508
let did_proto_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink pbTodo Todo
HiLink pbSyntax Include
HiLink pbStructure Structure
HiLink pbRepeat Repeat
HiLink pbDefault Keyword
HiLink pbExtend Keyword
HiLink pbRPC Keyword
HiLink pbType Type
HiLink pbTypedef Typedef
HiLink pbBool Boolean
HiLink pbInt Number
HiLink pbFloat Float
HiLink pbComment Comment
HiLink pbString String
delcommand HiLink
endif
let b:current_syntax = "proto"

1
ftplugin/python.vim Normal file
View File

@ -0,0 +1 @@
vnoremap <silent><buffer> D :<c-u>call SurroundVaddPairs("/** ", " */")<cr>

1
ftplugin/sql.vim Normal file
View File

@ -0,0 +1 @@
let g:omni_sql_no_default_maps = 1

1
ftplugin/typescript.vim Normal file
View File

@ -0,0 +1 @@
vnoremap <silent><buffer> D :<c-u>call SurroundVaddPairs("/** ", " */")<cr>

4
ftplugin/vue.vim Normal file
View File

@ -0,0 +1,4 @@
augroup vue
au!
autocmd BufWritePre *.vue :call CocAction('format')
augroup END

View File

@ -1,18 +1,16 @@
require("impatient") -- start quickly
require("setup") require("setup")
require("core.g")
require("core.option") require("core.option")
-- 加载插件配置文件 -- 加载插件配置文件
-- 文件树 -- 文件树
require("plugins.file-tree") require("plugins.file-tree")
-- 行号模式切换 -- 默认配置
require("plugins.line-numbers") require("plugins.peaceful")
-- 模糊搜索 -- debug 配置
require("plugins.telescope") require("plugins.debug")
-- mason管理 -- mason管理
require("plugins.mason") require("plugins.mason")
-- 终端管理
require("plugins.terminal")
-- bufferline -- bufferline
require("plugins.bufferline") require("plugins.bufferline")
-- 空白缩进 -- 空白缩进
@ -20,23 +18,24 @@ require("plugins.indent_blackline")
-- 底部状态 -- 底部状态
require("plugins.lualine") require("plugins.lualine")
-- 自动保存 -- 自动保存
require("plugins.auto-save") require("plugins.auto-do")
-- 通知 -- 通知
require("plugins.notify") require("plugins.notify")
-- 格式化 -- 格式化
require("plugins.null-ls") require("plugins.null-ls")
-- 错误列表
require("plugins.trouble")
-- git -- git
require("plugins.gitsigns") require("plugins.gitsigns")
-- 文件搜索
require("plugins.telescope")
-- 快速跳转 -- 快速跳转
require("plugins.leap") require("plugins.leap")
-- 代码高亮配置 -- 代码高亮配置
require("plugins.treesitter") require("plugins.treesitter")
-- lspsaga -- wilder配置
require("plugins.lspsaga") require("plugins.wilder")
-- golang lsp -- 自定义快捷键配置
require("plugins.golang") require("plugins.legendary")
-- lsp 配置
require("lsp.init") require("lsp.init")
require("lsp.bash") require("lsp.bash")
require("lsp.docker") require("lsp.docker")
@ -45,6 +44,11 @@ require("lsp.go")
require("lsp.lua") require("lsp.lua")
require("lsp.protocol") require("lsp.protocol")
require("lsp.volar") require("lsp.volar")
require("lsp.clang")
-- lspsaga
require("plugins.lspsaga")
-- golang lsp
require("plugins.golang")
-- 载入主题 -- 载入主题
require("core.theme") require("core.theme")

52
lua/core/g.lua Normal file
View File

@ -0,0 +1,52 @@
local G = {}
G.g = vim.g
G.b = vim.b
G.o = vim.o
G.v = vim.v
G.fn = vim.fn
G.api = vim.api
G.opt = vim.opt
function G.map(maps)
for _, map in pairs(maps) do
G.api.nvim_set_keymap(map[1], map[2], map[3], map[4])
end
end
function G.hi(hls)
local colormode = G.o.termguicolors and "" or "cterm"
for group, color in pairs(hls) do
local opt = {}
if color.fg then
opt[colormode .. "fg"] = color.fg
end
if color.bg then
opt[colormode .. "bg"] = color.bg
end
if color.italic then
opt.italic = true
end
if color.bold then
opt.bold = true
end
if color.underline then
opt.underline = true
end
G.api.nvim_set_hl(0, group, opt)
end
end
function G.cmd(cmd)
G.api.nvim_command(cmd)
end
function G.exec(c)
G.api.nvim_exec(c)
end
function G.eval(c)
return G.api.nvim_eval(c)
end
return G

View File

@ -7,7 +7,7 @@ local noreopt = { noremap = true, silent = true }
-- save -- save
map.set({ "n", "i" }, "<C-s>", "<cmd>w<cr>", noreopt) map.set({ "n", "i" }, "<C-s>", "<cmd>w<cr>", noreopt)
-- format -- format
map.set({ "n", "i" }, "=", "<cmd>lua vim.lsp.buf.format()<cr>", noreopt) map.set({ "n", "v", "x" }, "=", "<cmd>lua vim.lsp.buf.format()<cr>", noreopt)
-- fine cmdline -- fine cmdline
map.set("n", ":", "<cmd>FineCmdline<CR>", noreopt) map.set("n", ":", "<cmd>FineCmdline<CR>", noreopt)
-- telescope -- telescope
@ -30,7 +30,10 @@ map.set("n", "<C-l>", "<C-w>l", noreopt)
-- 分屏 -- 分屏
map.set("n", "<leader>sv", ":vsp<CR>", noreopt) map.set("n", "<leader>sv", ":vsp<CR>", noreopt)
map.set("n", "<leader>sh", ":sp<CR>", noreopt) map.set("n", "<leader>sh", ":sp<CR>", noreopt)
-- 代码块移动 -- 代码块选择和移动
map.set({ "n", "v" }, "L", "$", noreopt) -- 快速行尾
map.set({ "n", "v" }, "H", "^", noreopt) -- 快速行首
map.set({ "n", "v", "i" }, "<C-a>", "gg<S-v>G", noreopt) -- 全选
map.set("n", "<A-j>", "<Esc>:m .+1<CR>==gi", noreopt) map.set("n", "<A-j>", "<Esc>:m .+1<CR>==gi", noreopt)
map.set("n", "<A-k>", "<Esc>:m .-2<CR>==gi", noreopt) map.set("n", "<A-k>", "<Esc>:m .-2<CR>==gi", noreopt)
map.set("v", "<", "<gv", noreopt) map.set("v", "<", "<gv", noreopt)
@ -140,7 +143,7 @@ function _G.set_lspsage_keymaps()
-- Note that if you use hover with ++keep, pressing this key again will -- Note that if you use hover with ++keep, pressing this key again will
-- close the hover window. If you want to jump to the hover window -- close the hover window. If you want to jump to the hover window
-- you should use the wincmd command "<C-w>w" -- you should use the wincmd command "<C-w>w"
keymap("n", "K", "<cmd>Lspsaga hover_doc ++keep<CR>") -- keymap("n", "K", "<cmd>Lspsaga hover_doc ++keep<CR>")
-- Call hierarchy -- Call hierarchy
keymap("n", "<Leader>ci", "<cmd>Lspsaga incoming_calls<CR>") keymap("n", "<Leader>ci", "<cmd>Lspsaga incoming_calls<CR>")

View File

@ -73,11 +73,9 @@ vim.opt.backup = false
vim.opt.swapfile = false vim.opt.swapfile = false
vim.opt.writebackup = false vim.opt.writebackup = false
vim.opt.undofile = true vim.opt.undofile = true
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
-- 开启 Folding -- 开启 Folding
vim.wo.foldmethod = "expr" vim.wo.foldmethod = "expr"
vim.wo.foldexpr = "nvim_treesitter#foldexpr()" vim.wo.foldexpr = "nvim_treesitter#foldexpr()"
-- 默认不要折叠 -- 默认不要折叠
-- https://stackoverflow.com/questions/8316139/how-to-set-the-default-to-unfolded-when-you-open-a-file -- https://stackoverflow.com/questions/8316139/how-to-set-the-default-to-unfolded-when-you-open-a-file
vim.wo.foldlevel = 99 vim.wo.foldlevel = 99

View File

@ -1 +1 @@
vim.cmd[[colorscheme tokyonight-storm]] vim.cmd([[colorscheme tokyonight-storm]])

19
lua/lsp/clang.lua Normal file
View File

@ -0,0 +1,19 @@
local lsp_status = require("lsp-status")
lsp_status.register_progress()
lsp_status.config({
indicator_errors = "",
indicator_warnings = "⚠️ ",
indicator_info = " ",
-- https://emojipedia.org/tips/
indicator_hint = "💡",
indicator_ok = "",
})
require("lspconfig").clangd.setup({
filetypes = { "c", "cpp", "objc", "objcpp", "cuda" },
handlers = lsp_status.extensions.clangd.setup(),
init_options = {
clangdFileStatus = true,
},
capabilities = lsp_status.capabilities,
})

View File

@ -51,8 +51,11 @@ require("lspconfig")["golangci_lint_ls"].setup({
flags = common_lsp_flags, flags = common_lsp_flags,
}) })
util = require("lspconfig/util")
require("lspconfig")["gopls"].setup({ require("lspconfig")["gopls"].setup({
cmd = { "gopls" }, cmd = { "gopls" },
filetypes = { "go", "gomod" },
root_dir = util.root_pattern("go.work", "go.mod", ".git"),
on_attach = common_lsp_on_attach, on_attach = common_lsp_on_attach,
flags = common_lsp_flags, flags = common_lsp_flags,
capabilities = capabilities, capabilities = capabilities,
@ -63,7 +66,9 @@ require("lspconfig")["gopls"].setup({
unusedparams = true, unusedparams = true,
shadow = true, shadow = true,
}, },
staticcheck = true,
}, },
}, },
init_options = { usePlaceholders = true }, init_options = { usePlaceholders = true },
}) })

7
lua/plugins/auto-do.lua Normal file
View File

@ -0,0 +1,7 @@
require("auto-save").setup({
trigger_events = { "InsertLeave", "BufLeave", "BufWinLeave" },
})
require("nvim-autopairs").setup({})
require("nvim-ts-autotag").setup({})
require("unimpaired").setup({})
require("luasnip.loaders.from_vscode").lazy_load()

View File

@ -1,3 +0,0 @@
require("auto-save").setup {
trigger_events = {"InsertLeave", "BufLeave", "BufWinLeave"},
}

7
lua/plugins/debug.lua Normal file
View File

@ -0,0 +1,7 @@
require("dapui").setup()
require("nvim-dap-virtual-text").setup()
-- IMPORTANT: make sure to setup neodev BEFORE lspconfig
require("neodev").setup({
-- add any options here, or leave empty to use the default settings
library = { plugins = { "nvim-dap-ui" }, types = true },
})

View File

@ -7,7 +7,15 @@ vim.opt.termguicolors = true
-- OR setup with some options -- OR setup with some options
require("nvim-tree").setup({ require("nvim-tree").setup({
auto_reload_on_write = true,
sort_by = "case_sensitive", sort_by = "case_sensitive",
sync_root_with_cwd = true,
respect_buf_cwd = true,
update_focused_file = {
enable = true,
update_root = true,
},
filters = { custom = { ".git" } },
view = { view = {
width = 30, width = 30,
mappings = { mappings = {
@ -19,9 +27,6 @@ require("nvim-tree").setup({
renderer = { renderer = {
group_empty = true, group_empty = true,
}, },
filters = {
dotfiles = true,
},
}) })
local function open_nvim_tree(data) local function open_nvim_tree(data)

View File

@ -0,0 +1,9 @@
-- 快捷键提示
require("which-key").setup({})
-- 自定义快捷键
require("legendary").setup({
which_key = { auto_register = true },
extensions = {
-- load keymaps and commands from nvim-tree.lua
},
})

View File

@ -1 +0,0 @@
require("numbers").setup({})

View File

@ -9,5 +9,5 @@ require("lsp-colors").setup({
Error = "#db4b4b", Error = "#db4b4b",
Warning = "#e0af68", Warning = "#e0af68",
Information = "#0db9d7", Information = "#0db9d7",
Hint = "#10B981" Hint = "#10B981",
}) })

View File

@ -10,6 +10,11 @@ require("mason").setup({
require("mason-lspconfig").setup({ require("mason-lspconfig").setup({
ensure_installed = { ensure_installed = {
"clangd",
"emmet_ls",
"cmake",
"gradle_ls",
"kotlin_language_server",
"lua_ls", "lua_ls",
"rust_analyzer", "rust_analyzer",
"gopls", "gopls",
@ -17,9 +22,7 @@ require("mason-lspconfig").setup({
"tsserver", "tsserver",
"volar", "volar",
"taplo", "taplo",
"lemminx",
"yamlls", "yamlls",
"sqlls",
"jsonls", "jsonls",
"jdtls", "jdtls",
"bashls", "bashls",

View File

@ -3,41 +3,11 @@ local null_ls = require("null-ls")
null_ls.setup({ null_ls.setup({
sources = { sources = {
null_ls.builtins.formatting.stylua, null_ls.builtins.formatting.stylua,
null_ls.builtins.formatting.buf,
null_ls.builtins.formatting.clang_format,
null_ls.builtins.formatting.dart_format,
null_ls.builtins.formatting.eslint_d,
null_ls.builtins.formatting.fixjson,
null_ls.builtins.formatting.gofmt, null_ls.builtins.formatting.gofmt,
null_ls.builtins.formatting.goimports_reviser, null_ls.builtins.formatting.eslint_d,
null_ls.builtins.formatting.google_java_format, null_ls.builtins.formatting.protolint,
null_ls.builtins.formatting.markdownlint,
null_ls.builtins.formatting.markdown_toc,
null_ls.builtins.formatting.rustfmt,
null_ls.builtins.formatting.shfmt,
null_ls.builtins.formatting.taplo,
null_ls.builtins.formatting.xmllint,
null_ls.builtins.formatting.yamlfmt,
-- 诊断 -- 诊断
null_ls.builtins.diagnostics.buf,
null_ls.builtins.diagnostics.checkmake,
null_ls.builtins.diagnostics.checkstyle,
null_ls.builtins.diagnostics.clang_check,
null_ls.builtins.diagnostics.cppcheck,
null_ls.builtins.diagnostics.eslint_d, null_ls.builtins.diagnostics.eslint_d,
null_ls.builtins.diagnostics.gitlint, null_ls.builtins.diagnostics.protolint,
null_ls.builtins.diagnostics.golangci_lint,
null_ls.builtins.diagnostics.jsonlint,
null_ls.builtins.diagnostics.shellcheck,
null_ls.builtins.diagnostics.yamllint,
-- 动作
null_ls.builtins.code_actions.eslint_d,
null_ls.builtins.code_actions.gitrebase,
null_ls.builtins.code_actions.gitsigns,
null_ls.builtins.code_actions.gomodifytags,
null_ls.builtins.code_actions.shellcheck,
null_ls.builtins.code_actions.xo,
-- 完成
null_ls.builtins.completion.luasnip,
}, },
}) })

12
lua/plugins/peaceful.lua Normal file
View File

@ -0,0 +1,12 @@
-- url罗列
require("urlview").setup({})
-- 行号模式切换
require("numbers").setup({})
-- 终端管理
require("toggleterm").setup({})
-- 错误列表
require("trouble").setup({})
-- ui配置
require("dressing").setup({})
-- lsp状态
require("fidget").setup({})

View File

@ -1 +1,47 @@
require("telescope").setup({}) -- 模糊搜索
local telescope = require("telescope")
local actions = require("telescope.actions")
local themes = require("telescope.themes")
telescope.setup({
defaults = themes.get_dropdown({
path_display = { "absolute" },
file_ignore_patterns = { ".git/", "node_modules" },
mappings = {
i = {
["<Down>"] = actions.cycle_history_next,
["<Up>"] = actions.cycle_history_prev,
["<C-n>"] = actions.cycle_history_next,
["<C-p>"] = actions.cycle_history_prev,
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
},
},
}),
extensions = {
fzf = {
fuzzy = true, -- false will only do exact matching
override_generic_sorter = true, -- override the generic sorter
override_file_sorter = true, -- override the file sorter
case_mode = "smart_case", -- or "ignore_case" or "respect_case"
-- the default case_mode is "smart_case"
},
["ui-select"] = {
require("telescope.themes").get_dropdown({
-- even more opts
}),
},
},
pickers = {
find_files = {
hidden = true,
no_ignore = true,
no_ignore_parent = true,
},
buffers = {
sort_mru = true,
},
},
})
telescope.load_extension("ui-select")
telescope.load_extension("fzf")

View File

@ -1 +0,0 @@
require("toggleterm").setup({})

View File

@ -28,6 +28,7 @@ require("nvim-treesitter.configs").setup({
"vim", "vim",
"vue", "vue",
"yaml", "yaml",
"proto",
}, },
-- Install parsers synchronously (only applied to `ensure_installed`) -- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = true, sync_install = true,

View File

@ -1 +0,0 @@
require("trouble").setup({})

52
lua/plugins/wilder.lua Normal file
View File

@ -0,0 +1,52 @@
local G = require("core.g")
local wilder = require("wilder")
wilder.setup({
modes = { ":", "/", "?" },
next_key = 0,
previous_key = 0,
reject_key = 0,
accept_key = 0,
})
wilder.set_option("pipeline", {
wilder.branch(
{
wilder.check(function(_, x)
return G.fn.empty(x)
end),
wilder.history(15),
},
wilder.cmdline_pipeline({
fuzzy = 1,
fuzzy_filter = wilder.vim_fuzzy_filter(),
}),
wilder.search_pipeline()
),
wilder.debounce(10),
})
wilder.set_option(
"renderer",
wilder.popupmenu_renderer(wilder.popupmenu_border_theme({
highlights = {
accent = "WilderAccent",
selected_accent = "WilderSelectedAccent",
},
highlighter = wilder.basic_highlighter(),
left = { " ", wilder.popupmenu_devicons() },
right = { " ", wilder.popupmenu_scrollbar() },
border = "rounded",
max_height = 17, -- 最大高度限制 因为要计算上下 所以17支持最多15个选项
}))
)
G.cmd("silent! UpdateRemotePlugins")
G.hi({
WilderAccent = { fg = 12 },
WilderSelectedAccent = { fg = 12, bg = 239 },
})
G.map({
{ "c", "<tab>", [[wilder#in_context() ? wilder#next() : '<tab>']], { noremap = true, expr = true } },
{ "c", "<Down>", [[wilder#in_context() ? wilder#next() : '<down>']], { noremap = true, expr = true } },
{ "c", "<up>", [[wilder#in_context() ? wilder#previous() : '<up>']], { noremap = true, expr = true } },
{ "c", "0", "0", {} }, -- 不清楚原因导致0无法使用 强制覆盖
})

View File

@ -12,24 +12,21 @@ end
local packer_bootstrap = ensure_packer() local packer_bootstrap = ensure_packer()
return require("packer").startup(function(use) return require("packer").startup(function(use)
use({
"https://github.com/lewis6991/impatient.nvim",
config = function()
require("impatient")
end,
})
use({ "wbthomason/packer.nvim" }) use({ "wbthomason/packer.nvim" })
use({ "folke/tokyonight.nvim" }) use({ "folke/tokyonight.nvim" })
use({ "stevearc/dressing.nvim" })
use({ "catppuccin/nvim", as = "catppuccin" }) use({ "catppuccin/nvim", as = "catppuccin" })
-- bufferline -- bufferline
use({ "akinsho/bufferline.nvim", tag = "v3.*", requires = "nvim-tree/nvim-web-devicons" }) use({ "akinsho/bufferline.nvim", tag = "v3.*", requires = "nvim-tree/nvim-web-devicons" })
-- 行号模式自动切换 -- 行号模式自动切换
use({ "nkakouros-original/numbers.nvim" }) use({ "nkakouros-original/numbers.nvim" })
-- 模糊搜索
use({
"nvim-telescope/telescope.nvim",
tag = "0.1.1",
requires = {
{ "nvim-lua/plenary.nvim" },
{ "nvim-treesitter/nvim-treesitter" },
{ "kdheepak/lazygit.nvim" },
},
})
-- 文件树 -- 文件树
use({ use({
"nvim-tree/nvim-tree.lua", "nvim-tree/nvim-tree.lua",
@ -56,7 +53,6 @@ return require("packer").startup(function(use)
}) })
-- 通知 -- 通知
use({ "rcarriga/nvim-notify" }) use({ "rcarriga/nvim-notify" })
-- 缩进线 -- 缩进线
use({ "lukas-reineke/indent-blankline.nvim" }) use({ "lukas-reineke/indent-blankline.nvim" })
-- 注释管理 -- 注释管理
@ -72,15 +68,16 @@ return require("packer").startup(function(use)
"nvim-lualine/lualine.nvim", "nvim-lualine/lualine.nvim",
requires = { "kyazdani42/nvim-web-devicons", opt = true }, requires = { "kyazdani42/nvim-web-devicons", opt = true },
}) })
use({ -- 自动修复部分按键
"windwp/nvim-autopairs", use({ "tummetott/unimpaired.nvim" })
config = function() -- 标签补全
require("nvim-autopairs").setup({}) use({ "windwp/nvim-autopairs" })
end, use({ "windwp/nvim-ts-autotag" })
}) -- 自动保存
use({ use({
"Pocco81/auto-save.nvim", "Pocco81/auto-save.nvim",
}) })
-- lspsaga
use({ use({
"glepnir/lspsaga.nvim", "glepnir/lspsaga.nvim",
branch = "main", branch = "main",
@ -99,6 +96,7 @@ return require("packer").startup(function(use)
-- 上下高亮跳动 -- 上下高亮跳动
use({ "danilamihailov/beacon.nvim" }) use({ "danilamihailov/beacon.nvim" })
-- markdown lsp -- markdown lsp
use({ "mzlogin/vim-markdown-toc", ft = "markdown" })
use({ use({
"iamcco/markdown-preview.nvim", "iamcco/markdown-preview.nvim",
run = "cd app && npm install", run = "cd app && npm install",
@ -112,8 +110,6 @@ return require("packer").startup(function(use)
use({ "ggandor/flit.nvim" }) use({ "ggandor/flit.nvim" })
-- 项目管理 -- 项目管理
use({ "ahmedkhalf/project.nvim" }) use({ "ahmedkhalf/project.nvim" })
-- 优化启动速度
use({ "lewis6991/impatient.nvim" })
-- TODO 管理 -- TODO 管理
use({ use({
"folke/todo-comments.nvim", "folke/todo-comments.nvim",
@ -124,6 +120,7 @@ return require("packer").startup(function(use)
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
run = ":TSUpdate", run = ":TSUpdate",
}) })
use({ "nvim-treesitter/playground", after = "nvim-treesitter" })
-- 自动完成相关 -- 自动完成相关
use({ use({
"hrsh7th/nvim-cmp", "hrsh7th/nvim-cmp",
@ -141,6 +138,16 @@ return require("packer").startup(function(use)
"hrsh7th/cmp-emoji", "hrsh7th/cmp-emoji",
}, },
}) })
use({
"L3MON4D3/LuaSnip",
requires = {
"rafamadriz/friendly-snippets",
},
-- follow latest release.
tag = "v<CurrentMajor>.*",
-- install jsregexp (optional!:).
run = "make install_jsregexp",
})
-- golang ide -- golang ide
use({ use({
"ray-x/go.nvim", "ray-x/go.nvim",
@ -148,7 +155,67 @@ return require("packer").startup(function(use)
}) })
-- 高亮当前关键词 -- 高亮当前关键词
use({ "RRethy/vim-illuminate" }) 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",
config = function()
require("fidget").setup({
text = {
spinner = "dots",
},
})
end,
})
-- 模糊搜索
use({
"nvim-telescope/telescope.nvim",
tag = "0.1.1",
requires = {
{ "nvim-lua/plenary.nvim" },
{ "nvim-treesitter/nvim-treesitter" },
{ "kdheepak/lazygit.nvim" },
},
})
use({
"https://github.com/nvim-telescope/telescope-fzf-native.nvim",
run = "make",
})
use({ "nvim-telescope/telescope-ui-select.nvim" })
-- 自定义命令
use({
"mrjones2014/legendary.nvim",
requires = "kkharji/sqlite.lua",
})
-- protobuf 识别
use("wfxr/protobuf.vim")
-- 自动保存 -- 自动保存
if packer_bootstrap then if packer_bootstrap then
require("packer").sync() require("packer").sync()