SDGGiesbrecht/Workspace

Custom Plug‐In Tasks

SDGGiesbrecht opened this issue · 3 comments

Workspace should provide a general plug‐in system to allow custom tasks to be shared across projects.

  • A standard plug‐in would be a Swift Package which provides an executable.
  • Plug‐ins would be applied using an addition to the WorkspaceConfiguration so that a user can specify the package URL, version, product, command line arguments, etc.
  • Plug‐ins would be separately applicable to the refresh, proofread and validate phases.
  • To start with, plug‐in output should be displayed and success based on the exit code. Tighter integration could be added at a later date.

(This is almost how SwiftLint integration in implemented now. It just needs to generalized and surfaced in the configuration API. As part of implementing this feature, SwiftLint should lose its privileged status and become default plug‐in for the proofread phase.)

Plug‐ins should also support shell commands which do not originate from a Swift package.

Implemented in #262.

Custom tasks are available in Workspace 0.18.0.