Skip to content

Merge apex-types repository into outline-parser#23

Merged
nawforce merged 4 commits into
mainfrom
merge-apex-types-into-outline-parser
Mar 14, 2026
Merged

Merge apex-types repository into outline-parser#23
nawforce merged 4 commits into
mainfrom
merge-apex-types-into-outline-parser

Conversation

@nawforce

Copy link
Copy Markdown
Contributor

Summary

This PR merges the apex-types repository (v1.3.0) into outline-parser to simplify the dependency chain and enable future improvements to diagnostic position reporting.

Changes

Added Files (25 total)

  • 18 Scala files - Core type definitions from com.financialforce.types
    • Type interfaces: ITypeDeclaration, IMethodDeclaration, IFieldDeclaration, IConstructorDeclaration, etc.
    • Base types: Modifier, Annotation, Location, TypeRef, QualifiedName, etc.
  • 3 Scala files - JS platform-specific API (io.github.apexdevtools.api)
  • 4 Java files - JVM platform-specific API and SPI (io.github.apexdevtools.api + io.github.apexdevtools.spi)

Modified Files

  • build.sbt: Removed apex-types dependency
  • README.md: Added note about bundled type definitions

Testing

✅ All 6,302 existing tests pass successfully

  • JVM tests: ✅ Passed
  • JS tests: ✅ Passed (RPC cleanup error is known/benign)

Benefits

  1. Simplified dependency chain: Reduces from 3 repos (apex-types → outline-parser → apex-ls) to 2 repos
  2. Enables position fixes: Can now add location fields to Modifier and Annotation without cross-repo coordination
  3. Faster iteration: Changes to type definitions and parser can be tested together
  4. Reduced maintenance: One less repo to maintain, one less version to coordinate

Migration Path for Consumers

Before (outline-parser 1.x):

libraryDependencies ++= Seq(
  "io.github.apex-dev-tools" %%% "apex-types" % "1.3.0",
  "io.github.apex-dev-tools" %%% "outline-parser" % "1.2.1"
)

After (outline-parser 2.0.0):

libraryDependencies ++= Seq(
  "io.github.apex-dev-tools" %%% "outline-parser" % "2.0.0"
)

Import paths remain unchanged (com.financialforce.types.*), so no code changes needed in consumers.

Next Steps

After this is merged:

Related Issues

Closes #18
Related to apex-dev-tools/apex-ls#434

This commit merges the apex-types library (v1.3.0) into outline-parser
to simplify the dependency chain and enable future improvements to
diagnostic position reporting.

Changes:
- Added all apex-types source files (18 Scala, 4 Java, 3 JS-specific)
  - com.financialforce.types.* (type interfaces)
  - com.financialforce.types.base.* (base types like Modifier, Annotation, Location)
  - io.github.apexdevtools.api.* (Issue API for JVM/JS)
  - io.github.apexdevtools.spi.* (AnalysisProvider SPI for JVM)
- Removed apex-types dependency from build.sbt
- Updated project description to reflect bundled type definitions
- Updated README.md to document the merge

All 6,302 existing tests pass successfully.

This is a foundation for addressing diagnostic position issues reported
in apex-dev-tools/apex-ls#434.

Resolves #18
- Update Java 8 -> 17
- Update Node 16 -> 22
- Add sbt/setup-sbt@v1 to install sbt
- Update checkout action v3 -> v4

This aligns with apex-ls and uses currently supported versions.
- Update Java 8 -> 17
- Update Node 16 -> 22
- Update apex-samples v1.0.2 -> v1.4.0
- Add sbt/setup-sbt@v1 to install sbt
- Update checkout action v3 -> v4

This aligns with apex-ls and uses currently supported versions.
All 6,302 tests pass with these updates.
@nawforce nawforce requested a review from kjonescertinia March 13, 2026 23:12
@nawforce nawforce merged commit c6e97d6 into main Mar 14, 2026
1 check passed
@nawforce nawforce deleted the merge-apex-types-into-outline-parser branch March 14, 2026 09:56
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.

Merge apex-types into outline-parser

2 participants