Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 5x | import * as vscode from 'vscode';
import { container } from 'tsyringe';
import { VocabularyRepository } from '@faubulous/mentor-rdf';
import { ServiceToken } from '@src/services/tokens';
import { IDocumentContextService } from '@src/services/document';
import { IWorkspaceIndexerService, IWorkspaceRenameService } from '@src/services/core';
import { ResourceReferenceProvider, NotebookCellSlugCodeLensProvider } from '@src/providers';
import { TurtleUsageCodeLensProvider } from '@src/languages/turtle/providers';
import { XmlRenameProvider } from '@src/languages/xml/providers';
/**
* Registers the language feature providers for the RDF/XML language.
*
* This is a composition point: services are resolved from the container once
* and passed into the provider constructors.
*/
export class XmlTokenProvider {
private readonly _codelensProvider: TurtleUsageCodeLensProvider;
private readonly _notebookSlugCodelensProvider: NotebookCellSlugCodeLensProvider;
private readonly _referenceProvider: ResourceReferenceProvider;
private readonly _renameProvider: XmlRenameProvider;
constructor() {
const contextService = container.resolve<IDocumentContextService>(ServiceToken.DocumentContextService);
const vocabulary = container.resolve<VocabularyRepository>(ServiceToken.VocabularyRepository);
const workspaceIndexer = container.resolve<IWorkspaceIndexerService>(ServiceToken.WorkspaceIndexerService);
const renameService = container.resolve<IWorkspaceRenameService>(ServiceToken.WorkspaceRenameService);
this._codelensProvider = new TurtleUsageCodeLensProvider(contextService, workspaceIndexer, vocabulary);
this._notebookSlugCodelensProvider = new NotebookCellSlugCodeLensProvider(contextService);
this._referenceProvider = new ResourceReferenceProvider(contextService);
this._renameProvider = new XmlRenameProvider(contextService, renameService);
// Self-register with the extension context for automatic disposal
const context = container.resolve<vscode.ExtensionContext>(ServiceToken.ExtensionContext);
context.subscriptions.push(...this.registerForLanguage('xml'));
}
protected registerForLanguage(language: string): vscode.Disposable[] {
return [
vscode.languages.registerCodeLensProvider({ language }, this._codelensProvider),
vscode.languages.registerReferenceProvider({ language }, this._referenceProvider),
vscode.languages.registerRenameProvider({ language }, this._renameProvider),
vscode.languages.registerCodeLensProvider({ language }, this._notebookSlugCodelensProvider),
];
}
} |