本文整理匯總了TypeScript中vs/editor/common/core/position.Position.delta方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Position.delta方法的具體用法?TypeScript Position.delta怎麽用?TypeScript Position.delta使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類vs/editor/common/core/position.Position
的用法示例。
在下文中一共展示了Position.delta方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: _addTokenRange
private _addTokenRange(bucket: Range[], model: ITextModel, pos: Position): void {
const tokens = model.getLineTokens(pos.lineNumber);
const index = tokens.findTokenIndexAtOffset(pos.column - 1);
const type = tokens.getStandardTokenType(index);
if (type === StandardTokenType.Other) {
return;
}
// grow left
let left: Position | undefined;
{
let leftIndex = index;
let leftTokens = tokens;
let leftLine = pos.lineNumber;
while (!left) {
let newLeftIndex = leftIndex - 1;
if (newLeftIndex < 0) {
if (leftLine > 1) {
leftLine -= 1;
leftTokens = model.getLineTokens(leftLine);
leftIndex = leftTokens.getCount();
} else {
left = new Position(1, 1);
}
} else {
if (leftTokens.getStandardTokenType(newLeftIndex) === type) {
leftIndex = newLeftIndex;
} else {
if (newLeftIndex === leftTokens.getCount() - 1) {
// we got here but there was nothing
left = new Position(leftLine + 1, 1);
} else {
left = new Position(leftLine, leftTokens.getStartOffset(leftIndex) + 1);
}
}
}
}
}
// grow right
let right: Position | undefined;
{
let rightIndex = index;
let rightTokens = tokens;
let rightLine = pos.lineNumber;
while (!right) {
let newRightIndex = rightIndex + 1;
if (newRightIndex >= rightTokens.getCount()) {
if (rightLine < model.getLineCount()) {
rightLine += 1;
rightTokens = model.getLineTokens(rightLine);
rightIndex = -1;
} else {
right = new Position(model.getLineCount(), model.getLineMaxColumn(model.getLineCount()));
}
} else {
if (rightTokens.getStandardTokenType(newRightIndex) === type) {
rightIndex = newRightIndex;
} else {
if (newRightIndex === 0) {
// we got here but there was nothing
right = new Position(rightLine - 1, model.getLineMaxColumn(rightLine - 1));
} else {
right = new Position(rightLine, rightTokens.getEndOffset(rightIndex) + 1);
}
}
}
}
}
if (type === StandardTokenType.String) {
// just assume that quotation marks are length=1
bucket.push(Range.fromPositions(left.delta(0, 1), right.delta(0, -1)));
bucket.push(Range.fromPositions(left, right));
} else {
bucket.push(Range.fromPositions(left, right));
}
}