Files
scripts/nvim-work/init.lua
jonathan.wyss 0ed40ecc34 dunno
2025-10-29 14:29:38 +01:00

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'