mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-24 10:38:59 +01:00
allow to provide regexp when asking for word ranges, #15724
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
'use strict';
|
||||
|
||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||
import { regExpLeadsToEndlessLoop } from 'vs/base/common/strings';
|
||||
import * as editorCommon from 'vs/editor/common/editorCommon';
|
||||
import { MirrorModel2 } from 'vs/editor/common/model/mirrorModel2';
|
||||
import { IThreadService } from 'vs/workbench/services/thread/common/threadService';
|
||||
@@ -262,7 +263,7 @@ export class ExtHostDocumentData extends MirrorModel2 {
|
||||
positionAt(offset) { return data.positionAt(offset); },
|
||||
validateRange(ran) { return data.validateRange(ran); },
|
||||
validatePosition(pos) { return data.validatePosition(pos); },
|
||||
getWordRangeAtPosition(pos) { return data.getWordRangeAtPosition(pos); }
|
||||
getWordRangeAtPosition(pos, regexp?) { return data.getWordRangeAtPosition(pos, regexp); }
|
||||
};
|
||||
}
|
||||
return this._document;
|
||||
@@ -410,12 +411,14 @@ export class ExtHostDocumentData extends MirrorModel2 {
|
||||
return new Position(line, character);
|
||||
}
|
||||
|
||||
getWordRangeAtPosition(_position: vscode.Position): vscode.Range {
|
||||
getWordRangeAtPosition(_position: vscode.Position, regexp?: RegExp): vscode.Range {
|
||||
let position = this.validatePosition(_position);
|
||||
|
||||
if (!regexp || regExpLeadsToEndlessLoop(regexp)) {
|
||||
regexp = getWordDefinitionFor(this._languageId);
|
||||
}
|
||||
let wordAtText = getWordAtText(
|
||||
position.character + 1,
|
||||
ensureValidWordDefinition(getWordDefinitionFor(this._languageId)),
|
||||
ensureValidWordDefinition(regexp),
|
||||
this._lines[position.line],
|
||||
0
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user