mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 21:53:42 -06:00
Merge pull request #36063 from uniqueiniquity/addWeakCompletionProperty
Add completion property to identify completions from unchecked files
This commit is contained in:
commit
e87b2e3506
@ -843,8 +843,8 @@ namespace FourSlash {
|
||||
}
|
||||
|
||||
private verifyCompletionEntry(actual: ts.CompletionEntry, expected: FourSlashInterface.ExpectedCompletionEntry) {
|
||||
const { insertText, replacementSpan, hasAction, isRecommended, kind, kindModifiers, text, documentation, tags, source, sourceDisplay, sortText } = typeof expected === "string"
|
||||
? { insertText: undefined, replacementSpan: undefined, hasAction: undefined, isRecommended: undefined, kind: undefined, kindModifiers: undefined, text: undefined, documentation: undefined, tags: undefined, source: undefined, sourceDisplay: undefined, sortText: undefined }
|
||||
const { insertText, replacementSpan, hasAction, isRecommended, isFromUncheckedFile, kind, kindModifiers, text, documentation, tags, source, sourceDisplay, sortText } = typeof expected === "string"
|
||||
? { insertText: undefined, replacementSpan: undefined, hasAction: undefined, isRecommended: undefined, isFromUncheckedFile: undefined, kind: undefined, kindModifiers: undefined, text: undefined, documentation: undefined, tags: undefined, source: undefined, sourceDisplay: undefined, sortText: undefined }
|
||||
: expected;
|
||||
|
||||
if (actual.insertText !== insertText) {
|
||||
@ -867,8 +867,14 @@ namespace FourSlash {
|
||||
}
|
||||
}
|
||||
|
||||
if (isFromUncheckedFile !== undefined) {
|
||||
if (actual.isFromUncheckedFile !== isFromUncheckedFile) {
|
||||
this.raiseError(`Expected 'isFromUncheckedFile' value '${actual.isFromUncheckedFile}' to equal '${isFromUncheckedFile}'`);
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(actual.hasAction, hasAction, `Expected 'hasAction' value '${actual.hasAction}' to equal '${hasAction}'`);
|
||||
assert.equal(actual.isRecommended, isRecommended, `Expected 'isRecommended' value '${actual.source}' to equal '${isRecommended}'`);
|
||||
assert.equal(actual.isRecommended, isRecommended, `Expected 'isRecommended' value '${actual.isRecommended}' to equal '${isRecommended}'`);
|
||||
assert.equal(actual.source, source, `Expected 'source' value '${actual.source}' to equal '${source}'`);
|
||||
assert.equal(actual.sortText, sortText || ts.Completions.SortText.LocationPriority, this.messageAtLastKnownMarker(`Actual entry: ${JSON.stringify(actual)}`));
|
||||
|
||||
|
||||
@ -1480,6 +1480,7 @@ namespace FourSlashInterface {
|
||||
readonly replacementSpan?: FourSlash.Range;
|
||||
readonly hasAction?: boolean; // If not specified, will assert that this is false.
|
||||
readonly isRecommended?: boolean; // If not specified, will assert that this is false.
|
||||
readonly isFromUncheckedFile?: boolean; // If not specified, won't assert about this
|
||||
readonly kind?: string; // If not specified, won't assert about this
|
||||
readonly kindModifiers?: string; // Must be paired with 'kind'
|
||||
readonly text?: string;
|
||||
|
||||
@ -2121,6 +2121,11 @@ namespace ts.server.protocol {
|
||||
* Then either that enum/class or a namespace containing it will be the recommended symbol.
|
||||
*/
|
||||
isRecommended?: true;
|
||||
/**
|
||||
* If true, this completion was generated from traversing the name table of an unchecked JS file,
|
||||
* and therefore may not be accurate.
|
||||
*/
|
||||
isFromUncheckedFile?: true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -310,7 +310,8 @@ namespace ts.Completions {
|
||||
name: realName,
|
||||
kind: ScriptElementKind.warning,
|
||||
kindModifiers: "",
|
||||
sortText: SortText.JavascriptIdentifiers
|
||||
sortText: SortText.JavascriptIdentifiers,
|
||||
isFromUncheckedFile: true
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@ -988,6 +988,7 @@ namespace ts {
|
||||
hasAction?: true;
|
||||
source?: string;
|
||||
isRecommended?: true;
|
||||
isFromUncheckedFile?: true;
|
||||
}
|
||||
|
||||
export interface CompletionEntryDetails {
|
||||
|
||||
@ -5666,6 +5666,7 @@ declare namespace ts {
|
||||
hasAction?: true;
|
||||
source?: string;
|
||||
isRecommended?: true;
|
||||
isFromUncheckedFile?: true;
|
||||
}
|
||||
interface CompletionEntryDetails {
|
||||
name: string;
|
||||
@ -7673,6 +7674,11 @@ declare namespace ts.server.protocol {
|
||||
* Then either that enum/class or a namespace containing it will be the recommended symbol.
|
||||
*/
|
||||
isRecommended?: true;
|
||||
/**
|
||||
* If true, this completion was generated from traversing the name table of an unchecked JS file,
|
||||
* and therefore may not be accurate.
|
||||
*/
|
||||
isFromUncheckedFile?: true;
|
||||
}
|
||||
/**
|
||||
* Additional completion entry details, available on demand
|
||||
|
||||
@ -5666,6 +5666,7 @@ declare namespace ts {
|
||||
hasAction?: true;
|
||||
source?: string;
|
||||
isRecommended?: true;
|
||||
isFromUncheckedFile?: true;
|
||||
}
|
||||
interface CompletionEntryDetails {
|
||||
name: string;
|
||||
|
||||
28
tests/cases/fourslash/completionInUncheckedJSFile.ts
Normal file
28
tests/cases/fourslash/completionInUncheckedJSFile.ts
Normal file
@ -0,0 +1,28 @@
|
||||
/// <reference path="fourslash.ts" />
|
||||
|
||||
// @allowJs: true
|
||||
// @checkJs: false
|
||||
// @Filename: index.js
|
||||
////function hello() {
|
||||
////
|
||||
////}
|
||||
////
|
||||
////const goodbye = 5;
|
||||
////
|
||||
////console./*0*/
|
||||
|
||||
verify.completions({
|
||||
marker: "0",
|
||||
includes: [
|
||||
{
|
||||
name: "hello",
|
||||
sortText: completion.SortText.JavascriptIdentifiers,
|
||||
isFromUncheckedFile: true
|
||||
},
|
||||
{
|
||||
name: "goodbye",
|
||||
sortText: completion.SortText.JavascriptIdentifiers,
|
||||
isFromUncheckedFile: true
|
||||
}
|
||||
]
|
||||
});
|
||||
@ -611,6 +611,7 @@ declare namespace FourSlashInterface {
|
||||
readonly replacementSpan?: Range;
|
||||
readonly hasAction?: boolean;
|
||||
readonly isRecommended?: boolean;
|
||||
readonly isFromUncheckedFile?: boolean;
|
||||
readonly kind?: string;
|
||||
readonly kindModifiers?: string;
|
||||
readonly sortText?: completion.SortText;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user