mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 02:48:30 -05:00
This reverts commit d15a3fcc98.
This commit is contained in:
@@ -115,8 +115,8 @@ export class BracketSelectionRangeProvider implements SelectionRangeProvider {
|
||||
}
|
||||
const innerBracket = Range.fromPositions(bracket.range.getEndPosition(), closing!.getStartPosition());
|
||||
const outerBracket = Range.fromPositions(bracket.range.getStartPosition(), closing!.getEndPosition());
|
||||
bucket.push({ range: innerBracket });
|
||||
bucket.push({ range: outerBracket });
|
||||
bucket.push({ range: innerBracket, kind: 'statement.brackets' });
|
||||
bucket.push({ range: outerBracket, kind: 'statement.brackets.full' });
|
||||
BracketSelectionRangeProvider._addBracketLeading(model, outerBracket, bucket);
|
||||
}
|
||||
}
|
||||
@@ -135,8 +135,8 @@ export class BracketSelectionRangeProvider implements SelectionRangeProvider {
|
||||
const startLine = bracket.startLineNumber;
|
||||
const column = model.getLineFirstNonWhitespaceColumn(startLine);
|
||||
if (column !== 0 && column !== bracket.startColumn) {
|
||||
bucket.push({ range: Range.fromPositions(new Position(startLine, column), bracket.getEndPosition()) });
|
||||
bucket.push({ range: Range.fromPositions(new Position(startLine, 1), bracket.getEndPosition()) });
|
||||
bucket.push({ range: Range.fromPositions(new Position(startLine, column), bracket.getEndPosition()), kind: 'statement.brackets.leading' });
|
||||
bucket.push({ range: Range.fromPositions(new Position(startLine, 1), bracket.getEndPosition()), kind: 'statement.brackets.leading.full' });
|
||||
}
|
||||
|
||||
// xxxxxxxx
|
||||
@@ -147,8 +147,8 @@ export class BracketSelectionRangeProvider implements SelectionRangeProvider {
|
||||
if (aboveLine > 0) {
|
||||
const column = model.getLineFirstNonWhitespaceColumn(aboveLine);
|
||||
if (column === bracket.startColumn && column !== model.getLineLastNonWhitespaceColumn(aboveLine)) {
|
||||
bucket.push({ range: Range.fromPositions(new Position(aboveLine, column), bracket.getEndPosition()) });
|
||||
bucket.push({ range: Range.fromPositions(new Position(aboveLine, 1), bracket.getEndPosition()) });
|
||||
bucket.push({ range: Range.fromPositions(new Position(aboveLine, column), bracket.getEndPosition()), kind: 'statement.brackets.leading' });
|
||||
bucket.push({ range: Range.fromPositions(new Position(aboveLine, 1), bracket.getEndPosition()), kind: 'statement.brackets.leading.full' });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,12 +284,12 @@ export function provideSelectionRanges(model: ITextModel, positions: Position[],
|
||||
if (cur.startLineNumber !== prev.startLineNumber || cur.endLineNumber !== prev.endLineNumber) {
|
||||
// add line/block range without leading/failing whitespace
|
||||
const rangeNoWhitespace = new Range(prev.startLineNumber, model.getLineFirstNonWhitespaceColumn(prev.startLineNumber), prev.endLineNumber, model.getLineLastNonWhitespaceColumn(prev.endLineNumber));
|
||||
if (rangeNoWhitespace.containsRange(prev) && !rangeNoWhitespace.equalsRange(prev) && cur.containsRange(rangeNoWhitespace) && !cur.equalsRange(rangeNoWhitespace)) {
|
||||
if (rangeNoWhitespace.containsRange(prev) && !rangeNoWhitespace.equalsRange(prev)) {
|
||||
oneRangesWithTrivia.push(rangeNoWhitespace);
|
||||
}
|
||||
// add line/block range
|
||||
const rangeFull = new Range(prev.startLineNumber, 1, prev.endLineNumber, model.getLineMaxColumn(prev.endLineNumber));
|
||||
if (rangeFull.containsRange(prev) && !rangeFull.equalsRange(rangeNoWhitespace) && cur.containsRange(rangeFull) && !cur.equalsRange(rangeFull)) {
|
||||
if (rangeFull.containsRange(prev) && !rangeFull.equalsRange(rangeNoWhitespace)) {
|
||||
oneRangesWithTrivia.push(rangeFull);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import * as assert from 'assert';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { Range, IRange } from 'vs/editor/common/core/range';
|
||||
import { Position } from 'vs/editor/common/core/position';
|
||||
import { LanguageIdentifier, SelectionRangeProvider, SelectionRangeRegistry } from 'vs/editor/common/modes';
|
||||
import { LanguageIdentifier, SelectionRangeProvider } from 'vs/editor/common/modes';
|
||||
import { MockMode, StaticLanguageSelector } from 'vs/editor/test/common/mocks/mockMode';
|
||||
import { LanguageConfigurationRegistry } from 'vs/editor/common/modes/languageConfigurationRegistry';
|
||||
import { ModelServiceImpl } from 'vs/editor/common/services/modelServiceImpl';
|
||||
@@ -320,25 +320,4 @@ suite('SmartSelect', () => {
|
||||
new Range(1, 1, 1, 21),
|
||||
);
|
||||
});
|
||||
|
||||
test('Smart select: only add line ranges if they’re contained by the next range #73850', async function () {
|
||||
|
||||
const reg = SelectionRangeRegistry.register('*', {
|
||||
provideSelectionRanges() {
|
||||
return [[
|
||||
{ range: { startLineNumber: 1, startColumn: 10, endLineNumber: 1, endColumn: 11 } },
|
||||
{ range: { startLineNumber: 1, startColumn: 10, endLineNumber: 3, endColumn: 2 } },
|
||||
{ range: { startLineNumber: 1, startColumn: 1, endLineNumber: 3, endColumn: 2 } },
|
||||
]];
|
||||
}
|
||||
});
|
||||
|
||||
await assertGetRangesToPosition(['type T = {', '\tx: number', '}'], 1, 10, [
|
||||
new Range(1, 1, 3, 2), // all
|
||||
new Range(1, 10, 3, 2), // { ... }
|
||||
new Range(1, 10, 1, 11), // {
|
||||
]);
|
||||
|
||||
reg.dispose();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -20,7 +20,7 @@ export class WordSelectionRangeProvider implements SelectionRangeProvider {
|
||||
this._addInWordRanges(bucket, model, position);
|
||||
this._addWordRanges(bucket, model, position);
|
||||
this._addWhitespaceLine(bucket, model, position);
|
||||
bucket.push({ range: model.getFullModelRange() });
|
||||
bucket.push({ range: model.getFullModelRange(), kind: 'statement.all' });
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -65,14 +65,14 @@ export class WordSelectionRangeProvider implements SelectionRangeProvider {
|
||||
}
|
||||
|
||||
if (start < end) {
|
||||
bucket.push({ range: new Range(pos.lineNumber, startColumn + start, pos.lineNumber, startColumn + end) });
|
||||
bucket.push({ range: new Range(pos.lineNumber, startColumn + start, pos.lineNumber, startColumn + end), kind: 'statement.word.part' });
|
||||
}
|
||||
}
|
||||
|
||||
private _addWordRanges(bucket: SelectionRange[], model: ITextModel, pos: Position): void {
|
||||
const word = model.getWordAtPosition(pos);
|
||||
if (word) {
|
||||
bucket.push({ range: new Range(pos.lineNumber, word.startColumn, pos.lineNumber, word.endColumn) });
|
||||
bucket.push({ range: new Range(pos.lineNumber, word.startColumn, pos.lineNumber, word.endColumn), kind: 'statement.word' });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ export class WordSelectionRangeProvider implements SelectionRangeProvider {
|
||||
&& model.getLineFirstNonWhitespaceColumn(pos.lineNumber) === 0
|
||||
&& model.getLineLastNonWhitespaceColumn(pos.lineNumber) === 0
|
||||
) {
|
||||
bucket.push({ range: new Range(pos.lineNumber, 1, pos.lineNumber, model.getLineMaxColumn(pos.lineNumber)) });
|
||||
bucket.push({ range: new Range(pos.lineNumber, 1, pos.lineNumber, model.getLineMaxColumn(pos.lineNumber)), kind: 'statement.line' });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user