Skip to content

Commit 9ff9e1c

Browse files
committed
neovim
1 parent e4f8602 commit 9ff9e1c

3 files changed

Lines changed: 94 additions & 26 deletions

File tree

home/.config/nvim/init.lua

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ require('lazy').setup({
6767
'rluba/jai.vim',
6868
'kdheepak/lazygit.nvim',
6969
'ggandor/lightspeed.nvim',
70+
'nvimdev/lspsaga.nvim',
7071
'williamboman/mason.nvim',
7172
'williamboman/mason-lspconfig.nvim',
7273
'NeogitOrg/neogit',
@@ -200,7 +201,7 @@ nmap("<leader>6", function() ui.nav_file(6) end, 'Harpoon 6')
200201
-- <leader>l (lsp)
201202
nmap('<leader>le', '<cmd>CocList diagnostics<cr>', 'LSP diagnostics')
202203
nmapp('<leader>lf', '<Plug>(coc-fix-current)', 'Fix')
203-
nmap('<leader>li', '<cmd>CocList outline<cr>', 'Outline')
204+
-- nmap('<leader>li', '<cmd>CocList outline<cr>', 'Outline')
204205
nmapp('<leader>lr', '<Plug>(coc-rename)', 'Rename')
205206
-- <leader>p (project)
206207
nmap('<leader>pf', '<cmd>lua require("telescope.builtin").find_files({search_dirs={MyProject()}})<cr>', {silent=true, desc='Find file in project'})
@@ -247,7 +248,7 @@ nmapp('<M-,>', '<Plug>(coc-references)')
247248
nmap('H', '<cmd>call MarkPop(-1)<cr>')
248249
nmap('L', '<cmd>call MarkPop(1)<cr>')
249250
nmap('K', '<cmd>silent call CocAction("doHover")<cr>')
250-
nmap('U', '<cmd>call MyHopThenDefinition()<cr>')
251+
nmap('U', '<cmd>lua MyHopThenDefinition()<cr>')
251252
nmap('zx', '<cmd>bdelete<cr>')
252253
nmap('[l', vim.cmd.lfirst)
253254
nmap('[l', vim.cmd.lprev)
@@ -293,6 +294,12 @@ local autocmds = {
293294
}
294295
nvim_create_augroups(autocmds)
295296

297+
function MyHopThenDefinition()
298+
require'hop'.hint_words()
299+
vim.api.nvim_call_function('MarkPush', {})
300+
require'telescope.builtin'.lsp_definitions()
301+
end
302+
296303
function MyProject()
297304
return vim.fn.systemlist("git rev-parse --show-toplevel")[1]
298305
end
@@ -320,12 +327,6 @@ fu! MarkPop(d)
320327
call cursor(mark.line, mark.col)
321328
endf
322329
323-
fu! MyHopThenDefinition()
324-
lua require'hop'.hint_words()
325-
call MarkPush()
326-
call CocAction("jumpDefinition")
327-
endf
328-
329330
fu! My_coc_hover()
330331
if (coc#float#has_float() == 0 && CocHasProvider('hover') == 1)
331332
silent call CocActionAsync('doHover')

home/.config/nvim/lua/plugins.lua

Lines changed: 84 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -99,30 +99,55 @@ local on_attach = function(client, bufnr)
9999
nmap(',m', '<cmd>lua require("ccls.protocol").request("textDocument/references",{role=64})<cr>') -- macro
100100
nmap(',r', '<cmd>lua require("ccls.protocol").request("textDocument/references",{role=8})<cr>') -- read
101101
nmap(',w', '<cmd>lua require("ccls.protocol").request("textDocument/references",{role=16})<cr>') -- write
102-
nmap('<M-,>', '<cmd>lua vim.lsp.buf.references()<CR>', 'References')
103-
nmap('<M-j>', '<cmd>lua vim.lsp.buf.definition()<CR>', 'Definitions')
104-
nmap('<space>=', '<cmd>lua vim.lsp.buf.formatting()<CR>')
105-
nmap('<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>')
106-
nmap('<space>lc', '<cmd>lua vim.lsp.buf.code_action()<CR>')
107-
nmap('<space>lr', '<cmd>lua vim.lsp.buf.rename()<CR>', 'Rename')
108-
nmap('<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>')
109-
nmap('<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>')
110-
nmap('<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>')
111-
nmap('K', '<cmd>lua vim.lsp.buf.hover()<CR>', 'Hover')
112-
nmap('[e', '<cmd>lua vim.diagnostic.goto_prev()<CR>')
113-
nmap(']e', '<cmd>lua vim.diagnostic.goto_next()<CR>')
114-
nmap('gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', 'Declarations')
102+
-- nmap('<M-,>', '<cmd>lua vim.lsp.buf.references()<CR>', 'References')
103+
nmap('<M-,>', '<cmd>Telescope lsp_references<CR>', 'References')
104+
-- nmap('<M-j>', '<cmd>lua vim.lsp.buf.definition()<cr>', 'Definitions')
105+
nmap('<M-j>', '<cmd>Telescope lsp_definitions<cr>', 'Definitions')
106+
nmap('<space>=', '<cmd>lua vim.lsp.buf.formatting()<cr>')
107+
nmap('<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<cr>')
108+
nmap('<space>lc', '<cmd>lua vim.lsp.buf.code_action()<cr>')
109+
nmap('<space>li', '<cmd>Inspect<cr>')
110+
nmap('<space>lr', '<cmd>lua vim.lsp.buf.rename()<cr>', 'Rename')
111+
nmap('<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<cr>')
112+
nmap('<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<cr>')
113+
nmap('<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<cr>')
114+
nmap('K', '<cmd>lua vim.lsp.buf.hover()<cr>', 'Hover')
115+
nmap('[e', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
116+
nmap(']e', '<cmd>lua vim.diagnostic.goto_next()<cr>')
117+
nmap('gD', '<cmd>lua vim.lsp.buf.declaration()<cr>', 'Declarations')
118+
nmap('ga', '<cmd>Telescope lsp_dynamic_workspace_symbols<cr>', 'Workspace symbols')
115119
nmap('xB', '<cmd>CclsBaseHierarchy<cr>')
116120
nmap('xC', '<cmd>CclsOutgoingCalls<cr>', 'callee')
117121
nmap('xD', '<cmd>CclsDerivedHierarchy<cr>')
118122
nmap('xM', '<cmd>CclsMemberHierarchy<cr>', 'member')
119123
nmap('xb', '<cmd>CclsBase<cr>')
120124
nmap('xc', '<cmd>CclsIncomingCalls<cr>', 'caller')
121125
nmap('xd', '<cmd>CclsDerived<cr>')
122-
nmap('xi', '<cmd>lua vim.lsp.buf.implementation()<CR>', 'Implementation')
126+
nmap('xi', '<cmd>lua vim.lsp.buf.implementation()<cr>', 'Implementation')
123127
nmap('xm', '<cmd>CclsMember<cr>', 'member')
124-
nmap('xt', '<cmd>lua vim.lsp.buf.type_definition()<CR>', 'Type definition')
128+
nmap('xt', '<cmd>lua vim.lsp.buf.type_definition()<cr>', 'Type definition')
125129
nmap('xv', '<cmd>CclsVars<cr>', 'vars')
130+
131+
if client.supports_method 'textDocument/documentHighlight' then
132+
vim.api.nvim_create_augroup('lsp_document_highlight', {clear = true})
133+
vim.api.nvim_clear_autocmds {buffer = bufnr, group = 'lsp_document_highlight'}
134+
vim.api.nvim_create_autocmd('CursorHold', {
135+
callback = vim.lsp.buf.document_highlight,
136+
buffer = bufnr,
137+
group = 'lsp_document_highlight',
138+
desc = 'Document Highlight',
139+
})
140+
vim.api.nvim_create_autocmd('CursorMoved', {
141+
callback = vim.lsp.buf.clear_references,
142+
buffer = bufnr,
143+
group = 'lsp_document_highlight',
144+
desc = 'Clear All the References',
145+
})
146+
end
147+
148+
if client.server_capabilities.semanticTokensProvider then
149+
vim.treesitter.stop(bufnr)
150+
end
126151
end
127152
local servers = {'ccls', 'lua_ls', 'nimls', 'pyright', 'rust_analyzer', 'ts_ls'}
128153
for _, lsp in ipairs(servers) do
@@ -139,6 +164,9 @@ for _, lsp in ipairs(servers) do
139164
threads = 0,
140165
initialBlacklist = {"/(test|unittests)/"},
141166
};
167+
highlight = {
168+
rainbow = 10,
169+
};
142170
}
143171
})
144172
elseif lsp == 'lua_ls' then
@@ -220,11 +248,50 @@ cmp.setup {
220248
completion = {completeopt = 'menu,menuone,noinsert'}
221249
}
222250

