Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
3e5d3c9
Fix inverted isEnableInlineProblem checks
0verEngineer Sep 4, 2026
c05562f
Fix problem churn in the manual scan with multiple open projects
0verEngineer Sep 4, 2026
d2c148f
Honor the "Enable XML unescaping" setting
0verEngineer Sep 4, 2026
fa76245
Fix settings dialog state handling
0verEngineer Sep 4, 2026
788c2a0
Use the platform ActionManager for the intention popup
0verEngineer Sep 4, 2026
45ca69e
Make the color serialization independent of the alpha byte
0verEngineer Sep 4, 2026
677c48c
Close the readers in the Unity project detection
0verEngineer Sep 4, 2026
88b9640
Stop creating an AWT Canvas for every drawn problem label
0verEngineer Sep 4, 2026
7f02366
Reference the drawn inlays and highlighters directly
0verEngineer Sep 4, 2026
24b7686
Cache the parsed problem filter list
0verEngineer Sep 4, 2026
9d04c3f
Use hash based lookups in the problem manager
0verEngineer Sep 4, 2026
fcdd0ec
Clean up when editors and projects are closed
0verEngineer Sep 4, 2026
fa326f3
Support glob and regex entries in the problem filter list
0verEngineer Sep 4, 2026
c37cb26
Redraw the problems when the theme changes
0verEngineer Sep 4, 2026
c66ccd7
Turn the listener selection into a real enum
0verEngineer Sep 4, 2026
901d6cb
Make the problem line length offset configurable again
0verEngineer Sep 4, 2026
5326062
Update Gradle and the build plugins
0verEngineer Sep 4, 2026
0b4638f
Clean up the gitignore and the CI workflows
0verEngineer Sep 4, 2026
fafa599
Fix the README links and document how to build
0verEngineer Sep 4, 2026
19ef9d7
Run the IntelliJ Plugin Verifier in CI again
0verEngineer Sep 4, 2026
cc04d4a
Map additional info severities to INFORMATION, not INFO
0verEngineer Sep 4, 2026
76ec0aa
Raise the platform baseline to 2025.1 and migrate the build
0verEngineer Sep 4, 2026
cc74797
Modernize on top of the new platform baseline
0verEngineer Sep 4, 2026
3bde975
Trigger the intention popup without the action system
0verEngineer Sep 4, 2026
cbe497d
Stop redrawing every problem of a file on every keystroke
0verEngineer Sep 4, 2026
47f1af8
Batch the inlay changes and the highlight listener callbacks
0verEngineer Sep 4, 2026
8999137
Use the inlay batch mode on every entry point that draws
0verEngineer Sep 4, 2026
4dc5d46
Enter the inlay batch mode only when it pays off
0verEngineer Sep 4, 2026
71deef4
Build the drawing data once per editor instead of once per problem
0verEngineer Sep 4, 2026
d14d77c
Note that the batch mode threshold works on a lower bound
0verEngineer Sep 5, 2026
476320f
Ignore the remaining local review notes
0verEngineer Sep 5, 2026
6e069a9
Scan only the visible editors in the periodic scan
0verEngineer Sep 5, 2026
316801b
Index the problems by editor and line
0verEngineer Sep 5, 2026
61e3cb6
Reuse the DrawDetails per severity instead of per problem
0verEngineer Sep 5, 2026
84827ac
Ask the editor for the line width instead of measuring the text
0verEngineer Sep 5, 2026
626e858
Let the settings dialog initialize its widgets in one place
0verEngineer Sep 5, 2026
625643a
Keep the font fallback chain when building the label font
0verEngineer Sep 5, 2026
d1064ee
Document that undrawErrorLineHighlight modifies the list it is given
0verEngineer Sep 5, 2026
6a21544
Fix the actualStartffset typo
0verEngineer Sep 5, 2026
ef3d272
Stop tracking the .idea directory
0verEngineer Sep 5, 2026
3c0d884
Port the UI test setup to the 2.x plugin instead of dropping it
0verEngineer Sep 5, 2026
00757a9
Add the changelog entry for this branch
0verEngineer Sep 5, 2026
abf1c6a
Bump the version to 0.6.0
0verEngineer Sep 5, 2026
4258d50
cleanup
0verEngineer Sep 5, 2026
868243b
Do not ask the editor for the line width while drawing
0verEngineer Sep 5, 2026
e66de51
Fix the CI failure in instrumentCode and drop a deprecated DSL call
0verEngineer Sep 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Keeps the Gradle plugins/dependencies and the GitHub Actions up to date.
# https://docs.github.com/code-security/dependabot/dependabot-version-updates
version: 2
updates:
- package-ecosystem: gradle
directory: /
schedule:
interval: monthly
open-pull-requests-limit: 5

- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
open-pull-requests-limit: 5
14 changes: 10 additions & 4 deletions .github/workflows/beta-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
steps:
# Check out current repository
- name: Fetch Sources
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
# Source branch
ref: ${{ github.head_ref }}
Expand All @@ -31,12 +31,18 @@ jobs:
sed -i "/pluginVersion = / s/ = .*/ = $VERSION_WITH_BUILDNUMBER/" gradle.properties
echo "Version: $VERSION_WITH_BUILDNUMBER"

# Setup Java 11 environment for the next steps
# Setup Java 21 environment for the next steps
- name: Setup Java
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 11
java-version: 21

# Setup Gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-home-cache-cleanup: true

# Publish the plugin to the Marketplace, this should automatically use the 'beta' channel because we changed the
# version in gradle.properties to version-beta
Expand Down
39 changes: 16 additions & 23 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ jobs:
outputs:
version: ${{ steps.properties.outputs.version }}
changelog: ${{ steps.properties.outputs.changelog }}
pluginVerifierHomeDir: ${{ steps.properties.outputs.pluginVerifierHomeDir }}
steps:

# Free GitHub Actions Environment Disk Space
Expand All @@ -49,12 +48,12 @@ jobs:
- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2

# Setup Java 11 environment for the next steps
# Setup Java 21 environment for the next steps
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 11
java-version: 21

# Setup Gradle
- name: Setup Gradle
Expand All @@ -74,12 +73,10 @@ jobs:

echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "name=$NAME" >> $GITHUB_OUTPUT
echo "pluginVerifierHomeDir=~/.pluginVerifier" >> $GITHUB_OUTPUT

echo "changelog<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGELOG" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
./gradlew listProductsReleases # prepare list of IDEs for Plugin Verifier

# Build plugin
- name: Build plugin
Expand Down Expand Up @@ -118,7 +115,7 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 11
java-version: 21

# Setup Gradle
- name: Setup Gradle
Expand All @@ -138,12 +135,6 @@ jobs:
name: tests-result
path: ${{ github.workspace }}/build/reports/tests

# Upload the Kover report to CodeCov
- name: Upload Code Coverage Report
uses: codecov/codecov-action@v4
with:
files: ${{ github.workspace }}/build/reports/kover/report.xml

# Run Qodana inspections and provide report
inspectCode:
name: Inspect code
Expand Down Expand Up @@ -179,7 +170,13 @@ jobs:
with:
cache-default-branch-only: true

# Run plugin structure verification along with IntelliJ Plugin Verifier
# Run the plugin structure verification and the IntelliJ Plugin Verifier. Note the task names,
# they were swapped by the move to the IntelliJ Platform Gradle Plugin 2.x:
# verifyPluginStructure - validates the plugin.xml descriptors and the archive structure
# (this was called verifyPlugin with the 1.x plugin)
# verifyPlugin - the IntelliJ Plugin Verifier, checks binary compatibility against
# the IDE build pinned in gradle.properties (pluginVerifierIdeVersions)
# (this was called runPluginVerifier with the 1.x plugin)
verify:
name: Verify plugin
needs: [ build ]
Expand All @@ -202,24 +199,20 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 11
java-version: 21

# Setup Gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-home-cache-cleanup: true

# Cache Plugin Verifier IDEs
- name: Setup Plugin Verifier IDEs Cache
uses: actions/cache@v4
with:
path: ${{ needs.build.outputs.pluginVerifierHomeDir }}/ides
key: plugin-verifier-${{ hashFiles('build/listProductsReleases.txt') }}

# Run Verify Plugin task and IntelliJ Plugin Verifier tool
# No dedicated IDE cache: the 2.x plugin resolves the verified IDE as a regular Gradle
# dependency, so it lands in the Gradle cache that setup-gradle already handles. One IDE is
# roughly 4 GB, so keep pluginVerifierIdeVersions short - GitHub allows 10 GB of caches per
# repository in total.
- name: Run Plugin Verification tasks
run: ./gradlew verifyPlugin -Dplugin.verifier.home.dir=${{ needs.build.outputs.pluginVerifierHomeDir }}
run: ./gradlew verifyPluginStructure verifyPlugin

# Collect Plugin Verifier Result
- name: Collect Plugin Verifier Result
Expand Down
14 changes: 10 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,22 @@ jobs:

