Note
- For demonstration of features, see Demonstrations.
- Feel free to take some parts/ideas of my build for your own one.
- Method Extraction, Delegate Method Generation, Class test, Import Organization, Jump-To Definition, Method & Constructor Generation, Diagnostics, Lombok Integration, and more is done using nvim-jdtls, but Code Formatting is done using google-java-format for the most up-to-date Google Java Style code formatting standards.
- All 3rd-party programs are managed using mason.nvim. All the nvim-jdtls dependencies are managed by mason.nvim.
- Nvim-jdtls is configured standalone in
java.lua, while other LSP's are configured using nvim-lspconfig. - None-ls is used to manage standalone LSP features such as google-java-format.
- Which-key is used to give a hint for custom keymappings.
- Code Completion is integrated using nvim-cmp.
- Treesitter is used for syntax-highlighting.
- Debugging is integrated using nvim-dap with nvim-dap-ui for UI display.
- Plugin Manager - lazy.nvim.
├── ftplugin/ files loaded with filetype
│ └── java.lua nvim-jdtls config file
├── init.lua start-up file
└── lua/ files loaded by lua
├── lazynvim.lua lazy.nvim config file
├── neovim-config.lua settings for neovim
└── plugins/ all nvim plugin config files (loaded by lazynvim.lua)
- For beginners in Neovim, I recommend checking kickstart.nvim, because it has the best introduction into Neovim.
- To search for Neovim plugins, I recommend awesome-neovim & dotfyle.
- cmp-buffer
- cmp-cmdline
- cmp-nvim-lsp
- cmp-path
- cmp_luasnip
- Comment.nvim
- dashboard-nvim
- friendly-snippets
- gruvbox.nvim
- harpoon
- harpoon-lualine
- indent-blankline.nvim
- lazy.nvim
- lualine.nvim
- LuaSnip
- mason-lspconfig.nvim
- mason-tool-installer.nvim
- mason.nvim
- neo-tree.nvim
- none-ls.nvim
- nui.nvim
- nvim-cmp
- nvim-dap
- nvim-dap-ui
- nvim-jdtls
- nvim-lspconfig
- nvim-nio
- nvim-treesitter
- nvim-ts-context-commentstring
- nvim-web-devicons
- plenary.nvim
- render-markdown.nvim
- telescope-fzf-native.nvim
- telescope-ui-select.nvim
- telescope.nvim
- todo-comments.nvim
- which-key.nvim
- markdown-preview.nvim
- nvim-autopairs
