Skip to content

Conversation

@hurricup
Copy link
Collaborator

@hurricup hurricup commented Jan 19, 2026

Summary by CodeRabbit

  • Documentation

    • Updated inspection descriptions for improved clarity and American English consistency.
    • Enhanced Javadoc formatting with improved code notation and examples.
  • Chores

    • Updated copyright year metadata across multiple files.
    • Corrected minor spelling inconsistencies in documentation.
    • Added new issue tracking patterns for improved error categorization.

✏️ Tip: You can customize this high-level summary in your review settings.

@hurricup hurricup enabled auto-merge (rebase) January 19, 2026 09:45
@coderabbitai
Copy link

coderabbitai bot commented Jan 19, 2026

📝 Walkthrough

Walkthrough

This PR updates copyright years to 2026, improves documentation and spelling across multiple files, refactors Kotlin string literals using template syntax, updates test macros for run configuration serialization, and adds new error patterns to the YouTrack workflow for issue tracking.

Changes

Cohort / File(s) Summary
Copyright & Documentation Updates
plugin/common/src/main/java/com/perl5/lang/perl/extensions/packageprocessor/impl/FileSpecFunctionsProcessor.java, plugin/wsl/src/main/java/com/perl5/lang/perl/idea/sdk/host/wsl/PerlWslHandler.java, mason/mason2/common/src/main/java/com/perl5/lang/mason2/psi/impl/MasonFilterDefinition.kt, plugin/common/src/main/java/com/perl5/lang/perl/util/PerlHashUtilCore.java
Copyright year updated to 2026; Javadoc clarifications and spelling fixes ("initialising" → "initializing"); COLLAPSED_LISTS documentation expanded with code-tagged notation
Kotlin String Literal Refactoring
mason/mason2/.../MasonFilterDefinition.kt, plugin/common/src/main/java/com/perl5/lang/perl/idea/intellilang/PerlDefaultInjectionMarkers.kt
String constant values refactored from escaped syntax (\$yield, \$XSLT) to Kotlin template string format ($$"$yield", $$\"XSLT\")
Build & Path Logic
build.gradle.kts
IDE_HOME path replacement logic updated with nested dirname calls; minor formatting adjustments
Inspection Documentation
plugin/backend/src/main/resources/inspectionDescriptions/LoopControlInspection.html, plugin/backend/src/main/resources/inspectionDescriptions/PodOverlessItem.html
American English spelling standardization ("behaviour" → "behavior"); descriptive text clarified (removed "of")
Test Configuration
plugin/src/test/java/unit/perl/PerlRunConfigurationSerializationTest.kt
Macro syntax updated: removed ${'$'} wrapper around PROJECT_DIR; test expectations adjusted for direct $PROJECT_DIR$ substitution
YouTrack Workflow Patterns
youtrack/workflows/manual.js
Four new error pattern entries added for automatic issue linking: "Exception: Outdated stub in index", "AssertionError: No ID found for serializer", "Throwable: Stub ids not found", "IOException: new record" patterns

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Hurricup/macro collapse #3024: Modifies the same PerlRunConfigurationSerializationTest.kt file and run-configuration macro handling logic with related test expectations.
  • Hurriucp/cleanup #3028: Updates the same PerlDefaultInjectionMarkers.kt file with related marker string value changes.
  • Hurricup/yt workflows #3104: Modifies the same youtrack/workflows/manual.js workflow configuration file with pattern additions.

Poem

🐰 Copyright grows old, so we make it new,
String syntax sparkles in Kotlin's bright hue,
Patterns and configs dance hand in hand,
Documentation flourishes across the codebase land!
A tidy refresh, from corner to core. ✨

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Hurricup/fixes' is vague and generic, providing no meaningful information about the changeset. It appears to be a branch name rather than a descriptive title. Replace the title with a clear, descriptive summary of the main changes, such as 'Update copyright years, fix spelling/grammar, and update string literals' or focus on the primary behavioral change if there is one.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@plugin/common/src/main/java/com/perl5/lang/perl/idea/intellilang/PerlDefaultInjectionMarkers.kt`:
- Line 225: Replace the invalid Kotlin string syntax used for the "XSLT" mapping
in PerlDefaultInjectionMarkers (the entry currently using $$"$XSLT"); update the
value to use an escaped dollar sign in a normal Kotlin string (i.e. use
"\$XSLT") so the code compiles; locate the mapping for "XSLT" in the
PerlDefaultInjectionMarkers.kt file and change the right-hand string
accordingly.

"XPATH" to "XPath",
"XPATH2" to "XPath2",
"XSLT" to "\$XSLT",
"XSLT" to $$"$XSLT",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# Find build configuration files to determine Kotlin version
find . -type f \( -name "build.gradle*" -o -name "pom.xml" -o -name "gradle.properties" -o -name "build.gradle.kts" \) | head -20

Repository: Camelcade/Perl5-IDEA

Length of output: 829


🏁 Script executed:

# Read the file in question around line 225
cat -n plugin/common/src/main/java/com/perl5/lang/perl/idea/intellilang/PerlDefaultInjectionMarkers.kt | sed -n '210,235p'

Repository: Camelcade/Perl5-IDEA

Length of output: 675


🏁 Script executed:

# Search for Kotlin version constraints
rg "kotlin" --type gradle --type xml -i | grep -E "(version|target)" | head -20

Repository: Camelcade/Perl5-IDEA

Length of output: 46


🏁 Script executed:

# Check gradle.properties for Kotlin version
cat gradle.properties | grep -i kotlin

Repository: Camelcade/Perl5-IDEA

Length of output: 102


🏁 Script executed:

# Check the root build.gradle.kts for Kotlin plugin
head -50 build.gradle.kts | grep -i kotlin

Repository: Camelcade/Perl5-IDEA

Length of output: 204


🏁 Script executed:

# Search for kotlin version in gradle files
rg "kotlin.*=.*[0-9]" | head -20

Repository: Camelcade/Perl5-IDEA

Length of output: 46


🏁 Script executed:

# Check the specific module's build file
cat plugin/common/build.gradle.kts | grep -i kotlin

Repository: Camelcade/Perl5-IDEA

Length of output: 93


🏁 Script executed:

# Search for $$" pattern in the codebase
rg '\$\$"' --type kt

Repository: Camelcade/Perl5-IDEA

Length of output: 90


🏁 Script executed:

# Check if there are other similar lines in the same file
rg 'to "\$' plugin/common/src/main/java/com/perl5/lang/perl/idea/intellilang/PerlDefaultInjectionMarkers.kt

Repository: Camelcade/Perl5-IDEA

Length of output: 46


🏁 Script executed:

# Look at more context around line 225 to understand the data structure
cat -n plugin/common/src/main/java/com/perl5/lang/perl/idea/intellilang/PerlDefaultInjectionMarkers.kt | sed -n '200,230p'

Repository: Camelcade/Perl5-IDEA

Length of output: 1005


🏁 Script executed:

# Search for $$" pattern without file type restriction
rg '\$\$"'

Repository: Camelcade/Perl5-IDEA

Length of output: 23660


🏁 Script executed:

# Check the whole file to see context and structure
wc -l plugin/common/src/main/java/com/perl5/lang/perl/idea/intellilang/PerlDefaultInjectionMarkers.kt

Repository: Camelcade/Perl5-IDEA

Length of output: 163


🏁 Script executed:

# Get the beginning of the file to understand the data structure
head -30 plugin/common/src/main/java/com/perl5/lang/perl/idea/intellilang/PerlDefaultInjectionMarkers.kt

Repository: Camelcade/Perl5-IDEA

Length of output: 1083


Fix invalid string syntax; $$"..." is not valid Kotlin.

The syntax $$"$XSLT" will not compile in Kotlin 2.3.0 or any prior version. Use "\$XSLT" to include a literal dollar sign.

Correct syntax
-    "XSLT" to $$"$XSLT",
+    "XSLT" to "\$XSLT",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"XSLT" to $$"$XSLT",
"XSLT" to "\$XSLT",
🤖 Prompt for AI Agents
In
`@plugin/common/src/main/java/com/perl5/lang/perl/idea/intellilang/PerlDefaultInjectionMarkers.kt`
at line 225, Replace the invalid Kotlin string syntax used for the "XSLT"
mapping in PerlDefaultInjectionMarkers (the entry currently using $$"$XSLT");
update the value to use an escaped dollar sign in a normal Kotlin string (i.e.
use "\$XSLT") so the code compiles; locate the mapping for "XSLT" in the
PerlDefaultInjectionMarkers.kt file and change the right-hand string
accordingly.

@sonarqubecloud
Copy link

@coveralls
Copy link

Coverage Status

coverage: 76.006% (+0.05%) from 75.953%
when pulling af8e4e7 on hurricup/fixes
into f6fd0e5 on master.

@hurricup hurricup merged commit df85e10 into master Jan 20, 2026
73 of 80 checks passed
@hurricup hurricup deleted the hurricup/fixes branch January 20, 2026 03:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants