diff options
Diffstat (limited to 'source/slang/slang.cpp')
| -rw-r--r-- | source/slang/slang.cpp | 28 |
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()); } } } |