# Check out current repository
- name: Fetch Sources
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ github.event.release.tag_name }}

# Setup Java 11 environment for the next steps
# Setup Java 21 environment for the next steps
- name: Setup Java
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 11
java-version: 21

# Setup Gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-home-cache-cleanup: true

# Publish the plugin to the Marketplace
- name: Publish Plugin
Expand Down
74 changes: 46 additions & 28 deletions .github/workflows/run-ui-tests.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
# GitHub Actions Workflow for launching UI tests on Linux, Windows, and Mac in the following steps:
# - prepare and launch IDE with your plugin and robot-server plugin, which is needed to interact with UI
# - wait for IDE to start
# - run UI tests with separate Gradle task
# GitHub Actions Workflow for running the UI tests against a real IDE.
#
# Please check https://github.com/JetBrains/intellij-ui-test-robot for information about UI tests with IntelliJ Platform
# UI tests are driven by the IntelliJ Starter framework through the `testIdeUi` task of the
# IntelliJ Platform Gradle Plugin 2.x. The test code starts and drives the IDE itself, so unlike
# the old runIdeForUiTests setup there is no separate "start the IDE and wait for the robot server"
# dance - the task is all that has to run.
#
# Note: there are no UI tests in the project yet, so the task currently runs an empty suite. The
# workflow exists so that adding the first test under src/test is enough to get it covered here.
#
# Please check https://plugins.jetbrains.com/docs/intellij/testing-plugins.html for information
# about testing plugins.
#
# Workflow is triggered manually.

Expand All @@ -14,46 +20,58 @@ on:
jobs:

testUI:
name: Run UI Tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# A real IDE needs a display, which a Linux runner does not have
- os: ubuntu-latest
runIde: |
export DISPLAY=:99.0
Xvfb -ac :99 -screen 0 1920x1080x16 &
gradle runIdeForUiTests &
uiTests: xvfb-run --auto-servernum ./gradlew testIdeUi
- os: windows-latest
runIde: start gradlew.bat runIdeForUiTests
uiTests: ./gradlew testIdeUi
- os: macos-latest
runIde: ./gradlew runIdeForUiTests &
uiTests: ./gradlew testIdeUi

steps:

# Free GitHub Actions Environment Disk Space, an IDE download needs several GB
- name: Maximize Build Space
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
large-packages: false

# Check out current repository
- name: Fetch Sources
uses: actions/checkout@v3
uses: actions/checkout@v4

# Setup Java 11 environment for the next steps
# Setup Java 21 environment for the next steps
- name: Setup Java
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 11
java-version: 21

# Run IDEA prepared for UI testing
- name: Run IDE
run: ${{ matrix.runIde }}

# Wait for IDEA to be started
- name: Health Check
uses: jtalk/url-health-check-action@v3
# Setup Gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
url: http://127.0.0.1:8082
max-attempts: 15
retry-delay: 30s
gradle-home-cache-cleanup: true

# Run the UI tests
- name: Run UI Tests
run: ${{ matrix.uiTests }}

# Run tests
- name: Tests
run: ./gradlew test
# Collect the results of failed tests, including the IDE logs and screenshots the Starter
# framework writes for a failed run
- name: Collect UI Test Results
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ui-test-results-${{ matrix.os }}
path: |
${{ github.workspace }}/build/reports/tests
${{ github.workspace }}/build/idea-ide-starter
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,20 @@
.gradle
.qodana
.intellijPlatform
build

### Local only ###
# Environment files with local tokens/secrets
.env
.env.*
# Local review/planning notes
IMPROVEMENTS.md
improvements_offen.md
idea.log
# AI assistant working directories
.claude/
.aider*

!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
Expand All @@ -11,6 +24,8 @@ build
*.iml
*.ipr
out/
# The IDE rewrites these on every version change, so they are not tracked
.idea/
!**/src/main/**/out/
!**/src/test/**/out/

Expand Down
8 changes: 0 additions & 8 deletions .idea/.gitignore

This file was deleted.

18 changes: 0 additions & 18 deletions .idea/codeStyles/Project.xml

This file was deleted.

5 changes: 0 additions & 5 deletions .idea/codeStyles/codeStyleConfig.xml

This file was deleted.

16 changes: 0 additions & 16 deletions .idea/compiler.xml

This file was deleted.

7 changes: 0 additions & 7 deletions .idea/discord.xml

This file was deleted.

17 changes: 0 additions & 17 deletions .idea/gradle.xml

This file was deleted.

Loading
Loading