Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. nvim-lsp-endhints

nvim-lsp-endhints

MITLua

A Neovim plugin that displays LSP inlay hints at the end of lines instead of within them for better editing flow.

GitHubGitHub
247 stars8 forks0 contributors

What is nvim-lsp-endhints?

nvim-lsp-endhints is a Neovim plugin that repositions LSP inlay hints—such as type annotations and parameter names—to the end of lines instead of within the code. It solves the problem of inline hints disrupting vim motions and cluttering code, particularly for languages with verbose type systems. The plugin integrates seamlessly with Neovim's built-in LSP capabilities.

Target Audience

Neovim users who work with LSP-supported languages (e.g., TypeScript, Go, Lua, C++) and find inline inlay hints intrusive to their editing workflow. It's especially useful for developers who rely heavily on vim motions and prefer cleaner line-based displays.

Value Proposition

Unlike other inlay hint plugins, nvim-lsp-endhints is extremely lightweight (~250 LOC) and focuses solely on repositioning hints without extra bloat. It offers a simple toggle between end-of-line and default inline hints, giving users flexibility while maintaining compatibility with Neovim's native LSP functions.

Overview

Display LSP inlay hints at the end of the line, rather than within the line.

Use Cases

Best For

  • TypeScript developers dealing with long type annotations inline
  • Vim/Neovim users who want inlay hints without breaking cursor navigation
  • Go programmers using gopls for parameter and type hints
  • Lua developers leveraging lua-ls for code insights
  • C++ coders working with clangd inlay hints
  • Anyone preferring minimal, non-intrusive LSP hint displays

Not Ideal For

  • Developers who need inlay hints displayed only for the current line, as the plugin lacks native support and requires custom code
  • Users running multiple plugins that modify inlay hints, due to handler override risks and compatibility issues
  • Teams on Neovim versions below 0.10, since it has a strict version requirement
  • Projects requiring advanced, interactive hint displays beyond static end-of-line positioning

Pros & Cons

Pros

Preserves Vim Motions

Moves hints to line ends to prevent disruption to cursor navigation and editing flow, specifically addressing issues with long type hints in languages like TypeScript as noted in the background section.

Lightweight and Maintainable

Implements only ~250 lines of code by overriding Neovim's built-in handler, making it simpler than archived alternatives like nvim-inlayhints.

Flexible Toggle Functions

Provides enable, disable, and toggle functions to seamlessly switch between end-of-line and default inline hints, integrating with Neovim's native LSP commands.

Customizable Hint Formatting

Offers hintFormatFunc for tailoring hint display per filetype or LSP, with practical examples in the FAQ for specific use cases like rust_analyzer.

Cons

No Current-Line-Only Hints

Lacks built-in support for displaying hints only on the current line, a limitation admitted in the FAQ that forces users to implement custom snippets.

Plugin Conflict Potential

Overrides Neovim's textDocument/inlayHint handler, which can incompatibility with other inlay hint plugins, requiring workarounds as warned in the compatibility FAQ.

LSP-Specific Configuration Overhead

Requires manual enablement of inlay hints for each LSP server (e.g., TypeScript, gopls), adding setup complexity beyond the plugin's own configuration.

Frequently Asked Questions

Quick Stats

Stars247
Forks8
Contributors0
Open Issues0
Last commit1 month ago
CreatedSince 2024

Tags

#developer-tools#vim-motions#code-readability#neovim-plugin#editor-enhancement#language-server-protocol#nvim-plugin#type-hints#lsp

Built With

N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 5 hours ago

Related Projects

nvim-lspconfignvim-lspconfig

Quickstart configs for Nvim LSP

Stars13,807
Forks2,471
Last commit23 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 commit9 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