Skip to content

Commit dfd0ecb

Browse files
authored
Merge pull request #3827 from joshuataylor/feature/v23.5.0
v23.5.0
2 parents 54f72a9 + 09d96c9 commit dfd0ecb

3 files changed

Lines changed: 42 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Changelog
22

3+
## v23.5.0
4+
5+
### Enhancements
6+
* [#3817](https://github.com/KronicDeth/intellij-elixir/pull/3817) - [@sh41](https://github.com/sh41)
7+
* All Elixir settings panels (Credo, Dialyzer, SDKs, Experimental Settings) grouped under a single "Elixir" parent configurable in both full IDEs and small IDEs (RubyMine, PyCharm, etc.). Dropped redundant "Elixir" prefixes from child panel display names.
8+
* Top-level configurable selection refactored to a service-provider strategy (`TopLevelElixirConfigurableFactory`) with small IDE and rich platform implementations, replacing the `isSmallIde` class detection approach.
9+
* Settings search indexing via `ElixirSearchableOptionContributor` -- typing "credo", "dialyzer", "elixir", or "liveview" in the Settings search box now surfaces the relevant Elixir settings pages.
10+
* Credo inspection -- umbrella project support: `resolveCredoWorkingDirectory` walks up from `apps/<app>` content roots to the umbrella root so Credo runs once per umbrella root instead of once per app. Working directories deduplicated by ancestor path.
11+
* Credo inspection -- execution failure surfacing: failures (missing SDK, missing Credo dependency, compilation errors) now appear as inspection problems on `mix.exs` and as aggregated IDE notifications, instead of being silently dropped.
12+
* Credo inspection -- partial result preservation: when a Credo run emits some findings before hitting a fatal error, the findings are kept and a warning notification is shown alongside them.
13+
* Flycheck output parsing extracted and hardened: two-phase approach (record split, then location parse) correctly handles line+column, line-only, and file-level findings. Invalid paths and out-of-range offsets logged at debug level instead of crashing the inspection run.
14+
* `--mute-exit-status` added to Credo command line so lint-level exit codes are not treated as execution failures.
15+
16+
### Bug Fixes
17+
* [#3817](https://github.com/KronicDeth/intellij-elixir/pull/3817) - [@sh41](https://github.com/sh41)
18+
* Credo inspection read-action lock churn: consolidated 4-6 separate `runReadAction(Computable { })` calls per output line into a single `runReadAction {}` block per finding. Under 2025.3+ writer-preference locking, the repeated lock acquire/release blocked the EDT when a write action was pending. Partially fixes [#3790](https://github.com/KronicDeth/intellij-elixir/issues/3790).
19+
* Credo "Configure credo" notification action used internal `ShowSettingsUtilImpl` API -- replaced with `ShowSettingsUtil.getInstance()` and added `project.isDisposed` guard.
20+
* Credo and Dialyzer configurable IDs (`"Credo"`, `"Dialyzer"`) collided with display names -- separated into distinct `language.elixir.credo` / `language.elixir.dialyzer` IDs.
21+
* Java-style `//` comment in `plugin.xml` replaced with proper XML `<!-- -->` comment.
22+
323
## v23.4.0
424

525
### Enhancements

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# --- Plugin Metadata ---
77
pluginGroup=org.elixir_lang
88
pluginName=Elixir
9-
pluginVersion=23.4.0
9+
pluginVersion=23.5.0
1010
pluginRepositoryUrl=https://github.com/KronicDeth/intellij-elixir/
1111
vendorName=Elle Imhoff
1212
vendorEmail=Kronic.Deth@gmail.com

resources/META-INF/changelog.html

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,27 @@
11
<html>
22
<body>
33

4+
<h1>v23.5.0</h1>
5+
<ul>
6+
<li>
7+
<p>Enhancements</p>
8+
<ul>
9+
<li>All Elixir settings (Credo, Dialyzer, SDKs, Experimental Settings) now grouped under a single "Elixir" parent in Settings, for both full IDEs and small IDEs like RubyMine.</li>
10+
<li>Elixir settings pages are now discoverable via the Settings search box -- typing "credo", "dialyzer", "elixir", or "liveview" finds the relevant page.</li>
11+
<li>Credo inspection now runs once per umbrella root instead of once per app, avoiding duplicate findings and redundant <code>mix credo</code> invocations.</li>
12+
<li>Credo execution failures (missing SDK, missing dependency, compilation errors) now surface as inspection results and IDE notifications instead of being silently ignored.</li>
13+
<li>When a Credo run partially succeeds before hitting a fatal error, findings from the successful portion are preserved.</li>
14+
</ul>
15+
</li>
16+
<li>
17+
<p>Bug Fixes</p>
18+
<ul>
19+
<li>Reduced UI freezes caused by Credo inspection lock contention under IntelliJ 2025.3+ writer-preference threading.</li>
20+
<li>Fixed Credo "Configure credo" notification action using an internal API that could fail on newer platform versions.</li>
21+
</ul>
22+
</li>
23+
</ul>
24+
425
<h1>v23.4.0</h1>
526
<ul>
627
<li>

0 commit comments

Comments
 (0)