mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-21 20:30:29 -04:00
Merge VS Code 1.31.1 (#4283)
This commit is contained in:
@@ -9,6 +9,7 @@ import { URI } from 'vs/base/common/uri';
|
||||
import { CoreEditingCommands } from 'vs/editor/browser/controller/coreCommands';
|
||||
import { EditOperation } from 'vs/editor/common/core/editOperation';
|
||||
import { Range } from 'vs/editor/common/core/range';
|
||||
import { Position } from 'vs/editor/common/core/position';
|
||||
import { Selection } from 'vs/editor/common/core/selection';
|
||||
import { TokenizationResult2 } from 'vs/editor/common/core/token';
|
||||
import { Handler } from 'vs/editor/common/editorCommon';
|
||||
@@ -27,6 +28,8 @@ import { IStorageService, InMemoryStorageService } from 'vs/platform/storage/com
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils';
|
||||
import { IEditorWorkerService } from 'vs/editor/common/services/editorWorkerService';
|
||||
import { ISuggestMemoryService } from 'vs/editor/contrib/suggest/suggestMemory';
|
||||
import { ITextModel } from 'vs/editor/common/model';
|
||||
|
||||
export interface Ctor<T> {
|
||||
new(): T;
|
||||
@@ -42,7 +45,15 @@ function createMockEditor(model: TextModel): TestCodeEditor {
|
||||
model: model,
|
||||
serviceCollection: new ServiceCollection(
|
||||
[ITelemetryService, NullTelemetryService],
|
||||
[IStorageService, new InMemoryStorageService()]
|
||||
[IStorageService, new InMemoryStorageService()],
|
||||
[ISuggestMemoryService, new class implements ISuggestMemoryService {
|
||||
_serviceBrand: any;
|
||||
memorize(): void {
|
||||
}
|
||||
select(): number {
|
||||
return -1;
|
||||
}
|
||||
}],
|
||||
),
|
||||
});
|
||||
editor.registerAndInstantiateContribution(SnippetController2);
|
||||
@@ -60,7 +71,7 @@ suite('SuggestModel - Context', function () {
|
||||
|
||||
this._register(TokenizationRegistry.register(this.getLanguageIdentifier().language, {
|
||||
getInitialState: (): IState => NULL_STATE,
|
||||
tokenize: undefined,
|
||||
tokenize: undefined!,
|
||||
tokenize2: (line: string, state: IState): TokenizationResult2 => {
|
||||
const tokensArr: number[] = [];
|
||||
let prevLanguageId: LanguageIdentifier | undefined = undefined;
|
||||
@@ -140,6 +151,11 @@ suite('SuggestModel - Context', function () {
|
||||
suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
|
||||
|
||||
function getDefaultSuggestRange(model: ITextModel, position: Position) {
|
||||
const wordUntil = model.getWordUntilPosition(position);
|
||||
return new Range(position.lineNumber, wordUntil.startColumn, position.lineNumber, wordUntil.endColumn);
|
||||
}
|
||||
|
||||
const alwaysEmptySupport: CompletionItemProvider = {
|
||||
provideCompletionItems(doc, pos): CompletionList {
|
||||
return {
|
||||
@@ -156,7 +172,8 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
suggestions: [{
|
||||
label: doc.getWordUntilPosition(pos).word,
|
||||
kind: CompletionItemKind.Property,
|
||||
insertText: 'foofoo'
|
||||
insertText: 'foofoo',
|
||||
range: getDefaultSuggestRange(doc, pos)
|
||||
}]
|
||||
};
|
||||
}
|
||||
@@ -213,39 +230,27 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
return withOracle(model => {
|
||||
|
||||
return Promise.all([
|
||||
assertEvent(model.onDidCancel, function () {
|
||||
model.cancel();
|
||||
}, function (event) {
|
||||
assert.equal(event.retrigger, false);
|
||||
}),
|
||||
|
||||
assertEvent(model.onDidCancel, function () {
|
||||
model.cancel(true);
|
||||
assertEvent(model.onDidTrigger, function () {
|
||||
model.trigger({ auto: true, shy: false });
|
||||
}, function (event) {
|
||||
assert.equal(event.retrigger, true);
|
||||
}),
|
||||
assert.equal(event.auto, true);
|
||||
|
||||
// cancel on trigger
|
||||
assertEvent(model.onDidCancel, function () {
|
||||
model.trigger({ auto: false });
|
||||
}, function (event) {
|
||||
assert.equal(event.retrigger, false);
|
||||
}),
|
||||
|
||||
assertEvent(model.onDidCancel, function () {
|
||||
model.trigger({ auto: false }, true);
|
||||
}, function (event) {
|
||||
assert.equal(event.retrigger, true);
|
||||
return assertEvent(model.onDidCancel, function () {
|
||||
model.cancel();
|
||||
}, function (event) {
|
||||
assert.equal(event.retrigger, false);
|
||||
});
|
||||
}),
|
||||
|
||||
assertEvent(model.onDidTrigger, function () {
|
||||
model.trigger({ auto: true });
|
||||
model.trigger({ auto: true, shy: false });
|
||||
}, function (event) {
|
||||
assert.equal(event.auto, true);
|
||||
}),
|
||||
|
||||
assertEvent(model.onDidTrigger, function () {
|
||||
model.trigger({ auto: false });
|
||||
model.trigger({ auto: false, shy: false });
|
||||
}, function (event) {
|
||||
assert.equal(event.auto, false);
|
||||
})
|
||||
@@ -261,12 +266,12 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
return withOracle(model => {
|
||||
return Promise.all([
|
||||
assertEvent(model.onDidCancel, function () {
|
||||
model.trigger({ auto: true });
|
||||
model.trigger({ auto: true, shy: false });
|
||||
}, function (event) {
|
||||
assert.equal(event.retrigger, false);
|
||||
}),
|
||||
assertEvent(model.onDidSuggest, function () {
|
||||
model.trigger({ auto: false });
|
||||
model.trigger({ auto: false, shy: false });
|
||||
}, function (event) {
|
||||
assert.equal(event.auto, false);
|
||||
assert.equal(event.isFrozen, false);
|
||||
@@ -290,7 +295,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
const [first] = event.completionModel.items;
|
||||
|
||||
assert.equal(first.support, alwaysSomethingSupport);
|
||||
assert.equal(first.provider, alwaysSomethingSupport);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -304,7 +309,8 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
suggestions: [{
|
||||
label: 'My Table',
|
||||
kind: CompletionItemKind.Property,
|
||||
insertText: 'My Table'
|
||||
insertText: 'My Table',
|
||||
range: getDefaultSuggestRange(doc, pos)
|
||||
}]
|
||||
};
|
||||
}
|
||||
@@ -316,7 +322,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
|
||||
return assertEvent(model.onDidSuggest, () => {
|
||||
// make sure completionModel starts here!
|
||||
model.trigger({ auto: true });
|
||||
model.trigger({ auto: true, shy: false });
|
||||
}, event => {
|
||||
|
||||
return assertEvent(model.onDidSuggest, () => {
|
||||
@@ -327,7 +333,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
assert.equal(event.auto, true);
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
const [first] = event.completionModel.items;
|
||||
assert.equal(first.suggestion.label, 'My Table');
|
||||
assert.equal(first.completion.label, 'My Table');
|
||||
|
||||
return assertEvent(model.onDidSuggest, () => {
|
||||
editor.setPosition({ lineNumber: 1, column: 3 });
|
||||
@@ -337,7 +343,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
assert.equal(event.auto, true);
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
const [first] = event.completionModel.items;
|
||||
assert.equal(first.suggestion.label, 'My Table');
|
||||
assert.equal(first.completion.label, 'My Table');
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -390,7 +396,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
assert.equal(event.auto, true);
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
const [first] = event.completionModel.items;
|
||||
assert.equal(first.suggestion.label, 'foo.bar');
|
||||
assert.equal(first.completion.label, 'foo.bar');
|
||||
|
||||
return assertEvent(model.onDidSuggest, () => {
|
||||
editor.trigger('keyboard', Handler.Type, { text: '.' });
|
||||
@@ -399,8 +405,8 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
assert.equal(event.auto, true);
|
||||
assert.equal(event.completionModel.items.length, 2);
|
||||
const [first, second] = event.completionModel.items;
|
||||
assert.equal(first.suggestion.label, 'foo.bar');
|
||||
assert.equal(second.suggestion.label, 'boom');
|
||||
assert.equal(first.completion.label, 'foo.bar');
|
||||
assert.equal(second.completion.label, 'boom');
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -412,11 +418,11 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
|
||||
return withOracle((model, editor) => {
|
||||
|
||||
editor.getModel().setValue('fo');
|
||||
editor.getModel()!.setValue('fo');
|
||||
editor.setPosition({ lineNumber: 1, column: 3 });
|
||||
|
||||
return assertEvent(model.onDidSuggest, () => {
|
||||
model.trigger({ auto: false });
|
||||
model.trigger({ auto: false, shy: false });
|
||||
}, event => {
|
||||
assert.equal(event.auto, false);
|
||||
assert.equal(event.isFrozen, false);
|
||||
@@ -437,11 +443,11 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
|
||||
return withOracle((model, editor) => {
|
||||
|
||||
editor.getModel().setValue('fo');
|
||||
editor.getModel()!.setValue('fo');
|
||||
editor.setPosition({ lineNumber: 1, column: 3 });
|
||||
|
||||
return assertEvent(model.onDidSuggest, () => {
|
||||
model.trigger({ auto: false });
|
||||
model.trigger({ auto: false, shy: false });
|
||||
}, event => {
|
||||
assert.equal(event.auto, false);
|
||||
assert.equal(event.isFrozen, false);
|
||||
@@ -474,11 +480,11 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
|
||||
return withOracle((model, editor) => {
|
||||
|
||||
editor.getModel().setValue('foo');
|
||||
editor.getModel()!.setValue('foo');
|
||||
editor.setPosition({ lineNumber: 1, column: 4 });
|
||||
|
||||
return assertEvent(model.onDidSuggest, () => {
|
||||
model.trigger({ auto: false });
|
||||
model.trigger({ auto: false, shy: false });
|
||||
}, event => {
|
||||
assert.equal(event.auto, false);
|
||||
assert.equal(event.completionModel.incomplete.size, 1);
|
||||
@@ -511,11 +517,11 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
|
||||
return withOracle((model, editor) => {
|
||||
|
||||
editor.getModel().setValue('foo');
|
||||
editor.getModel()!.setValue('foo');
|
||||
editor.setPosition({ lineNumber: 1, column: 4 });
|
||||
|
||||
return assertEvent(model.onDidSuggest, () => {
|
||||
model.trigger({ auto: false });
|
||||
model.trigger({ auto: false, shy: false });
|
||||
}, event => {
|
||||
assert.equal(event.auto, false);
|
||||
assert.equal(event.completionModel.incomplete.size, 1);
|
||||
@@ -542,7 +548,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
triggerCharacters: ['.'],
|
||||
provideCompletionItems(doc, pos, context): CompletionList {
|
||||
assert.equal(context.triggerKind, CompletionTriggerKind.TriggerCharacter);
|
||||
triggerCharacter = context.triggerCharacter;
|
||||
triggerCharacter = context.triggerCharacter!;
|
||||
return {
|
||||
incomplete: false,
|
||||
suggestions: [
|
||||
@@ -598,7 +604,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
editor.trigger('keyboard', Handler.Type, { text: 'a' });
|
||||
}, event => {
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
assert.equal(event.completionModel.items[0].suggestion.label, 'abc');
|
||||
assert.equal(event.completionModel.items[0].completion.label, 'abc');
|
||||
|
||||
return assertEvent(model.onDidSuggest, () => {
|
||||
editor.executeEdits('test', [EditOperation.replace(new Range(1, 1, 1, 2), 'ä')]);
|
||||
@@ -606,7 +612,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
}, event => {
|
||||
// suggest model changed to äbc
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
assert.equal(event.completionModel.items[0].suggestion.label, 'äbc');
|
||||
assert.equal(event.completionModel.items[0].completion.label, 'äbc');
|
||||
|
||||
});
|
||||
});
|
||||
@@ -626,7 +632,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
const [first] = event.completionModel.items;
|
||||
|
||||
assert.equal(first.support, alwaysSomethingSupport);
|
||||
assert.equal(first.provider, alwaysSomethingSupport);
|
||||
});
|
||||
|
||||
await assertEvent(model.onDidSuggest, () => {
|
||||
@@ -637,7 +643,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
const [first] = event.completionModel.items;
|
||||
|
||||
assert.equal(first.support, alwaysSomethingSupport);
|
||||
assert.equal(first.provider, alwaysSomethingSupport);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -674,12 +680,12 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
|
||||
await assertEvent(sugget.onDidSuggest, () => {
|
||||
editor.setPosition({ lineNumber: 1, column: 3 });
|
||||
sugget.trigger({ auto: false });
|
||||
sugget.trigger({ auto: false, shy: false });
|
||||
}, event => {
|
||||
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
const [first] = event.completionModel.items;
|
||||
assert.equal(first.suggestion.label, 'bar');
|
||||
assert.equal(first.completion.label, 'bar');
|
||||
|
||||
ctrl._onDidSelectItem({ item: first, index: 0, model: event.completionModel });
|
||||
});
|
||||
@@ -706,7 +712,7 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
assert.equal(event.completionModel.items.length, 1);
|
||||
const [first] = event.completionModel.items;
|
||||
|
||||
assert.equal(first.support, alwaysSomethingSupport);
|
||||
assert.equal(first.provider, alwaysSomethingSupport);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -721,7 +727,13 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
provideCompletionItems(doc, pos) {
|
||||
return {
|
||||
incomplete: true,
|
||||
suggestions: [{ kind: CompletionItemKind.Folder, label: 'CompleteNot', insertText: 'Incomplete', sortText: 'a', overwriteBefore: pos.column - 1 }],
|
||||
suggestions: [{
|
||||
kind: CompletionItemKind.Folder,
|
||||
label: 'CompleteNot',
|
||||
insertText: 'Incomplete',
|
||||
sortText: 'a',
|
||||
range: getDefaultSuggestRange(doc, pos)
|
||||
}],
|
||||
dispose() { disposeA += 1; }
|
||||
};
|
||||
}
|
||||
@@ -730,7 +742,13 @@ suite('SuggestModel - TriggerAndCancelOracle', function () {
|
||||
provideCompletionItems(doc, pos) {
|
||||
return {
|
||||
incomplete: false,
|
||||
suggestions: [{ kind: CompletionItemKind.Folder, label: 'Complete', insertText: 'Complete', sortText: 'z', overwriteBefore: pos.column - 1 }],
|
||||
suggestions: [{
|
||||
kind: CompletionItemKind.Folder,
|
||||
label: 'Complete',
|
||||
insertText: 'Complete',
|
||||
sortText: 'z',
|
||||
range: getDefaultSuggestRange(doc, pos)
|
||||
}],
|
||||
dispose() { disposeB += 1; }
|
||||
};
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user