mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-02 06:21:50 +01:00
Added completion entry for @ts-expect-error directive (#92093)
* Added completion entry for @ts-expect-error directive * Limited to relevant TS versions * You know what, it's more complicated, I'll just go with everything vs 3.9
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
import * as vscode from 'vscode';
|
||||
import * as nls from 'vscode-nls';
|
||||
import { ITypeScriptServiceClient } from '../typescriptService';
|
||||
import API from '../utils/api';
|
||||
|
||||
const localize = nls.loadMessageBundle();
|
||||
|
||||
@@ -33,11 +34,26 @@ const directives: Directive[] = [
|
||||
}
|
||||
];
|
||||
|
||||
const directives390: Directive[] = [
|
||||
...directives,
|
||||
{
|
||||
value: '@ts-expect-error',
|
||||
description: localize(
|
||||
'ts-expect-error',
|
||||
"Suppresses @ts-check errors on the next line of a file, expecting at least one to exist.")
|
||||
}
|
||||
];
|
||||
|
||||
class DirectiveCommentCompletionProvider implements vscode.CompletionItemProvider {
|
||||
private readonly directives: Directive[];
|
||||
|
||||
constructor(
|
||||
private readonly client: ITypeScriptServiceClient,
|
||||
) { }
|
||||
) {
|
||||
this.directives = client.apiVersion.gte(API.v390)
|
||||
? directives390
|
||||
: directives;
|
||||
}
|
||||
|
||||
public provideCompletionItems(
|
||||
document: vscode.TextDocument,
|
||||
@@ -53,7 +69,7 @@ class DirectiveCommentCompletionProvider implements vscode.CompletionItemProvide
|
||||
const prefix = line.slice(0, position.character);
|
||||
const match = prefix.match(/^\s*\/\/+\s?(@[a-zA-Z\-]*)?$/);
|
||||
if (match) {
|
||||
return directives.map(directive => {
|
||||
return this.directives.map(directive => {
|
||||
const item = new vscode.CompletionItem(directive.value, vscode.CompletionItemKind.Snippet);
|
||||
item.detail = directive.description;
|
||||
item.range = new vscode.Range(position.line, Math.max(0, position.character - (match[1] ? match[1].length : 0)), position.line, position.character);
|
||||
|
||||
@@ -33,6 +33,7 @@ export default class API {
|
||||
public static readonly v350 = API.fromSimpleString('3.5.0');
|
||||
public static readonly v380 = API.fromSimpleString('3.8.0');
|
||||
public static readonly v381 = API.fromSimpleString('3.8.1');
|
||||
public static readonly v390 = API.fromSimpleString('3.9.0');
|
||||
|
||||
public static fromVersionString(versionString: string): API {
|
||||
let version = semver.valid(versionString);
|
||||
|
||||
Reference in New Issue
Block a user