# mod.ts
/**
 * A is a class
 *
 * ```ts
 * const bar = "foo";
 * console.log(bar);
 * ```
 *
 * Nothing more
 */
export class A {}
/**
 * B is an interface
 *
 * ```ts
 * # const bar = "foo";
 * console.log(bar);
 * ```
 *
 * Should be
 */
export interface B {}
/**
 * C is a function
 *
 * ```ts
 * class Bar {
 *   #foo = "something";
 * }
 * console.log(bar);
 * ```
 *
 * Summarised
 */
export function C() {}
/**
 * D
 *
 * ```ts
 * const bar = "foo";
 * # console.log(bar);```
 */
export function D() {}

# output.txt
Defined in file:///mod.ts:34:1

function C(): void
  C is a function

  ```ts
  class Bar {
    #foo = "something";
  }
  console.log(bar);
  ```

  Summarised

Defined in file:///mod.ts:42:1

function D(): void
  D

  ```ts
  const bar = "foo";
  ```

Defined in file:///mod.ts:10:1

class A
  A is a class

  ```ts
  const bar = "foo";
  console.log(bar);
  ```

  Nothing more


Defined in file:///mod.ts:21:1

interface B
  B is an interface

  ```ts
  console.log(bar);
  ```

  Should be



# output.json
{
  "symbols": [
    {
      "name": "A",
      "declarations": [
        {
          "location": {
            "filename": "file:///mod.ts",
            "line": 10,
            "col": 0,
            "byteIndex": 105
          },
          "declarationKind": "export",
          "jsDoc": {
            "doc": "A is a class\n\n```ts\nconst bar = \"foo\";\nconsole.log(bar);\n```\n\nNothing more"
          },
          "kind": "class",
          "def": {}
        }
      ]
    },
    {
      "name": "B",
      "declarations": [
        {
          "location": {
            "filename": "file:///mod.ts",
            "line": 21,
            "col": 0,
            "byteIndex": 232
          },
          "declarationKind": "export",
          "jsDoc": {
            "doc": "B is an interface\n\n```ts\nconsole.log(bar);\n```\n\nShould be"
          },
          "kind": "interface",
          "def": {}
        }
      ]
    },
    {
      "name": "C",
      "declarations": [
        {
          "location": {
            "filename": "file:///mod.ts",
            "line": 34,
            "col": 0,
            "byteIndex": 383
          },
          "declarationKind": "export",
          "jsDoc": {
            "doc": "C is a function\n\n```ts\nclass Bar {\n  #foo = \"something\";\n}\nconsole.log(bar);\n```\n\nSummarised"
          },
          "kind": "function",
          "def": {
            "params": [],
            "returnType": {
              "repr": "void",
              "kind": "keyword",
              "value": "void"
            },
            "hasBody": true
          }
        }
      ]
    },
    {
      "name": "D",
      "declarations": [
        {
          "location": {
            "filename": "file:///mod.ts",
            "line": 42,
            "col": 0,
            "byteIndex": 479
          },
          "declarationKind": "export",
          "jsDoc": {
            "doc": "D\n\n```ts\nconst bar = \"foo\";\n```"
          },
          "kind": "function",
          "def": {
            "params": [],
            "returnType": {
              "repr": "void",
              "kind": "keyword",
              "value": "void"
            },
            "hasBody": true
          }
        }
      ]
    }
  ]
}
