Better align language provider names and export styles

- Use named exports
- use `Md*` for providers
This commit is contained in:
Matt Bierner
2022-03-29 13:35:10 -07:00
parent b57db0fc49
commit 22fb4e9de8
14 changed files with 98 additions and 45 deletions

View File

@@ -138,7 +138,7 @@ function isLinkInsideCode(code: CodeInDocument, link: vscode.DocumentLink) {
code.inline.some(position => position.intersection(link.range));
}
export default class LinkProvider implements vscode.DocumentLinkProvider {
export class MdLinkProvider implements vscode.DocumentLinkProvider {
constructor(
private readonly engine: MarkdownEngine
) { }
@@ -179,7 +179,7 @@ export default class LinkProvider implements vscode.DocumentLinkProvider {
): vscode.DocumentLink[] {
const results: vscode.DocumentLink[] = [];
const definitions = LinkProvider.getDefinitions(text, document);
const definitions = MdLinkProvider.getDefinitions(text, document);
for (const match of text.matchAll(referenceLinkPattern)) {
let linkStart: vscode.Position;
let linkEnd: vscode.Position;

View File

@@ -13,7 +13,7 @@ interface MarkdownSymbol {
readonly children: vscode.DocumentSymbol[];
}
export default class MDDocumentSymbolProvider implements vscode.DocumentSymbolProvider {
export class MdDocumentSymbolProvider implements vscode.DocumentSymbolProvider {
constructor(
private readonly engine: MarkdownEngine

View File

@@ -14,7 +14,7 @@ interface MarkdownItTokenWithMap extends Token {
map: [number, number];
}
export default class MarkdownFoldingProvider implements vscode.FoldingRangeProvider {
export class MdFoldingProvider implements vscode.FoldingRangeProvider {
constructor(
private readonly engine: MarkdownEngine

View File

@@ -8,7 +8,7 @@ import * as vscode from 'vscode';
import { MarkdownEngine } from '../markdownEngine';
import { TableOfContents } from '../tableOfContentsProvider';
import { resolveUriToMarkdownFile } from '../util/openDocumentLink';
import LinkProvider from './documentLinkProvider';
import { MdLinkProvider } from './documentLinkProvider';
enum CompletionContextKind {
/** `[...](|)` */
@@ -75,10 +75,10 @@ function tryDecodeUriComponent(str: string): string {
}
}
export class PathCompletionProvider implements vscode.CompletionItemProvider {
export class MdPathCompletionProvider implements vscode.CompletionItemProvider {
public static register(selector: vscode.DocumentSelector, engine: MarkdownEngine): vscode.Disposable {
return vscode.languages.registerCompletionItemProvider(selector, new PathCompletionProvider(engine), '.', '/', '#');
return vscode.languages.registerCompletionItemProvider(selector, new MdPathCompletionProvider(engine), '.', '/', '#');
}
constructor(
@@ -230,7 +230,7 @@ export class PathCompletionProvider implements vscode.CompletionItemProvider {
const insertionRange = new vscode.Range(context.linkTextStartPosition, position);
const replacementRange = new vscode.Range(insertionRange.start, position.translate({ characterDelta: context.linkSuffix.length }));
const definitions = LinkProvider.getDefinitions(document.getText(), document);
const definitions = MdLinkProvider.getDefinitions(document.getText(), document);
for (const def of definitions) {
yield {
kind: vscode.CompletionItemKind.Reference,

View File

@@ -11,7 +11,7 @@ interface MarkdownItTokenWithMap extends Token {
map: [number, number];
}
export default class MarkdownSmartSelect implements vscode.SelectionRangeProvider {
export class MdSmartSelect implements vscode.SelectionRangeProvider {
constructor(
private readonly engine: MarkdownEngine

View File

@@ -8,7 +8,7 @@ import { SkinnyTextDocument, SkinnyTextLine } from '../tableOfContentsProvider';
import { Disposable } from '../util/dispose';
import { isMarkdownFile } from '../util/file';
import { Lazy, lazy } from '../util/lazy';
import MDDocumentSymbolProvider from './documentSymbolProvider';
import { MdDocumentSymbolProvider } from './documentSymbolProvider';
export interface WorkspaceMarkdownDocumentProvider {
getAllMarkdownDocuments(): Thenable<Iterable<SkinnyTextDocument>>;
@@ -128,13 +128,13 @@ class VSCodeWorkspaceMarkdownDocumentProvider extends Disposable implements Work
}
}
export default class MarkdownWorkspaceSymbolProvider extends Disposable implements vscode.WorkspaceSymbolProvider {
export class MdWorkspaceSymbolProvider extends Disposable implements vscode.WorkspaceSymbolProvider {
private readonly _symbolCache = new Map<string, Lazy<Thenable<vscode.SymbolInformation[]>>>();
private _symbolCachePopulated: boolean = false;
public constructor(
private _symbolProvider: MDDocumentSymbolProvider,
private _symbolProvider: MdDocumentSymbolProvider,
private _workspaceMarkdownDocumentProvider: WorkspaceMarkdownDocumentProvider = new VSCodeWorkspaceMarkdownDocumentProvider()
) {
super();