本文整理匯總了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;
}
示例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, '');
});
});
示例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');
});
});
示例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;
}
示例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';
}
示例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
};
});
}
}
}
}
示例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;
});