lspkind.nvim VS nvim-jdtls

Compare lspkind.nvim vs nvim-jdtls and see what are their differences.

lspkind.nvim

vscode-like pictograms for neovim lsp completion items (by onsails)

nvim-jdtls

Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls (by mfussenegger)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
lspkind.nvim nvim-jdtls
14 75
1,322 931
- -
6.1 7.0
4 months ago about 2 months ago
Lua Lua
MIT License GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

lspkind.nvim

Posts with mentions or reviews of lspkind.nvim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-07.
  • I do love neovim!
    5 projects | /r/neovim | 7 Feb 2023
    There's a cmp-icons plugin: https://github.com/onsails/lspkind.nvim and also you can see the cmp documentation inside vim running :h cmp I spend many hours reading each plugin documentation to customize all my plugins. I hope I've helped.
  • Trouble Getting Icons To Show Properly
    1 project | /r/neovim | 29 Sep 2022
    If you are referring specifically to icons in your autocompletion suggestions menu you have to set it to use them. This can be achieved manually with the format key in the nvim-cmp setup (assuming you are using nvim-cmp) or with a plugin like lspkind.nvim
  • What are the best vim plugins for Go right now?
    4 projects | /r/golang | 22 Jul 2022
    If you use neovim, you can refer to my init.lua; I use vim-go, lsp and other goodies like lspkind to display vscode-like pictograms.
  • Anyone have autocomplete working with rust-tools, nvm-cmp, etc.?
    6 projects | /r/neovim | 14 Apr 2022
    -- Provide some indication that rust-analyzer is busy! local lsp_status = require('lsp-status') lsp_status.register_progress() -- Basic rust/lsp/cmp settings from https://sharksforarms.dev/posts/neovim-rust/ local nvim_lsp = require('lspconfig') local opts = { tools = { -- rust-tools options autoSetHints = true, hover_with_actions = true, inlay_hints = { show_parameter_hints = false, parameter_hints_prefix = "", other_hints_prefix = "=> ", }, }, -- all the opts to send to nvim-lspconfig -- these override the defaults set by rust-tools.nvim -- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer server = { -- on_attach is a callback called when the language server attachs to the buffer on_attach = lsp_status.on_attach, capabilities = lsp_status.capabilities, settings = { -- to enable rust-analyzer settings visit: -- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc -- and more: https://github.com/simrat39/rust-tools.nvim/wiki/Server-Configuration-Schema ["rust-analyzer"] = { -- enable clippy on save checkOnSave = { command = "clippy" }, } } }, } require('rust-tools').setup(opts) -- Setup Completion -- See https://github.com/hrsh7th/nvim-cmp#basic-configuration -- Used for super-tab functionality local has_words_before = function() local line, col = unpack(vim.api.nvim_win_get_cursor(0)) return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil end local feedkey = function(key, mode) vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) end local lspkind = require('lspkind') local cmp = require'cmp' cmp.setup({ completion = { autocomplete = true }, -- Enable LSP snippets snippet = { expand = function(args) vim.fn["vsnip#anonymous"](args.body) end, }, mapping = { [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true, }), -- Add tab support [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif vim.fn["vsnip#available"](1) == 1 then feedkey("(vsnip-expand-or-jump)", "") elseif has_words_before() then cmp.complete() else fallback() -- The fallback function sends a already mapped key. In this case, it's probably ``. end end, { "i", "s" }), [""] = cmp.mapping(function() if cmp.visible() then cmp.select_prev_item() elseif vim.fn["vsnip#jumpable"](-1) == 1 then feedkey("(vsnip-jump-prev)", "") end end, { "i", "s" }), }, -- Installed sources sources = { { name = 'nvim_lsp' }, --, trigger_characters={'.', ":"} }, { name = 'vsnip' }, { name = 'path' }, { name = 'buffer' }, { name = 'nvim_lsp_signature_help' }, { name = 'nvim_lsp_document_symbol' }, }, -- Fancy symbols formatting = { format = lspkind.cmp_format({ mode = 'symbol_text', -- show both symbol & text for now maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) -- The function below will be called before any actual modifications from lspkind -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30)) --before = function (entry, vim_item) --... --return vim_item --end }) }, completion = { autocomplete = true }, })
  • Neovim LSP Setup + Code Completion Engine
    3 projects | dev.to | 22 Oct 2021
    All the snippets, mapping, formatting and sources part in the above code snippet is expalained nicely in the plugin's documentation. For above code to work, you also have to install lspkind which provides awesome icons in the code completions.
  • Lspconfig configuration issues
    3 projects | /r/neovim | 9 Oct 2021
    To style the completion popup, you need to add formatting. Going by the cute little scissors, you probably want to install lsp-kind and add something like this to your cmp.setup
  • Totally confused about completion
    6 projects | /r/neovim | 24 Aug 2021
    https://github.com/onsails/lspkind-nvim (optionally)
  • Looks like the nvim-compe plugin is going to be deprecated, replaced by nvim-cmp (eventually)
    8 projects | /r/neovim | 23 Aug 2021
    I copy pasted the icons from https://github.com/onsails/lspkind-nvim/blob/master/lua/lspkind/init.lua and added the spaces:
  • Is anyone here using neovim for f# programming and could point me to useful plugins, which work with neovim 0.5
    14 projects | /r/fsharp | 27 May 2021
  • Java/Kotlin developers that use NeoVim as their main IDE, recommendations to someone that uses Intellij IDEA for java-dev but nvim for the rest?
    16 projects | /r/neovim | 18 May 2021

