Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
15d27dc96a |
@ -1,9 +0,0 @@
|
|||||||
for _, method in ipairs({ 'textDocument/diagnostic', 'workspace/diagnostic' }) do
|
|
||||||
local default_diagnostic_handler = vim.lsp.handlers[method]
|
|
||||||
vim.lsp.handlers[method] = function(err, result, context, config)
|
|
||||||
if err ~= nil and err.code == -32802 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
return default_diagnostic_handler(err, result, context, config)
|
|
||||||
end
|
|
||||||
end
|
|
10
init.lua
10
init.lua
@ -13,6 +13,7 @@ end
|
|||||||
vim.opt.rtp:prepend(lazypath)
|
vim.opt.rtp:prepend(lazypath)
|
||||||
vim.g.mapleader = " "
|
vim.g.mapleader = " "
|
||||||
require("lazy").setup("plugins")
|
require("lazy").setup("plugins")
|
||||||
|
require("maps").init()
|
||||||
require("commands")
|
require("commands")
|
||||||
|
|
||||||
vim.opt.backup = false
|
vim.opt.backup = false
|
||||||
@ -28,7 +29,7 @@ vim.opt.incsearch = true
|
|||||||
vim.opt.scrolloff = 12
|
vim.opt.scrolloff = 12
|
||||||
vim.opt.sidescrolloff = 8
|
vim.opt.sidescrolloff = 8
|
||||||
vim.opt.mouse = 'a'
|
vim.opt.mouse = 'a'
|
||||||
vim.opt.autochdir = false
|
vim.opt.autochdir = true
|
||||||
vim.opt.clipboard = 'unnamed,unnamedplus'
|
vim.opt.clipboard = 'unnamed,unnamedplus'
|
||||||
vim.opt.number = true
|
vim.opt.number = true
|
||||||
vim.opt.wrap = false
|
vim.opt.wrap = false
|
||||||
@ -42,10 +43,3 @@ vim.opt.expandtab = false
|
|||||||
vim.opt.autoindent = true
|
vim.opt.autoindent = true
|
||||||
vim.opt.smartindent = true
|
vim.opt.smartindent = true
|
||||||
vim.opt.completeopt = { "menu", "menuone", "noselect" }
|
vim.opt.completeopt = { "menu", "menuone", "noselect" }
|
||||||
--vim.opt.foldmethod = "expr"
|
|
||||||
--vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
|
||||||
--vim.opt.foldtext = ""
|
|
||||||
--vim.opt.foldlevelstart = 1
|
|
||||||
--vim.opt.foldnestmax = 2
|
|
||||||
|
|
||||||
-- TODO replace config with opts in every plugin
|
|
||||||
|
@ -1,39 +1,37 @@
|
|||||||
{
|
{
|
||||||
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
||||||
"bufferline.nvim": { "branch": "main", "commit": "5726c4e291224181903e960119a11e20ac677a0a" },
|
"bufferline.nvim": { "branch": "main", "commit": "5c528bee3dd797d5bd6bae5f229411939b25b203" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||||
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" },
|
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" },
|
||||||
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||||
|
"dashboard-nvim": { "branch": "master", "commit": "d2c5a4d1341f5ca1ed2ecb4ecfcff2bc8ea18b14" },
|
||||||
"fidget.nvim": { "branch": "main", "commit": "e2a175c2abe2d4f65357da1c98c59a5cfb2b543f" },
|
"fidget.nvim": { "branch": "main", "commit": "e2a175c2abe2d4f65357da1c98c59a5cfb2b543f" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
|
"gitsigns.nvim": { "branch": "main", "commit": "7c27a30450130cd59c4994a6755e3c5d74d83e76" },
|
||||||
"kanagawa.nvim": { "branch": "master", "commit": "ad3dddecd606746374ba4807324a08331dfca23c" },
|
"kanagawa.nvim": { "branch": "master", "commit": "f491b0fe68fffbece7030181073dfe51f45cda81" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "014d1d6d78df4e58f962158e6e00261d8632612c" },
|
"lazy.nvim": { "branch": "main", "commit": "cf8ecc2c5e4332760431a33534240b0cbc6680ab" },
|
||||||
"lspkind-nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" },
|
"lspkind-nvim": { "branch": "master", "commit": "a700f1436d4a938b1a1a93c9962dc796afbaef4d" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
|
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
|
||||||
"lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" },
|
"lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "8e46de9241d3997927af12196bd8faa0ed08c29a" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "4d0e5b49363cac187326998b96aa6a2884e0e89b" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" },
|
"nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "ca4d3330d386e76967e53b85953c170658255ecb" },
|
"nvim-cmp": { "branch": "main", "commit": "29fb4854573355792df9e156cb779f0d31308796" },
|
||||||
"nvim-dap": { "branch": "master", "commit": "580d6e526358afd0e4bba053e68fd59cf581a161" },
|
"nvim-dap": { "branch": "master", "commit": "7ff6936010b7222fea2caea0f67ed77f1b7c60dd" },
|
||||||
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" },
|
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" },
|
||||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" },
|
"nvim-dap-virtual-text": { "branch": "master", "commit": "52638640ae309cacdaff785fdbb854437bd1ee5c" },
|
||||||
"nvim-jdtls": { "branch": "master", "commit": "ece818f909c6414cbad4e1fb240d87e003e10fda" },
|
"nvim-lspconfig": { "branch": "master", "commit": "54617a18f4cf46f0c2f6d024fa6feb7515fe036d" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "47f236c058f0511702286a21ba53bbf42abbd8a8" },
|
|
||||||
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
|
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "3b8dee4293567b0b9a87360842af14669f60dd13" },
|
"nvim-tree.lua": { "branch": "master", "commit": "120ba58254835d412bbc91cffe847e9be835fadd" },
|
||||||
"nvim-treesitter-context": { "branch": "master", "commit": "3288c5af7d3820d716272f1d05ab661cc540a5d6" },
|
"nvim-treesitter": { "branch": "master", "commit": "f9e9370a6f710148f4a3f3f4f23d5349c85c2888" },
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" },
|
"nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "87c34abe5d1dc7c1c0a95aaaf888059c614c68ac" },
|
"playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
|
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
|
||||||
"rustaceanvim": { "branch": "master", "commit": "047f9c9d8cd2861745eb9de6c1570ee0875aa795" },
|
"rustaceanvim": { "branch": "master", "commit": "bc8c4b8f7606d5b7c067cd8369e25c1a7ff77bd0" },
|
||||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
|
||||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||||
"trouble.nvim": { "branch": "main", "commit": "46cf952fc115f4c2b98d4e208ed1e2dce08c9bf6" },
|
"trouble.nvim": { "branch": "main", "commit": "2f3b537f2207ce32f4459f9d56746ee013b5e01b" },
|
||||||
"vimwiki": { "branch": "dev", "commit": "72792615e739d0eb54a9c8f7e0a46a6e2407c9e8" },
|
"vimwiki": { "branch": "dev", "commit": "72792615e739d0eb54a9c8f7e0a46a6e2407c9e8" }
|
||||||
"which-key.nvim": { "branch": "main", "commit": "9b365a6428a9633e3eeb34dbef1b791511c54f70" }
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
-- commands.lua
|
-- commands.lua
|
||||||
|
|
||||||
|
vim.cmd 'autocmd! User GoyoEnter Limelight'
|
||||||
|
vim.cmd 'autocmd! User GoyoLeave Limelight!'
|
||||||
|
|
||||||
vim.cmd 'autocmd BufRead,BufNewFile *.wiki,*.md,*.tex set wrap'
|
vim.cmd 'autocmd BufRead,BufNewFile *.wiki,*.md,*.tex set wrap'
|
||||||
|
|
||||||
vim.cmd 'au BufRead,BufNewFile *.kdl set filetype=kdl'
|
vim.cmd 'au BufRead,BufNewFile *.kdl set filetype=kdl'
|
||||||
@ -7,31 +10,3 @@ vim.cmd 'au BufRead,BufNewFile *.kdl set filetype=kdl'
|
|||||||
vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]]
|
vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]]
|
||||||
|
|
||||||
vim.cmd 'command W :execute \':silent w !sudo tee % > /dev/null\' | :edit!'
|
vim.cmd 'command W :execute \':silent w !sudo tee % > /dev/null\' | :edit!'
|
||||||
|
|
||||||
-- Array of file names indicating root directory. Modify to your liking.
|
|
||||||
local root_names = { '.git', 'Makefile' }
|
|
||||||
|
|
||||||
-- Cache to use for speed up (at cost of possibly outdated results)
|
|
||||||
local root_cache = {}
|
|
||||||
|
|
||||||
local set_root = function()
|
|
||||||
-- Get directory path to start search from
|
|
||||||
local path = vim.api.nvim_buf_get_name(0)
|
|
||||||
if path == '' then return end
|
|
||||||
path = vim.fs.dirname(path)
|
|
||||||
|
|
||||||
-- Try cache and resort to searching upward for root directory
|
|
||||||
local root = root_cache[path]
|
|
||||||
if root == nil then
|
|
||||||
local root_file = vim.fs.find(root_names, { path = path, upward = true })[1]
|
|
||||||
if root_file == nil then return end
|
|
||||||
root = vim.fs.dirname(root_file)
|
|
||||||
root_cache[path] = root
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Set current directory
|
|
||||||
vim.fn.chdir(root)
|
|
||||||
end
|
|
||||||
|
|
||||||
local root_augroup = vim.api.nvim_create_augroup('MyAutoRoot', {})
|
|
||||||
vim.api.nvim_create_autocmd('BufEnter', { group = root_augroup, callback = set_root })
|
|
||||||
|
59
lua/maps.lua
Normal file
59
lua/maps.lua
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
-- maps.lua
|
||||||
|
|
||||||
|
local maps = {}
|
||||||
|
|
||||||
|
local function map(mode, lhs, rhs, opts)
|
||||||
|
local options = { noremap = true }
|
||||||
|
if opts then options = vim.tbl_extend('force', options, opts) end
|
||||||
|
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
||||||
|
end
|
||||||
|
|
||||||
|
function maps.toggleGoyo()
|
||||||
|
map('n', '<C-g>', ':Goyo<Enter>', { noremap = false })
|
||||||
|
end
|
||||||
|
|
||||||
|
function maps.term()
|
||||||
|
-- Open and move to resized terminal
|
||||||
|
map('n', '<leader>t', '<C-w>s<C-w>j :terminal<CR>:res 5<CR>i', { noremap = false })
|
||||||
|
-- Enter normal mode in terminal
|
||||||
|
map('t', 'ß<C-N>', '<C-\\><C-N>')
|
||||||
|
end
|
||||||
|
|
||||||
|
function maps.telescope()
|
||||||
|
map('n', '<Leader>ff', '<cmd>lua require(\'telescope.builtin\').git_files()<CR>')
|
||||||
|
map('n', '<Leader>fg', '<cmd>lua require(\'telescope.builtin\').live_grep()<CR>')
|
||||||
|
map('n', '<Leader>fb', '<cmd>lua require(\'telescope.builtin\').buffers()<CR>')
|
||||||
|
map('n', '<Leader>fh', '<cmd>lua require(\'telescope.builtin\').help_tags()<CR>')
|
||||||
|
end
|
||||||
|
|
||||||
|
function maps.fixIndent()
|
||||||
|
map('v', '<', '<gv')
|
||||||
|
map('v', '>', '>gv')
|
||||||
|
end
|
||||||
|
|
||||||
|
function maps.moveByRow()
|
||||||
|
-- When text is wrapped, move by terminal rows, not lines, unles a count is provided
|
||||||
|
map('n', 'j', 'v:count == 0 ? \'gj\' : \'j\'', { silent = true, expr = true })
|
||||||
|
map('n', 'k', 'v:count == 0 ? \'gk\' : \'k\'', { silent = true, expr = true })
|
||||||
|
end
|
||||||
|
|
||||||
|
function maps.centeredSearch()
|
||||||
|
map('n', 'n', 'nzzzv')
|
||||||
|
map('n', 'N', 'Nzzzv')
|
||||||
|
end
|
||||||
|
|
||||||
|
function maps.init()
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
|
||||||
|
map('n', '<leader>b', '<cmd>NvimTreeToggle<CR>')
|
||||||
|
map('n', '<leader>cc', '<cmd>Telescope colorscheme<CR>')
|
||||||
|
|
||||||
|
maps.toggleGoyo()
|
||||||
|
maps.term()
|
||||||
|
maps.telescope()
|
||||||
|
maps.fixIndent()
|
||||||
|
maps.moveByRow()
|
||||||
|
maps.centeredSearch()
|
||||||
|
end
|
||||||
|
|
||||||
|
return maps
|
@ -1,37 +1,17 @@
|
|||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
'mfussenegger/nvim-dap',
|
'mfussenegger/nvim-dap',
|
||||||
lazy = true,
|
dependencies = { 'nvim-lua/plenary.nvim' }
|
||||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
|
||||||
config = function()
|
|
||||||
local wk = require("which-key")
|
|
||||||
local dap = require("dap")
|
|
||||||
wk.add({
|
|
||||||
{ '<leader>d', group = "dap" },
|
|
||||||
{ '<leader>db', dap.toggle_breakpoint, desc = "Toggle breakpoint" },
|
|
||||||
{ '<leader>dc', dap.continue, desc = "Launch/resume debug session" },
|
|
||||||
{ '<leader>do', dap.step_over, desc = "Step over" },
|
|
||||||
{ '<leader>di', dap.step_into, desc = "Step into" },
|
|
||||||
{ '<leader>du', dap.step_out, desc = "Step out" },
|
|
||||||
})
|
|
||||||
end
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'rcarriga/nvim-dap-ui',
|
'rcarriga/nvim-dap-ui',
|
||||||
lazy = true,
|
|
||||||
config = function()
|
config = function()
|
||||||
local dapui = require("dapui")
|
require("dapui").setup()
|
||||||
dapui.setup()
|
|
||||||
local wk = require("which-key")
|
|
||||||
wk.add({
|
|
||||||
{ '<leader>dd', dapui.toggle, desc = "Toggle dap ui" }
|
|
||||||
})
|
|
||||||
end,
|
end,
|
||||||
dependencies = { 'mfussenegger/nvim-dap', 'nvim-neotest/nvim-nio' }
|
dependencies = { 'mfussenegger/nvim-dap', 'nvim-neotest/nvim-nio' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'theHamsta/nvim-dap-virtual-text',
|
'theHamsta/nvim-dap-virtual-text',
|
||||||
lazy = true,
|
|
||||||
config = true
|
config = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,35 +1,25 @@
|
|||||||
local lsp_attach = function(client, buf)
|
local opts = { noremap = true, silent = true }
|
||||||
vim.api.nvim_set_option_value("formatexpr", "v:lua.vim.lsp.formatexpr()", { buf = buf })
|
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
|
||||||
vim.api.nvim_set_option_value("omnifunc", "v:lua.vim.lsp.omnifunc", { buf = buf })
|
vim.keymap.set('n', ',d', vim.diagnostic.goto_prev, opts)
|
||||||
vim.api.nvim_set_option_value("tagfunc", "v:lua.vim.lsp.tagfunc", { buf = buf })
|
vim.keymap.set('n', '.d', vim.diagnostic.goto_next, opts)
|
||||||
|
|
||||||
vim.lsp.inlay_hint.enable(true, nil)
|
local lsp_attach = function(client, buf)
|
||||||
|
vim.api.nvim_buf_set_option(buf, "formatexpr", "v:lua.vim.lsp.formatexpr()")
|
||||||
|
vim.api.nvim_buf_set_option(buf, "omnifunc", "v:lua.vim.lsp.omnifunc")
|
||||||
|
vim.api.nvim_buf_set_option(buf, "tagfunc", "v:lua.vim.lsp.tagfunc")
|
||||||
|
|
||||||
|
vim.lsp.inlay_hint.enable(buf, true)
|
||||||
|
|
||||||
local bufopts = { noremap = true, silent = true, buffer = buf }
|
local bufopts = { noremap = true, silent = true, buffer = buf }
|
||||||
local wk = require("which-key")
|
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
|
||||||
|
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
|
||||||
local diag_next = function()
|
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
|
||||||
vim.diagnostic.jump({ count = 1, float = true })
|
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
|
||||||
end
|
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
|
||||||
|
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
|
||||||
local diag_prev = function()
|
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
|
||||||
vim.diagnostic.jump({ count = -1, float = true })
|
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
|
||||||
end
|
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
|
||||||
|
|
||||||
wk.add({
|
|
||||||
{ '<C-e>', require("telescope.builtin").diagnostics, bufopts, desc = "Show diagnostics under cursor" },
|
|
||||||
{ '<leader>e', vim.diagnostic.open_float, bufopts, desc = "Show diagnostics in buffer" },
|
|
||||||
{ '[d', diag_prev, bufopts },
|
|
||||||
{ ']d', diag_next, bufopts },
|
|
||||||
|
|
||||||
{ 'gD', vim.lsp.buf.declaration, bufopts, desc = "Go to declaration" },
|
|
||||||
{ 'gd', vim.lsp.buf.definition, bufopts, desc = "Go to definition" },
|
|
||||||
{ 'gi', vim.lsp.buf.implementation, bufopts, desc = "Go to implementation" },
|
|
||||||
{ '<C-k>', vim.lsp.buf.signature_help, bufopts, desc = "Show signature" },
|
|
||||||
{ '<leader>rn', vim.lsp.buf.rename, bufopts, desc = "Rename" },
|
|
||||||
{ '<leader>ca', vim.lsp.buf.code_action, bufopts, desc = "Show code actions" },
|
|
||||||
{ 'gr', require("telescope.builtin").lsp_references, bufopts, desc = "Shwo references" },
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local mason_path = vim.fn.glob(vim.fn.stdpath "data" .. "/mason/packages/codelldb/extension/")
|
local mason_path = vim.fn.glob(vim.fn.stdpath "data" .. "/mason/packages/codelldb/extension/")
|
||||||
@ -44,7 +34,6 @@ return {
|
|||||||
-- lsp
|
-- lsp
|
||||||
{
|
{
|
||||||
'williamboman/mason.nvim',
|
'williamboman/mason.nvim',
|
||||||
lazy = true,
|
|
||||||
config = true
|
config = true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -115,49 +104,16 @@ return {
|
|||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
on_attach = lsp_attach
|
on_attach = lsp_attach
|
||||||
})
|
})
|
||||||
lspconfig.julials.setup({
|
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
lspconfig.emmet_ls.setup({
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
on_attach = lsp_attach
|
on_attach = lsp_attach
|
||||||
})
|
})
|
||||||
lspconfig.wgsl_analyzer.setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
on_attach = lsp_attach
|
|
||||||
})
|
|
||||||
lspconfig.glsl_analyzer.setup({
|
|
||||||
capabilities = capabilities,
|
|
||||||
on_attach = lsp_attach
|
|
||||||
})
|
|
||||||
lspconfig.emmet_language_server.setup({
|
|
||||||
filetypes = { "css", "html", "javascript", "typescript" },
|
|
||||||
-- Read more about this options in the [vscode docs](https://code.visualstudio.com/docs/editor/emmet#_emmet-configuration).
|
|
||||||
-- **Note:** only the options listed in the table are supported.
|
|
||||||
init_options = {
|
|
||||||
---@type table<string, string>
|
|
||||||
includeLanguages = {},
|
|
||||||
--- @type string[]
|
|
||||||
excludeLanguages = {},
|
|
||||||
--- @type string[]
|
|
||||||
extensionsPath = {},
|
|
||||||
--- @type table<string, any> [Emmet Docs](https://docs.emmet.io/customization/preferences/)
|
|
||||||
preferences = {},
|
|
||||||
--- @type boolean Defaults to `true`
|
|
||||||
showAbbreviationSuggestions = true,
|
|
||||||
--- @type "always" | "never" Defaults to `"always"`
|
|
||||||
showExpandedAbbreviation = "always",
|
|
||||||
--- @type boolean Defaults to `false`
|
|
||||||
showSuggestionsAsSnippets = false,
|
|
||||||
--- @type table<string, any> [Emmet Docs](https://docs.emmet.io/customization/syntax-profiles/)
|
|
||||||
syntaxProfiles = {},
|
|
||||||
--- @type table<string, string> [Emmet Docs](https://docs.emmet.io/customization/snippets/#variables)
|
|
||||||
variables = {},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'mrcjkb/rustaceanvim',
|
'mrcjkb/rustaceanvim',
|
||||||
version = "^4",
|
version = "^3",
|
||||||
lazy = false,
|
|
||||||
ft = { "rust" },
|
ft = { "rust" },
|
||||||
config = function()
|
config = function()
|
||||||
vim.g.rustaceanvim = {
|
vim.g.rustaceanvim = {
|
||||||
@ -170,6 +126,7 @@ return {
|
|||||||
extraArgs = { "+nightly" },
|
extraArgs = { "+nightly" },
|
||||||
},
|
},
|
||||||
cargo = {
|
cargo = {
|
||||||
|
allFeatures = true,
|
||||||
loadOutDirsFromCheck = true,
|
loadOutDirsFromCheck = true,
|
||||||
runBuildScripts = true,
|
runBuildScripts = true,
|
||||||
},
|
},
|
||||||
@ -194,135 +151,6 @@ return {
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
{
|
|
||||||
'mfussenegger/nvim-jdtls',
|
|
||||||
ft = { "java" },
|
|
||||||
config = function()
|
|
||||||
local home = os.getenv('HOME')
|
|
||||||
local jdtls = require('jdtls')
|
|
||||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
|
||||||
local root_markers = { 'gradlew', 'mvnw', 'git' }
|
|
||||||
local root_dir = require('jdtls.setup').find_root(root_markers)
|
|
||||||
local workspace_folder = home .. "/.local/share/eclipse/" .. vim.fn.fnamemodify(root_dir, ":p:h:t")
|
|
||||||
local config = {
|
|
||||||
flags = {
|
|
||||||
debounce_text_changes = 80,
|
|
||||||
},
|
|
||||||
capabilities = capabilities,
|
|
||||||
on_attach = lsp_attach, -- We pass our on_attach keybindings to the configuration map
|
|
||||||
root_dir = root_dir, -- Set the root directory to our found root_marker
|
|
||||||
-- here you can configure eclipse.jdt.ls specific settings
|
|
||||||
-- these are defined by the eclipse.jdt.ls project and will be passed to eclipse when starting.
|
|
||||||
-- see https://github.com/eclipse/eclipse.jdt.ls/wiki/running-the-java-ls-server-from-the-command-line#initialize-request
|
|
||||||
-- for a list of options
|
|
||||||
settings = {
|
|
||||||
java = {
|
|
||||||
format = {
|
|
||||||
settings = {
|
|
||||||
-- use google java style guidelines for formatting
|
|
||||||
-- to use, make sure to download the file from https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml
|
|
||||||
-- and place it in the ~/.local/share/eclipse directory
|
|
||||||
-- url = "/.local/share/eclipse/eclipse-java-google-style.xml",
|
|
||||||
-- profile = "googlestyle",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
signaturehelp = { enabled = true },
|
|
||||||
contentprovider = { preferred = 'fernflower' }, -- use fernflower to decompile library code
|
|
||||||
-- specify any completion options
|
|
||||||
completion = {
|
|
||||||
favoritestaticmembers = {
|
|
||||||
-- "org.hamcrest.matcherassert.assertthat",
|
|
||||||
-- "org.hamcrest.matchers.*",
|
|
||||||
-- "org.hamcrest.corematchers.*",
|
|
||||||
-- "org.junit.jupiter.api.assertions.*",
|
|
||||||
-- "java.util.objects.requirenonnull",
|
|
||||||
-- "java.util.objects.requirenonnullelse",
|
|
||||||
-- "org.mockito.mockito.*"
|
|
||||||
},
|
|
||||||
filteredtypes = {
|
|
||||||
-- "com.sun.*",
|
|
||||||
-- "io.micrometer.shaded.*",
|
|
||||||
-- "java.awt.*",
|
|
||||||
-- "jdk.*", "sun.*",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- specify any options for organizing imports
|
|
||||||
sources = {
|
|
||||||
organizeimports = {
|
|
||||||
starthreshold = 9999,
|
|
||||||
staticstarthreshold = 9999,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- how code generation should act
|
|
||||||
codegeneration = {
|
|
||||||
tostring = {
|
|
||||||
template = "${object.classname}{${member.name()}=${member.value}, ${othermembers}}"
|
|
||||||
},
|
|
||||||
hashcodeequals = {
|
|
||||||
usejava7objects = true,
|
|
||||||
},
|
|
||||||
useblocks = true,
|
|
||||||
},
|
|
||||||
-- if you are developing in projects with different java versions, you need
|
|
||||||
-- to tell eclipse.jdt.ls to use the location of the jdk for your java version
|
|
||||||
-- see https://github.com/eclipse/eclipse.jdt.ls/wiki/running-the-java-ls-server-from-the-command-line#initialize-request
|
|
||||||
-- and search for `interface runtimeoption`
|
|
||||||
-- the `name` is not arbitrary, but must match one of the elements from `enum executionenvironment` in the link above
|
|
||||||
configuration = {
|
|
||||||
runtimes = {
|
|
||||||
{
|
|
||||||
name = "JavaSE-17",
|
|
||||||
path = home .. "/.local/share/asdf/installs/java/oracle-17.0.11/",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "JavaSE-21",
|
|
||||||
path = home .. "/.local/share/asdf/installs/java/oracle-21.0.2/",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "JavaSE-1.8",
|
|
||||||
path = home .. "/.local/share/asdf/installs/java/adoptopenjdk-8.0.412+8/"
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
-- cmd is the command that starts the language server. whatever is placed
|
|
||||||
-- here is what is passed to the command line to execute jdtls.
|
|
||||||
-- note that eclipse.jdt.ls must be started with a java version of 17 or higher
|
|
||||||
-- see: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line
|
|
||||||
-- for the full list of options
|
|
||||||
cmd = {
|
|
||||||
home .. "/.local/share/asdf/installs/java/oracle-21.0.2/bin/java",
|
|
||||||
'-Declipse.application=org.eclipse.jdt.ls.core.id1',
|
|
||||||
'-Dosgi.bundles.defaultstartlevel=4',
|
|
||||||
'-Declipse.product=org.eclipse.jdt.ls.core.product',
|
|
||||||
'-Dlog.protocol=true',
|
|
||||||
'-Dlog.level=all',
|
|
||||||
'-Xmx4G',
|
|
||||||
'--add-modules=ALL-SYSTEM',
|
|
||||||
'--add-opens', 'java.base/java.util=ALL-UNNAMED',
|
|
||||||
'--add-opens', 'java.base/java.lang=ALL-UNNAMED',
|
|
||||||
-- if you use lombok, download the lombok jar and place it in ~/.local/share/eclipse
|
|
||||||
'-javaagent:' .. home .. '/.local/share/nvim/mason/packages/jdtls/lombok.jar',
|
|
||||||
|
|
||||||
-- the jar file is located where jdtls was installed. this will need to be updated
|
|
||||||
-- to the location where you installed jdtls
|
|
||||||
'-jar', vim.fn.glob(
|
|
||||||
home ..
|
|
||||||
'/.local/share/nvim/mason/packages/jdtls/plugins/org.eclipse.equinox.launcher_*.jar'),
|
|
||||||
|
|
||||||
-- the configuration for jdtls is also placed where jdtls was installed. this will
|
|
||||||
-- need to be updated depending on your environment
|
|
||||||
'-configuration', home .. '/.local/share/nvim/mason/packages/jdtls/config_linux',
|
|
||||||
|
|
||||||
-- use the workspace_folder defined above to store data for this project
|
|
||||||
'-data', workspace_folder,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
jdtls.start_or_attach(config)
|
|
||||||
end
|
|
||||||
},
|
|
||||||
{ 'onsails/lspkind-nvim' }, -- pictograms replace (?) with lspsaga
|
{ 'onsails/lspkind-nvim' }, -- pictograms replace (?) with lspsaga
|
||||||
{
|
{
|
||||||
'j-hui/fidget.nvim',
|
'j-hui/fidget.nvim',
|
||||||
|
@ -3,61 +3,17 @@ return {
|
|||||||
'nvim-telescope/telescope.nvim',
|
'nvim-telescope/telescope.nvim',
|
||||||
version = '0.1.*',
|
version = '0.1.*',
|
||||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||||
config = function()
|
|
||||||
local telescope = require("telescope.builtin")
|
|
||||||
local wk = require("which-key")
|
|
||||||
wk.add({
|
|
||||||
{ "<leader>g", group = "git" },
|
|
||||||
{ "<leader>gh", telescope.git_bcommits, { noremap = true, silent = true }, desc = "View commits of current buffer" },
|
|
||||||
{ "<leader>gb", telescope.git_branches, { noremap = true, silent = true }, desc = "View git branches" },
|
|
||||||
{ "<leader>gs", telescope.git_status, { noremap = true, silent = true }, desc = "View git status" },
|
|
||||||
{ "<leader>f", group = "find" },
|
|
||||||
{ '<Leader>ff', telescope.git_files, { noremap = true, silent = true }, desc = "Search files" },
|
|
||||||
{ '<Leader>fg', telescope.live_grep, { noremap = true, silent = true }, desc = "Search in files" },
|
|
||||||
{ '<Leader>fb', telescope.buffers, { noremap = true, silent = true }, desc = "Search in buffers" },
|
|
||||||
{ '<Leader>fh', telescope.help_tags, { noremap = true, silent = true }, desc = "Search in help" },
|
|
||||||
{ '<Leader>fk', telescope.keymaps, { noremap = true, silent = true }, desc = "Search in keymaps" },
|
|
||||||
{ '<leader>cc', telescope.colorscheme, desc = "Select colorscheme" },
|
|
||||||
})
|
|
||||||
end
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'nvim-telescope/telescope-ui-select.nvim',
|
'nvim-tree/nvim-tree.lua',
|
||||||
dependencies = { 'nvim-telescope/telescope.nvim' },
|
|
||||||
config = function()
|
config = function()
|
||||||
require("telescope").setup {
|
require('nvim-tree').setup {
|
||||||
defaults = {
|
view = {
|
||||||
mappings = {
|
width = 30,
|
||||||
i = {
|
side = 'left',
|
||||||
["<C-h>"] = "which_key"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
pickers = {
|
|
||||||
colorscheme = {
|
|
||||||
enable_preview = true,
|
|
||||||
}
|
}
|
||||||
},
|
end,
|
||||||
extensions = {
|
dependencies = { 'nvim-tree/nvim-web-devicons' }
|
||||||
["ui-select"] = {
|
|
||||||
require("telescope.themes").get_cursor()
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
require("telescope").load_extension("ui-select")
|
|
||||||
end
|
|
||||||
}
|
|
||||||
-- Don't really need it. Nicer than the default but that's it
|
|
||||||
-- {
|
|
||||||
-- 'nvim-tree/nvim-tree.lua',
|
|
||||||
-- config = function()
|
|
||||||
-- require('nvim-tree').setup {
|
|
||||||
-- view = {
|
|
||||||
-- width = 30,
|
|
||||||
-- side = 'left',
|
|
||||||
-- },
|
|
||||||
-- }
|
|
||||||
-- end,
|
|
||||||
-- dependencies = { 'nvim-tree/nvim-web-devicons' }
|
|
||||||
-- }
|
|
||||||
}
|
}
|
||||||
|
@ -3,23 +3,9 @@ return {
|
|||||||
'rebelot/kanagawa.nvim',
|
'rebelot/kanagawa.nvim',
|
||||||
config = function()
|
config = function()
|
||||||
vim.opt.guifont = 'Source Code Pro for Powerline'
|
vim.opt.guifont = 'Source Code Pro for Powerline'
|
||||||
|
vim.cmd('colorscheme kanagawa')
|
||||||
vim.cmd('set termguicolors')
|
vim.cmd('set termguicolors')
|
||||||
vim.opt.syntax = 'on'
|
vim.opt.syntax = 'on'
|
||||||
-- require('kanagawa').setup({
|
|
||||||
-- colors = {
|
|
||||||
-- palette = {
|
|
||||||
-- lotusGray = "#F8F7F4",
|
|
||||||
-- lotusWhite0 = "#FBFBF9",
|
|
||||||
-- lotusWhite1 = "#F2F0E9",
|
|
||||||
-- lotusWhite2 = "#F8F7F2",
|
|
||||||
-- lotusWhite3 = "#F6F6F1",
|
|
||||||
-- lotusWhite4 = "#F4F1E6",
|
|
||||||
-- lotusWhite5 = "#FcFBF9",
|
|
||||||
-- }
|
|
||||||
-- }
|
|
||||||
-- })
|
|
||||||
-- vim.cmd('colorscheme kanagawa-lotus')
|
|
||||||
vim.cmd('colorscheme kanagawa')
|
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
{ 'lunarvim/lunar.nvim' },
|
{ 'lunarvim/lunar.nvim' },
|
||||||
@ -38,39 +24,7 @@ return {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
},
|
dependencies = { 'nvim-treesitter/playground' }
|
||||||
{
|
|
||||||
"nvim-treesitter/nvim-treesitter-context",
|
|
||||||
dependencies = { 'nvim-treesitter/nvim-treesitter' }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-treesitter/nvim-treesitter-textobjects",
|
|
||||||
dependencies = { 'nvim-treesitter/nvim-treesitter' },
|
|
||||||
config = function()
|
|
||||||
require("nvim-treesitter.configs").setup({
|
|
||||||
textobjects = {
|
|
||||||
select = {
|
|
||||||
enable = true,
|
|
||||||
lookahead = true,
|
|
||||||
keymaps = {
|
|
||||||
["af"] = "@function.outer",
|
|
||||||
["if"] = "@function.inner",
|
|
||||||
["ac"] = "@class.outer",
|
|
||||||
["ic"] = "@class.inner",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
swap = {
|
|
||||||
enable = true,
|
|
||||||
swap_next = {
|
|
||||||
["<leader>a"] = "@parameter.inner",
|
|
||||||
},
|
|
||||||
swap_previous = {
|
|
||||||
["<leader>A"] = "@parameter.inner",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
end
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'akinsho/bufferline.nvim',
|
'akinsho/bufferline.nvim',
|
||||||
@ -92,4 +46,10 @@ return {
|
|||||||
'lewis6991/gitsigns.nvim',
|
'lewis6991/gitsigns.nvim',
|
||||||
config = true
|
config = true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'glepnir/dashboard-nvim',
|
||||||
|
event = 'VimEnter',
|
||||||
|
config = true,
|
||||||
|
dependencies = { 'nvim-tree/nvim-web-devicons' }
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
-- maps.lua
|
|
||||||
|
|
||||||
local maps = {}
|
|
||||||
|
|
||||||
function maps.term()
|
|
||||||
vim.api.nvim_set_keymap('n', '<leader>t', '<C-w>s<C-w>j :terminal<CR>:res 5<CR>i',
|
|
||||||
{ noremap = false, desc = "Open and move to terminal" })
|
|
||||||
vim.api.nvim_set_keymap('t', 'ß<C-N>', '<C-\\><C-N>', { noremap = true, desc = "Enter normal mode in terminal" })
|
|
||||||
end
|
|
||||||
|
|
||||||
function maps.fixIndent()
|
|
||||||
vim.api.nvim_set_keymap('v', '<', '<gv', { noremap = true, desc = "Remove identation level" })
|
|
||||||
vim.api.nvim_set_keymap('v', '>', '>gv', { noremap = true, desc = "Add identation level" })
|
|
||||||
end
|
|
||||||
|
|
||||||
function maps.moveByRow()
|
|
||||||
-- When text is wrapped, move by terminal rows, not lines, unles a count is provided
|
|
||||||
vim.api.nvim_set_keymap('n', 'j', 'v:count == 0 ? \'gj\' : \'j\'',
|
|
||||||
{ noremap = true, silent = true, expr = true, desc = "Go down 1 line" })
|
|
||||||
vim.api.nvim_set_keymap('n', 'k', 'v:count == 0 ? \'gk\' : \'k\'',
|
|
||||||
{ noremap = true, silent = true, expr = true, desc = "Go up 1 line" })
|
|
||||||
end
|
|
||||||
|
|
||||||
function maps.centeredSearch()
|
|
||||||
vim.api.nvim_set_keymap('n', 'n', 'nzzzv', { noremap = true, desc = "Search next" })
|
|
||||||
vim.api.nvim_set_keymap('n', 'N', 'Nzzzv', { noremap = true, desc = "Search previous" })
|
|
||||||
end
|
|
||||||
|
|
||||||
function maps.init()
|
|
||||||
vim.g.mapleader = " "
|
|
||||||
|
|
||||||
vim.api.nvim_set_keymap('n', '<leader>b', '<cmd>Lexplore | vert res 30<CR>',
|
|
||||||
{ noremap = true, desc = "Open file explorer" })
|
|
||||||
|
|
||||||
maps.term()
|
|
||||||
maps.fixIndent()
|
|
||||||
maps.moveByRow()
|
|
||||||
maps.centeredSearch()
|
|
||||||
end
|
|
||||||
|
|
||||||
return {
|
|
||||||
"folke/which-key.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<leader>?",
|
|
||||||
function()
|
|
||||||
require("which-key").show({ global = false })
|
|
||||||
end,
|
|
||||||
desc = "Buffer Local Keymaps (which-key)",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
require("which-key").setup({
|
|
||||||
preset = "helix"
|
|
||||||
})
|
|
||||||
local wk = require("which-key")
|
|
||||||
maps.init()
|
|
||||||
end
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user