Avoid some common type casts

Casts can hide some type errors
This commit is contained in:
Matt Bierner
2019-01-03 16:59:13 -08:00
parent cd88417f49
commit 3f8579f96a
5 changed files with 147 additions and 147 deletions

View File

@@ -35,13 +35,13 @@ export default class TypeScriptDefinitionProvider extends DefinitionProviderBase
const span = response.body.textSpan ? typeConverters.Range.fromTextSpan(response.body.textSpan) : undefined;
return response.body.definitions
.map(location => {
.map((location): vscode.DefinitionLink => {
const target = typeConverters.Location.fromTextSpan(this.client.toResource(location.file), location);
return {
originSelectionRange: span,
targetRange: target.range,
targetUri: target.uri,
} as vscode.DefinitionLink;
};
});
}

View File

@@ -52,7 +52,7 @@ suite('QueryBuilder', () => {
test('simple text pattern', () => {
assertEqualTextQueries(
queryBuilder.text(PATTERN_INFO),
<ITextQuery>{
{
folderQueries: [],
contentPattern: PATTERN_INFO,
type: QueryType.Text
@@ -65,7 +65,7 @@ suite('QueryBuilder', () => {
PATTERN_INFO,
[ROOT_1_URI]
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{ folder: ROOT_1_URI }],
type: QueryType.Text
@@ -88,7 +88,7 @@ suite('QueryBuilder', () => {
PATTERN_INFO,
[ROOT_1_URI]
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI,
@@ -110,7 +110,7 @@ suite('QueryBuilder', () => {
[ROOT_1_URI],
{ includePattern: './bar' }
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI,
@@ -128,7 +128,7 @@ suite('QueryBuilder', () => {
[ROOT_1_URI],
{ includePattern: '.\\bar' }
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI,
@@ -158,7 +158,7 @@ suite('QueryBuilder', () => {
[ROOT_1_URI],
{ includePattern: './foo' }
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI,
@@ -201,7 +201,7 @@ suite('QueryBuilder', () => {
PATTERN_INFO,
[ROOT_1_URI, ROOT_2_URI, ROOT_3_URI]
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [
{ folder: ROOT_1_URI, excludePattern: patternsToIExpression('foo/**/*.js') },
@@ -219,7 +219,7 @@ suite('QueryBuilder', () => {
[ROOT_1_URI, ROOT_2_URI, ROOT_3_URI],
{ includePattern: './root2/src' }
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [
{
@@ -245,7 +245,7 @@ suite('QueryBuilder', () => {
[ROOT_1_URI],
{ excludePattern: 'foo' }
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI
@@ -262,7 +262,7 @@ suite('QueryBuilder', () => {
undefined,
{ filePattern: ` ${content} ` }
),
<IFileQuery>{
{
folderQueries: [],
filePattern: content,
type: QueryType.File
@@ -276,7 +276,7 @@ suite('QueryBuilder', () => {
[ROOT_1_URI],
{ excludePattern: './bar' }
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI,
@@ -291,7 +291,7 @@ suite('QueryBuilder', () => {
[ROOT_1_URI],
{ excludePattern: './bar/**/*.ts' }
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI,
@@ -306,7 +306,7 @@ suite('QueryBuilder', () => {
[ROOT_1_URI],
{ excludePattern: '.\\bar\\**\\*.ts' }
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI,
@@ -323,7 +323,7 @@ suite('QueryBuilder', () => {
[ROOT_1_URI],
{ extraFileResources: [getUri('/foo/bar.js')] }
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI
@@ -341,7 +341,7 @@ suite('QueryBuilder', () => {
excludePattern: '*.js'
}
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI
@@ -359,7 +359,7 @@ suite('QueryBuilder', () => {
includePattern: '*.txt'
}
),
<ITextQuery>{
{
contentPattern: PATTERN_INFO,
folderQueries: [{
folder: ROOT_1_URI
@@ -374,7 +374,7 @@ suite('QueryBuilder', () => {
function testSimpleIncludes(includePattern: string, expectedPatterns: string[]): void {
assert.deepEqual(
queryBuilder.parseSearchPaths(includePattern),
<ISearchPathsResult>{
{
pattern: patternsToIExpression(...expectedPatterns)
},
includePattern);
@@ -405,26 +405,26 @@ suite('QueryBuilder', () => {
const cases: [string, ISearchPathsResult][] = [
[
fixPath('/foo/bar'),
<ISearchPathsResult>{
{
searchPaths: [{ searchPath: getUri('/foo/bar') }]
}
],
[
fixPath('/foo/bar') + ',' + 'a',
<ISearchPathsResult>{
{
searchPaths: [{ searchPath: getUri('/foo/bar') }],
pattern: patternsToIExpression(...globalGlob('a'))
}
],
[
fixPath('/foo/bar') + ',' + fixPath('/1/2'),
<ISearchPathsResult>{
{
searchPaths: [{ searchPath: getUri('/foo/bar') }, { searchPath: getUri('/1/2') }]
}
],
[
fixPath('/foo/bar') + ',' + fixPath('/foo/../foo/bar/fooar/..'),
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: getUri('/foo/bar')
}]
@@ -432,7 +432,7 @@ suite('QueryBuilder', () => {
],
[
fixPath('/foo/bar/**/*.ts'),
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: getUri('/foo/bar'),
pattern: patternsToIExpression('**/*.ts', '**/*.ts/**')
@@ -441,7 +441,7 @@ suite('QueryBuilder', () => {
],
[
fixPath('/foo/bar/*a/b/c'),
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: getUri('/foo/bar'),
pattern: patternsToIExpression('*a/b/c', '*a/b/c/**')
@@ -450,7 +450,7 @@ suite('QueryBuilder', () => {
],
[
fixPath('/*a/b/c'),
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: getUri('/'),
pattern: patternsToIExpression('*a/b/c', '*a/b/c/**')
@@ -459,7 +459,7 @@ suite('QueryBuilder', () => {
],
[
fixPath('/foo/{b,c}ar'),
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: getUri('/foo'),
pattern: patternsToIExpression('{b,c}ar', '{b,c}ar/**')
@@ -475,20 +475,20 @@ suite('QueryBuilder', () => {
const cases: [string, ISearchPathsResult][] = [
[
'~/foo/bar',
<ISearchPathsResult>{
{
searchPaths: [{ searchPath: getUri(userHome, '/foo/bar') }]
}
],
[
'~/foo/bar, a',
<ISearchPathsResult>{
{
searchPaths: [{ searchPath: getUri(userHome, '/foo/bar') }],
pattern: patternsToIExpression(...globalGlob('a'))
}
],
[
fixPath('/foo/~/bar'),
<ISearchPathsResult>{
{
searchPaths: [{ searchPath: getUri('/foo/~/bar') }]
}
],
@@ -500,7 +500,7 @@ suite('QueryBuilder', () => {
const cases: [string, ISearchPathsResult][] = [
[
'./a',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: ROOT_1_URI,
pattern: patternsToIExpression('a', 'a/**')
@@ -509,7 +509,7 @@ suite('QueryBuilder', () => {
],
[
'./a/',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: ROOT_1_URI,
pattern: patternsToIExpression('a', 'a/**')
@@ -518,7 +518,7 @@ suite('QueryBuilder', () => {
],
[
'./a/*b/c',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: ROOT_1_URI,
pattern: patternsToIExpression('a/*b/c', 'a/*b/c/**')
@@ -527,7 +527,7 @@ suite('QueryBuilder', () => {
],
[
'./a/*b/c, ' + fixPath('/project/foo'),
<ISearchPathsResult>{
{
searchPaths: [
{
searchPath: ROOT_1_URI,
@@ -540,7 +540,7 @@ suite('QueryBuilder', () => {
],
[
'./a/b/,./c/d',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: ROOT_1_URI,
pattern: patternsToIExpression('a/b', 'a/b/**', 'c/d', 'c/d/**')
@@ -550,7 +550,7 @@ suite('QueryBuilder', () => {
// TODO @ rob
// [
// '../',
// <ISearchPathsResult>{
// {
// searchPaths: [{
// searchPath: getUri('foo/')
// }]
@@ -568,7 +568,7 @@ suite('QueryBuilder', () => {
const cases: [string, ISearchPathsResult][] = [
[
'./root1',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: getUri(ROOT_1)
}]
@@ -576,7 +576,7 @@ suite('QueryBuilder', () => {
],
[
'./root2',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: getUri(ROOT_2),
}]
@@ -584,7 +584,7 @@ suite('QueryBuilder', () => {
],
[
'./root1/a/**/b, ./root2/**/*.txt',
<ISearchPathsResult>{
{
searchPaths: [
{
searchPath: ROOT_1_URI,
@@ -609,7 +609,7 @@ suite('QueryBuilder', () => {
const cases: [string, ISearchPathsResult][] = [
[
'./foldername',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: ROOT_1_URI
}]
@@ -617,7 +617,7 @@ suite('QueryBuilder', () => {
],
[
'./foldername/foo',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: ROOT_1_URI,
pattern: patternsToIExpression('foo', 'foo/**')
@@ -637,19 +637,19 @@ suite('QueryBuilder', () => {
const cases: [string, ISearchPathsResult][] = [
[
'',
<ISearchPathsResult>{
{
searchPaths: undefined
}
],
[
'./',
<ISearchPathsResult>{
{
searchPaths: undefined
}
],
[
'./root1',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: getUri(ROOT_1)
}]
@@ -657,7 +657,7 @@ suite('QueryBuilder', () => {
],
[
'./root1,./',
<ISearchPathsResult>{
{
searchPaths: [{
searchPath: getUri(ROOT_1)
}]
@@ -665,7 +665,7 @@ suite('QueryBuilder', () => {
],
[
'./rootB',
<ISearchPathsResult>{
{
searchPaths: [
{
searchPath: getUri(ROOT_2),
@@ -677,7 +677,7 @@ suite('QueryBuilder', () => {
],
[
'./rootB/a/**/b, ./rootB/b/**/*.txt',
<ISearchPathsResult>{
{
searchPaths: [
{
searchPath: getUri(ROOT_2),
@@ -691,7 +691,7 @@ suite('QueryBuilder', () => {
],
[
'./root1/**/foo/, bar/',
<ISearchPathsResult>{
{
pattern: patternsToIExpression('**/bar', '**/bar/**'),
searchPaths: [
{

View File

@@ -195,7 +195,7 @@ export class SettingsEditorModel extends AbstractSettingsModel implements ISetti
}
const metadata = this.collectMetadata(resultGroups);
return <IFilterResult>{
return {
allGroups: this.settingsGroups,
filteredGroups: filteredGroup ? [filteredGroup] : [],
matches,

View File

@@ -78,7 +78,7 @@ suite('Search-integration', function () {
this.timeout(1000 * 60); // increase timeout for this suite
test('Text: GameOfLife', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'GameOfLife' },
@@ -88,7 +88,7 @@ suite('Search-integration', function () {
});
test('Text: GameOfLife (RegExp)', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'Game.?fL\\w?fe', isRegExp: true }
@@ -98,7 +98,7 @@ suite('Search-integration', function () {
});
test('Text: GameOfLife (PCRE2 RegExp)', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
usePCRE2: true,
@@ -109,7 +109,7 @@ suite('Search-integration', function () {
});
test('Text: GameOfLife (RegExp to EOL)', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'GameOfLife.*', isRegExp: true }
@@ -119,7 +119,7 @@ suite('Search-integration', function () {
});
test('Text: GameOfLife (Word Match, Case Sensitive)', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'GameOfLife', isWordMatch: true, isCaseSensitive: true }
@@ -129,7 +129,7 @@ suite('Search-integration', function () {
});
test('Text: GameOfLife (Word Match, Spaces)', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: ' GameOfLife ', isWordMatch: true }
@@ -139,7 +139,7 @@ suite('Search-integration', function () {
});
test('Text: GameOfLife (Word Match, Punctuation and Spaces)', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: ', as =', isWordMatch: true }
@@ -149,7 +149,7 @@ suite('Search-integration', function () {
});
test('Text: Helvetica (UTF 16)', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'Helvetica' }
@@ -159,7 +159,7 @@ suite('Search-integration', function () {
});
test('Text: e', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'e' }
@@ -233,7 +233,7 @@ suite('Search-integration', function () {
test('Text: a (capped)', () => {
const maxResults = 520;
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'a' },
@@ -247,7 +247,7 @@ suite('Search-integration', function () {
});
test('Text: a (no results)', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'ahsogehtdas' }
@@ -257,7 +257,7 @@ suite('Search-integration', function () {
});
test('Text: -size', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: '-size' }
@@ -312,7 +312,7 @@ suite('Search-integration', function () {
});
test('Text: 语', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: '语' }
@@ -330,7 +330,7 @@ suite('Search-integration', function () {
});
test('Multiple matches on line: h\\d,', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'h\\d,', isRegExp: true }
@@ -345,7 +345,7 @@ suite('Search-integration', function () {
});
test('Search with context matches', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'compiler.typeCheck();' },
@@ -367,7 +367,7 @@ suite('Search-integration', function () {
suite('error messages', () => {
test('invalid encoding', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: [
{
@@ -388,7 +388,7 @@ suite('Search-integration', function () {
});
test('invalid regex', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: ')', isRegExp: true },
@@ -404,7 +404,7 @@ suite('Search-integration', function () {
});
test('invalid glob', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'foo' },
@@ -423,7 +423,7 @@ suite('Search-integration', function () {
});
test('invalid literal', () => {
const config = <ITextQuery>{
const config: ITextQuery = {
type: QueryType.Text,
folderQueries: ROOT_FOLDER_QUERY,
contentPattern: { pattern: 'foo\nbar', isRegExp: true }

View File

@@ -134,7 +134,7 @@ suite('ExtHostLanguageFeatures', function () {
test('DocumentSymbols, register/deregister', function () {
assert.equal(modes.DocumentSymbolProviderRegistry.all(model).length, 0);
let d1 = extHost.registerDocumentSymbolProvider(defaultExtension, defaultSelector, <vscode.DocumentSymbolProvider>{
let d1 = extHost.registerDocumentSymbolProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentSymbolProvider {
provideDocumentSymbols() {
return <vscode.SymbolInformation[]>[];
}
@@ -149,12 +149,12 @@ suite('ExtHostLanguageFeatures', function () {
});
test('DocumentSymbols, evil provider', function () {
disposables.push(extHost.registerDocumentSymbolProvider(defaultExtension, defaultSelector, <vscode.DocumentSymbolProvider>{
disposables.push(extHost.registerDocumentSymbolProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentSymbolProvider {
provideDocumentSymbols(): any {
throw new Error('evil document symbol provider');
}
}));
disposables.push(extHost.registerDocumentSymbolProvider(defaultExtension, defaultSelector, <vscode.DocumentSymbolProvider>{
disposables.push(extHost.registerDocumentSymbolProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentSymbolProvider {
provideDocumentSymbols(): any {
return [new types.SymbolInformation('test', types.SymbolKind.Field, new types.Range(0, 0, 0, 0))];
}
@@ -169,7 +169,7 @@ suite('ExtHostLanguageFeatures', function () {
});
test('DocumentSymbols, data conversion', function () {
disposables.push(extHost.registerDocumentSymbolProvider(defaultExtension, defaultSelector, <vscode.DocumentSymbolProvider>{
disposables.push(extHost.registerDocumentSymbolProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentSymbolProvider {
provideDocumentSymbols(): any {
return [new types.SymbolInformation('test', types.SymbolKind.Field, new types.Range(0, 0, 0, 0))];
}
@@ -191,12 +191,12 @@ suite('ExtHostLanguageFeatures', function () {
test('CodeLens, evil provider', function () {
disposables.push(extHost.registerCodeLensProvider(defaultExtension, defaultSelector, <vscode.CodeLensProvider>{
disposables.push(extHost.registerCodeLensProvider(defaultExtension, defaultSelector, new class implements vscode.CodeLensProvider {
provideCodeLenses(): any {
throw new Error('evil');
}
}));
disposables.push(extHost.registerCodeLensProvider(defaultExtension, defaultSelector, <vscode.CodeLensProvider>{
disposables.push(extHost.registerCodeLensProvider(defaultExtension, defaultSelector, new class implements vscode.CodeLensProvider {
provideCodeLenses() {
return [new types.CodeLens(new types.Range(0, 0, 0, 0))];
}
@@ -211,12 +211,12 @@ suite('ExtHostLanguageFeatures', function () {
test('CodeLens, do not resolve a resolved lens', function () {
disposables.push(extHost.registerCodeLensProvider(defaultExtension, defaultSelector, <vscode.CodeLensProvider>{
disposables.push(extHost.registerCodeLensProvider(defaultExtension, defaultSelector, new class implements vscode.CodeLensProvider {
provideCodeLenses(): any {
return [new types.CodeLens(
new types.Range(0, 0, 0, 0),
{ command: 'id', title: 'Title' })];
},
}
resolveCodeLens(): any {
assert.ok(false, 'do not resolve');
}
@@ -237,7 +237,7 @@ suite('ExtHostLanguageFeatures', function () {
test('CodeLens, missing command', function () {
disposables.push(extHost.registerCodeLensProvider(defaultExtension, defaultSelector, <vscode.CodeLensProvider>{
disposables.push(extHost.registerCodeLensProvider(defaultExtension, defaultSelector, new class implements vscode.CodeLensProvider {
provideCodeLenses() {
return [new types.CodeLens(new types.Range(0, 0, 0, 0))];
}
@@ -262,7 +262,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Definition, data conversion', function () {
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, <vscode.DefinitionProvider>{
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, new class implements vscode.DefinitionProvider {
provideDefinition(): any {
return [new types.Location(model.uri, new types.Range(1, 2, 3, 4))];
}
@@ -281,12 +281,12 @@ suite('ExtHostLanguageFeatures', function () {
test('Definition, one or many', function () {
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, <vscode.DefinitionProvider>{
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, new class implements vscode.DefinitionProvider {
provideDefinition(): any {
return [new types.Location(model.uri, new types.Range(1, 1, 1, 1))];
}
}));
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, <vscode.DefinitionProvider>{
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, new class implements vscode.DefinitionProvider {
provideDefinition(): any {
return new types.Location(model.uri, new types.Range(1, 1, 1, 1));
}
@@ -302,13 +302,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Definition, registration order', function () {
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, <vscode.DefinitionProvider>{
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, new class implements vscode.DefinitionProvider {
provideDefinition(): any {
return [new types.Location(URI.parse('far://first'), new types.Range(2, 3, 4, 5))];
}
}));
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, <vscode.DefinitionProvider>{
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, new class implements vscode.DefinitionProvider {
provideDefinition(): any {
return new types.Location(URI.parse('far://second'), new types.Range(1, 2, 3, 4));
}
@@ -328,12 +328,12 @@ suite('ExtHostLanguageFeatures', function () {
test('Definition, evil provider', function () {
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, <vscode.DefinitionProvider>{
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, new class implements vscode.DefinitionProvider {
provideDefinition(): any {
throw new Error('evil provider');
}
}));
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, <vscode.DefinitionProvider>{
disposables.push(extHost.registerDefinitionProvider(defaultExtension, defaultSelector, new class implements vscode.DefinitionProvider {
provideDefinition(): any {
return new types.Location(model.uri, new types.Range(1, 1, 1, 1));
}
@@ -351,7 +351,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Declaration, data conversion', function () {
disposables.push(extHost.registerDeclarationProvider(defaultExtension, defaultSelector, <vscode.DeclarationProvider>{
disposables.push(extHost.registerDeclarationProvider(defaultExtension, defaultSelector, new class implements vscode.DeclarationProvider {
provideDeclaration(): any {
return [new types.Location(model.uri, new types.Range(1, 2, 3, 4))];
}
@@ -372,7 +372,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Implementation, data conversion', function () {
disposables.push(extHost.registerImplementationProvider(defaultExtension, defaultSelector, <vscode.ImplementationProvider>{
disposables.push(extHost.registerImplementationProvider(defaultExtension, defaultSelector, new class implements vscode.ImplementationProvider {
provideImplementation(): any {
return [new types.Location(model.uri, new types.Range(1, 2, 3, 4))];
}
@@ -392,7 +392,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Type Definition, data conversion', function () {
disposables.push(extHost.registerTypeDefinitionProvider(defaultExtension, defaultSelector, <vscode.TypeDefinitionProvider>{
disposables.push(extHost.registerTypeDefinitionProvider(defaultExtension, defaultSelector, new class implements vscode.TypeDefinitionProvider {
provideTypeDefinition(): any {
return [new types.Location(model.uri, new types.Range(1, 2, 3, 4))];
}
@@ -412,7 +412,7 @@ suite('ExtHostLanguageFeatures', function () {
test('HoverProvider, word range at pos', function () {
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, <vscode.HoverProvider>{
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, new class implements vscode.HoverProvider {
provideHover(): any {
return new types.Hover('Hello');
}
@@ -430,7 +430,7 @@ suite('ExtHostLanguageFeatures', function () {
test('HoverProvider, given range', function () {
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, <vscode.HoverProvider>{
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, new class implements vscode.HoverProvider {
provideHover(): any {
return new types.Hover('Hello', new types.Range(3, 0, 8, 7));
}
@@ -448,14 +448,14 @@ suite('ExtHostLanguageFeatures', function () {
test('HoverProvider, registration order', function () {
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, <vscode.HoverProvider>{
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, new class implements vscode.HoverProvider {
provideHover(): any {
return new types.Hover('registered first');
}
}));
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, <vscode.HoverProvider>{
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, new class implements vscode.HoverProvider {
provideHover(): any {
return new types.Hover('registered second');
}
@@ -474,12 +474,12 @@ suite('ExtHostLanguageFeatures', function () {
test('HoverProvider, evil provider', function () {
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, <vscode.HoverProvider>{
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, new class implements vscode.HoverProvider {
provideHover(): any {
throw new Error('evil');
}
}));
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, <vscode.HoverProvider>{
disposables.push(extHost.registerHoverProvider(defaultExtension, defaultSelector, new class implements vscode.HoverProvider {
provideHover(): any {
return new types.Hover('Hello');
}
@@ -498,7 +498,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Occurrences, data conversion', function () {
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, <vscode.DocumentHighlightProvider>{
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentHighlightProvider {
provideDocumentHighlights(): any {
return [new types.DocumentHighlight(new types.Range(0, 0, 0, 4))];
}
@@ -517,12 +517,12 @@ suite('ExtHostLanguageFeatures', function () {
test('Occurrences, order 1/2', function () {
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, <vscode.DocumentHighlightProvider>{
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentHighlightProvider {
provideDocumentHighlights(): any {
return [];
}
}));
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, '*', <vscode.DocumentHighlightProvider>{
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, '*', new class implements vscode.DocumentHighlightProvider {
provideDocumentHighlights(): any {
return [new types.DocumentHighlight(new types.Range(0, 0, 0, 4))];
}
@@ -541,12 +541,12 @@ suite('ExtHostLanguageFeatures', function () {
test('Occurrences, order 2/2', function () {
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, <vscode.DocumentHighlightProvider>{
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentHighlightProvider {
provideDocumentHighlights(): any {
return [new types.DocumentHighlight(new types.Range(0, 0, 0, 2))];
}
}));
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, '*', <vscode.DocumentHighlightProvider>{
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, '*', new class implements vscode.DocumentHighlightProvider {
provideDocumentHighlights(): any {
return [new types.DocumentHighlight(new types.Range(0, 0, 0, 4))];
}
@@ -565,13 +565,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Occurrences, evil provider', function () {
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, <vscode.DocumentHighlightProvider>{
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentHighlightProvider {
provideDocumentHighlights(): any {
throw new Error('evil');
}
}));
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, <vscode.DocumentHighlightProvider>{
disposables.push(extHost.registerDocumentHighlightProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentHighlightProvider {
provideDocumentHighlights(): any {
return [new types.DocumentHighlight(new types.Range(0, 0, 0, 4))];
}
@@ -589,13 +589,13 @@ suite('ExtHostLanguageFeatures', function () {
test('References, registration order', function () {
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, <vscode.ReferenceProvider>{
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, new class implements vscode.ReferenceProvider {
provideReferences(): any {
return [new types.Location(URI.parse('far://register/first'), new types.Range(0, 0, 0, 0))];
}
}));
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, <vscode.ReferenceProvider>{
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, new class implements vscode.ReferenceProvider {
provideReferences(): any {
return [new types.Location(URI.parse('far://register/second'), new types.Range(0, 0, 0, 0))];
}
@@ -615,7 +615,7 @@ suite('ExtHostLanguageFeatures', function () {
test('References, data conversion', function () {
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, <vscode.ReferenceProvider>{
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, new class implements vscode.ReferenceProvider {
provideReferences(): any {
return [new types.Location(model.uri, new types.Position(0, 0))];
}
@@ -636,12 +636,12 @@ suite('ExtHostLanguageFeatures', function () {
test('References, evil provider', function () {
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, <vscode.ReferenceProvider>{
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, new class implements vscode.ReferenceProvider {
provideReferences(): any {
throw new Error('evil');
}
}));
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, <vscode.ReferenceProvider>{
disposables.push(extHost.registerReferenceProvider(defaultExtension, defaultSelector, new class implements vscode.ReferenceProvider {
provideReferences(): any {
return [new types.Location(model.uri, new types.Range(0, 0, 0, 0))];
}
@@ -712,12 +712,12 @@ suite('ExtHostLanguageFeatures', function () {
test('Cannot read property \'id\' of undefined, #29469', function () {
disposables.push(extHost.registerCodeActionProvider(defaultExtension, defaultSelector, <vscode.CodeActionProvider>{
disposables.push(extHost.registerCodeActionProvider(defaultExtension, defaultSelector, new class implements vscode.CodeActionProvider {
provideCodeActions(): any {
return [
undefined,
null,
<vscode.Command>{ command: 'test', title: 'Testing' }
{ command: 'test', title: 'Testing' }
];
}
}));
@@ -731,14 +731,14 @@ suite('ExtHostLanguageFeatures', function () {
test('Quick Fix, evil provider', function () {
disposables.push(extHost.registerCodeActionProvider(defaultExtension, defaultSelector, <vscode.CodeActionProvider>{
disposables.push(extHost.registerCodeActionProvider(defaultExtension, defaultSelector, new class implements vscode.CodeActionProvider {
provideCodeActions(): any {
throw new Error('evil');
}
}));
disposables.push(extHost.registerCodeActionProvider(defaultExtension, defaultSelector, <vscode.CodeActionProvider>{
disposables.push(extHost.registerCodeActionProvider(defaultExtension, defaultSelector, new class implements vscode.CodeActionProvider {
provideCodeActions(): any {
return [<vscode.Command>{ command: 'test', title: 'Testing' }];
return [{ command: 'test', title: 'Testing' }];
}
}));
@@ -753,13 +753,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Navigate types, evil provider', function () {
disposables.push(extHost.registerWorkspaceSymbolProvider(defaultExtension, <vscode.WorkspaceSymbolProvider>{
disposables.push(extHost.registerWorkspaceSymbolProvider(defaultExtension, new class implements vscode.WorkspaceSymbolProvider {
provideWorkspaceSymbols(): any {
throw new Error('evil');
}
}));
disposables.push(extHost.registerWorkspaceSymbolProvider(defaultExtension, <vscode.WorkspaceSymbolProvider>{
disposables.push(extHost.registerWorkspaceSymbolProvider(defaultExtension, new class implements vscode.WorkspaceSymbolProvider {
provideWorkspaceSymbols(): any {
return [new types.SymbolInformation('testing', types.SymbolKind.Array, new types.Range(0, 0, 1, 1))];
}
@@ -781,7 +781,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Rename, evil provider 0/2', function () {
disposables.push(extHost.registerRenameProvider(defaultExtension, defaultSelector, <vscode.RenameProvider>{
disposables.push(extHost.registerRenameProvider(defaultExtension, defaultSelector, new class implements vscode.RenameProvider {
provideRenameEdits(): any {
throw new class Foo { };
}
@@ -799,7 +799,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Rename, evil provider 1/2', function () {
disposables.push(extHost.registerRenameProvider(defaultExtension, defaultSelector, <vscode.RenameProvider>{
disposables.push(extHost.registerRenameProvider(defaultExtension, defaultSelector, new class implements vscode.RenameProvider {
provideRenameEdits(): any {
throw Error('evil');
}
@@ -815,13 +815,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Rename, evil provider 2/2', function () {
disposables.push(extHost.registerRenameProvider(defaultExtension, '*', <vscode.RenameProvider>{
disposables.push(extHost.registerRenameProvider(defaultExtension, '*', new class implements vscode.RenameProvider {
provideRenameEdits(): any {
throw Error('evil');
}
}));
disposables.push(extHost.registerRenameProvider(defaultExtension, defaultSelector, <vscode.RenameProvider>{
disposables.push(extHost.registerRenameProvider(defaultExtension, defaultSelector, new class implements vscode.RenameProvider {
provideRenameEdits(): any {
let edit = new types.WorkspaceEdit();
edit.replace(model.uri, new types.Range(0, 0, 0, 0), 'testing');
@@ -839,7 +839,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Rename, ordering', function () {
disposables.push(extHost.registerRenameProvider(defaultExtension, '*', <vscode.RenameProvider>{
disposables.push(extHost.registerRenameProvider(defaultExtension, '*', new class implements vscode.RenameProvider {
provideRenameEdits(): any {
let edit = new types.WorkspaceEdit();
edit.replace(model.uri, new types.Range(0, 0, 0, 0), 'testing');
@@ -848,7 +848,7 @@ suite('ExtHostLanguageFeatures', function () {
}
}));
disposables.push(extHost.registerRenameProvider(defaultExtension, defaultSelector, <vscode.RenameProvider>{
disposables.push(extHost.registerRenameProvider(defaultExtension, defaultSelector, new class implements vscode.RenameProvider {
provideRenameEdits(): any {
return;
}
@@ -869,13 +869,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Parameter Hints, order', function () {
disposables.push(extHost.registerSignatureHelpProvider(defaultExtension, defaultSelector, <vscode.SignatureHelpProvider>{
disposables.push(extHost.registerSignatureHelpProvider(defaultExtension, defaultSelector, new class implements vscode.SignatureHelpProvider {
provideSignatureHelp(): any {
return undefined;
}
}, []));
disposables.push(extHost.registerSignatureHelpProvider(defaultExtension, defaultSelector, <vscode.SignatureHelpProvider>{
disposables.push(extHost.registerSignatureHelpProvider(defaultExtension, defaultSelector, new class implements vscode.SignatureHelpProvider {
provideSignatureHelp(): vscode.SignatureHelp {
return {
signatures: [],
@@ -894,7 +894,7 @@ suite('ExtHostLanguageFeatures', function () {
});
test('Parameter Hints, evil provider', function () {
disposables.push(extHost.registerSignatureHelpProvider(defaultExtension, defaultSelector, <vscode.SignatureHelpProvider>{
disposables.push(extHost.registerSignatureHelpProvider(defaultExtension, defaultSelector, new class implements vscode.SignatureHelpProvider {
provideSignatureHelp(): any {
throw new Error('evil');
}
@@ -912,13 +912,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Suggest, order 1/3', function () {
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, '*', <vscode.CompletionItemProvider>{
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, '*', new class implements vscode.CompletionItemProvider {
provideCompletionItems(): any {
return [new types.CompletionItem('testing1')];
}
}, []));
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, <vscode.CompletionItemProvider>{
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, new class implements vscode.CompletionItemProvider {
provideCompletionItems(): any {
return [new types.CompletionItem('testing2')];
}
@@ -934,13 +934,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Suggest, order 2/3', function () {
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, '*', <vscode.CompletionItemProvider>{
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, '*', new class implements vscode.CompletionItemProvider {
provideCompletionItems(): any {
return [new types.CompletionItem('weak-selector')]; // weaker selector but result
}
}, []));
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, <vscode.CompletionItemProvider>{
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, new class implements vscode.CompletionItemProvider {
provideCompletionItems(): any {
return []; // stronger selector but not a good result;
}
@@ -956,13 +956,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Suggest, order 2/3', function () {
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, <vscode.CompletionItemProvider>{
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, new class implements vscode.CompletionItemProvider {
provideCompletionItems(): any {
return [new types.CompletionItem('strong-1')];
}
}, []));
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, <vscode.CompletionItemProvider>{
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, new class implements vscode.CompletionItemProvider {
provideCompletionItems(): any {
return [new types.CompletionItem('strong-2')];
}
@@ -979,13 +979,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Suggest, evil provider', function () {
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, <vscode.CompletionItemProvider>{
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, new class implements vscode.CompletionItemProvider {
provideCompletionItems(): any {
throw new Error('evil');
}
}, []));
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, <vscode.CompletionItemProvider>{
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, new class implements vscode.CompletionItemProvider {
provideCompletionItems(): any {
return [new types.CompletionItem('testing')];
}
@@ -1002,7 +1002,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Suggest, CompletionList', function () {
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, <vscode.CompletionItemProvider>{
disposables.push(extHost.registerCompletionItemProvider(defaultExtension, defaultSelector, new class implements vscode.CompletionItemProvider {
provideCompletionItems(): any {
return new types.CompletionList([<any>new types.CompletionItem('hello')], true);
}
@@ -1019,7 +1019,7 @@ suite('ExtHostLanguageFeatures', function () {
// --- format
test('Format Doc, data conversion', function () {
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentFormattingEditProvider>{
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentFormattingEditProvider {
provideDocumentFormattingEdits(): any {
return [new types.TextEdit(new types.Range(0, 0, 0, 0), 'testing'), types.TextEdit.setEndOfLine(types.EndOfLine.LF)];
}
@@ -1040,7 +1040,7 @@ suite('ExtHostLanguageFeatures', function () {
});
test('Format Doc, evil provider', function () {
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentFormattingEditProvider>{
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentFormattingEditProvider {
provideDocumentFormattingEdits(): any {
throw new Error('evil');
}
@@ -1053,19 +1053,19 @@ suite('ExtHostLanguageFeatures', function () {
test('Format Doc, order', function () {
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentFormattingEditProvider>{
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentFormattingEditProvider {
provideDocumentFormattingEdits(): any {
return undefined;
}
}));
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentFormattingEditProvider>{
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentFormattingEditProvider {
provideDocumentFormattingEdits(): any {
return [new types.TextEdit(new types.Range(0, 0, 0, 0), 'testing')];
}
}));
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentFormattingEditProvider>{
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentFormattingEditProvider {
provideDocumentFormattingEdits(): any {
return undefined;
}
@@ -1082,7 +1082,7 @@ suite('ExtHostLanguageFeatures', function () {
});
test('Format Range, data conversion', function () {
disposables.push(extHost.registerDocumentRangeFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentRangeFormattingEditProvider>{
disposables.push(extHost.registerDocumentRangeFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentRangeFormattingEditProvider {
provideDocumentRangeFormattingEdits(): any {
return [new types.TextEdit(new types.Range(0, 0, 0, 0), 'testing')];
}
@@ -1099,17 +1099,17 @@ suite('ExtHostLanguageFeatures', function () {
});
test('Format Range, + format_doc', function () {
disposables.push(extHost.registerDocumentRangeFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentRangeFormattingEditProvider>{
disposables.push(extHost.registerDocumentRangeFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentRangeFormattingEditProvider {
provideDocumentRangeFormattingEdits(): any {
return [new types.TextEdit(new types.Range(0, 0, 0, 0), 'range')];
}
}));
disposables.push(extHost.registerDocumentRangeFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentRangeFormattingEditProvider>{
disposables.push(extHost.registerDocumentRangeFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentRangeFormattingEditProvider {
provideDocumentRangeFormattingEdits(): any {
return [new types.TextEdit(new types.Range(2, 3, 4, 5), 'range2')];
}
}));
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentFormattingEditProvider>{
disposables.push(extHost.registerDocumentFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentFormattingEditProvider {
provideDocumentFormattingEdits(): any {
return [new types.TextEdit(new types.Range(0, 0, 1, 1), 'doc')];
}
@@ -1128,7 +1128,7 @@ suite('ExtHostLanguageFeatures', function () {
});
test('Format Range, evil provider', function () {
disposables.push(extHost.registerDocumentRangeFormattingEditProvider(defaultExtension, defaultSelector, <vscode.DocumentRangeFormattingEditProvider>{
disposables.push(extHost.registerDocumentRangeFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentRangeFormattingEditProvider {
provideDocumentRangeFormattingEdits(): any {
throw new Error('evil');
}
@@ -1141,7 +1141,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Format on Type, data conversion', function () {
disposables.push(extHost.registerOnTypeFormattingEditProvider(defaultExtension, defaultSelector, <vscode.OnTypeFormattingEditProvider>{
disposables.push(extHost.registerOnTypeFormattingEditProvider(defaultExtension, defaultSelector, new class implements vscode.OnTypeFormattingEditProvider {
provideOnTypeFormattingEdits(): any {
return [new types.TextEdit(new types.Range(0, 0, 0, 0), arguments[2])];
}
@@ -1160,7 +1160,7 @@ suite('ExtHostLanguageFeatures', function () {
test('Links, data conversion', function () {
disposables.push(extHost.registerDocumentLinkProvider(defaultExtension, defaultSelector, <vscode.DocumentLinkProvider>{
disposables.push(extHost.registerDocumentLinkProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentLinkProvider {
provideDocumentLinks() {
return [new types.DocumentLink(new types.Range(0, 0, 1, 1), URI.parse('foo:bar#3'))];
}
@@ -1179,13 +1179,13 @@ suite('ExtHostLanguageFeatures', function () {
test('Links, evil provider', function () {
disposables.push(extHost.registerDocumentLinkProvider(defaultExtension, defaultSelector, <vscode.DocumentLinkProvider>{
disposables.push(extHost.registerDocumentLinkProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentLinkProvider {
provideDocumentLinks() {
return [new types.DocumentLink(new types.Range(0, 0, 1, 1), URI.parse('foo:bar#3'))];
}
}));
disposables.push(extHost.registerDocumentLinkProvider(defaultExtension, defaultSelector, <vscode.DocumentLinkProvider>{
disposables.push(extHost.registerDocumentLinkProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentLinkProvider {
provideDocumentLinks(): any {
throw new Error();
}
@@ -1204,10 +1204,10 @@ suite('ExtHostLanguageFeatures', function () {
test('Document colors, data conversion', function () {
disposables.push(extHost.registerColorProvider(defaultExtension, defaultSelector, <vscode.DocumentColorProvider>{
disposables.push(extHost.registerColorProvider(defaultExtension, defaultSelector, new class implements vscode.DocumentColorProvider {
provideDocumentColors(): vscode.ColorInformation[] {
return [new types.ColorInformation(new types.Range(0, 0, 0, 20), new types.Color(0.1, 0.2, 0.3, 0.4))];
},
}
provideColorPresentations(color: vscode.Color, context: { range: vscode.Range, document: vscode.TextDocument }): vscode.ColorPresentation[] {
return [];
}
@@ -1227,7 +1227,7 @@ suite('ExtHostLanguageFeatures', function () {
// -- selection ranges
test('Selection Ranges, data conversion', async function () {
disposables.push(extHost.registerSelectionRangeProvider(defaultExtension, defaultSelector, <vscode.SelectionRangeProvider>{
disposables.push(extHost.registerSelectionRangeProvider(defaultExtension, defaultSelector, new class implements vscode.SelectionRangeProvider {
provideSelectionRanges() {
return [
new types.SelectionRange(new types.Range(0, 10, 0, 18), types.SelectionRangeKind.Empty),