Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 2.07 KB

File metadata and controls

39 lines (33 loc) · 2.07 KB

Adding new Update part

  1. Add new field to Update
  2. Add new entry to UpdateType
  3. Add new ProcessedUpdate subclass
  4. Add new clause to processUpdate()
  5. Update KSP module:
  6. Run helper ksp to add a new section for FunctionalDSLUtils

KSP Module Structure

The KSP processor is organized into the following packages:

  • annotation/ - Annotation parsing and extraction
    • AnnotationParser - Parses annotation arguments into typed values
    • AnnotationExtractor - Extracts annotations from functions with priority handling (function > class > default)
  • codegen/ - Code generation components
    • ActivityCodeGenerator - Generates Activity objects from function declarations
    • InvocationCodeGenerator - Generates invocation code blocks for Activities
    • ParameterResolver - Resolves function parameters to resolution strategies
    • TypeMapper - Maps TypeNames to update type classes
  • collectors/ - Handler collectors
    • BaseCollector - Base class with common functionality
    • CommandCollector, InputCollector, CommonCollector, etc.
  • dto/ - Data transfer objects
    • ParameterResolutionStrategy - Sealed class for parameter resolution strategies
    • ActivityMetadata, CollectorsContext, etc.
  • utils/ - Utility functions and constants
    • TypeConstants - Centralized type name constants

Preparing release

  1. If there's some api changes hit gradle apiDump task.
  2. Run gradle's prepareRelease task.