Skip to content

Releases: Hessesian/kmp-lsp

v0.24.0

Choose a tag to compare

@github-actions github-actions released this 16 Jun 21:55

What's Changed

  • fix(perf+indexer): scan.lock sentinel, spawn_blocking apply, O(n) bulk insert by @Hessesian in #167

Full Changelog: v0.23.0...v0.24.0

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 15 Jun 14:37

Full Changelog: v0.22.1...v0.23.0

v0.22.1

Choose a tag to compare

@github-actions github-actions released this 15 Jun 11:37

Full Changelog: v0.22.0...v0.22.1

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 15 Jun 11:09
342df69

What's Changed

  • feat: agent confluence — check, --exclude-imports, diagnose fixes, parser false positive by @Hessesian in #166

Full Changelog: v0.21.0...v0.22.0

v0.21.0

Choose a tag to compare

@Hessesian Hessesian released this 14 Jun 06:59

Features

  • Sources-JAR auto-mount*-sources.jar files are now unpacked in-memory at startup directly from the Gradle module cache (~/.gradle/caches/modules-2/files-2.1). Go-to-definition into library source code (Compose, AndroidX, Kotlin stdlib, …) works automatically without running kmp-lsp extract-sources. The manual extract-sources step is no longer needed for most projects; it remains available as a fallback for cases where Gradle sources are not cached locally.
  • Sources-JAR parse cache — parsed sources JARs are fingerprinted and cached on disk. On subsequent startups, unchanged JARs are loaded from the cache instead of re-parsed, making cold-start indexing significantly faster for large Gradle caches.
  • Semantic tokens: import highlightingimport statements now receive a NAMESPACE semantic token over the full dotted path (e.g. java.util.Scanner, androidx.compose.ui.Modifier) in both Kotlin and Java files.
  • Diagnostics off async threadwhen-branch diagnostics and call-argument diagnostics are now computed inside tokio::task::spawn_blocking, keeping the async runtime free during CPU-bound work. Reduces stutter on large files.

Bug fixes

  • Extension function diagnostics — call-argument diagnostics now correctly resolve extension functions: receiver type is matched against the extension's first implicit parameter, preventing false-positive "missing argument" errors on extension calls.
  • Generic type inference in diagnosticswhen branch type member resolution no longer varies by query order; type cache always resolves with an empty branch set to eliminate key-collision instability.
  • Inlay hints: ::class arguments — inlay hints now infer the correct type from SomeClass::class literal arguments by delegating to resolve_call_expr_type.
  • JAR symbols in go-to-def — JAR-indexed symbols are now reachable through all lookup paths: explicit import, qualified, and unqualified. Package is correctly extracted from sidecar detail.
  • Copy() inside receiver lambdascopy() calls inside lambda receivers are no longer incorrectly attributed to JAR symbols, preventing noise in hover and diagnostics.
  • install.sh — rewrote with #!/usr/bin/env bash shebang (was /bin/sh), correct gunzip decompression for kmp-jar-indexer, and literal-match checksum lookup via awk (was grep with regex hazard on dots).

What's Changed

  • fix: resolve extension functions on uppercase class qualifiers by @Hessesian in #156
  • fix: generic type param inference + extension fn precedence over members by @Hessesian in #157
  • fix(sources-jar): dedup on reindex, retain extensions on reset, sources-wins over compiled by @Hessesian in #160
  • fix: parameter diagnostics correctly resolve extension functions by @Hessesian in #158
  • fix(perf): move diagnostic computation into spawn_blocking by @Hessesian in #163
  • fix(install+semantic-tokens): fix install.sh and highlight import statements by @Hessesian in #164

Full Changelog: v0.20.0...v0.21.0

What's Changed

  • fix: resolve extension functions on uppercase class qualifiers by @Hessesian in #156
  • fix: generic type param inference + extension fn precedence over members by @Hessesian in #157
  • fix(sources-jar): dedup on reindex, retain extensions on reset, sources-wins over compiled by @Hessesian in #160
  • fix: parameter diagnostics correctly resolve extension functions by @Hessesian in #158
  • fix(perf): move diagnostic computation into spawn_blocking by @Hessesian in #163
  • fix(install+semantic-tokens): fix install.sh and highlight import statements by @Hessesian in #164

Full Changelog: v0.20.0...v0.21.0

What's Changed

  • fix: resolve extension functions on uppercase class qualifiers by @Hessesian in #156
  • fix: generic type param inference + extension fn precedence over members by @Hessesian in #157
  • fix(sources-jar): dedup on reindex, retain extensions on reset, sources-wins over compiled by @Hessesian in #160
  • fix: parameter diagnostics correctly resolve extension functions by @Hessesian in #158
  • fix(perf): move diagnostic computation into spawn_blocking by @Hessesian in #163
  • fix(install+semantic-tokens): fix install.sh and highlight import statements by @Hessesian in #164

Full Changelog: v0.20.0...v0.21.0

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 31 May 21:37
7e537ca

What's Changed

  • feat: Windows port — cross-platform path normalisation and CI matrix by @Hessesian in #153
  • rename: kotlin-lsp → kmp-lsp (Kotlin Multiplatform Language Server) by @Hessesian in #155

Full Changelog: v0.19.1...v0.20.0

v0.19.1

Choose a tag to compare

@github-actions github-actions released this 31 May 08:09

Full Changelog: v0.19.0...v0.19.1

v0.18.0

Choose a tag to compare

@github-actions github-actions released this 22 May 12:37

What's Changed

  • fix(references): nested uppercase types no longer pollute from unrelated importers by @Hessesian in #123

Full Changelog: v0.17.2...v0.18.0

v0.17.2

Choose a tag to compare

@github-actions github-actions released this 21 May 10:16

Full Changelog: v0.17.1...v0.17.2

v0.17.1

Choose a tag to compare

@github-actions github-actions released this 20 May 13:44

What's Changed

  • Kotlin cli refactor scripts by @Hessesian in #116
  • refactor(sig): fix two high-CRAP complexity offenders by @Hessesian in #118
  • fix(completion): include cross-package symbols for single-char uppercase prefix by @Hessesian in #120
  • fix(rename): guard against keyword renames in Kotlin and Java by @Hessesian in #121

Full Changelog: v0.16.0...v0.17.1