summaryrefslogtreecommitdiffstats
path: root/source/slang/slang.cpp
diff options
context:
space:
mode:
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());
}
}
}