Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This pull request introduces several significant enhancements and refactors across the codebase, focusing on improved Apex analysis capabilities, CLI command additions, and project configuration updates. The most notable changes include the addition of a robust Apex AST parsing and classification system, the introduction of a new CLI
buildcommand, updates to dependencies and project structure, and the implementation of a flexible analyzer registry for package analysis.Apex Analysis and Parsing Enhancements:
ApexAstSerializerclass for obtaining and parsing Apex ASTs, supporting both remote server and local binary execution. This enables robust and type-safe Apex code analysis.ApexParserclass, which leverages the serializer to classify Apex files as classes, interfaces, triggers, or enums, and detect test classes. Includes bulk classification support.ApexTypeAnalyzeras a package analyzer, using the parser to categorize Apex classes, triggers, and test classes within a package.ApexServiceutility for categorizing Apex classes and tests from source components.CLI and Project Configuration Updates:
buildinbuild.tsfor building packages, with support for various flags and integration with the core package builder.project.tscommand to use the newProjectServicefor project definition loading, improving maintainability and consistency. [1] [2]bumpmethod, clarifying version management logic.Analyzer Registry & Core Library Improvements:
AnalyzerRegistrysystem with a decorator for registering and retrieving package analyzers, promoting modular analysis.Project and Dependency Management:
package.jsonto "sfpm" and "Salesforce Package Manager". Upgraded thepnpmversion requirement. [1] [2]vitest, and Prettier plugins for Apex. [1] [2]Development and Editor Configuration:
.prettierrcfile for consistent code formatting and a VSCode settings file for SOQL syntax highlighting. [1] [2]Apex Analysis and Parsing:
ApexAstSerializerandApexParserclasses for robust and type-safe Apex code classification, including support for server and binary AST retrieval, and bulk file analysis. [1] [2]ApexTypeAnalyzerfor categorizing Apex classes, triggers, and tests in packages, and registered it via the new analyzer registry system. [1] [2]ApexServicefor categorizing Apex classes and tests from source components.CLI and Project Configuration:
buildCLI command for building packages with various options, and updated project command logic to use the newProjectService. [1] [2] [3]bumpmethod in the version manager.Core Library and Analyzer Registry:
AnalyzerRegistryand decorator for registering package analyzers, and refactored core exports for clarity. [1] [2]Project and Dependency Management:
package.jsonand upgraded dependencies, including Salesforce libraries and dev tooling. [1] [2] [3] [4]Development and Editor Configuration: