Compare commits

..

No commits in common. "main" and "lazy" have entirely different histories.
main ... lazy

11 changed files with 191 additions and 578 deletions

View File

@ -1,19 +0,0 @@
{
"workspace.library": [
"/Users/fschmidt/.config/nvim",
"/Users/fschmidt/.local/share/nvim/lazy/lazy.nvim",
"/Users/fschmidt/.local/share/nvim/lazy/cmp-nvim-lsp",
"/Users/fschmidt/.local/share/nvim/lazy/nvim-lspconfig",
"/Users/fschmidt/.local/share/nvim/lazy/mason.nvim",
"/Users/fschmidt/.local/share/nvim/lazy/mason-lspconfig.nvim",
"/Users/fschmidt/.local/share/nvim/lazy/nvim-web-devicons",
"/Users/fschmidt/.local/share/nvim/lazy/nvim-tree.lua",
"/Users/fschmidt/.local/share/nvim/lazy/null-ls.nvim",
"/Users/fschmidt/.local/share/nvim/lazy/lualine.nvim",
"/usr/local/Cellar/neovim/0.8.3/share/nvim/runtime",
"/usr/local/Cellar/neovim/0.8.3/lib/nvim",
"/Users/fschmidt/.local/state/nvim/lazy/readme",
"/Users/fschmidt/.local/share/nvim/lazy/cmp-nvim-lsp/after",
"${3rd}/luassert/library"
]
}

View File

@ -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

View File

@ -13,10 +13,11 @@ 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
vim.opt.undodir = os.getenv("HOME") .. '/.cache/nvim/undodir' vim.opt.undodir = '/Users/fschmidt/.cache/nvim/undodir'
vim.opt.swapfile = false vim.opt.swapfile = false
vim.opt.undofile = true vim.opt.undofile = true
vim.opt.smartcase = true vim.opt.smartcase = true
@ -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

View File

