Completions for asserts and declare (#36355)

* Add completions for `asserts`

* Add declare assertions.
This commit is contained in:
Nathan Shively-Sanders 2020-01-22 10:43:33 -08:00 committed by GitHub
parent 5e59eece34
commit c8e2f58ec5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 28 additions and 4 deletions

View File

@ -902,7 +902,7 @@ namespace FourSlashInterface {
export const keywords: readonly ExpectedCompletionEntryObject[] = keywordsWithUndefined.filter(k => k.name !== "undefined");
export const typeKeywords: readonly ExpectedCompletionEntryObject[] =
["false", "null", "true", "void", "any", "boolean", "keyof", "never", "readonly", "number", "object", "string", "symbol", "undefined", "unique", "unknown", "bigint"].map(keywordEntry);
["false", "null", "true", "void", "asserts", "any", "boolean", "keyof", "never", "readonly", "number", "object", "string", "symbol", "undefined", "unique", "unknown", "bigint"].map(keywordEntry);
const globalTypeDecls: readonly ExpectedCompletionEntryObject[] = [
interfaceEntry("Symbol"),
@ -1058,7 +1058,7 @@ namespace FourSlashInterface {
}
export const classElementKeywords: readonly ExpectedCompletionEntryObject[] =
["private", "protected", "public", "static", "abstract", "async", "constructor", "get", "readonly", "set"].map(keywordEntry);
["private", "protected", "public", "static", "abstract", "async", "constructor", "declare", "get", "readonly", "set"].map(keywordEntry);
export const classElementInJsKeywords = getInJsKeywords(classElementKeywords);
@ -1152,6 +1152,7 @@ namespace FourSlashInterface {
"let",
"package",
"yield",
"asserts",
"any",
"async",
"await",
@ -1351,6 +1352,7 @@ namespace FourSlashInterface {
"let",
"package",
"yield",
"asserts",
"any",
"async",
"await",

View File

@ -2525,6 +2525,7 @@ namespace ts.Completions {
case SyntaxKind.GetKeyword:
case SyntaxKind.SetKeyword:
case SyntaxKind.AsyncKeyword:
case SyntaxKind.DeclareKeyword:
return true;
default:
return isClassMemberModifier(kind);

View File

@ -1283,6 +1283,7 @@ namespace ts {
export const typeKeywords: readonly SyntaxKind[] = [
SyntaxKind.AnyKeyword,
SyntaxKind.AssertsKeyword,
SyntaxKind.BigIntKeyword,
SyntaxKind.BooleanKeyword,
SyntaxKind.FalseKeyword,

View File

@ -0,0 +1,9 @@
/// <reference path="fourslash.ts" />
//// class C {
//// /*1*/ declare property: number;
//// /*2*/
//// }
verify.completions({marker: "1", exact: completion.classElementKeywords, isNewIdentifierLocation: true});
verify.completions({marker: "2", exact: completion.classElementKeywords, isNewIdentifierLocation: true});

View File

@ -146,7 +146,7 @@ verify.completions(
"classThatStartedWritingIdentifierAfterPrivateModifier",
"classThatStartedWritingIdentifierAfterPrivateStaticModifier",
],
exact: ["private", "protected", "public", "static", "abstract", "async", "constructor", "get", "readonly", "set"].map(
exact: ["private", "protected", "public", "static", "abstract", "async", "constructor", "declare", "get", "readonly", "set"].map(
name => ({ name, sortText: completion.SortText.GlobalsOrKeywords })
),
isNewIdentifierLocation: true,

View File

@ -11,7 +11,7 @@ verify.completions(
{ marker: "0", includes: { name: "myClass", text: "(local class) myClass", kind: "local class" } },
{
marker: "1",
exact: ["private", "protected", "public", "static", "abstract", "async", "constructor", "get", "readonly", "set"].map(
exact: ["private", "protected", "public", "static", "abstract", "async", "constructor", "declare", "get", "readonly", "set"].map(
name => ({ name, sortText: completion.SortText.GlobalsOrKeywords })
),
isNewIdentifierLocation: true,

View File

@ -0,0 +1,11 @@
/// <reference path="fourslash.ts" />
//// const x = "str";
//// function assert1(condition: any, msg?: string): /*1*/ ;
//// function assert2(condition: any, msg?: string): /*2*/ { }
//// function assert3(condition: any, msg?: string): /*3*/
//// hi
verify.completions({marker: "1", exact: completion.globalTypes});
verify.completions({marker: "2", exact: completion.globalTypes});
verify.completions({marker: "3", exact: completion.globalTypes});