diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index d63e16ce801..27ed0b6dc24 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -452,7 +452,7 @@ namespace ts.SignatureHelp { } function getContainingArgumentInfo(node: Node, position: number, sourceFile: SourceFile, checker: TypeChecker, isManuallyInvoked: boolean): ArgumentListInfo | undefined { - for (let n = node; isManuallyInvoked || (!isBlock(n) && !isSourceFile(n)); n = n.parent) { + for (let n = node; !isSourceFile(n) && (isManuallyInvoked || !isBlock(n)); n = n.parent) { // If the node is not a subspan of its parent, this is a big problem. // There have been crashes that might be caused by this violation. Debug.assert(rangeContainsRange(n.parent, n), "Not a subspan", () => `Child: ${Debug.showSyntaxKind(n)}, parent: ${Debug.showSyntaxKind(n.parent)}`); diff --git a/src/tsserver/server.ts b/src/tsserver/server.ts index e5820260d5f..ccc681cd96e 100644 --- a/src/tsserver/server.ts +++ b/src/tsserver/server.ts @@ -967,4 +967,8 @@ namespace ts.server { (process as any).noAsar = true; // Start listening ioSession.listen(); + + if (ts.sys.tryEnableSourceMapsForHost && /^development$/i.test(ts.sys.getEnvironmentVariable("NODE_ENV"))) { + ts.sys.tryEnableSourceMapsForHost(); + } } diff --git a/tests/cases/fourslash/signatureHelpAtEOF2.ts b/tests/cases/fourslash/signatureHelpAtEOF2.ts new file mode 100644 index 00000000000..676ad2d0db6 --- /dev/null +++ b/tests/cases/fourslash/signatureHelpAtEOF2.ts @@ -0,0 +1,6 @@ +/// + +////console.log() +/////**/ + +verify.noSignatureHelpForTriggerReason({ kind: "invoked" }, "");