@ -1,39 +1,31 @@
{ {
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, "LuaSnip": { "branch": "master", "commit": "f7c845749aba6096f041a73a26ba64f3817bab99" },
"bufferline.nvim": { "branch": "main", "commit": "5726c4e291224181903e960119a11e20ac677a0a" }, "bufferline.nvim": { "branch": "main", "commit": "52d6acabb79c8c0942f8873a0ca7848eb2159267" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, "cmp-cmdline": { "branch": "main", "commit": "8fcc934a52af96120fe26358985c10c035984b53" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" },
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "3d8912ebeb56e5ae08ef0906e3a54de1c66b92f1" },
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-nvim-lua": { "branch": "main", "commit": "f3491638d123cfd2c8048aefaf66d246ff250ca6" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
"fidget.nvim": { "branch": "main", "commit": "e2a175c2abe2d4f65357da1c98c59a5cfb2b543f" }, "dashboard-nvim": { "branch": "master", "commit": "398ba8d9390c13c87a964cbca756319531fffdb7" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" }, "fidget.nvim": { "branch": "main", "commit": "688b4fec4517650e29c3e63cfbb6e498b3112ba1" },
"kanagawa.nvim": { "branch": "master", "commit": "ad3dddecd606746374ba4807324a08331dfca23c" }, "gitsigns.nvim": { "branch": "main", "commit": "f388995990aba04cfdc7c3ab870c33e280601109" },
"lazy.nvim": { "branch": "main", "commit": "014d1d6d78df4e58f962158e6e00261d8632612c" }, "kanagawa.nvim": { "branch": "master", "commit": "4c8d48726621a7f3998c7ed35b2c2535abc22def" },
"lspkind-nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" }, "lazy.nvim": { "branch": "main", "commit": "8077428e63feb0f3bf795d53b23ba1695b28ab0e" },
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" }, "lspkind-nvim": { "branch": "master", "commit": "c68b3a003483cf382428a43035079f78474cd11e" },
"lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" }, "lualine.nvim": { "branch": "master", "commit": "e99d733e0213ceb8f548ae6551b04ae32e590c80" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "8e46de9241d3997927af12196bd8faa0ed08c29a" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "3f9c0ea157e88b08e2d11ec65002eeb6e421f0da" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "mason.nvim": { "branch": "main", "commit": "63cff223169324a2e633954ac580c7c327182a97" },
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" }, "nvim-autopairs": { "branch": "master", "commit": "6a5faeabdbcc86cfbf1561ae430a451a72126e81" },
"nvim-cmp": { "branch": "main", "commit": "ca4d3330d386e76967e53b85953c170658255ecb" }, "nvim-cmp": { "branch": "main", "commit": "7a3b1e76f74934b12fda82158237c6ad8bfd3d40" },
"nvim-dap": { "branch": "master", "commit": "580d6e526358afd0e4bba053e68fd59cf581a161" }, "nvim-lspconfig": { "branch": "master", "commit": "62856b20751b748841b0f3ec5a10b1e2f6a6dbc9" },
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" }, "nvim-tree.lua": { "branch": "master", "commit": "9c97e6449b0b0269bd44e1fd4857184dfa57bb4c" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" }, "nvim-treesitter": { "branch": "master", "commit": "b4d8b7e5a374b800838a13aa6829ac4d542c6f1c" },
"nvim-jdtls": { "branch": "master", "commit": "ece818f909c6414cbad4e1fb240d87e003e10fda" }, "nvim-web-devicons": { "branch": "master", "commit": "4709a504d2cd2680fb511675e64ef2790d491d36" },
"nvim-lspconfig": { "branch": "master", "commit": "47f236c058f0511702286a21ba53bbf42abbd8a8" }, "playground": { "branch": "master", "commit": "4044b53c4d4fcd7a78eae20b8627f78ce7dc6f56" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, "plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" },
"nvim-treesitter": { "branch": "master", "commit": "3b8dee4293567b0b9a87360842af14669f60dd13" }, "rust-tools.nvim": { "branch": "master", "commit": "71d2cf67b5ed120a0e31b2c8adb210dd2834242f" },
"nvim-treesitter-context": { "branch": "master", "commit": "3288c5af7d3820d716272f1d05ab661cc540a5d6" }, "telescope.nvim": { "branch": "master", "commit": "c1a2af0af69e80e14e6b226d3957a064cd080805" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" }, "vimwiki": { "branch": "dev", "commit": "fea8bee382b2051b0137fd2cacf0862823ee69b3" }
"nvim-web-devicons": { "branch": "master", "commit": "87c34abe5d1dc7c1c0a95aaaf888059c614c68ac" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"rustaceanvim": { "branch": "master", "commit": "047f9c9d8cd2861745eb9de6c1570ee0875aa795" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"trouble.nvim": { "branch": "main", "commit": "46cf952fc115f4c2b98d4e208ed1e2dce08c9bf6" },
"vimwiki": { "branch": "dev", "commit": "72792615e739d0eb54a9c8f7e0a46a6e2407c9e8" },
"which-key.nvim": { "branch": "main", "commit": "9b365a6428a9633e3eeb34dbef1b791511c54f70" }
} }

View File

@ -1,37 +1,10 @@
-- commands.lua -- commands.lua
vim.cmd 'autocmd BufRead,BufNewFile *.wiki,*.md,*.tex set wrap' vim.cmd 'autocmd! User GoyoEnter Limelight'
vim.cmd 'autocmd! User GoyoLeave Limelight!'
vim.cmd 'au BufRead,BufNewFile *.kdl set filetype=kdl' vim.cmd 'autocmd BufRead,BufNewFile *.wiki,*.md,*.tex set wrap'
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
View 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

View File

@ -1,37 +0,0 @@
return {
{
'mfussenegger/nvim-dap',
lazy = true,
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',
lazy = true,
config = function()
local dapui = require("dapui")
dapui.setup()
local wk = require("which-key")
wk.add({
{ '<leader>dd', dapui.toggle, desc = "Toggle dap ui" }
})
end,
dependencies = { 'mfussenegger/nvim-dap', 'nvim-neotest/nvim-nio' }
},
{
'theHamsta/nvim-dap-virtual-text',
lazy = true,
config = true
}
}

View File

@ -1,50 +1,29 @@
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")
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
local mason_path = vim.fn.glob(vim.fn.stdpath "data" .. "/mason/packages/codelldb/extension/")
local codelldb_path = mason_path .. "adapter/codelldb"
local liblldb_path = mason_path .. "lldb/lib/liblldb.so"
if vim.fn.has "mac" == 1 then
liblldb_path = mason_path .. "lldb/lib/liblldb.dylib"
end end
return { return {
-- lsp -- lsp
{ {
'williamboman/mason.nvim', 'williamboman/mason.nvim',
lazy = true,
config = true config = true
}, },
{ {
@ -59,27 +38,16 @@ return {
lspconfig.lua_ls.setup { lspconfig.lua_ls.setup {
capabilities = capabilities, capabilities = capabilities,
root_dir = lspconfig.util.root_pattern('.git'),
settings = { settings = {
Lua = { Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT',
},
diagnostics = { diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { 'vim' } globals = { 'vim' }
}, }
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file("", true),
checkThirdParty = false,
},
} }
}, },
on_attach = lsp_attach on_attach = lsp_attach
} }
lspconfig.ts_ls.setup { lspconfig.tsserver.setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = lsp_attach on_attach = lsp_attach
} }
@ -91,6 +59,13 @@ return {
-- capabilities = capabilities, -- capabilities = capabilities,
-- on_attach = lsp_attach -- on_attach = lsp_attach
--} --}
require("rust-tools").setup({
server = {
capabilities = capabilities,
on_attach = lsp_attach,
standalone = false
}
})
lspconfig.bashls.setup { lspconfig.bashls.setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = lsp_attach on_attach = lsp_attach
@ -111,223 +86,16 @@ return {
capabilities = capabilities, capabilities = capabilities,
on_attach = lsp_attach on_attach = lsp_attach
}) })
lspconfig.phpactor.setup({ capabilities.textDocument.completion.completionItem.snippetSupport = true
lspconfig.emmet_ls.setup({
capabilities = capabilities, capabilities = capabilities,
on_attach = lsp_attach on_attach = lsp_attach
}) })
lspconfig.julials.setup({
capabilities = capabilities,
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
},
{
'mrcjkb/rustaceanvim',
version = "^4",
lazy = false,
ft = { "rust" },
config = function()
vim.g.rustaceanvim = {
server = {
on_attach = lsp_attach,
settings = {
-- rust-analyzer language server configuration
["rust-analyzer"] = {
rustfmt = {
extraArgs = { "+nightly" },
},
cargo = {
loadOutDirsFromCheck = true,
runBuildScripts = true,
},
-- Add clippy lints for Rust.
checkOnSave = {
allFeatures = true,
command = "clippy",
extraArgs = { "--no-deps" },
},
-- TODO this breaks diagnostics, look into what can be done
-- procMacro = {
-- enable = true,
-- ignored = {
-- ["async-trait"] = { "async_trait" },
-- ["napi-derive"] = { "napi" },
-- ["async-recursion"] = { "async_recursion" },
-- },
-- },
},
},
}
}
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 end
}, },
{ 'simrat39/rust-tools.nvim' },
{ 'onsails/lspkind-nvim' }, -- pictograms replace (?) with lspsaga { 'onsails/lspkind-nvim' }, -- pictograms replace (?) with lspsaga
{ { 'j-hui/fidget.nvim' }, -- show lsp status
'j-hui/fidget.nvim',
config = true
}, -- show lsp status
-- completion -- completion
{ {
'hrsh7th/nvim-cmp', 'hrsh7th/nvim-cmp',
@ -365,8 +133,8 @@ return {
{ name = 'path' }, { name = 'path' },
{ name = 'luasnip' }, { name = 'luasnip' },
{ name = 'nvim_lsp_signature_help' }, { name = 'nvim_lsp_signature_help' },
}, { }, {
{ name = 'buffer', keyword_length = 5 }, { name = 'buffer', keyword_length = 5 },
}), }),
formatting = { formatting = {
format = lspkind.cmp_format { format = lspkind.cmp_format {
@ -393,8 +161,8 @@ return {
cmp.setup.cmdline(':', { cmp.setup.cmdline(':', {
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = 'path' } { name = 'path' }
}, { }, {
{ name = 'cmdline' } { name = 'cmdline' }
}) })
}) })
end, end,
@ -411,8 +179,6 @@ return {
}, },
{ {
'L3MON4D3/LuaSnip', 'L3MON4D3/LuaSnip',
version = "v2.*",
build = "make install_jsregexp",
config = function() config = function()
require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets/" }) require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets/" })
end end
@ -421,13 +187,6 @@ return {
'windwp/nvim-autopairs', 'windwp/nvim-autopairs',
config = true config = true
}, },
{
"folke/trouble.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
},
} }
-- -- Linting & formtatting
-- 'jose-elias-alvarez/null-ls.nvim';

