Introduce the concept of a SkinnyTextDocument that provides minimal interface to generate toc

This commit is contained in:
Matt Bierner
2018-06-04 10:41:03 -07:00
parent 8ea7f77c44
commit 7b69194f91
3 changed files with 14 additions and 7 deletions

View File

@@ -5,7 +5,7 @@
import * as vscode from 'vscode';
import { MarkdownEngine } from '../markdownEngine';
import { TableOfContentsProvider } from '../tableOfContentsProvider';
import { TableOfContentsProvider, SkinnyTextDocument } from '../tableOfContentsProvider';
export default class MDDocumentSymbolProvider implements vscode.DocumentSymbolProvider {
@@ -14,7 +14,7 @@ export default class MDDocumentSymbolProvider implements vscode.DocumentSymbolPr
private readonly engine: MarkdownEngine
) { }
public async provideDocumentSymbols(document: vscode.TextDocument): Promise<vscode.SymbolInformation[]> {
public async provideDocumentSymbols(document: SkinnyTextDocument): Promise<vscode.SymbolInformation[]> {
const toc = await new TableOfContentsProvider(this.engine, document).getToc();
return toc.map(entry => {
return new vscode.SymbolInformation('#'.repeat(entry.level) + ' ' + entry.text, vscode.SymbolKind.String, '', entry.location);