services:
    phpDocumentor\Pipeline\PipelineFactory: ~

    # Will call all pipeline and stages tagged with 'phpdoc.pipeline.api_documentation.generate',
    # this includes both the parse and transform pipeline
    phpdoc.pipeline.complete:
      class: 'League\Pipeline\Pipeline'
      factory: ['@phpDocumentor\Pipeline\PipelineFactory', 'create']
      arguments: [!tagged phpdoc.pipeline.api_documentation.generate]

    phpdoc.pipeline.configuration:
      class: 'League\Pipeline\Pipeline'
      factory: ['@phpDocumentor\Pipeline\PipelineFactory', 'create']
      arguments: [!tagged phpdoc.pipeline.application.configuration]
      tags:
        - { name: 'phpdoc.pipeline.api_documentation.generate', priority: 10000 }

    phpdoc.pipeline.parse:
      class: 'League\Pipeline\Pipeline'
      factory: ['@phpDocumentor\Pipeline\PipelineFactory', 'create']
      arguments: [!tagged phpdoc.pipeline.api_documentation.parse]
      tags:
        - { name: 'phpdoc.pipeline.api_documentation.generate', priority: 8000 }

    phpdoc.pipeline.parse_api_documentation_set:
      class: 'League\Pipeline\Pipeline'
      factory: ['@phpDocumentor\Pipeline\PipelineFactory', 'create']
      arguments: [!tagged phpdoc.pipeline.api_documentation.parse_api_documentation_set]

    phpdoc.pipeline.compile:
      class: 'League\Pipeline\Pipeline'
      factory: ['@phpDocumentor\Pipeline\PipelineFactory', 'create']
      arguments: [!tagged phpdoc.pipeline.compile ]

    phpdoc.pipeline.compile.api_documentation:
      class: 'League\Pipeline\Pipeline'
      factory: ['@phpDocumentor\Pipeline\PipelineFactory', 'create']
      arguments: [!tagged phpdoc.pipeline.api_documentation.compile]

    phpdoc.pipeline.compile.guides:
      class: 'League\Pipeline\Pipeline'
      factory: ['@phpDocumentor\Pipeline\PipelineFactory', 'create']
      arguments: [!tagged phpdoc.pipeline.guides.compile]

    phpdoc.pipeline.transform:
      class: 'League\Pipeline\Pipeline'
      factory: ['@phpDocumentor\Pipeline\PipelineFactory', 'create']
      arguments: [!tagged phpdoc.pipeline.api_documentation.transform]
      tags:
        - { name: 'phpdoc.pipeline.api_documentation.generate', priority: 5000 }
