當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript vscode-languageserver.Position類代碼示例

本文整理匯總了TypeScript中vscode-languageserver.Position的典型用法代碼示例。如果您正苦於以下問題:TypeScript Position類的具體用法?TypeScript Position怎麽用?TypeScript Position使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Position類的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: getFoldingRanges

export function getFoldingRanges(languageModes: LanguageModes, document: TextDocument, maxRanges: number | undefined, _cancellationToken: CancellationToken | null): FoldingRange[] {
	let htmlMode = languageModes.getMode('html');
	let range = Range.create(Position.create(0, 0), Position.create(document.lineCount, 0));
	let result: FoldingRange[] = [];
	if (htmlMode && htmlMode.getFoldingRanges) {
		result.push(...htmlMode.getFoldingRanges(document));
	}

	// cache folding ranges per mode
	let rangesPerMode: { [mode: string]: FoldingRange[] } = Object.create(null);
	let getRangesForMode = (mode: LanguageMode) => {
		if (mode.getFoldingRanges) {
			let ranges = rangesPerMode[mode.getId()];
			if (!Array.isArray(ranges)) {
				ranges = mode.getFoldingRanges(document) || [];
				rangesPerMode[mode.getId()] = ranges;
			}
			return ranges;
		}
		return [];
	};

	let modeRanges = languageModes.getModesInRange(document, range);
	for (let modeRange of modeRanges) {
		let mode = modeRange.mode;
		if (mode && mode !== htmlMode && !modeRange.attributeValue) {
			const ranges = getRangesForMode(mode);
			result.push(...ranges.filter(r => r.startLine >= modeRange.start.line && r.endLine < modeRange.end.line));
		}
	}
	if (maxRanges && result.length > maxRanges) {
		result = limitRanges(result, maxRanges);
	}
	return result;
}
開發者ID:PKRoma,項目名稱:vscode,代碼行數:35,代碼來源:htmlFolding.ts

示例2: it

 it('should return an empty string if ghc-mod "Cannot show info"', () => {
     let ghcModOutput = ['Cannot show info'];
     let position = Position.create(0, 5);
     let logger: ILogger = new TestLogger();
     let ghcMod: IGhcMod = new TestGhcMod(ghcModOutput);
     let provider: IGhcModProvider = new GhcModProvider(ghcMod,  '', logger );
     return provider.getType(null, null, position, false).then((info) => {
         assert.equal(info, '');
     });
 });
開發者ID:gdziadkiewicz,項目名稱:vscode-ghc-mod,代碼行數:10,代碼來源:ghcModProvider.spec.ts

示例3: it

 it('should return the info of the symbol at the position', () => {
     let ghcModOutput = ['Symbol', 'Info'];
     let position = Position.create(0, 5);
     let logger: ILogger = new TestLogger();
     let ghcMod: IGhcMod = new TestGhcMod(ghcModOutput);
     let provider: IGhcModProvider = new GhcModProvider(ghcMod,  '', logger );
     return provider.getInfo("Any text", null, position, false).then((info) => {
         assert.equal(info, 'Symbol\nInfo');
     });
 });
開發者ID:bravomikekilo,項目名稱:vscode-ghc-mod,代碼行數:10,代碼來源:ghcModProvider.spec.ts

示例4: getFoldingRanges

export function getFoldingRanges(languageModes: LanguageModes, document: TextDocument, maxRanges: number | undefined, cancellationToken: CancellationToken | null): FoldingRange[] {
	let htmlMode = languageModes.getMode('html');
	let range = Range.create(Position.create(0, 0), Position.create(document.lineCount, 0));
	let ranges: FoldingRange[] = [];
	if (htmlMode && htmlMode.getFoldingRanges) {
		ranges.push(...htmlMode.getFoldingRanges(document, range));
	}
	let modeRanges = languageModes.getModesInRange(document, range);
	for (let modeRange of modeRanges) {
		let mode = modeRange.mode;
		if (mode && mode !== htmlMode && mode.getFoldingRanges && !modeRange.attributeValue) {
			ranges.push(...mode.getFoldingRanges(document, modeRange));
		}
	}
	if (maxRanges && ranges.length > maxRanges) {
		ranges = limitRanges(ranges, maxRanges);
	}
	return ranges;
}
開發者ID:AllureFer,項目名稱:vscode,代碼行數:19,代碼來源:htmlFolding.ts

示例5: getEOL

function getEOL(document: ITextDocument): string {
	let text = document.getText();
	if (document.lineCount > 1) {
		let to = document.offsetAt(Position.create(1, 0));
		let from = to;
		while (from > 0 && isEOL(text, from - 1)) {
			from--;
		}
		return text.substr(from, to - from);
	}
	return '\n';
}
開發者ID:13572293130,項目名稱:vscode,代碼行數:12,代碼來源:jsonFormatter.ts

示例6: convertToLocalImagePath

async function convertToLocalImagePath(absoluteImagePath: string, urlMatch: UrlMatch): Promise<ImageInfo> {
    if (absoluteImagePath) {
        let isDataUri = absoluteImagePath.indexOf('data:image') == 0;
        let isExtensionSupported: boolean;

        if (!isDataUri) {
            const absoluteImageUrl = url.parse(absoluteImagePath);
            if (absoluteImageUrl && absoluteImageUrl.pathname) {
                let absolutePath = path.parse(absoluteImageUrl.pathname);
                isExtensionSupported = acceptedExtensions.some(
                    ext => absolutePath && absolutePath.ext && absolutePath.ext.toLowerCase().startsWith(ext)
                );
            }
        }

        const start = Position.create(urlMatch.lineIndex, urlMatch.start);
        const end = Position.create(urlMatch.lineIndex, urlMatch.end);
        const range = { start, end };

        absoluteImagePath = absoluteImagePath.replace(/\|(width=\d*)?(height=\d*)?/gm, '');

        if (isDataUri || isExtensionSupported) {
            if (isDataUri) {
                return Promise.resolve({
                    originalImagePath: absoluteImagePath,
                    imagePath: absoluteImagePath,
                    range
                });
            } else {
                return ImageCache.store(absoluteImagePath).then(imagePath => {
                    return {
                        originalImagePath: absoluteImagePath,
                        imagePath,
                        range
                    };
                });
            }
        }
    }
}
開發者ID:kisstkondoros,項目名稱:gutter-preview,代碼行數:40,代碼來源:server.ts

示例7:

connection.onRequest(TagCloseRequest.type, params => {
	let document = documents.get(params.textDocument.uri);
	if (document) {
		let pos = params.position;
		if (pos.character > 0) {
			let mode = languageModes.getModeAtPosition(document, Position.create(pos.line, pos.character - 1));
			if (mode && mode.doAutoClose) {
				return mode.doAutoClose(document, pos);
			}
		}
	}
	return null;
});
開發者ID:armanio123,項目名稱:vscode,代碼行數:13,代碼來源:htmlServerMain.ts


注:本文中的vscode-languageserver.Position類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。