summaryrefslogtreecommitdiffstats
path: root/source/slang/slang.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2021-03-15 12:48:20 -0400
committerGitHub <noreply@github.com>2021-03-15 09:48:20 -0700
commitb6de9a0091ab6a7414b46c7eb50f25b9512fb455 (patch)
treeadc37f1942d848446182f0dbb72dd1f487dbb587 /source/slang/slang.cpp
parentd8150e70612b58fb1cfefa262d3d862a6e6e79ba (diff)
Test Doc System (#1754)
* #include an absolute path didn't work - because paths were taken to always be relative. * Use capability system in docs. Simplify how requirements/availability is produced. * Small fixes in output of availablity. * Updated stdlib doc. * Small improvements. * Added doc test type. Improved readability of straight .md text Made -doc option output to diagnostic stream. * Add test for checking requirements info is correctly extracted. Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'source/slang/slang.cpp')
-rw-r--r--source/slang/slang.cpp28
1 files changed, 12 insertions, 16 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp
index ae3a1f419..93d7be310 100644
--- a/source/slang/slang.cpp
+++ b/source/slang/slang.cpp
@@ -1843,26 +1843,22 @@ SlangResult FrontEndCompileRequest::executeActionsInner()
// cause any problems with scoping
ASTBuilder* astBuilder = getLinkage()->getASTBuilder();
- for (TranslationUnitRequest* translationUnit : translationUnits)
- {
- RefPtr<DocMarkup> markup(new DocMarkup);
- DocMarkupExtractor::extract(translationUnit->getModuleDecl(), getSourceManager(), getSink(), markup);
+ ISlangWriter* writer = getSink()->writer;
- // Hmm.. we can have multiple sourcefiles. So fir now we just pick the first, so as to come up with
- // a reasonable name
- SourceFile* sourceFile = translationUnit->getSourceFiles()[0];
-
- // Extract to a file
- const String& path = sourceFile->getPathInfo().foundPath;
- if (path.getLength())
+ // Write output to the diagnostic writer
+ if (writer)
+ {
+ for (TranslationUnitRequest* translationUnit : translationUnits)
{
- String fileName = Path::getFileNameWithoutExt(path);
- fileName.append(".md");
+ RefPtr<DocMarkup> markup(new DocMarkup);
+ DocMarkupExtractor::extract(translationUnit->getModuleDecl(), getSourceManager(), getSink(), markup);
- DocMarkdownWriter writer(markup, astBuilder);
- writer.writeAll();
+ // Convert to markdown
+ DocMarkdownWriter markdownWriter(markup, astBuilder);
+ markdownWriter.writeAll();
- File::writeAllText(fileName, writer.getOutput());
+ UnownedStringSlice docText = markdownWriter.getOutput().getUnownedSlice();
+ writer->write(docText.begin(), docText.getLength());
}
}
}