Path: blob/main/extensions/markdown-language-features/src/client/inMemoryDocument.ts
3292 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { TextDocument } from 'vscode-languageserver-textdocument';6import * as vscode from 'vscode';7import { ITextDocument } from '../types/textDocument';89export class InMemoryDocument implements ITextDocument {1011private readonly _doc: TextDocument;1213public readonly uri: vscode.Uri;14public readonly version: number;1516constructor(17uri: vscode.Uri,18contents: string,19version: number = 0,20) {21this.uri = uri;22this.version = version;23this._doc = TextDocument.create(this.uri.toString(), 'markdown', 0, contents);24}2526getText(range?: vscode.Range): string {27return this._doc.getText(range);28}2930positionAt(offset: number): vscode.Position {31const pos = this._doc.positionAt(offset);32return new vscode.Position(pos.line, pos.character);33}34}353637