Skip to content

[0.1.5] Release v0.1.5 — Marketplace compatibility, daemon improvements, diagnostics - #28

Merged
unurgunite merged 9 commits into
masterfrom
v0.1.5
Jul 6, 2026
Merged

[0.1.5] Release v0.1.5 — Marketplace compatibility, daemon improvements, diagnostics#28
unurgunite merged 9 commits into
masterfrom
v0.1.5

Conversation

@unurgunite

@unurgunite unurgunite commented Jul 5, 2026

Copy link
Copy Markdown
Member

Description

Release v0.1.5 — the first Marketplace-compatible release of DocScribe for RubyMine.

Changes

Platform & Compatibility

  • com.intellij.modules.ruby made optional — changed from hard depends to optional="true". Ruby-specific extensions moved to a secondary descriptor (withRubyPlugin.xml). Plugin now installs on IntelliJ IDEA without Ruby plugin (limited functionality), unblocking Marketplace publication.

Daemon & Execution

  • Project Ruby SDK used for all bundle exec docscribe commands — SDK bin/ prepended to PATH, BUNDLE_GEMFILE set. Shared buildSdkEnvironment() helper reused across CLI, gem check, and server startup.
  • Capability detection — performGemCheck() parses --version output, stores version and server mode support (>= 1.5.1). Server startup skipped for versions < 1.5.1, falling back to CLI.
  • Graceful handling when docscribe gem not installed — one-time check on first use, cached for the session. User notification with "Open Gemfile" action.

Performance

  • Concurrency guard for rapid annotations — per-file generation counter discards stale results when newer checks start during rapid saves.
  • Annotation cache respects settings — configHash derived from DocscribeSettings.hideCommentsByDefault. Settings changes invalidate cache. Max 1000 entries with LRU-like eviction.

Features

  • Rakefile support (no extension) — all annotators, actions, and intention actions accept Rakefile without .rb or .rake extension.
  • Doctor diagnostics action — DoctorAction collects project root, Gemfile, Ruby SDK, docscribe gem version, daemon state, settings. Editor Popup -> DocScribe -> DocScribe Doctor.
  • Update Types from RBS — action to refresh YARD docs from RBS signatures.

Fixes

  • Annotation cache now invalidated on settings change — DocscribeSettingsChangeListener clears cache when saved.
  • Detekt compliance — refactored DocscribeDaemon.kt complexity violations.

Build & Test

  • intellijDependencies() added to build.gradle.kts (required by instrumentTestCode).
  • 119 tests — all passing: gem check, capability detection, Rakefile, concurrency, SDK env, Doctor, cache invalidation.

Related PRs

Checklist

  • Tests pass (./gradlew test)
  • Formatting clean (./gradlew spotlessCheck)
  • Static analysis clean (./gradlew detekt)
  • Plugin verified compatible with RubyMine 2026.1
  • CHANGELOG updated

@unurgunite unurgunite self-assigned this Jul 5, 2026
@unurgunite unurgunite changed the title [0.1.5] Make com.intellij.modules.ruby optional for Marketplace verification [0.1.5] Release v0.1.5 — Marketplace compatibility, daemon improvements, diagnostics Jul 6, 2026
@unurgunite unurgunite added documentation Improvements or additions to documentation enhancement New feature or request invalid This doesn't seem right and removed invalid This doesn't seem right labels Jul 6, 2026
@unurgunite
unurgunite merged commit afcc205 into master Jul 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant