-
Notifications
You must be signed in to change notification settings - Fork 308
/
Copy pathapigen.neon
147 lines (106 loc) · 3.58 KB
/
apigen.neon
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
parameters:
# string[], passed as arguments in CLI, e.g. ['src']
paths: []
# string[], --include in CLI, included files mask, e.g. ['*.php']
include: ['*.php']
# string[], --exclude in CLI, excluded files mask, e.g. ['tests/**']
exclude: []
# bool, should protected members be excluded?
excludeProtected: false
# bool, should private members be excluded?
excludePrivate: true
# string[], list of tags used for excluding class-likes and members
excludeTagged: ['internal']
# string, --output in CLI
outputDir: '%workingDir%/api'
# string | null
themeDir: null
# string, --title in CLI
title: ''
# string, --base-url in CLI
baseUrl: ''
# int, --workers in CLI
workerCount: 8
# string, --memory-limit in CLI
memoryLimit: '512M'
services:
# ApiGen
apigen:
factory: ApiGen\ApiGen(paths: %paths%, include: %include%, exclude: %exclude%)
# Locator
locator:
factory: ApiGen\Locator::create(projectDir: %workingDir%)
# Scheduler
scheduler.factory:
factory: ApiGen\Scheduler\SchedulerFactory(workerCount: %workerCount%)
# Analyzer
analyze.phpDocResolver:
factory: ApiGen\Analyzer\NodeVisitors\PhpDocResolver
analyzer.nodeTraverser:
type: PhpParser\NodeTraverserInterface
factory: PhpParser\NodeTraverser
setup!:
- addVisitor(@PhpParser\NodeVisitor\NameResolver)
- addVisitor(@ApiGen\Analyzer\NodeVisitors\PhpDocResolver)
analyzer.filter:
factory: ApiGen\Analyzer\Filter(excludeProtected: %excludeProtected%, excludePrivate: %excludePrivate%, excludeTagged: %excludeTagged%)
analyzer.taskHandlerFactory:
implement: ApiGen\Analyzer\AnalyzeTaskHandlerFactory
analyzer:
factory: ApiGen\Analyzer
# Indexer
indexer:
factory: ApiGen\Indexer
# Renderer
renderer.filter:
factory: ApiGen\Renderer\Filter
renderer.urlGenerator:
factory: ApiGen\Renderer\UrlGenerator(ApiGen\Helpers::baseDir(%paths%), %baseUrl%)
renderer.sourceHighlighter:
factory: ApiGen\Renderer\SourceHighlighter
renderer.latte.extension:
factory: ApiGen\Renderer\Latte\LatteExtension
renderer.latte.functions:
factory: ApiGen\Renderer\Latte\LatteFunctions
renderer.latte.engineFactory:
factory: ApiGen\Renderer\Latte\LatteEngineFactory(tempDir: %tempDir%, themeDir: %themeDir%)
renderer.latte.engine:
factory: @ApiGen\Renderer\Latte\LatteEngineFactory::create()
renderer.taskHandlerFactory:
implement: ApiGen\Renderer\Latte\LatteRenderTaskHandlerFactory
arguments:
outputDir: %outputDir%
renderer:
type: ApiGen\Renderer
factory: ApiGen\Renderer\Latte\LatteRenderer(outputDir: %outputDir%, title: %title%, version: %version%)
# league/commonmark
commonMark:
type: League\CommonMark\ConverterInterface
factory: League\CommonMark\GithubFlavoredMarkdownConverter
# nikic/php-parser
phpParser.nameResolver:
factory: PhpParser\NodeVisitor\NameResolver
phpParser.nameContext:
factory: @PhpParser\NodeVisitor\NameResolver::getNameContext()
phpParser.lexer:
type: PhpParser\Lexer
factory: ApiGen\Analyzer\BodySkippingLexer
phpParser.phpVersion:
type: PhpParser\PhpVersion
factory: PhpParser\PhpVersion::getHostVersion()
phpParser:
type: PhpParser\Parser
factory: PhpParser\Parser\Php8
# phpstan/phpdoc-parser
phpDocParser.typeParser:
factory: PHPStan\PhpDocParser\Parser\TypeParser
phpDocParser.constExprParser:
factory: PHPStan\PhpDocParser\Parser\ConstExprParser
phpDocParser.lexer:
factory: PHPStan\PhpDocParser\Lexer\Lexer
phpDocParser:
factory: PHPStan\PhpDocParser\Parser\PhpDocParser(requireWhitespaceBeforeDescription: true)
# symfony/console
symfonyConsole.output:
type: Symfony\Component\Console\Style\OutputStyle
imported: true