View File

@ -1,63 +1,67 @@
return { return {
{ {
'nvim-telescope/telescope.nvim', 'nvim-telescope/telescope.nvim',
version = '0.1.*', tag = '0.1.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 = { disable_netrw = true,
hijack_netrw = true,
open_on_setup = false,
ignore_ft_on_setup = {},
open_on_tab = false,
hijack_cursor = false,
update_cwd = true,
hijack_directories = {
enable = true,
auto_open = true,
},
diagnostics = {
enable = false,
icons = {
hint = "",
info = "",
warning = "",
error = "",
}
},
update_focused_file = {
enable = false,
update_cwd = false,
ignore_list = {}
},
system_open = {
cmd = nil,
args = {}
},
filters = {
dotfiles = false,
custom = {}
},
git = {
enable = true,
ignore = true,
timeout = 500,
},
view = {
width = 30,
hide_root_folder = false,
side = 'left',
mappings = { mappings = {
i = { custom_only = false,
["<C-h>"] = "which_key" list = {}
}
} }
}, },
pickers = { actions = {
colorscheme = { open_file = {
enable_preview = true, resize_window = false
}
},
extensions = {
["ui-select"] = {
require("telescope.themes").get_cursor()
} }
} }
} }
require("telescope").load_extension("ui-select") end,
end dependencies = { 'nvim-tree/nvim-web-devicons' }
} }
-- 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' }
-- }
} }

View File

@ -3,26 +3,12 @@ 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.g.limelight_conceal_ctermfg = 'gray'
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' },
{ {
'nvim-treesitter/nvim-treesitter', 'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate', build = ':TSUpdate',
@ -38,43 +24,11 @@ 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',
version = "*", tag = "v3.3.0",
config = true, config = true,
dependencies = { 'nvim-tree/nvim-web-devicons' } dependencies = { 'nvim-tree/nvim-web-devicons' }
}, },
@ -88,8 +42,11 @@ return {
} }
end end
}, },
{ 'lewis6991/gitsigns.nvim' },
{ {
'lewis6991/gitsigns.nvim', 'glepnir/dashboard-nvim',
config = true event = 'VimEnter',
config = true,
dependencies = { 'nvim-tree/nvim-web-devicons' }
}, },
} }

View File

@ -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
}