223-
vim.api.nvim_exec('hi default link CocHoverRange NONE', true)
224-
225251
require('mason').setup()
226252
require('mason-lspconfig').setup()
227253

254+
local func_colors = {
255+
'#e5b124', '#927754', '#eb992c', '#e2bf8f', '#d67c17',
256+
'#88651e', '#e4b953', '#a36526', '#b28927', '#d69855',
257+
}
258+
local type_colors = {
259+
'#e1afc3', '#d533bb', '#9b677f', '#e350b6', '#a04360',
260+
'#dd82bc', '#de3864', '#ad3f87', '#dd7a90', '#e0438a',
261+
}
262+
local param_colors = {
263+
'#e5b124', '#927754', '#eb992c', '#e2bf8f', '#d67c17',
264+
'#88651e', '#e4b953', '#a36526', '#b28927', '#d69855',
265+
}
266+
local var_colors = {
267+
'#429921', '#58c1a4', '#5ec648', '#36815b', '#83c65d',
268+
'#419b2f', '#43cc71', '#7eb769', '#58bf89', '#3e9f4a',
269+
}
270+
local all_colors = {
271+
class = type_colors,
272+
enum = type_colors,
273+
enumMember = var_colors,
274+
field = var_colors,
275+
['function'] = func_colors,
276+
method = func_colors,
277+
parameter = param_colors,
278+
struct = type_colors,
279+
typeAlias = type_colors,
280+
typeParameter = type_colors,
281+
variable = var_colors
282+
}
283+
for type, colors in pairs(all_colors) do
284+
for i = 1,#colors do
285+
vim.api.nvim_set_hl(0, string.format('@lsp.typemod.%s.id%s.cpp', type, i-1), {fg=colors[i]})
286+
end
287+
end
288+
289+
vim.cmd([[
290+
hi @lsp.mod.classScope.cpp gui=italic
291+
hi @lsp.mod.static.cpp gui=bold
292+
hi @lsp.typemod.variable.namespaceScope.cpp gui=bold,underline
293+
]])
294+
228295
require('nvim_comment').setup()
229296

230297
-- Default map: <leader>h ]c [c

home/.config/xmonad/xmonad.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,7 @@ myProjects =
707707
[ Project wsWeb "~" . Just $ spawn "chromium"
708708
, Project wsGen "~" . Just $ spawn "alacritty -t zsh -e zsh -ic \"tmux new -As default\""
709709
, Project wsIM "~" . Just $ spawn (alacritty "irc")
710-
, Project wsEmacs "~" . Just $ spawn "LC_CTYPE=zh_CN.UTF-8 emacs"
710+
, Project wsEmacs "~" . Just $ spawn "neovide"
711711

712712
, Project wsTmp "/tmp" . Just $ spawn "true"
713713
, Project wsMail "/tmp" . Just $ spawn (alacritty "neomutt")

0 commit comments

Comments
 (0)