124 lines
4.6 KiB
Lua
124 lines
4.6 KiB
Lua
-- require 'lspconfig'.clangd.setup{}
|
|
vim.g.zig_fmt_autosave = 0
|
|
vim.cmd("set number")
|
|
vim.cmd("set tabstop=4")
|
|
vim.cmd("set softtabstop=4")
|
|
vim.cmd("set expandtab")
|
|
vim.cmd("set shiftwidth=4")
|
|
vim.cmd("set ttyfast")
|
|
vim.cmd("let mapleader=','")
|
|
vim.keymap.set('t', '<esc>', [[<C-\><C-n>]])
|
|
|
|
local vim = vim
|
|
local Plug = vim.fn['plug#']
|
|
vim.call('plug#begin')
|
|
Plug('nvim-lua/plenary.nvim')
|
|
Plug('nvim-telescope/telescope.nvim')
|
|
Plug('neoclide/coc.nvim',{branch = 'release'})
|
|
Plug('https://github.com/lambdalisue/vim-suda')
|
|
Plug('neomake/neomake')
|
|
Plug('neovim/nvim-lspconfig')
|
|
Plug('puremourning/vimspector')
|
|
vim.call('plug#end')
|
|
|
|
local builtin = require('telescope.builtin')
|
|
vim.keymap.set('n','<leader>ff',builtin.find_files, { desc = "Telescope find files" })
|
|
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
|
|
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
|
|
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
|
|
vim.keymap.set('n', '<leader>fr', builtin.lsp_references, { desc = 'Telescope list reference under cursor' })
|
|
vim.keymap.set('n', '<leader>fs', builtin.lsp_document_symbols, { desc = 'Telescope list all document symbols' })
|
|
vim.keymap.set('n', '<leader>fd', builtin.lsp_definitions, { desc = 'Telescope defintions under cursor' })
|
|
vim.keymap.set('n', '<leader>ft', builtin.lsp_type_definitions, { desc = 'Telescope definition of type under cursor' })
|
|
|
|
vim.keymap.set('n', '<leader>ss', ':mksession! ~/.config/nvim/mysession.vim<CR>',{})
|
|
vim.keymap.set('n', '<leader>sl', ':source ~/.config/nvim/mysession.vim<CR>',{})
|
|
|
|
vim.keymap.set('n', '<F1>', ':CocCommand java.debug.vimspector.start<CR>',{})
|
|
vim.keymap.set('n', '<F2>', ':call vimspector#ToggleBreakpoint()<CR>',{})
|
|
vim.keymap.set('n','<leader>di', '<Plug>VimspectorBalloonEval')
|
|
vim.keymap.set('v','<leader>di', '<Plug>VimspectorBalloonEval')
|
|
|
|
|
|
|
|
local select_one_or_multi = function(prompt_bufnr)
|
|
local picker = require('telescope.actions.state').get_current_picker(prompt_bufnr)
|
|
local multi = picker:get_multi_selection()
|
|
if not vim.tbl_isempty(multi) then
|
|
require('telescope.actions').close(prompt_bufnr)
|
|
for _, j in pairs(multi) do
|
|
if j.path ~= nil then
|
|
vim.cmd(string.format('%s %s', 'edit', j.path))
|
|
end
|
|
end
|
|
else
|
|
require('telescope.actions').select_default(prompt_bufnr)
|
|
end
|
|
end
|
|
|
|
local telescope = require('telescope')
|
|
telescope.setup {
|
|
pickers = {
|
|
find_files = {
|
|
hidden = true
|
|
}
|
|
},
|
|
defaults = {
|
|
file_ignore_patterns = {
|
|
"node_modules","%.class","bin/main/","bin/test/","bin/generated-sources/",
|
|
},
|
|
mappings= {
|
|
i = {
|
|
['<CR>'] = select_one_or_multi,
|
|
}
|
|
},
|
|
}
|
|
}
|
|
|
|
vim.cmd("autocmd FileType python map <buffer> <F9> :w<CR>:exec '!python' shellescape(@%, 1)<CR>")
|
|
vim.cmd("colorscheme desert")
|
|
|
|
-- config for coc autocompletion
|
|
vim.api.nvim_set_keymap('n','gd',"<Plug>(coc-definition)",{silent=true})
|
|
vim.api.nvim_set_keymap('n','gy',"<Plug>(coc-type-definition)",{silent=true})
|
|
vim.api.nvim_set_keymap('n','gr',"<Plug>(coc-reference)",{silent=true})
|
|
vim.api.nvim_set_keymap('n','[g',"<Plug>(coc-diagnostic-prev)",{silent=true})
|
|
vim.api.nvim_set_keymap('n',']g',"<Plug>(coc-diagnostic-next)",{silent=true})
|
|
|
|
vim.api.nvim_set_keymap('n','<space>s',":<C-u>CocList -I symbols<cr>",{noremap=true,silent=true})
|
|
vim.api.nvim_set_keymap('n','<space>d',":<C-u>CocList diagnostics<cr>",{noremap=true,silent=true})
|
|
|
|
vim.api.nvim_set_keymap('n','<leader>do',"<Plug>(coc-codeaction)",{silent=true})
|
|
vim.api.nvim_set_keymap('n','<leader>rn',"<Plug>(coc-rename)",{silent=true})
|
|
|
|
vim.keymap.set('n','<leader>sh',function()
|
|
vim.fn.CocAction("doHover")
|
|
end, { silent = true, noremap = true, desc = "Show hover info (Coc)" })
|
|
-- equivalent to let
|
|
vim.g.coc_global_extensions = {"coc-tsserver","coc-json","coc-css","coc-eslint","coc-prettier","coc-java","coc-java-debug","coc-html","coc-htmldjango","coc-pyright","coc-xml"}
|
|
vim.api.nvim_set_keymap('i','<cr>',"coc#pum#visible() ? coc#pum#confirm() : \"\\<cr>\"",{expr=true,silent=true})
|
|
-- yamllintering
|
|
-- Autoload Neomake on YAML files
|
|
vim.api.nvim_create_autocmd("FileType", {
|
|
pattern = "yaml",
|
|
callback = function()
|
|
vim.cmd("Neomake")
|
|
end,
|
|
})
|
|
|
|
vim.api.nvim_create_autocmd("BufWritePost", {
|
|
pattern = { "*.yml", "*.yaml" },
|
|
callback = function()
|
|
vim.cmd("Neomake")
|
|
end,
|
|
})
|
|
vim.api.nvim_create_autocmd("BufWritePre", {
|
|
pattern = "*.java",
|
|
callback = function()
|
|
vim.cmd("call CocAction('format')")
|
|
end,
|
|
})
|
|
|
|
vim.lsp.enable('clangd')
|
|
-- let g:vimspector_enable_mappings = 'VISUAL_STUDIO'
|