Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint

This commit is contained in:
Alexander 2019-09-05 21:33:19 +03:00
commit a381968f21
22 changed files with 181 additions and 50 deletions

View file

@ -2,10 +2,12 @@
namespace ts.Completions { namespace ts.Completions {
export enum SortText { export enum SortText {
LocationPriority = "0", LocationPriority = "0",
SuggestedClassMembers = "1", OptionalMember = "1",
GlobalsOrKeywords = "2", MemberDeclaredBySpreadAssignment = "2",
AutoImportSuggestions = "3", SuggestedClassMembers = "3",
JavascriptIdentifiers = "4" GlobalsOrKeywords = "4",
AutoImportSuggestions = "5",
JavascriptIdentifiers = "6"
} }
export type Log = (message: string) => void; export type Log = (message: string) => void;
@ -1109,6 +1111,7 @@ namespace ts.Completions {
const attrsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes); const attrsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes);
if (!attrsType) return GlobalsSearch.Continue; if (!attrsType) return GlobalsSearch.Continue;
symbols = filterJsxAttributes(getPropertiesForObjectExpression(attrsType, jsxContainer!.attributes, typeChecker), jsxContainer!.attributes.properties); symbols = filterJsxAttributes(getPropertiesForObjectExpression(attrsType, jsxContainer!.attributes, typeChecker), jsxContainer!.attributes.properties);
setSortTextToOptionalMember();
completionKind = CompletionKind.MemberLike; completionKind = CompletionKind.MemberLike;
isNewIdentifierLocation = false; isNewIdentifierLocation = false;
return GlobalsSearch.Success; return GlobalsSearch.Success;
@ -1539,6 +1542,8 @@ namespace ts.Completions {
// Add filtered items to the completion list // Add filtered items to the completion list
symbols = filterObjectMembersList(typeMembers, Debug.assertDefined(existingMembers)); symbols = filterObjectMembersList(typeMembers, Debug.assertDefined(existingMembers));
} }
setSortTextToOptionalMember();
return GlobalsSearch.Success; return GlobalsSearch.Success;
} }
@ -1910,6 +1915,7 @@ namespace ts.Completions {
return contextualMemberSymbols; return contextualMemberSymbols;
} }
const membersDeclaredBySpreadAssignment = createMap<true>();
const existingMemberNames = createUnderscoreEscapedMap<boolean>(); const existingMemberNames = createUnderscoreEscapedMap<boolean>();
for (const m of existingMembers) { for (const m of existingMembers) {
// Ignore omitted expressions for missing members // Ignore omitted expressions for missing members
@ -1918,7 +1924,8 @@ namespace ts.Completions {
m.kind !== SyntaxKind.BindingElement && m.kind !== SyntaxKind.BindingElement &&
m.kind !== SyntaxKind.MethodDeclaration && m.kind !== SyntaxKind.MethodDeclaration &&
m.kind !== SyntaxKind.GetAccessor && m.kind !== SyntaxKind.GetAccessor &&
m.kind !== SyntaxKind.SetAccessor) { m.kind !== SyntaxKind.SetAccessor &&
m.kind !== SyntaxKind.SpreadAssignment) {
continue; continue;
} }
@ -1929,7 +1936,10 @@ namespace ts.Completions {
let existingName: __String | undefined; let existingName: __String | undefined;
if (isBindingElement(m) && m.propertyName) { if (isSpreadAssignment(m)) {
setMembersDeclaredBySpreadAssignment(m, membersDeclaredBySpreadAssignment);
}
else if (isBindingElement(m) && m.propertyName) {
// include only identifiers in completion list // include only identifiers in completion list
if (m.propertyName.kind === SyntaxKind.Identifier) { if (m.propertyName.kind === SyntaxKind.Identifier) {
existingName = m.propertyName.escapedText; existingName = m.propertyName.escapedText;
@ -1946,7 +1956,43 @@ namespace ts.Completions {
existingMemberNames.set(existingName!, true); // TODO: GH#18217 existingMemberNames.set(existingName!, true); // TODO: GH#18217
} }
return contextualMemberSymbols.filter(m => !existingMemberNames.get(m.escapedName)); const filteredSymbols = contextualMemberSymbols.filter(m => !existingMemberNames.get(m.escapedName));
setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, filteredSymbols);
return filteredSymbols;
}
function setMembersDeclaredBySpreadAssignment(declaration: SpreadAssignment | JsxSpreadAttribute, membersDeclaredBySpreadAssignment: Map<true>) {
const expression = declaration.expression;
const symbol = typeChecker.getSymbolAtLocation(expression);
const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, expression);
const properties = type && (<ObjectType>type).properties;
if (properties) {
properties.forEach(property => {
membersDeclaredBySpreadAssignment.set(property.name, true);
});
}
}
// Set SortText to OptionalMember if it is an optinoal member
function setSortTextToOptionalMember() {
symbols.forEach(m => {
if (m.flags & SymbolFlags.Optional) {
symbolToSortTextMap[getSymbolId(m)] = symbolToSortTextMap[getSymbolId(m)] || SortText.OptionalMember;
}
});
}
// Set SortText to MemberDeclaredBySpreadAssignment if it is fulfilled by spread assignment
function setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment: Map<true>, contextualMemberSymbols: Symbol[]): void {
if (membersDeclaredBySpreadAssignment.size === 0) {
return;
}
for (const contextualMemberSymbol of contextualMemberSymbols) {
if (membersDeclaredBySpreadAssignment.has(contextualMemberSymbol.name)) {
symbolToSortTextMap[getSymbolId(contextualMemberSymbol)] = SortText.MemberDeclaredBySpreadAssignment;
}
}
} }
/** /**
@ -2000,6 +2046,7 @@ namespace ts.Completions {
*/ */
function filterJsxAttributes(symbols: Symbol[], attributes: NodeArray<JsxAttribute | JsxSpreadAttribute>): Symbol[] { function filterJsxAttributes(symbols: Symbol[], attributes: NodeArray<JsxAttribute | JsxSpreadAttribute>): Symbol[] {
const seenNames = createUnderscoreEscapedMap<boolean>(); const seenNames = createUnderscoreEscapedMap<boolean>();
const membersDeclaredBySpreadAssignment = createMap<true>();
for (const attr of attributes) { for (const attr of attributes) {
// If this is the current item we are editing right now, do not filter it out // If this is the current item we are editing right now, do not filter it out
if (isCurrentlyEditingNode(attr)) { if (isCurrentlyEditingNode(attr)) {
@ -2009,9 +2056,15 @@ namespace ts.Completions {
if (attr.kind === SyntaxKind.JsxAttribute) { if (attr.kind === SyntaxKind.JsxAttribute) {
seenNames.set(attr.name.escapedText, true); seenNames.set(attr.name.escapedText, true);
} }
else if (isJsxSpreadAttribute(attr)) {
setMembersDeclaredBySpreadAssignment(attr, membersDeclaredBySpreadAssignment);
}
} }
const filteredSymbols = symbols.filter(a => !seenNames.get(a.escapedName));
return symbols.filter(a => !seenNames.get(a.escapedName)); setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, filteredSymbols);
return filteredSymbols;
} }
function isCurrentlyEditingNode(node: Node): boolean { function isCurrentlyEditingNode(node: Node): boolean {

View file

@ -26,7 +26,7 @@ namespace ts.SmartSelectionRange {
// //
// Dive in without pushing a selection range. // Dive in without pushing a selection range.
if (isBlock(node) if (isBlock(node)
|| isTemplateSpan(node) || isTemplateHead(node) || isTemplateSpan(node) || isTemplateHead(node) || isTemplateTail(node)
|| prevNode && isTemplateHead(prevNode) || prevNode && isTemplateHead(prevNode)
|| isVariableDeclarationList(node) && isVariableStatement(parentNode) || isVariableDeclarationList(node) && isVariableStatement(parentNode)
|| isSyntaxList(node) && isVariableDeclarationList(parentNode) || isSyntaxList(node) && isVariableDeclarationList(parentNode)

View file

@ -23,7 +23,7 @@ Warning: You have changed the public API signature for this project. Updating re
dist-esm/index.js → dist/index.js... dist-esm/index.js → dist/index.js...
(!) Unresolved dependencies (!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
tslib (imported by dist-esm/auth.js, dist-esm/queryIterator.js, dist-esm/CosmosClient.js, dist-esm/plugins/Plugin.js, dist-esm/ClientContext.js, dist-esm/globalEndpointManager.js, dist-esm/client/Conflict/Conflict.js, dist-esm/client/Container/Container.js, dist-esm/client/Container/Containers.js, dist-esm/client/Database/Database.js, dist-esm/client/Database/Databases.js, dist-esm/client/Item/Item.js, dist-esm/client/Item/Items.js, dist-esm/client/Offer/Offer.js, dist-esm/client/Permission/Permission.js, dist-esm/client/Permission/Permissions.js, dist-esm/client/StoredProcedure/StoredProcedure.js, dist-esm/client/StoredProcedure/StoredProcedures.js, dist-esm/client/Trigger/Trigger.js, dist-esm/client/Trigger/Triggers.js, dist-esm/client/User/User.js, dist-esm/client/User/Users.js, dist-esm/client/UserDefinedFunction/UserDefinedFunctions.js, dist-esm/client/UserDefinedFunction/UserDefinedFunction.js, dist-esm/queryExecutionContext/documentProducer.js, dist-esm/queryExecutionContext/defaultQueryExecutionContext.js, dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js, dist-esm/queryExecutionContext/pipelinedQueryExecutionContext.js, dist-esm/request/request.js, dist-esm/request/RequestHandler.js, dist-esm/ChangeFeedIterator.js, dist-esm/routing/smartRoutingMapProvider.js, dist-esm/queryExecutionContext/EndpointComponent/AggregateEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js, dist-esm/retry/retryUtility.js, dist-esm/routing/partitionKeyRangeCache.js, dist-esm/retry/defaultRetryPolicy.js, dist-esm/retry/endpointDiscoveryRetryPolicy.js, dist-esm/retry/resourceThrottleRetryPolicy.js, dist-esm/retry/sessionRetryPolicy.js) tslib (imported by dist-esm/auth.js, dist-esm/queryIterator.js, dist-esm/CosmosClient.js, dist-esm/plugins/Plugin.js, dist-esm/ClientContext.js, dist-esm/globalEndpointManager.js, dist-esm/client/Conflict/Conflict.js, dist-esm/client/Container/Container.js, dist-esm/client/Container/Containers.js, dist-esm/client/Database/Database.js, dist-esm/client/Database/Databases.js, dist-esm/client/Item/Item.js, dist-esm/client/Item/Items.js, dist-esm/client/Offer/Offer.js, dist-esm/client/Permission/Permission.js, dist-esm/client/Permission/Permissions.js, dist-esm/client/StoredProcedure/StoredProcedure.js, dist-esm/client/StoredProcedure/StoredProcedures.js, dist-esm/client/Trigger/Trigger.js, dist-esm/client/Trigger/Triggers.js, dist-esm/client/User/User.js, dist-esm/client/User/Users.js, dist-esm/client/UserDefinedFunction/UserDefinedFunction.js, dist-esm/client/UserDefinedFunction/UserDefinedFunctions.js, dist-esm/queryExecutionContext/defaultQueryExecutionContext.js, dist-esm/queryExecutionContext/documentProducer.js, dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js, dist-esm/queryExecutionContext/pipelinedQueryExecutionContext.js, dist-esm/request/request.js, dist-esm/request/RequestHandler.js, dist-esm/ChangeFeedIterator.js, dist-esm/routing/smartRoutingMapProvider.js, dist-esm/queryExecutionContext/EndpointComponent/AggregateEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js, dist-esm/retry/retryUtility.js, dist-esm/routing/partitionKeyRangeCache.js, dist-esm/retry/defaultRetryPolicy.js, dist-esm/retry/endpointDiscoveryRetryPolicy.js, dist-esm/retry/resourceThrottleRetryPolicy.js, dist-esm/retry/sessionRetryPolicy.js)
@azure/cosmos-sign (imported by dist-esm/auth.js) @azure/cosmos-sign (imported by dist-esm/auth.js)
universal-user-agent (imported by dist-esm/common/platform.js) universal-user-agent (imported by dist-esm/common/platform.js)
uuid/v4 (imported by dist-esm/ClientContext.js, dist-esm/client/Item/Items.js) uuid/v4 (imported by dist-esm/ClientContext.js, dist-esm/client/Item/Items.js)
@ -93,7 +93,7 @@ Warning: You have changed the public API signature for this project. Updating re
dist-esm/index.js → dist/index.js... dist-esm/index.js → dist/index.js...
(!) Unresolved dependencies (!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
tslib (imported by dist-esm/auth.js, dist-esm/queryIterator.js, dist-esm/CosmosClient.js, dist-esm/plugins/Plugin.js, dist-esm/ClientContext.js, dist-esm/globalEndpointManager.js, dist-esm/client/Conflict/Conflict.js, dist-esm/client/Container/Container.js, dist-esm/client/Container/Containers.js, dist-esm/client/Database/Database.js, dist-esm/client/Database/Databases.js, dist-esm/client/Item/Item.js, dist-esm/client/Item/Items.js, dist-esm/client/Offer/Offer.js, dist-esm/client/Permission/Permission.js, dist-esm/client/Permission/Permissions.js, dist-esm/client/StoredProcedure/StoredProcedure.js, dist-esm/client/StoredProcedure/StoredProcedures.js, dist-esm/client/Trigger/Trigger.js, dist-esm/client/Trigger/Triggers.js, dist-esm/client/User/User.js, dist-esm/client/User/Users.js, dist-esm/client/UserDefinedFunction/UserDefinedFunctions.js, dist-esm/client/UserDefinedFunction/UserDefinedFunction.js, dist-esm/queryExecutionContext/documentProducer.js, dist-esm/queryExecutionContext/defaultQueryExecutionContext.js, dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js, dist-esm/queryExecutionContext/pipelinedQueryExecutionContext.js, dist-esm/request/request.js, dist-esm/request/RequestHandler.js, dist-esm/ChangeFeedIterator.js, dist-esm/routing/smartRoutingMapProvider.js, dist-esm/queryExecutionContext/EndpointComponent/AggregateEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js, dist-esm/retry/retryUtility.js, dist-esm/routing/partitionKeyRangeCache.js, dist-esm/retry/defaultRetryPolicy.js, dist-esm/retry/endpointDiscoveryRetryPolicy.js, dist-esm/retry/resourceThrottleRetryPolicy.js, dist-esm/retry/sessionRetryPolicy.js) tslib (imported by dist-esm/auth.js, dist-esm/queryIterator.js, dist-esm/CosmosClient.js, dist-esm/plugins/Plugin.js, dist-esm/ClientContext.js, dist-esm/globalEndpointManager.js, dist-esm/client/Conflict/Conflict.js, dist-esm/client/Container/Container.js, dist-esm/client/Container/Containers.js, dist-esm/client/Database/Database.js, dist-esm/client/Database/Databases.js, dist-esm/client/Item/Item.js, dist-esm/client/Item/Items.js, dist-esm/client/Offer/Offer.js, dist-esm/client/Permission/Permission.js, dist-esm/client/Permission/Permissions.js, dist-esm/client/StoredProcedure/StoredProcedure.js, dist-esm/client/StoredProcedure/StoredProcedures.js, dist-esm/client/Trigger/Trigger.js, dist-esm/client/Trigger/Triggers.js, dist-esm/client/User/User.js, dist-esm/client/User/Users.js, dist-esm/client/UserDefinedFunction/UserDefinedFunction.js, dist-esm/client/UserDefinedFunction/UserDefinedFunctions.js, dist-esm/queryExecutionContext/defaultQueryExecutionContext.js, dist-esm/queryExecutionContext/documentProducer.js, dist-esm/queryExecutionContext/parallelQueryExecutionContextBase.js, dist-esm/queryExecutionContext/pipelinedQueryExecutionContext.js, dist-esm/request/request.js, dist-esm/request/RequestHandler.js, dist-esm/ChangeFeedIterator.js, dist-esm/routing/smartRoutingMapProvider.js, dist-esm/queryExecutionContext/EndpointComponent/AggregateEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js, dist-esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js, dist-esm/retry/retryUtility.js, dist-esm/routing/partitionKeyRangeCache.js, dist-esm/retry/defaultRetryPolicy.js, dist-esm/retry/endpointDiscoveryRetryPolicy.js, dist-esm/retry/resourceThrottleRetryPolicy.js, dist-esm/retry/sessionRetryPolicy.js)
@azure/cosmos-sign (imported by dist-esm/auth.js) @azure/cosmos-sign (imported by dist-esm/auth.js)
universal-user-agent (imported by dist-esm/common/platform.js) universal-user-agent (imported by dist-esm/common/platform.js)
uuid/v4 (imported by dist-esm/ClientContext.js, dist-esm/client/Item/Items.js) uuid/v4 (imported by dist-esm/ClientContext.js, dist-esm/client/Item/Items.js)

View file

@ -180,6 +180,7 @@ Standard output:
@uifabric/styling: PASS src/styles/theme.test.ts @uifabric/styling: PASS src/styles/theme.test.ts
@uifabric/styling: PASS src/styles/scheme.test.ts @uifabric/styling: PASS src/styles/scheme.test.ts
@uifabric/styling: PASS src/styles/getGlobalClassNames.test.ts @uifabric/styling: PASS src/styles/getGlobalClassNames.test.ts
@uifabric/styling: PASS src/utilities/icons.test.ts
@uifabric/styling: [XX:XX:XX XM] ■ Extracting Public API surface from '/office-ui-fabric-react/packages/styling/lib/index.d.ts' @uifabric/styling: [XX:XX:XX XM] ■ Extracting Public API surface from '/office-ui-fabric-react/packages/styling/lib/index.d.ts'
@uifabric/styling: Done in ?s. @uifabric/styling: Done in ?s.
@uifabric/file-type-icons: yarn run vX.X.X @uifabric/file-type-icons: yarn run vX.X.X

View file

@ -0,0 +1,4 @@
`a ${b} /**/c`
a ${b} c
`a ${b} c`

View file

@ -22,26 +22,26 @@ lib/Coverage.js(208,15): error TS2503: Cannot find namespace 'Protocol'.
lib/EmulationManager.js(36,16): error TS2503: Cannot find namespace 'Protocol'. lib/EmulationManager.js(36,16): error TS2503: Cannot find namespace 'Protocol'.
lib/ExecutionContext.js(26,15): error TS2503: Cannot find namespace 'Protocol'. lib/ExecutionContext.js(26,15): error TS2503: Cannot find namespace 'Protocol'.
lib/ExecutionContext.js(158,18): error TS2503: Cannot find namespace 'Protocol'. lib/ExecutionContext.js(158,18): error TS2503: Cannot find namespace 'Protocol'.
lib/FrameManager.js(152,15): error TS2503: Cannot find namespace 'Protocol'. lib/FrameManager.js(151,15): error TS2503: Cannot find namespace 'Protocol'.
lib/FrameManager.js(174,15): error TS2503: Cannot find namespace 'Protocol'. lib/FrameManager.js(173,15): error TS2503: Cannot find namespace 'Protocol'.
lib/FrameManager.js(231,15): error TS2503: Cannot find namespace 'Protocol'. lib/FrameManager.js(230,15): error TS2503: Cannot find namespace 'Protocol'.
lib/FrameManager.js(669,15): error TS2503: Cannot find namespace 'Protocol'. lib/FrameManager.js(668,15): error TS2503: Cannot find namespace 'Protocol'.
lib/JSHandle.js(33,15): error TS2503: Cannot find namespace 'Protocol'. lib/JSHandle.js(33,15): error TS2503: Cannot find namespace 'Protocol'.
lib/JSHandle.js(129,15): error TS2503: Cannot find namespace 'Protocol'. lib/JSHandle.js(147,15): error TS2503: Cannot find namespace 'Protocol'.
lib/JSHandle.js(220,29): error TS2503: Cannot find namespace 'Protocol'. lib/JSHandle.js(238,29): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(31,30): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(32,30): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(165,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(159,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(184,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(178,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(203,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(197,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(224,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(218,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(245,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(239,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(255,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(249,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(269,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(263,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(282,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(276,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(301,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(295,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(325,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(319,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(535,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(529,15): error TS2503: Cannot find namespace 'Protocol'.
lib/NetworkManager.js(674,15): error TS2503: Cannot find namespace 'Protocol'. lib/NetworkManager.js(668,15): error TS2503: Cannot find namespace 'Protocol'.
lib/Page.js(93,33): error TS2345: Argument of type 'CDPSession' is not assignable to parameter of type 'Puppeteer.CDPSession'. lib/Page.js(93,33): error TS2345: Argument of type 'CDPSession' is not assignable to parameter of type 'Puppeteer.CDPSession'.
Types of property 'on' are incompatible. Types of property 'on' are incompatible.
Type '(event: string | symbol, listener: (...args: any[]) => void) => CDPSession' is not assignable to type '<T extends string | number | symbol>(event: T, listener: (arg: any) => void) => CDPSession'. Type '(event: string | symbol, listener: (...args: any[]) => void) => CDPSession' is not assignable to type '<T extends string | number | symbol>(event: T, listener: (arg: any) => void) => CDPSession'.

View file

@ -10,5 +10,5 @@
verify.completions({ verify.completions({
marker: "", marker: "",
exact: ["abc"], exact: [{ name: 'abc', kind: 'property', kindModifiers: 'declare,optional', sortText: completion.SortText.OptionalMember }],
}); });

View file

@ -0,0 +1,31 @@
/// <reference path="fourslash.ts" />
// @strict: true
//// interface I {
//// B?: number;
//// a: number;
//// c?: string;
//// d: string
//// }
//// const foo = {
//// a: 1,
//// B: 2
//// }
//// const i: I = {
//// ...foo,
//// /*a*/
//// }
verify.completions(
{
marker: ['a'],
exact: [
{ name: 'B', kindModifiers: 'optional', sortText: completion.SortText.MemberDeclaredBySpreadAssignment, kind: 'property' },
{ name: 'a', sortText: completion.SortText.MemberDeclaredBySpreadAssignment, kind: 'property' },
{ name: 'c', kindModifiers: 'optional', sortText: completion.SortText.OptionalMember, kind: 'property' },
{ name: 'd', sortText: completion.SortText.LocationPriority, kind: 'property' }
]
}
);

View file

@ -13,6 +13,8 @@
verify.completions({ verify.completions({
marker: "", marker: "",
includes: ['world'] exact: [
{ name: "world", kind: "property", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }
]
}); });

View file

@ -672,10 +672,12 @@ declare namespace completion {
type Entry = FourSlashInterface.ExpectedCompletionEntryObject; type Entry = FourSlashInterface.ExpectedCompletionEntryObject;
export const enum SortText { export const enum SortText {
LocationPriority = "0", LocationPriority = "0",
SuggestedClassMembers = "1", OptionalMember = "1",
GlobalsOrKeywords = "2", MemberDeclaredBySpreadAssignment = "2",
AutoImportSuggestions = "3", SuggestedClassMembers = "3",
JavascriptIdentifiers = "4" GlobalsOrKeywords = "4",
AutoImportSuggestions = "5",
JavascriptIdentifiers = "6"
} }
export const globalThisEntry: Entry; export const globalThisEntry: Entry;
export const undefinedVarEntry: Entry; export const undefinedVarEntry: Entry;

View file

@ -0,0 +1,5 @@
/// <reference path="fourslash.ts" />
////`a ${b} /**/c`
verify.baselineSmartSelection();

View file

@ -23,7 +23,13 @@
//// let opt4 = <Opt wrong /*5*/ />; //// let opt4 = <Opt wrong /*5*/ />;
verify.completions( verify.completions(
{ marker: ["1", "2", "5"], exact: ["propx", "propString", "optional"] }, {
{ marker: "3", exact: ["propString", "optional"] }, marker: ["1", "2", "5"],
exact: ["propx", "propString", { name: "optional", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }]
},
{
marker: "3",
exact: ["propString", { name: "optional", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }]
},
{ marker: "4", exact: "propString" }, { marker: "4", exact: "propString" },
); );

View file

@ -31,7 +31,28 @@
//// let opt = <MainButton wrong /*6*/ />; //// let opt = <MainButton wrong /*6*/ />;
verify.completions( verify.completions(
{ marker: ["1", "6"], exact: ["onClick", "children", "className", "goTo"] }, {
{ marker: "2", exact: ["onClick", "className", "goTo"] }, marker: ["1", "6"],
{ marker: ["3", "4", "5"], exact: ["children", "className"] }, exact: [
"onClick",
{ name: "children", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember },
{ name: "className", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember },
"goTo"
]
},
{
marker: "2",
exact: [
"onClick",
{ name: "className", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember },
"goTo"
]
},
{
marker: ["3", "4", "5"],
exact: [
{ name: "children", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember },
{ name: "className", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }
]
},
); );

View file

@ -10,4 +10,10 @@
//// let y = { ONE: '' }; //// let y = { ONE: '' };
//// var x = <div {...y} /**/ />; //// var x = <div {...y} /**/ />;
verify.completions({ marker: "", exact: ["ONE", "TWO"] }); verify.completions({
marker: "",
exact: [
{ name: "ONE", kind: "JSX attribute", kindModifiers: "declare", sortText: completion.SortText.MemberDeclaredBySpreadAssignment },
{ name: "TWO", kind: "JSX attribute", kindModifiers: "declare", sortText: completion.SortText.LocationPriority }
]
});

@ -1 +1 @@
Subproject commit 1bf5836cae5246b89bbf7063c3e84e110222fcdf Subproject commit 722ebf8053d2bf82bb66134b21c7e291ccae35c4

@ -1 +1 @@
Subproject commit bfc20b2f17c0206105e2cdd42cd35d79dd03a884 Subproject commit 19c71f2c6a2b874b1b2bb28a8526b19185b8eece

@ -1 +1 @@
Subproject commit 2ee3b482456cd2a09ccbd3a4b0c20f3d0c5a5644 Subproject commit 98e4acd893fe024ae9e6074894c6164802b3af63

@ -1 +1 @@
Subproject commit 437b83f0337a5d57ce7dd976d2c3b44cb2037e45 Subproject commit 6dec056de3c646fa1bce41acadc31641237863a0

@ -1 +1 @@
Subproject commit 23146404850011972f695fb6bc2b8113c3cffbfc Subproject commit 223443c057e64ca04cda5c0f37f5d15daaf69337

@ -1 +1 @@
Subproject commit b6b29502eb6a75fe3869806f0e7b27195fe51b0d Subproject commit c2651c2b5cc888ebd0ca6be87063d9f98b9eb59c

@ -1 +1 @@
Subproject commit 743ae6da9a6fc3b459a7ab3bb250fb07d14f9c5d Subproject commit b2b5b278ddfa49cea5a2a74b42917633e2d58237