Issues (85)

src/Environment/EnvironmentBuilderInterface.php (1 issue)

1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the league/commonmark package.
7
 *
8
 * (c) Colin O'Dell <[email protected]>
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace League\CommonMark\Environment;
15
16
use League\CommonMark\Delimiter\Processor\DelimiterProcessorInterface;
17
use League\CommonMark\Exception\AlreadyInitializedException;
18
use League\CommonMark\Extension\ExtensionInterface;
19
use League\CommonMark\Node\Node;
20
use League\CommonMark\Parser\Block\BlockStartParserInterface;
21
use League\CommonMark\Parser\Inline\InlineParserInterface;
22
use League\CommonMark\Renderer\NodeRendererInterface;
23
use League\Config\ConfigurationProviderInterface;
24
25
/**
26
 * Interface for building the Environment with any extensions, parsers, listeners, etc. that it may need
27
 */
28
interface EnvironmentBuilderInterface extends ConfigurationProviderInterface
29
{
30
    /**
31
     * Registers the given extension with the Environment
32
     *
33
     * @throws AlreadyInitializedException if the Environment has already been initialized
34
     */
35
    public function addExtension(ExtensionInterface $extension): EnvironmentBuilderInterface;
36
37
    /**
38
     * Registers the given block start parser with the Environment
39
     *
40
     * @param BlockStartParserInterface $parser   Block parser instance
41
     * @param int                       $priority Priority (a higher number will be executed earlier)
42
     *
43
     * @return $this
44
     *
45
     * @throws AlreadyInitializedException if the Environment has already been initialized
46
     */
47
    public function addBlockStartParser(BlockStartParserInterface $parser, int $priority = 0): EnvironmentBuilderInterface;
48
49
    /**
50
     * Registers the given inline parser with the Environment
51
     *
52
     * @param InlineParserInterface $parser   Inline parser instance
53
     * @param int                   $priority Priority (a higher number will be executed earlier)
54
     *
55
     * @return $this
56
     *
57
     * @throws AlreadyInitializedException if the Environment has already been initialized
58
     */
59
    public function addInlineParser(InlineParserInterface $parser, int $priority = 0): EnvironmentBuilderInterface;
60
61
    /**
62
     * Registers the given delimiter processor with the Environment
63
     *
64
     * @param DelimiterProcessorInterface $processor Delimiter processors instance
65
     *
66
     * @throws AlreadyInitializedException if the Environment has already been initialized
67
     */
68
    public function addDelimiterProcessor(DelimiterProcessorInterface $processor): EnvironmentBuilderInterface;
69
70
    /**
71
     * Registers the given node renderer with the Environment
72
     *
73
     * @param string                $nodeClass The fully-qualified node element class name the renderer below should handle
74
     * @param NodeRendererInterface $renderer  The renderer responsible for rendering the type of element given above
75
     * @param int                   $priority  Priority (a higher number will be executed earlier)
76
     *
77
     * @psalm-param class-string<Node> $nodeClass
78
     *
79
     * @return $this
80
     *
81
     * @throws AlreadyInitializedException if the Environment has already been initialized
82
     */
83
    public function addRenderer(string $nodeClass, NodeRendererInterface $renderer, int $priority = 0): EnvironmentBuilderInterface;
84
85
    /**
86
     * Registers the given event listener
87
     *
88
     * @param class-string $eventClass Fully-qualified class name of the event this listener should respond to
0 ignored issues
show
Documentation Bug introduced by
The doc comment class-string at position 0 could not be parsed: Unknown type name 'class-string' at position 0 in class-string.
Loading history...
89
     * @param callable     $listener   Listener to be executed
90
     * @param int          $priority   Priority (a higher number will be executed earlier)
91
     *
92
     * @return $this
93
     *
94
     * @throws AlreadyInitializedException if the Environment has already been initialized
95
     */
96
    public function addEventListener(string $eventClass, callable $listener, int $priority = 0): EnvironmentBuilderInterface;
97
}
98