Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. lspkind.nvim

lspkind.nvim

MITLua

Adds VS Code–style pictograms to Neovim's completion menus for improved readability and type recognition.

GitHubGitHub
1.7k stars41 forks0 contributors

What is lspkind.nvim?

lspkind.nvim is a Neovim plugin that adds visual icons to the Language Server Protocol (LSP) and general completion UI. It provides clear, consistent pictograms for different item types—such as functions, classes, snippets, and files—making completion menus more scannable and intuitive at a glance. The plugin replicates the polished, icon-driven user experience of modern IDEs within Neovim's extensible ecosystem without adding bloat.

Target Audience

Neovim users who utilize LSP and completion plugins like nvim-cmp and want to enhance their editor's UI with visual cues. It is particularly suited for developers familiar with VS Code's iconography who seek a similar, streamlined experience in Neovim.

Value Proposition

Developers choose lspkind.nvim for its lightweight, drop-in integration with popular completion plugins, offering familiar VS Code–style icons for immediate recognition. Its zero heavy dependencies, tiny footprint, and full customization options for symbol maps provide a minimal yet powerful way to improve completion menu readability.

Overview

VS Code–style pictograms for Neovim completion items

Use Cases

Best For

  • Enhancing Neovim's completion menus with visual icons for better scanability and intent recognition.
  • Integrating VS Code–style pictograms into nvim-cmp or other completion plugins via a dedicated formatting function.
  • Customizing completion item symbols per kind and per external source to match personal or project-specific preferences.
  • Using a lightweight plugin with zero heavy dependencies to add IDE-like polish to Neovim's LSP and completion UI.
  • Switching between built-in icon presets like 'default' (Nerd Fonts) and 'codicons' (VS Code icons) based on font availability.
  • Improving the user experience for developers transitioning from VS Code to Neovim by providing familiar iconography in completion menus.

Not Ideal For

  • Terminal environments or setups without patched icon fonts (Nerd Fonts or VS Code Codicons), as icons won't display correctly.
  • Developers who prefer minimalist, text-only completion interfaces without visual distractions or added UI elements.
  • Teams using completion plugins other than nvim-cmp or blink.cmp, as built-in integration is limited and may require custom implementation.
  • Projects where strict memory or performance constraints make even lightweight plugins undesirable, though its footprint is minimal.

Pros & Cons

Pros

Familiar VS Code Icons

Provides presets like 'codicons' that replicate Visual Studio Code's iconography, making completion items instantly recognizable for developers transitioning from modern IDEs.

Seamless nvim-cmp Integration

Offers a dedicated `lspkind.cmp_format` function for drop-in configuration with nvim-cmp, as shown in the README examples, simplifying setup for popular completion plugins.

Extensive Customization Options

Allows overriding the symbol map per kind and external source, enabling users to define custom icons for specific completion types, as demonstrated in the configuration snippet.

Lightweight and Dependency-Free

Has zero heavy dependencies and a tiny footprint, ensuring minimal impact on Neovim's performance, as emphasized in the README's features.

Cons

Mandatory Font Setup

Requires patched fonts like Nerd Fonts or VS Code Codicons, which can be a barrier for users with standard terminal fonts and adds an extra installation step.

Limited Out-of-the-Box Support

Only explicitly supports integration with nvim-cmp and blink.cmp; other completion plugins may require manual Lua coding or lack documentation, limiting flexibility.

Configuration Overhead for Vanilla LSP

Using it with vanilla Neovim LSP requires manual Lua configuration via `init()`, which might be complex for beginners compared to plug-and-play setups with nvim-cmp.

Frequently Asked Questions

Quick Stats

Stars1,690
Forks41
Contributors0
Open Issues15
Last commit5 months ago
CreatedSince 2021

Tags

#developer-tools#text-editor#neovim-plugin#lsp-client#ui-enhancement#nvim-cmp#neovim#lua#nvim#lsp#code-completion

Built With

N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 3 hours ago

Related Projects

nvim-lspconfignvim-lspconfig

Quickstart configs for Nvim LSP

Stars13,807
Forks2,471
Last commit20 hours ago
lspsaga.nvimlspsaga.nvim

improve neovim lsp experience

Stars3,793
Forks304
Last commit8 days ago
none-ls.nvimnone-ls.nvim

null-ls.nvim reloaded / Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.

Stars3,246
Forks122
Last commit1 month ago
rustaceanvimrustaceanvim

🦀 Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim

Stars3,051
Forks131
Last commit7 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub