From 03b1365104cbcfb2ff3c6a8ba0af7fa9afe20d86 Mon Sep 17 00:00:00 2001 From: Varun Gandhi Date: Wed, 27 Apr 2022 16:58:56 -0700 Subject: [PATCH 1/2] WIP: Improve hover text for common kinds of symbols. --- src/FileIndexer.ts | 125 +++++++++++++++++++++++++++++++++++++- src/TypeScriptInternal.ts | 13 ++++ 2 files changed, 135 insertions(+), 3 deletions(-) diff --git a/src/FileIndexer.ts b/src/FileIndexer.ts index 684dae4b..6441797a 100644 --- a/src/FileIndexer.ts +++ b/src/FileIndexer.ts @@ -142,9 +142,7 @@ export class FileIndexer { symbol: LsifSymbol ): void { const documentation = [ - '```ts\n' + - this.checker.typeToString(this.checker.getTypeAtLocation(node)) + - '\n```', + '```ts\n' + this.signatureForDocumentation(node, sym) + '\n```', ] const docstring = sym.getDocumentationComment(this.checker) if (docstring.length > 0) { @@ -331,6 +329,74 @@ export class FileIndexer { } return undefined } + + private signatureForDocumentation(node: ts.Node, sym: ts.Symbol): string { + const kind = scriptElementKind(node, sym) + const type = (): string => + this.checker.typeToString(this.checker.getTypeAtLocation(node)) + const signature = (): string | undefined => { + const declaration = sym.declarations?.[0] + if (!declaration) { + return undefined + } + const signatureDeclaration: ts.SignatureDeclaration | undefined = + ts.isFunctionDeclaration(declaration) + ? declaration + : ts.isMethodDeclaration(declaration) + ? declaration + : undefined + if (!signatureDeclaration) { + return undefined + } + const signature = + this.checker.getSignatureFromDeclaration(signatureDeclaration) + return signature ? this.checker.signatureToString(signature) : undefined + } + switch (kind) { + case ts.ScriptElementKind.localVariableElement: + case ts.ScriptElementKind.variableElement: + return 'var ' + node.getText() + ': ' + type() + case ts.ScriptElementKind.memberVariableElement: + return '(property) ' + node.getText() + ': ' + type() + case ts.ScriptElementKind.parameterElement: + return '(parameter) ' + node.getText() + ': ' + type() + case ts.ScriptElementKind.constElement: + return 'const ' + node.getText() + ': ' + type() + case ts.ScriptElementKind.letElement: + return 'let ' + node.getText() + ': ' + type() + case ts.ScriptElementKind.alias: + return 'type ' + node.getText() + case ts.ScriptElementKind.classElement: + case ts.ScriptElementKind.localClassElement: + return 'class ' + node.getText() + case ts.ScriptElementKind.interfaceElement: + return 'interface ' + node.getText() + case ts.ScriptElementKind.enumElement: + return 'enum ' + node.getText() + case ts.ScriptElementKind.enumMemberElement: { + let suffix = '' + const declaration = sym.declarations?.[0] + if (declaration && ts.isEnumMember(declaration)) { + const constantValue = this.checker.getConstantValue(declaration) + if (constantValue) { + suffix = ' = ' + constantValue.toString() + } + } + return '(enum member) ' + node.getText() + suffix + } + case ts.ScriptElementKind.functionElement: + return 'function ' + node.getText() + (signature() || type()) + case ts.ScriptElementKind.memberFunctionElement: + return '(method) ' + node.getText() + (signature() || type()) + case ts.ScriptElementKind.memberGetAccessorElement: + return 'get ' + node.getText() + ': ' + type() + case ts.ScriptElementKind.memberSetAccessorElement: + return 'set ' + node.getText() + type() + case ts.ScriptElementKind.constructorImplementationElement: + return '' + } + return node.getText() + ': ' + type() + } } function isAnonymousContainerOfSymbols(node: ts.Node): boolean { @@ -343,3 +409,56 @@ function isAnonymousContainerOfSymbols(node: ts.Node): boolean { ts.isVariableDeclarationList(node) ) } + +function scriptElementKind( + node: ts.Node, + sym: ts.Symbol +): ts.ScriptElementKind { + const flags = sym.getFlags() + if (flags & ts.SymbolFlags.TypeAlias) { + return ts.ScriptElementKind.alias + } + if (flags & ts.SymbolFlags.Class) { + return ts.ScriptElementKind.classElement + } + if (flags & ts.SymbolFlags.Interface) { + return ts.ScriptElementKind.interfaceElement + } + if (flags & ts.SymbolFlags.Enum) { + return ts.ScriptElementKind.enumElement + } + if (flags & ts.SymbolFlags.EnumMember) { + return ts.ScriptElementKind.enumMemberElement + } + if (flags & ts.SymbolFlags.Method) { + return ts.ScriptElementKind.memberFunctionElement + } + if (flags & ts.SymbolFlags.GetAccessor) { + return ts.ScriptElementKind.memberGetAccessorElement + } + if (flags & ts.SymbolFlags.SetAccessor) { + return ts.ScriptElementKind.memberSetAccessorElement + } + if (flags & ts.SymbolFlags.Constructor) { + return ts.ScriptElementKind.constructorImplementationElement + } + if (flags & ts.SymbolFlags.Function) { + return ts.ScriptElementKind.functionElement + } + if (flags & ts.SymbolFlags.Variable) { + if (ts_inline.isParameter(sym)) { + return ts.ScriptElementKind.parameterElement + } + if (node.flags & ts.NodeFlags.Const) { + return ts.ScriptElementKind.constElement + } + if (node.flags & ts.NodeFlags.Let) { + return ts.ScriptElementKind.letElement + } + return ts.ScriptElementKind.variableElement + } + if (flags & ts.SymbolFlags.ClassMember) { + return ts.ScriptElementKind.memberVariableElement + } + return ts.ScriptElementKind.unknown +} diff --git a/src/TypeScriptInternal.ts b/src/TypeScriptInternal.ts index ebd17d41..07708024 100644 --- a/src/TypeScriptInternal.ts +++ b/src/TypeScriptInternal.ts @@ -41,3 +41,16 @@ function isVariableDeclarationInitializedToBareOrAccessedRequire( function isVariableDeclaration(node: ts.Node): node is ts.VariableDeclaration { return node.kind === ts.SyntaxKind.VariableDeclaration } +export function isParameter(sym: ts.Symbol): boolean { + // based on isFirstDeclarationOfSymbolParameter + const declaration = sym.declarations?.[0] + return !!ts.findAncestor(declaration, (node: ts.Node): boolean | 'quit' => + ts.isParameter(node) + ? true + : ts.isBindingElement(node) || + ts.isObjectBindingPattern(node) || + ts.isArrayBindingPattern(node) + ? false + : 'quit' + ) +} From 4f81f814550752e529a597817a64543f305ad68a Mon Sep 17 00:00:00 2001 From: Varun Gandhi Date: Thu, 28 Apr 2022 09:13:29 -0700 Subject: [PATCH 2/2] Update snapshots. --- .../multi-project/packages/a/src/index.ts | 2 +- .../output/multi-project/packages/b/src/b.ts | 2 +- snapshots/output/pure-js/src/main.js | 36 +++++++-------- snapshots/output/react/src/LoaderInput.tsx | 12 ++--- snapshots/output/react/src/MyTSXElement.tsx | 4 +- .../output/react/src/UseMyTSXElement.tsx | 2 +- snapshots/output/syntax/src/accessors.ts | 46 +++++++++---------- snapshots/output/syntax/src/class.ts | 26 +++++------ snapshots/output/syntax/src/enum.ts | 8 ++-- snapshots/output/syntax/src/function.ts | 2 +- snapshots/output/syntax/src/import.ts | 2 +- snapshots/output/syntax/src/interface.ts | 24 +++++----- snapshots/output/syntax/src/issue-45.d.ts | 12 ++--- snapshots/output/syntax/src/local.ts | 18 ++++---- snapshots/output/syntax/src/module.d.ts | 2 +- snapshots/output/syntax/src/namespace.d.ts | 10 ++-- .../src/property-assignment-reference.ts | 2 +- .../output/syntax/src/property-assignment.ts | 10 ++-- snapshots/output/syntax/src/type-alias.ts | 36 +++++++-------- snapshots/output/syntax/src/type-parameter.ts | 10 ++-- 20 files changed, 133 insertions(+), 133 deletions(-) diff --git a/snapshots/output/multi-project/packages/a/src/index.ts b/snapshots/output/multi-project/packages/a/src/index.ts index 959df04b..115feb2d 100644 --- a/snapshots/output/multi-project/packages/a/src/index.ts +++ b/snapshots/output/multi-project/packages/a/src/index.ts @@ -1,6 +1,6 @@ export function a(): string { // ^ definition @example/a 1.0.0 src/`index.ts`/a(). -// documentation ```ts\n() => string\n``` +// documentation ```ts\nfunction a(): string\n``` return '' } diff --git a/snapshots/output/multi-project/packages/b/src/b.ts b/snapshots/output/multi-project/packages/b/src/b.ts index b3f7cda8..dce1c0c9 100644 --- a/snapshots/output/multi-project/packages/b/src/b.ts +++ b/snapshots/output/multi-project/packages/b/src/b.ts @@ -3,7 +3,7 @@ export function b() { // ^ definition @example/b 1.0.0 src/`b.ts`/b(). -// documentation ```ts\n() => string\n``` +// documentation ```ts\nfunction b(): string\n``` return a() // ^ reference @example/a 1.0.0 src/`index.ts`/a(). } diff --git a/snapshots/output/pure-js/src/main.js b/snapshots/output/pure-js/src/main.js index 7c4d7ceb..f49bf27b 100644 --- a/snapshots/output/pure-js/src/main.js +++ b/snapshots/output/pure-js/src/main.js @@ -1,8 +1,8 @@ function fib(n) { // ^^^ definition pure-js 1.0.0 src/`main.js`/fib(). -// documentation ```ts\n(n: any) => any\n``` +// documentation ```ts\nfunction fib(n: any): any\n``` // ^ definition pure-js 1.0.0 src/`main.js`/fib().(n) -// documentation ```ts\nany\n``` +// documentation ```ts\n(parameter) n: any\n``` if (n <= 1) { // ^ reference pure-js 1.0.0 src/`main.js`/fib().(n) return 0 @@ -16,9 +16,9 @@ function print_fib(a) { // ^^^^^^^^^ definition pure-js 1.0.0 src/`main.js`/print_fib(). -// documentation ```ts\n(a: any) => void\n``` +// documentation ```ts\nfunction print_fib(a: any): void\n``` // ^ definition pure-js 1.0.0 src/`main.js`/print_fib().(a) -// documentation ```ts\nany\n``` +// documentation ```ts\n(parameter) a: any\n``` console.log(fib(a)) // ^^^^^^^ reference typescript 4.6.2 lib/`lib.dom.d.ts`/console. // ^^^^^^^ reference @types/node 17.0.14 `globals.d.ts`/console. @@ -32,37 +32,37 @@ var y = 'Hello' // ^ definition pure-js 1.0.0 src/`main.js`/y. -// documentation ```ts\nstring\n``` +// documentation ```ts\nvar y: string\n``` function capture() { // ^^^^^^^ definition pure-js 1.0.0 src/`main.js`/capture(). -// documentation ```ts\n() => string\n``` +// documentation ```ts\nfunction capture(): string\n``` return y // ^ reference pure-js 1.0.0 src/`main.js`/y. } const capture_lambda = () => { // ^^^^^^^^^^^^^^ definition pure-js 1.0.0 src/`main.js`/capture_lambda. -// documentation ```ts\n() => string\n``` +// documentation ```ts\nvar capture_lambda: () => string\n``` return y // ^ reference pure-js 1.0.0 src/`main.js`/y. } for (var i = 0; i <= 10; i++) {} // ^ definition local 2 -// documentation ```ts\nnumber\n``` +// documentation ```ts\nvar i: number\n``` // ^ reference local 2 // ^ reference local 2 for (const x of [1, 2, 3]) { // ^ definition local 5 -// documentation ```ts\nnumber\n``` +// documentation ```ts\nvar x: number\n``` } var a = 0 // ^ definition pure-js 1.0.0 src/`main.js`/a. -// documentation ```ts\nnumber\n``` +// documentation ```ts\nvar a: number\n``` var a = 1 // ^ definition pure-js 1.0.0 src/`main.js`/a. -// documentation ```ts\nnumber\n``` +// documentation ```ts\nvar a: number\n``` print_fib(a) //^^^^^^^^^ reference pure-js 1.0.0 src/`main.js`/print_fib(). // ^ reference pure-js 1.0.0 src/`main.js`/a. @@ -70,26 +70,26 @@ function forever() { // ^^^^^^^ definition pure-js 1.0.0 src/`main.js`/forever(). -// documentation ```ts\n() => any\n``` +// documentation ```ts\nfunction forever(): any\n``` return forever() // ^^^^^^^ reference pure-js 1.0.0 src/`main.js`/forever(). } function use_before_def() { // ^^^^^^^^^^^^^^ definition pure-js 1.0.0 src/`main.js`/use_before_def(). -// documentation ```ts\n() => void\n``` +// documentation ```ts\nfunction use_before_def(): void\n``` print_fib(n) // ^^^^^^^^^ reference pure-js 1.0.0 src/`main.js`/print_fib(). // ^ reference local 8 var n = 10 // ^ definition local 8 -// documentation ```ts\nnumber\n``` +// documentation ```ts\nvar n: number\n``` if (forever()) { // ^^^^^^^ reference pure-js 1.0.0 src/`main.js`/forever(). var m = 10 // ^ definition local 11 -// documentation ```ts\nnumber\n``` +// documentation ```ts\nvar m: number\n``` } print_fib(m) // ^^^^^^^^^ reference pure-js 1.0.0 src/`main.js`/print_fib(). @@ -98,15 +98,15 @@ function var_function_scope() { // ^^^^^^^^^^^^^^^^^^ definition pure-js 1.0.0 src/`main.js`/var_function_scope(). -// documentation ```ts\n() => void\n``` +// documentation ```ts\nfunction var_function_scope(): void\n``` var k = 0 // ^ definition local 14 -// documentation ```ts\nnumber\n``` +// documentation ```ts\nvar k: number\n``` if (forever()) { // ^^^^^^^ reference pure-js 1.0.0 src/`main.js`/forever(). var k = 1 // ^ definition local 14 -// documentation ```ts\nnumber\n``` +// documentation ```ts\nvar k: number\n``` } print_fib(k) // ^^^^^^^^^ reference pure-js 1.0.0 src/`main.js`/print_fib(). diff --git a/snapshots/output/react/src/LoaderInput.tsx b/snapshots/output/react/src/LoaderInput.tsx index 0fae19ae..d6175bf5 100644 --- a/snapshots/output/react/src/LoaderInput.tsx +++ b/snapshots/output/react/src/LoaderInput.tsx @@ -4,21 +4,21 @@ /** Takes loading prop, input component as child */ interface Props { // ^^^^^ definition react-example 1.0.0 src/`LoaderInput.tsx`/Props# -// documentation ```ts\nProps\n``` +// documentation ```ts\ninterface Props\n``` // documentation Takes loading prop, input component as child loading: boolean // ^^^^^^^ definition react-example 1.0.0 src/`LoaderInput.tsx`/Props#loading. -// documentation ```ts\nboolean\n``` +// documentation ```ts\n(property) loading: boolean\n``` children: React.ReactNode // ^^^^^^^^ definition react-example 1.0.0 src/`LoaderInput.tsx`/Props#children. -// documentation ```ts\nReactNode\n``` +// documentation ```ts\n(property) children: ReactNode\n``` // ^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/ // ^^^^^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/ReactNode# } export const LoaderInput: React.FunctionComponent = ({ // ^^^^^^^^^^^ definition react-example 1.0.0 src/`LoaderInput.tsx`/LoaderInput. -// documentation ```ts\nFunctionComponent\n``` +// documentation ```ts\nvar LoaderInput: FunctionComponent\n``` // ^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/ // ^^^^^^^^^^^^^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/FunctionComponent# // ^^^^^ reference react-example 1.0.0 src/`LoaderInput.tsx`/Props# @@ -42,12 +42,12 @@ export const LoaderInput2: React.FunctionComponent = props => { // ^^^^^^^^^^^^ definition react-example 1.0.0 src/`LoaderInput.tsx`/LoaderInput2. -// documentation ```ts\nFunctionComponent\n``` +// documentation ```ts\nvar LoaderInput2: FunctionComponent\n``` // ^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/ // ^^^^^^^^^^^^^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/FunctionComponent# // ^^^^^ reference react-example 1.0.0 src/`LoaderInput.tsx`/Props# // ^^^^^ definition local 6 -// documentation ```ts\nPropsWithChildren\n``` +// documentation ```ts\n(parameter) props: PropsWithChildren\n``` return // ^^^^^^^^^^^ reference react-example 1.0.0 src/`LoaderInput.tsx`/LoaderInput. // ^^^^^^^ reference react-example 1.0.0 src/`LoaderInput.tsx`/Props#loading. diff --git a/snapshots/output/react/src/MyTSXElement.tsx b/snapshots/output/react/src/MyTSXElement.tsx index 543248ba..34e2dc73 100644 --- a/snapshots/output/react/src/MyTSXElement.tsx +++ b/snapshots/output/react/src/MyTSXElement.tsx @@ -3,11 +3,11 @@ export interface MyProps {} // ^^^^^^^ definition react-example 1.0.0 src/`MyTSXElement.tsx`/MyProps# -// documentation ```ts\nMyProps\n``` +// documentation ```ts\ninterface MyProps\n``` export const MyTSXElement: React.FunctionComponent = ({}) => (

) // ^^^^^^^^^^^^ definition react-example 1.0.0 src/`MyTSXElement.tsx`/MyTSXElement. -// documentation ```ts\nFunctionComponent\n``` +// documentation ```ts\nvar MyTSXElement: FunctionComponent\n``` // ^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/ // ^^^^^^^^^^^^^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/FunctionComponent# // ^^^^^^^ reference react-example 1.0.0 src/`MyTSXElement.tsx`/MyProps# diff --git a/snapshots/output/react/src/UseMyTSXElement.tsx b/snapshots/output/react/src/UseMyTSXElement.tsx index acf63d9c..8fe1cb04 100644 --- a/snapshots/output/react/src/UseMyTSXElement.tsx +++ b/snapshots/output/react/src/UseMyTSXElement.tsx @@ -7,7 +7,7 @@ export const _: React.FunctionComponent = // ^ definition react-example 1.0.0 src/`UseMyTSXElement.tsx`/_. -// documentation ```ts\nFunctionComponent\n``` +// documentation ```ts\nvar _: FunctionComponent\n``` // ^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/ // ^^^^^^^^^^^^^^^^^ reference @types/react 17.0.0 `index.d.ts`/React/FunctionComponent# // ^^^^^^^ reference react-example 1.0.0 src/`MyTSXElement.tsx`/MyProps# diff --git a/snapshots/output/syntax/src/accessors.ts b/snapshots/output/syntax/src/accessors.ts index 3d1346cf..3d6d8bb6 100644 --- a/snapshots/output/syntax/src/accessors.ts +++ b/snapshots/output/syntax/src/accessors.ts @@ -1,20 +1,20 @@ class C { // ^ definition syntax 1.0.0 src/`accessors.ts`/C# -// documentation ```ts\nC\n``` +// documentation ```ts\nclass C\n``` _length: number = 0 // ^^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/C#_length. -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(property) _length: number\n``` get length(): number { // ^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/C#`length`(). -// documentation ```ts\nnumber\n``` +// documentation ```ts\nget length: number\n``` return this._length // ^^^^^^^ reference syntax 1.0.0 src/`accessors.ts`/C#_length. } set length(value: number) { // ^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/C#`length`(). -// documentation ```ts\nnumber\n``` +// documentation ```ts\nget length: number\n``` // ^^^^^ definition syntax 1.0.0 src/`accessors.ts`/C#`length`().(value) -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(parameter) value: number\n``` this._length = value // ^^^^^^^ reference syntax 1.0.0 src/`accessors.ts`/C#_length. // ^^^^^ reference syntax 1.0.0 src/`accessors.ts`/C#`length`().(value) @@ -22,10 +22,10 @@ _capacity: number = 0 // ^^^^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/C#_capacity. -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(property) _capacity: number\n``` get capacity(): number { // ^^^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/C#`capacity`(). -// documentation ```ts\nnumber\n``` +// documentation ```ts\nget capacity: number\n``` return this._capacity // ^^^^^^^^^ reference syntax 1.0.0 src/`accessors.ts`/C#_capacity. } @@ -33,21 +33,21 @@ export class D { // ^ definition syntax 1.0.0 src/`accessors.ts`/D# -// documentation ```ts\nD\n``` +// documentation ```ts\nclass D\n``` _length: number = 0 // ^^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#_length. -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(property) _length: number\n``` public get length(): number { // ^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#`length`(). -// documentation ```ts\nnumber\n``` +// documentation ```ts\nget length: number\n``` return this._length // ^^^^^^^ reference syntax 1.0.0 src/`accessors.ts`/D#_length. } public set length(value: number) { // ^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#`length`(). -// documentation ```ts\nnumber\n``` +// documentation ```ts\nget length: number\n``` // ^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#`length`().(value) -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(parameter) value: number\n``` this._length = value // ^^^^^^^ reference syntax 1.0.0 src/`accessors.ts`/D#_length. // ^^^^^ reference syntax 1.0.0 src/`accessors.ts`/D#`length`().(value) @@ -55,27 +55,27 @@ _capacity: number = 0 // ^^^^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#_capacity. -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(property) _capacity: number\n``` public get capacity(): number { // ^^^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#`capacity`(). -// documentation ```ts\nnumber\n``` +// documentation ```ts\nget capacity: number\n``` return this._capacity // ^^^^^^^^^ reference syntax 1.0.0 src/`accessors.ts`/D#_capacity. } private set capacity(value: number) { // ^^^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#`capacity`(). -// documentation ```ts\nnumber\n``` +// documentation ```ts\nget capacity: number\n``` // ^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#`capacity`().(value) -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(parameter) value: number\n``` this._capacity = value // ^^^^^^^^^ reference syntax 1.0.0 src/`accessors.ts`/D#_capacity. // ^^^^^ reference syntax 1.0.0 src/`accessors.ts`/D#`capacity`().(value) } public unsafeSetCapacity(value: number): void { // ^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#unsafeSetCapacity(). -// documentation ```ts\n(value: number) => void\n``` +// documentation ```ts\n(method) unsafeSetCapacity(value: number): void\n``` // ^^^^^ definition syntax 1.0.0 src/`accessors.ts`/D#unsafeSetCapacity().(value) -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(parameter) value: number\n``` this.capacity = value // ^^^^^^^^ reference syntax 1.0.0 src/`accessors.ts`/D#`capacity`(). // ^^^^^^^^ reference syntax 1.0.0 src/`accessors.ts`/D#`capacity`(). @@ -85,16 +85,16 @@ function g(_: number): void {} // ^ definition syntax 1.0.0 src/`accessors.ts`/g(). -// documentation ```ts\n(_: number) => void\n``` +// documentation ```ts\nfunction g(_: number): void\n``` // ^ definition syntax 1.0.0 src/`accessors.ts`/g().(_) -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(parameter) _: number\n``` function f() { // ^ definition syntax 1.0.0 src/`accessors.ts`/f(). -// documentation ```ts\n() => void\n``` +// documentation ```ts\nfunction f(): void\n``` const c = new C() // ^ definition local 2 -// documentation ```ts\nC\n``` +// documentation ```ts\nvar c: C\n``` // ^ reference syntax 1.0.0 src/`accessors.ts`/C# c.length = 10 // ^ reference local 2 @@ -117,7 +117,7 @@ const d = new D() // ^ definition local 5 -// documentation ```ts\nD\n``` +// documentation ```ts\nvar d: D\n``` // ^ reference syntax 1.0.0 src/`accessors.ts`/D# d.length = 0 // ^ reference local 5 diff --git a/snapshots/output/syntax/src/class.ts b/snapshots/output/syntax/src/class.ts index f3294135..6bfde0eb 100644 --- a/snapshots/output/syntax/src/class.ts +++ b/snapshots/output/syntax/src/class.ts @@ -1,38 +1,38 @@ export class Class { // ^^^^^ definition syntax 1.0.0 src/`class.ts`/Class# -// documentation ```ts\nClass\n``` +// documentation ```ts\nclass Class\n``` public classProperty: string // ^^^^^^^^^^^^^ definition syntax 1.0.0 src/`class.ts`/Class#classProperty. -// documentation ```ts\nstring\n``` +// documentation ```ts\n(property) classProperty: string\n``` constructor(constructorParam: string) { // ^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`class.ts`/Class#``().(constructorParam) -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) constructorParam: string\n``` this.classProperty = constructorParam // ^^^^^^^^^^^^^ reference syntax 1.0.0 src/`class.ts`/Class#classProperty. // ^^^^^^^^^^^^^^^^ reference syntax 1.0.0 src/`class.ts`/Class#``().(constructorParam) } public method(methodParam: string): string { // ^^^^^^ definition syntax 1.0.0 src/`class.ts`/Class#method(). -// documentation ```ts\n(methodParam: string) => string\n``` +// documentation ```ts\n(method) method(methodParam: string): string\n``` // ^^^^^^^^^^^ definition syntax 1.0.0 src/`class.ts`/Class#method().(methodParam) -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) methodParam: string\n``` return this.privateMethod(methodParam) // ^^^^^^^^^^^^^ reference syntax 1.0.0 src/`class.ts`/Class#privateMethod(). // ^^^^^^^^^^^ reference syntax 1.0.0 src/`class.ts`/Class#method().(methodParam) } public static staticMethod(methodParam: string): string { // ^^^^^^^^^^^^ definition syntax 1.0.0 src/`class.ts`/Class#staticMethod(). -// documentation ```ts\n(methodParam: string) => string\n``` +// documentation ```ts\n(method) staticMethod(methodParam: string): string\n``` // ^^^^^^^^^^^ definition syntax 1.0.0 src/`class.ts`/Class#staticMethod().(methodParam) -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) methodParam: string\n``` return methodParam // ^^^^^^^^^^^ reference syntax 1.0.0 src/`class.ts`/Class#staticMethod().(methodParam) } private privateMethod(methodParam: string): string { // ^^^^^^^^^^^^^ definition syntax 1.0.0 src/`class.ts`/Class#privateMethod(). -// documentation ```ts\n(methodParam: string) => string\n``` +// documentation ```ts\n(method) privateMethod(methodParam: string): string\n``` // ^^^^^^^^^^^ definition syntax 1.0.0 src/`class.ts`/Class#privateMethod().(methodParam) -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) methodParam: string\n``` return methodParam // ^^^^^^^^^^^ reference syntax 1.0.0 src/`class.ts`/Class#privateMethod().(methodParam) } @@ -40,18 +40,18 @@ export function newClass(param: string): string { // ^^^^^^^^ definition syntax 1.0.0 src/`class.ts`/newClass(). -// documentation ```ts\n(param: string) => string\n``` +// documentation ```ts\nfunction newClass(param: string): string\n``` // ^^^^^ definition syntax 1.0.0 src/`class.ts`/newClass().(param) -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) param: string\n``` const instance = new Class(param).classProperty // ^^^^^^^^ definition local 2 -// documentation ```ts\nstring\n``` +// documentation ```ts\nvar instance: string\n``` // ^^^^^ reference syntax 1.0.0 src/`class.ts`/Class# // ^^^^^ reference syntax 1.0.0 src/`class.ts`/newClass().(param) // ^^^^^^^^^^^^^ reference syntax 1.0.0 src/`class.ts`/Class#classProperty. const instance2 = Class.staticMethod(param) // ^^^^^^^^^ definition local 5 -// documentation ```ts\nstring\n``` +// documentation ```ts\nvar instance2: string\n``` // ^^^^^ reference syntax 1.0.0 src/`class.ts`/Class# // ^^^^^^^^^^^^ reference syntax 1.0.0 src/`class.ts`/Class#staticMethod(). // ^^^^^ reference syntax 1.0.0 src/`class.ts`/newClass().(param) diff --git a/snapshots/output/syntax/src/enum.ts b/snapshots/output/syntax/src/enum.ts index 492667b1..79c8e9f9 100644 --- a/snapshots/output/syntax/src/enum.ts +++ b/snapshots/output/syntax/src/enum.ts @@ -1,17 +1,17 @@ export enum Enum { // ^^^^ definition syntax 1.0.0 src/`enum.ts`/Enum# -// documentation ```ts\nEnum\n``` +// documentation ```ts\nenum Enum\n``` A, // ^ definition syntax 1.0.0 src/`enum.ts`/Enum#A. -// documentation ```ts\nEnum.A\n``` +// documentation ```ts\n(enum member) A\n``` B, // ^ definition syntax 1.0.0 src/`enum.ts`/Enum#B. -// documentation ```ts\nEnum.B\n``` +// documentation ```ts\n(enum member) B = 1\n``` } export function newEnum(): Enum { // ^^^^^^^ definition syntax 1.0.0 src/`enum.ts`/newEnum(). -// documentation ```ts\n() => Enum\n``` +// documentation ```ts\nfunction newEnum(): Enum\n``` // ^^^^ reference syntax 1.0.0 src/`enum.ts`/Enum# return Enum.A // ^^^^ reference syntax 1.0.0 src/`enum.ts`/Enum# diff --git a/snapshots/output/syntax/src/function.ts b/snapshots/output/syntax/src/function.ts index 372a9a70..2093693c 100644 --- a/snapshots/output/syntax/src/function.ts +++ b/snapshots/output/syntax/src/function.ts @@ -1,4 +1,4 @@ export function newFunction(): void {} // ^^^^^^^^^^^ definition syntax 1.0.0 src/`function.ts`/newFunction(). -// documentation ```ts\n() => void\n``` +// documentation ```ts\nfunction newFunction(): void\n``` diff --git a/snapshots/output/syntax/src/import.ts b/snapshots/output/syntax/src/import.ts index 1196581f..10aeac67 100644 --- a/snapshots/output/syntax/src/import.ts +++ b/snapshots/output/syntax/src/import.ts @@ -10,7 +10,7 @@ export function useEverything(): string { // ^^^^^^^^^^^^^ definition syntax 1.0.0 src/`import.ts`/useEverything(). -// documentation ```ts\n() => string\n``` +// documentation ```ts\nfunction useEverything(): string\n``` return ( new Class('a').classProperty + // ^^^^^ reference syntax 1.0.0 src/`class.ts`/Class# diff --git a/snapshots/output/syntax/src/interface.ts b/snapshots/output/syntax/src/interface.ts index 76cf90ff..65488f14 100644 --- a/snapshots/output/syntax/src/interface.ts +++ b/snapshots/output/syntax/src/interface.ts @@ -1,42 +1,42 @@ export interface Interface { // ^^^^^^^^^ definition syntax 1.0.0 src/`interface.ts`/Interface# -// documentation ```ts\nInterface\n``` +// documentation ```ts\ninterface Interface\n``` property: string // ^^^^^^^^ definition syntax 1.0.0 src/`interface.ts`/Interface#property. -// documentation ```ts\nstring\n``` +// documentation ```ts\n(property) property: string\n``` methodSignature(param: string): string // ^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`interface.ts`/Interface#methodSignature(). -// documentation ```ts\n(param: string) => string\n``` +// documentation ```ts\n(method) methodSignature(param: string) => string\n``` // ^^^^^ definition syntax 1.0.0 src/`interface.ts`/Interface#methodSignature().(param) -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) param: string\n``` methodSignature2: (param: string) => string // ^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`interface.ts`/Interface#methodSignature2. -// documentation ```ts\n(param: string) => string\n``` +// documentation ```ts\n(property) methodSignature2: (param: string) => string\n``` // ^^^^^ definition local 1 -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) param: string\n``` } export function newInterface(): Interface { // ^^^^^^^^^^^^ definition syntax 1.0.0 src/`interface.ts`/newInterface(). -// documentation ```ts\n() => Interface\n``` +// documentation ```ts\nfunction newInterface(): Interface\n``` // ^^^^^^^^^ reference syntax 1.0.0 src/`interface.ts`/Interface# return { property: 'a', // ^^^^^^^^ definition syntax 1.0.0 src/`interface.ts`/property0: -// documentation ```ts\nstring\n``` +// documentation ```ts\n(property) property: string\n``` methodSignature(param: string): string { // ^^^^^^^^^^^^^^^ definition local 4 -// documentation ```ts\n(param: string) => string\n``` +// documentation ```ts\n(method) methodSignature(param: string): string\n``` // ^^^^^ definition local 5 -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) param: string\n``` return param // ^^^^^ reference local 5 }, methodSignature2: (param: string): string => { // ^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`interface.ts`/methodSignature20: -// documentation ```ts\n(param: string) => string\n``` +// documentation ```ts\n(property) methodSignature2: (param: string) => string\n``` // ^^^^^ definition local 7 -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) param: string\n``` return param // ^^^^^ reference local 7 }, diff --git a/snapshots/output/syntax/src/issue-45.d.ts b/snapshots/output/syntax/src/issue-45.d.ts index 0713ebc6..3777022b 100644 --- a/snapshots/output/syntax/src/issue-45.d.ts +++ b/snapshots/output/syntax/src/issue-45.d.ts @@ -1,20 +1,20 @@ export namespace example { // ^^^^^^^ definition syntax 1.0.0 src/`issue-45.d.ts`/example/ -// documentation ```ts\ntypeof example\n``` +// documentation ```ts\nexample: typeof example\n``` class Server { // ^^^^^^ definition syntax 1.0.0 src/`issue-45.d.ts`/example/Server# -// documentation ```ts\nServer\n``` +// documentation ```ts\nclass Server\n``` // This overloaded method reproduces the following issue https://github.com/sourcegraph/lsif-typescript/issues/45 addListener(name: 'a'): void // ^^^^^^^^^^^ definition syntax 1.0.0 src/`issue-45.d.ts`/example/Server#addListener(). -// documentation ```ts\n{ (name: "a"): void; (name: "b"): void; }\n``` +// documentation ```ts\n(method) addListener(name: "a"): void\n``` // ^^^^ definition syntax 1.0.0 src/`issue-45.d.ts`/example/Server#addListener().(name) -// documentation ```ts\n"b"\n``` +// documentation ```ts\n(parameter) name: "b"\n``` addListener(name: 'b'): void // ^^^^^^^^^^^ definition syntax 1.0.0 src/`issue-45.d.ts`/example/Server#addListener(). -// documentation ```ts\n{ (name: "a"): void; (name: "b"): void; }\n``` +// documentation ```ts\n(method) addListener(name: "a"): void\n``` // ^^^^ definition syntax 1.0.0 src/`issue-45.d.ts`/example/Server#addListener().(name) -// documentation ```ts\n"b"\n``` +// documentation ```ts\n(parameter) name: "b"\n``` } } diff --git a/snapshots/output/syntax/src/local.ts b/snapshots/output/syntax/src/local.ts index 6cbfc917..27e83bab 100644 --- a/snapshots/output/syntax/src/local.ts +++ b/snapshots/output/syntax/src/local.ts @@ -1,24 +1,24 @@ export function local(): string { // ^^^^^ definition syntax 1.0.0 src/`local.ts`/local(). -// documentation ```ts\n() => string\n``` +// documentation ```ts\nfunction local(): string\n``` const a = 'a' // ^ definition local 2 -// documentation ```ts\n"a"\n``` +// documentation ```ts\nvar a: "a"\n``` let b = a // ^ definition local 5 -// documentation ```ts\nstring\n``` +// documentation ```ts\nvar b: string\n``` // ^ reference local 2 var c = b, // ^ definition local 8 -// documentation ```ts\nstring\n``` +// documentation ```ts\nvar c: string\n``` // ^ reference local 5 c2 = b // ^^ definition local 9 -// documentation ```ts\nstring\n``` +// documentation ```ts\nvar c2: string\n``` // ^ reference local 5 for (let d = 0; d < c.length; d++) { // ^ definition local 12 -// documentation ```ts\nnumber\n``` +// documentation ```ts\nvar d: number\n``` // ^ reference local 12 // ^ reference local 8 // ^^^^^^ reference typescript 4.6.2 lib/`lib.es5.d.ts`/String#length. @@ -38,11 +38,11 @@ // ^^^^^^ reference typescript 4.6.2 lib/`lib.es5.d.ts`/Array#reduce(). // ^^^^^^ reference typescript 4.6.2 lib/`lib.es5.d.ts`/Array#reduce(). // ^^^^^^^^^^^^^ definition local 16 -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) previousValue: string\n``` // ^^^^^^^^^^^^ definition local 17 -// documentation ```ts\nstring\n``` +// documentation ```ts\n(parameter) currentValue: string\n``` // ^^^^^^^^^^^^ definition local 18 -// documentation ```ts\nnumber\n``` +// documentation ```ts\n(parameter) currentIndex: number\n``` return previousValue + currentValue + currentIndex // ^^^^^^^^^^^^^ reference local 16 // ^^^^^^^^^^^^ reference local 17 diff --git a/snapshots/output/syntax/src/module.d.ts b/snapshots/output/syntax/src/module.d.ts index ffcbb267..ee184c10 100644 --- a/snapshots/output/syntax/src/module.d.ts +++ b/snapshots/output/syntax/src/module.d.ts @@ -1,6 +1,6 @@ declare module 'a:b' { function hello(): string // ^^^^^ definition syntax 1.0.0 src/`module.d.ts`/`'a:b'`/hello(). -// documentation ```ts\n() => string\n``` +// documentation ```ts\nfunction hello(): string\n``` } diff --git a/snapshots/output/syntax/src/namespace.d.ts b/snapshots/output/syntax/src/namespace.d.ts index b77c6c29..dbfa273d 100644 --- a/snapshots/output/syntax/src/namespace.d.ts +++ b/snapshots/output/syntax/src/namespace.d.ts @@ -1,19 +1,19 @@ declare namespace a { // ^ definition syntax 1.0.0 src/`namespace.d.ts`/a/ -// documentation ```ts\ntypeof a\n``` +// documentation ```ts\na: typeof a\n``` function hello(): string // ^^^^^ definition syntax 1.0.0 src/`namespace.d.ts`/a/hello(). -// documentation ```ts\n() => string\n``` +// documentation ```ts\nfunction hello(): string\n``` interface Interface { // ^^^^^^^^^ definition syntax 1.0.0 src/`namespace.d.ts`/a/Interface# -// documentation ```ts\nInterface\n``` +// documentation ```ts\ninterface Interface\n``` hello: string // ^^^^^ definition syntax 1.0.0 src/`namespace.d.ts`/a/Interface#hello. -// documentation ```ts\nstring\n``` +// documentation ```ts\n(property) hello: string\n``` } var i: Interface // ^ definition syntax 1.0.0 src/`namespace.d.ts`/a/i. -// documentation ```ts\nInterface\n``` +// documentation ```ts\nvar i: Interface\n``` // ^^^^^^^^^ reference syntax 1.0.0 src/`namespace.d.ts`/a/Interface# } diff --git a/snapshots/output/syntax/src/property-assignment-reference.ts b/snapshots/output/syntax/src/property-assignment-reference.ts index 516cb7d9..08c46357 100644 --- a/snapshots/output/syntax/src/property-assignment-reference.ts +++ b/snapshots/output/syntax/src/property-assignment-reference.ts @@ -7,7 +7,7 @@ export function run(): string { // ^^^ definition syntax 1.0.0 src/`property-assignment-reference.ts`/run(). -// documentation ```ts\n() => string\n``` +// documentation ```ts\nfunction run(): string\n``` return propertyAssignment().a + shorthandPropertyAssignment().a // ^^^^^^^^^^^^^^^^^^ reference syntax 1.0.0 src/`property-assignment.ts`/propertyAssignment(). // ^ reference syntax 1.0.0 src/`property-assignment.ts`/a0: diff --git a/snapshots/output/syntax/src/property-assignment.ts b/snapshots/output/syntax/src/property-assignment.ts index fff3b374..f30db698 100644 --- a/snapshots/output/syntax/src/property-assignment.ts +++ b/snapshots/output/syntax/src/property-assignment.ts @@ -1,19 +1,19 @@ export function propertyAssignment() { // ^^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`property-assignment.ts`/propertyAssignment(). -// documentation ```ts\n() => { a: string; }\n``` +// documentation ```ts\nfunction propertyAssignment(): { a: string; }\n``` return { a: 'a' } // ^ definition syntax 1.0.0 src/`property-assignment.ts`/a0: -// documentation ```ts\nstring\n``` +// documentation ```ts\n(property) a: string\n``` } export function shorthandPropertyAssignment() { // ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`property-assignment.ts`/shorthandPropertyAssignment(). -// documentation ```ts\n() => { a: string; }\n``` +// documentation ```ts\nfunction shorthandPropertyAssignment(): { a: string; }\n``` const a = 'a' // ^ definition local 2 -// documentation ```ts\n"a"\n``` +// documentation ```ts\nvar a: "a"\n``` return { a } // ^ definition syntax 1.0.0 src/`property-assignment.ts`/a1: -// documentation ```ts\nstring\n``` +// documentation ```ts\n(property) a: string\n``` // ^ reference local 2 } diff --git a/snapshots/output/syntax/src/type-alias.ts b/snapshots/output/syntax/src/type-alias.ts index f0858d9a..6a6f6702 100644 --- a/snapshots/output/syntax/src/type-alias.ts +++ b/snapshots/output/syntax/src/type-alias.ts @@ -1,73 +1,73 @@ type S = string // ^ definition syntax 1.0.0 src/`type-alias.ts`/S# -// documentation ```ts\nstring\n``` +// documentation ```ts\ntype S\n``` const s: S = '' // ^ definition syntax 1.0.0 src/`type-alias.ts`/s. -// documentation ```ts\nstring\n``` +// documentation ```ts\nvar s: string\n``` // ^ reference syntax 1.0.0 src/`type-alias.ts`/S# class C { // ^ definition syntax 1.0.0 src/`type-alias.ts`/C# -// documentation ```ts\nC\n``` +// documentation ```ts\nclass C\n``` // ^ definition syntax 1.0.0 src/`type-alias.ts`/C#[T] -// documentation ```ts\nT\n``` +// documentation ```ts\nT: T\n``` t: T // ^ definition syntax 1.0.0 src/`type-alias.ts`/C#t. -// documentation ```ts\nT\n``` +// documentation ```ts\n(property) t: T\n``` // ^ reference syntax 1.0.0 src/`type-alias.ts`/C#[T] } type Cstring = C // ^^^^^^^ definition syntax 1.0.0 src/`type-alias.ts`/Cstring# -// documentation ```ts\nCstring\n``` +// documentation ```ts\ntype Cstring\n``` // ^ reference syntax 1.0.0 src/`type-alias.ts`/C# const cs: Cstring = new C() // ^^ definition syntax 1.0.0 src/`type-alias.ts`/cs. -// documentation ```ts\nCstring\n``` +// documentation ```ts\nvar cs: Cstring\n``` // ^^^^^^^ reference syntax 1.0.0 src/`type-alias.ts`/Cstring# // ^ reference syntax 1.0.0 src/`type-alias.ts`/C# class D { // ^ definition syntax 1.0.0 src/`type-alias.ts`/D# -// documentation ```ts\nD\n``` +// documentation ```ts\nclass D\n``` // ^ definition syntax 1.0.0 src/`type-alias.ts`/D#[T] -// documentation ```ts\nT\n``` +// documentation ```ts\nT: T\n``` // ^ definition syntax 1.0.0 src/`type-alias.ts`/D#[U] -// documentation ```ts\nU\n``` +// documentation ```ts\nU: U\n``` t: T // ^ definition syntax 1.0.0 src/`type-alias.ts`/D#t. -// documentation ```ts\nT\n``` +// documentation ```ts\n(property) t: T\n``` // ^ reference syntax 1.0.0 src/`type-alias.ts`/D#[T] u: U // ^ definition syntax 1.0.0 src/`type-alias.ts`/D#u. -// documentation ```ts\nU\n``` +// documentation ```ts\n(property) u: U\n``` // ^ reference syntax 1.0.0 src/`type-alias.ts`/D#[U] } type DT = D // partially specialized // ^^ definition syntax 1.0.0 src/`type-alias.ts`/DT# -// documentation ```ts\nDT\n``` +// documentation ```ts\ntype DT\n``` // ^ definition syntax 1.0.0 src/`type-alias.ts`/DT#[T] -// documentation ```ts\nT\n``` +// documentation ```ts\nT: T\n``` // ^ reference syntax 1.0.0 src/`type-alias.ts`/D# // ^ reference syntax 1.0.0 src/`type-alias.ts`/DT#[T] type DU = D> // recursive! // ^^ definition syntax 1.0.0 src/`type-alias.ts`/DU# -// documentation ```ts\nDU\n``` +// documentation ```ts\ntype DU\n``` // ^ definition syntax 1.0.0 src/`type-alias.ts`/DU#[U] -// documentation ```ts\nU\n``` +// documentation ```ts\nU: U\n``` // ^ reference syntax 1.0.0 src/`type-alias.ts`/D# // ^^ reference syntax 1.0.0 src/`type-alias.ts`/DU# // ^ reference syntax 1.0.0 src/`type-alias.ts`/DU#[U] const dt: DT = new D() // ^^ definition syntax 1.0.0 src/`type-alias.ts`/dt. -// documentation ```ts\nDT\n``` +// documentation ```ts\nvar dt: DT\n``` // ^^ reference syntax 1.0.0 src/`type-alias.ts`/DT# // ^ reference syntax 1.0.0 src/`type-alias.ts`/D# const du: DU = new D() // ^^ definition syntax 1.0.0 src/`type-alias.ts`/du. -// documentation ```ts\nDU\n``` +// documentation ```ts\nvar du: DU\n``` // ^^ reference syntax 1.0.0 src/`type-alias.ts`/DU# // ^ reference syntax 1.0.0 src/`type-alias.ts`/D# diff --git a/snapshots/output/syntax/src/type-parameter.ts b/snapshots/output/syntax/src/type-parameter.ts index ee03a4d8..e0d9567e 100644 --- a/snapshots/output/syntax/src/type-parameter.ts +++ b/snapshots/output/syntax/src/type-parameter.ts @@ -1,15 +1,15 @@ export function typeParameter(parameter: A, parameter2: B): [A, B] { // ^^^^^^^^^^^^^ definition syntax 1.0.0 src/`type-parameter.ts`/typeParameter(). -// documentation ```ts\n(parameter: A, parameter2: B) => [A, B]\n``` +// documentation ```ts\nfunction typeParameter(parameter: A, parameter2: B): [A, B]\n``` // ^ definition syntax 1.0.0 src/`type-parameter.ts`/typeParameter().[A] -// documentation ```ts\nA\n``` +// documentation ```ts\nA: A\n``` // ^ definition syntax 1.0.0 src/`type-parameter.ts`/typeParameter().[B] -// documentation ```ts\nB\n``` +// documentation ```ts\nB: B\n``` // ^^^^^^^^^ definition syntax 1.0.0 src/`type-parameter.ts`/typeParameter().(parameter) -// documentation ```ts\nA\n``` +// documentation ```ts\n(parameter) parameter: A\n``` // ^ reference syntax 1.0.0 src/`type-parameter.ts`/typeParameter().[A] // ^^^^^^^^^^ definition syntax 1.0.0 src/`type-parameter.ts`/typeParameter().(parameter2) -// documentation ```ts\nB\n``` +// documentation ```ts\n(parameter) parameter2: B\n``` // ^ reference syntax 1.0.0 src/`type-parameter.ts`/typeParameter().[B] // ^ reference syntax 1.0.0 src/`type-parameter.ts`/typeParameter().[A] // ^ reference syntax 1.0.0 src/`type-parameter.ts`/typeParameter().[B]