nvim-jdtls

Posts with mentions or reviews of nvim-jdtls. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-09.
  • Having the worst time trying to use JDTLS
    1 project | /r/neovim | 11 Dec 2023
    I recommend that you do not configure jdtls like the other language servers, it is better to use the nvim-jdtls plugin.
  • Noob here, would neovim work for my usecase
    2 projects | /r/neovim | 9 Dec 2023
    Java is actually pretty good with Neovim, jdtls and this plugin. One of the best language servers and I'm using it on a regular base with medium to large projects, mostly spring-based. No Android though.
  • Client 2 quit with exit code 1 and signal 0 when opening a .java files
    2 projects | /r/neovim | 10 Nov 2023
    -- See `:help vim.lsp.start_client` for an overview of the supported `config` options. local config = { -- The command that starts the language server -- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line cmd = { -- 💀 'java', -- or '/path/to/java17_or_newer/bin/java' -- depends on if `java` is in your $PATH env variable and if it points to the right version. '-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', '-Xmx1g', '--add-modules=ALL-SYSTEM', '--add-opens', 'java.base/java.util=ALL-UNNAMED', '--add-opens', 'java.base/java.lang=ALL-UNNAMED', -- 💀 '-jar', '~/.local/share/nvim/mason/packages/jdtls/plugins/org.eclipse.equinox.launcher_1.6.500.v20230717-2134.jar', -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ -- Must point to the Change this to -- eclipse.jdt.ls installation the actual version -- 💀 '-configuration', '~/.local/share/nvim/mason/packages/jdtls/config_linux', -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ -- Must point to the Change to one of `linux`, `win` or `mac` -- eclipse.jdt.ls installation Depending on your system. -- 💀 -- See `data directory configuration` section in the README '-data', '/path/to/unique/per/project/workspace/folder' }, -- 💀 -- This is the default if not provided, you can remove it. Or adjust as needed. -- One dedicated LSP server & client will be started per unique root_dir root_dir = require('jdtls.setup').find_root({'.git', 'mvnw', 'gradlew'}), -- Here you can configure eclipse.jdt.ls specific settings -- 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 = { } }, -- Language server `initializationOptions` -- You need to extend the `bundles` with paths to jar files -- if you want to use additional eclipse.jdt.ls plugins. -- -- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation -- -- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this init_options = { bundles = {} }, } -- This starts a new client & server, -- or attaches to an existing client & server depending on the `root_dir`. require('jdtls').start_or_attach(config)
  • Foot – A fast, lightweight and minimalistic Wayland terminal emulator
    1 project | news.ycombinator.com | 23 Sep 2023
    I can get by with https://github.com/mfussenegger/nvim-jdtls
  • [HELP] ftplugin and lazy loading in NvChad
    2 projects | /r/neovim | 11 Jun 2023
    This and this provided no viable solutions for me
  • Anyone using nvim for Kotlin development?
    1 project | /r/nvim | 30 May 2023
  • Help for configure jdtls
    1 project | /r/neovim | 16 May 2023
    I tried to configure jdtls for my NeoVim I followed https://github.com/mfussenegger/nvim-jdtls install instruction. and I faced this error does anyone successfully configured jdtls ? help T ^ T
  • Adding JAR files to nvim-jdtls
    1 project | /r/neovim | 6 May 2023
    Am I adding it to the wrong configuration option? Some places I see it added as a referencedLibary - https://github.com/mfussenegger/nvim-jdtls
  • Does anyone config java for neovim?
    7 projects | /r/neovim | 25 Apr 2023
    Sure. Any server that lspconfig supports will work. But for java development is better if you use nvim-jdtls. The documentation in lsp-zero has a guide on how to setup nvim-jdtls.
  • I can't seem to figure it out
    3 projects | /r/neovim | 24 Apr 2023
    Here' my java.lua for nvim-jdtls which solves the nil issue and add more features.

What are some alternatives?

When comparing lspkind.nvim and nvim-jdtls you can also consider the following projects:

cmp-nvim-lsp - nvim-cmp source for neovim builtin LSP client

nvim-lspconfig - Quickstart configs for Nvim LSP

lspsaga.nvim - improve neovim lsp experience [Moved to: https://github.com/nvimdev/lspsaga.nvim]

eclipse.jdt.ls - Java language server

vscode-codicons - The icon font for Visual Studio Code

nvim-lsp-installer - Further development has moved to https://github.com/williamboman/mason.nvim!

lspsaga.nvim - improve neovim lsp experience

coc-java - Java extension for coc.nvim

vim-emoji-icon-theme - Emoji/Unicode Icons Theme for Vim and Neovim with support for 40+ plugins and 380+ filetypes 🎨💙💛🤍💚

java-debug - The debug server implementation for Java. It conforms to the debug protocol of Visual Studio Code (DAP, Debugger Adapter Protocol).

friendly-snippets - Set of preconfigured snippets for different languages.

mason.nvim - Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.