Skip to content

Commit 19f4531

Browse files
committed
Write a Templates alias with all template names
1 parent 2f39065 commit 19f4531

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

bin/annotate

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ require_once __DIR__ . '/../vendor/autoload.php';
117117
}
118118
$progressBar->advance();
119119
}
120+
$xmlFileParser->writeTemplatesFile('_templates.lua', $outputDir);
120121
$progressBar->finish();
121122

122123
$io->success('Done!');

src/XmlFileParser.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,28 @@ public function writeAnnotationsToFile(string $filename, string $outDir, string
202202
file_put_contents($targetFile, $data);
203203
}
204204

205+
public function writeTemplatesFile(string $filename, string $outDir): void
206+
{
207+
$targetFile = $outDir . '/' . $filename . '.annotated.lua';
208+
if (!is_dir(dirname($targetFile))) {
209+
mkdir($outDir . '/' . dirname($filename), recursive: true);
210+
}
211+
212+
$data = "--- @meta _\n\n--- @diagnostic disable-next-line: duplicate-doc-alias\n--- @alias Template\n";
213+
$templateNames = array_map(fn (Template $template) => $template->getName(), $this->templateRegistry->all());
214+
$templateNames = array_unique(array_filter($templateNames));
215+
sort($templateNames, SORT_NATURAL | SORT_FLAG_CASE);
216+
$data .= sprintf(
217+
"--- | %s\n",
218+
implode(
219+
"\n--- | ",
220+
array_map(fn (string $name) => json_encode($name), $templateNames),
221+
),
222+
);
223+
224+
file_put_contents($targetFile, $data);
225+
}
226+
205227
public function writeRawXmlToFile(string $filename, string $outDir, string $prefixToStrip): void
206228
{
207229
$targetFile = $filename;

0 commit comments

Comments
 (0)