Skip to content

Releases: eli0shin/cli-lsp-client

v1.14.2

16 Sep 10:48

Choose a tag to compare

v1.14.2

Improvements

  • Further improve LSP startup performance with optimized file detection

🤖 Generated with Claude Code

v1.14.1

14 Sep 01:06

Choose a tag to compare

v1.14.1

Improvements

  • Improve LSP startup speed by skipping git submodules (#25)

v1.14.0

25 Aug 16:33

Choose a tag to compare

v1.14.0

Features

  • Add comprehensive hover configurations for all 12+ language servers (#23)
  • Add hover result deduplication for cleaner multi-location symbols (#22)

Language Server Enhancements

  • TypeScript: 4GB memory limits, verbose logging, enhanced completion templates
  • Rust: Full documentation hover with memory layout, increased display limits (10 enum variants, 8 fields)
  • Go: Complete documentation with pkg.go.dev links, semantic tokens, inlay hints, code lenses
  • Java: Enhanced signature help, decompiled source support, 50 completion results
  • Python: Trace-level logging, strict type checking, workspace-wide diagnostics
  • Plus 7 more: Lua, Bash, JSON, CSS/SCSS/LESS, YAML, GraphQL, R, C# with comprehensive configurations

Developer Experience Improvements

  • Richer hover tooltips with detailed signatures and documentation
  • Intelligent grouping of identical hover content across multiple locations
  • Enhanced debugging capabilities with verbose logging across all servers
  • Better performance with optimized limits and caching

🤖 Generated with Claude Code

Co-Authored-By: Claude [email protected]

v1.13.0

25 Aug 05:11

Choose a tag to compare

v1.13.0

Features

  • Preserve JSDoc comments in hover information for better documentation (#21)
  • Add multi-location hover support for comprehensive symbol information (#21)
  • Enhance TypeScript LSP configuration for richer hover details (#21)

Improvements

  • Replace complex type parsing with streamlined multi-request approach (#21)
  • Add concurrent signature help for function and method symbols (#21)
  • Improve hover formatting with contextual location labels (#21)

Performance

  • Remove 932 lines of complex TypeEnhancer parsing logic (#21)
  • Eliminate file parsing overhead with direct LSP requests (#21)
  • Better error handling with graceful degradation (#21)

Developers now get comprehensive API documentation directly in hover tooltips with preserved JSDoc comments, multi-location symbol information, and enhanced formatting - all with improved performance and reliability.

v1.12.0

24 Aug 20:12

Choose a tag to compare

v1.12.0

Features

  • Increase hover display limit to 100 methods

Bug Fixes

  • Fix URL decoding for scoped package imports (#20)

v1.11.0

24 Aug 16:33

Choose a tag to compare

Summary

  • Enhanced hover command with multi-symbol support and improved formatting (#19)
  • Added MCP server integration documentation

Features

  • Add multi-symbol hover support for better code intelligence (#19)
  • Improve hover output formatting and readability (#19)

Documentation

  • Add comprehensive MCP server integration guide

🤖 Generated with Claude Code

v1.10.0

21 Aug 14:18

Choose a tag to compare

v1.10.0

Features

  • Add MCP server support for AI assistant integration (#18)
  • Add get-symbol-definition tool for code intelligence (#18)
  • Add mcp-server command to CLI (#18)

Dependencies

  • Add @modelcontextprotocol/sdk for MCP protocol support (#18)
  • Move zod to runtime dependencies for validation (#18)

This release enables AI assistants and other MCP clients to access LSP capabilities for code intelligence through the new cli-lsp-client mcp-server command.

🤖 Generated with Claude Code

Co-Authored-By: Claude [email protected]

v1.9.1

21 Aug 01:23

Choose a tag to compare

v1.9.1

Performance Improvements

  • Optimize file discovery with git-aware pattern matching (#17)

This patch release improves LSP startup performance by using git ls-files when in a git repository, automatically respecting .gitignore rules and avoiding untracked files.

v1.9.0

20 Aug 21:08

Choose a tag to compare

Improved hover command with enhanced type information and better symbol inspection capabilities.

v1.8.0 - Lightning Fast LSP Startup Performance

20 Aug 01:28

Choose a tag to compare

🚀 Lightning Fast LSP Startup Performance

This release delivers dramatic performance improvements to LSP CLI startup times, providing a significantly better experience for Claude Code users and automated development workflows.

⚡ Performance Highlights

  • 95%+ startup time reduction: From multiple seconds to ~43-90ms
  • Immediate user feedback: Shows which language servers are being started instantly
  • Parallel server initialization: All language servers start simultaneously instead of sequentially
  • Enhanced Claude Code integration: Eliminates startup delays that were affecting development workflows

🎯 Key Improvements

Instant Startup Response

  • Before: LSP CLI blocked for 2-5+ seconds while servers started sequentially
  • After: Immediate response in 43-90ms with background parallel initialization
  • User Experience: Instant feedback showing "Starting LSPs for typescript, python, go"

Background Parallel Processing

  • Language servers now start simultaneously using Promise.allSettled()
  • Eliminated sequential blocking that caused slow startup times
  • Better CPU utilization and resource management
  • Individual server failures don't block other servers

Enhanced State Management

  • Added initialization state tracking to prevent race conditions
  • Proper coordination between daemon responses and background startup
  • Memory-efficient cleanup of initialization promises
  • Thread-safe state transitions

🔧 Technical Implementation

Daemon Response Optimization

The daemon now separates server discovery (fast) from initialization (background):

// Fast server detection (< 50ms)
const detectedServers = await detectProjectTypes(targetDir);

// Background parallel initialization  
initializeDetectedServers(detectedServers, targetDir);

// Immediate response to user
return `Starting LSPs for ${serverNames.join(', ')}`;

Parallel Server Startup

Replaced sequential server startup with concurrent initialization:

// All servers start simultaneously
const serverPromises = projectServers.map(async (server) => {
  return await initializeServer(server);
});
await Promise.allSettled(serverPromises);

Race Condition Prevention

Added proper state tracking to coordinate multiple startup requests:

// Track initialization state
lspManager.setInitializing(serverID, root, initPromise);

// Wait for completion if already initializing
if (lspManager.isInitializing(serverID, root)) {
  return await lspManager.waitForInitialization(serverID, root);
}

🎉 Claude Code Integration Benefits

  • Faster development workflows: Claude Code hooks no longer blocked by LSP startup
  • Improved responsiveness: Immediate feedback instead of hanging behavior
  • Better user experience: No more multi-second delays when starting development sessions
  • Enhanced reliability: Background initialization with proper error handling

📈 Performance Metrics

Metric Before After Improvement
Startup Time 2-5+ seconds 43-90ms 95%+ faster
User Feedback After completion Immediate Instant
Server Startup Sequential Parallel Concurrent
Claude Code Integration Blocking Non-blocking Smooth

🔄 Backward Compatibility

This is a pure performance optimization with full backward compatibility:

  • ✅ All existing CLI commands work identically
  • ✅ LSP server functionality unchanged
  • ✅ No configuration changes required
  • ✅ Enhanced responsiveness with compatible API

🐛 Bug Fixes & Enhancements

  • Fixed: Blocking behavior during LSP server initialization
  • Enhanced: User feedback with immediate server detection display
  • Improved: Error handling for individual server startup failures
  • Added: Proper initialization state tracking and cleanup

Full Changelog: v1.7.0...v1.8.0

🤖 Generated with Claude Code

Co-Authored-By: Claude [email protected]

What's Changed

  • perf: optimize LSP startup with async initialization and parallel server startup by @eli0shin in #15

Full Changelog: v1.7.0...v1.8.0