[
  {
    "name": "small (3 DocumentSymbols, shallow)",
    "method": "textDocument/documentSymbol",
    "params": [
      {
        "name": "MyStruct",
        "kind": 23,
        "range": { "start": { "line": 0, "character": 0 }, "end": { "line": 10, "character": 1 } },
        "selectionRange": { "start": { "line": 0, "character": 0 }, "end": { "line": 10, "character": 1 } },
        "children": [
          { "name": "field1", "kind": 8, "range": { "start": { "line": 1, "character": 4 }, "end": { "line": 1, "character": 10 } }, "selectionRange": { "start": { "line": 1, "character": 4 }, "end": { "line": 1, "character": 10 } } },
          { "name": "field2", "kind": 8, "range": { "start": { "line": 2, "character": 4 }, "end": { "line": 2, "character": 10 } }, "selectionRange": { "start": { "line": 2, "character": 4 }, "end": { "line": 2, "character": 10 } } }
        ]
      },
      {
        "name": "myFunction",
        "kind": 12,
        "range": { "start": { "line": 12, "character": 0 }, "end": { "line": 20, "character": 1 } },
        "selectionRange": { "start": { "line": 12, "character": 0 }, "end": { "line": 20, "character": 1 } }
      },
      {
        "name": "MyEnum",
        "kind": 10,
        "range": { "start": { "line": 22, "character": 0 }, "end": { "line": 30, "character": 1 } },
        "selectionRange": { "start": { "line": 22, "character": 0 }, "end": { "line": 30, "character": 1 } },
        "children": [
          { "name": "VariantA", "kind": 22, "range": { "start": { "line": 23, "character": 4 }, "end": { "line": 23, "character": 12 } }, "selectionRange": { "start": { "line": 23, "character": 4 }, "end": { "line": 23, "character": 12 } } },
          { "name": "VariantB", "kind": 22, "range": { "start": { "line": 24, "character": 4 }, "end": { "line": 24, "character": 12 } }, "selectionRange": { "start": { "line": 24, "character": 4 }, "end": { "line": 24, "character": 12 } } },
          { "name": "VariantC", "kind": 22, "range": { "start": { "line": 25, "character": 4 }, "end": { "line": 25, "character": 12 } }, "selectionRange": { "start": { "line": 25, "character": 4 }, "end": { "line": 25, "character": 12 } } }
        ]
      }
    ]
  },
  {
    "name": "medium (SymbolInformation flat, 10 symbols)",
    "method": "textDocument/documentSymbol",
    "params": [
      { "name": "AppModule", "kind": 2, "location": { "uri": "file:///src/app.ts", "range": { "start": { "line": 1, "character": 0 }, "end": { "line": 50, "character": 1 } } }, "containerName": "src" },
      { "name": "AppComponent", "kind": 5, "location": { "uri": "file:///src/app.ts", "range": { "start": { "line": 5, "character": 0 }, "end": { "line": 45, "character": 1 } } }, "containerName": "AppModule" },
      { "name": "ngOnInit", "kind": 6, "location": { "uri": "file:///src/app.ts", "range": { "start": { "line": 10, "character": 2 }, "end": { "line": 15, "character": 3 } } }, "containerName": "AppComponent" },
      { "name": "title", "kind": 7, "location": { "uri": "file:///src/app.ts", "range": { "start": { "line": 6, "character": 2 }, "end": { "line": 6, "character": 15 } } }, "containerName": "AppComponent" },
      { "name": "UserService", "kind": 11, "location": { "uri": "file:///src/services/user.ts", "range": { "start": { "line": 1, "character": 0 }, "end": { "line": 30, "character": 1 } } }, "containerName": "services" },
      { "name": "getUsers", "kind": 12, "location": { "uri": "file:///src/services/user.ts", "range": { "start": { "line": 5, "character": 2 }, "end": { "line": 25, "character": 3 } } }, "containerName": "UserService" },
      { "name": "User", "kind": 11, "location": { "uri": "file:///src/models/user.ts", "range": { "start": { "line": 1, "character": 0 }, "end": { "line": 15, "character": 1 } } }, "containerName": "models" },
      { "name": "id", "kind": 7, "location": { "uri": "file:///src/models/user.ts", "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 2, "character": 10 } } }, "containerName": "User" },
      { "name": "name", "kind": 7, "location": { "uri": "file:///src/models/user.ts", "range": { "start": { "line": 3, "character": 2 }, "end": { "line": 3, "character": 12 } } }, "containerName": "User" },
      { "name": "AuthGuard", "kind": 11, "location": { "uri": "file:///src/guards/auth.ts", "range": { "start": { "line": 1, "character": 0 }, "end": { "line": 20, "character": 1 } } }, "containerName": "guards" }
    ]
  },
  {
    "name": "large (DocumentSymbol hierarchical, 25 symbols nested)",
    "method": "textDocument/documentSymbol",
    "params": [
      {
        "name": "RootModule",
        "kind": 2,
        "range": { "start": { "line": 0, "character": 0 }, "end": { "line": 80, "character": 1 } },
        "selectionRange": { "start": { "line": 0, "character": 0 }, "end": { "line": 80, "character": 1 } },
        "children": [
          { "name": "config", "kind": 13, "range": { "start": { "line": 1, "character": 4 }, "end": { "line": 1, "character": 12 } }, "selectionRange": { "start": { "line": 1, "character": 4 }, "end": { "line": 1, "character": 12 } } },
          { "name": "Setup", "kind": 5, "range": { "start": { "line": 3, "character": 4 }, "end": { "line": 20, "character": 5 } }, "selectionRange": { "start": { "line": 3, "character": 4 }, "end": { "line": 20, "character": 5 } }, "children": [
            { "name": "init", "kind": 9, "range": { "start": { "line": 4, "character": 8 }, "end": { "line": 6, "character": 9 } }, "selectionRange": { "start": { "line": 4, "character": 8 }, "end": { "line": 6, "character": 9 } } },
            { "name": "validate", "kind": 6, "range": { "start": { "line": 7, "character": 8 }, "end": { "line": 12, "character": 9 } }, "selectionRange": { "start": { "line": 7, "character": 8 }, "end": { "line": 12, "character": 9 } } },
            { "name": "teardown", "kind": 6, "range": { "start": { "line": 13, "character": 8 }, "end": { "line": 19, "character": 9 } }, "selectionRange": { "start": { "line": 13, "character": 8 }, "end": { "line": 19, "character": 9 } } }
          ]},
          { "name": "Cache", "kind": 5, "range": { "start": { "line": 22, "character": 4 }, "end": { "line": 40, "character": 5 } }, "selectionRange": { "start": { "line": 22, "character": 4 }, "end": { "line": 40, "character": 5 } }, "children": [
            { "name": "store", "kind": 13, "range": { "start": { "line": 23, "character": 8 }, "end": { "line": 23, "character": 15 } }, "selectionRange": { "start": { "line": 23, "character": 8 }, "end": { "line": 23, "character": 15 } } },
            { "name": "get", "kind": 12, "range": { "start": { "line": 25, "character": 8 }, "end": { "line": 28, "character": 9 } }, "selectionRange": { "start": { "line": 25, "character": 8 }, "end": { "line": 28, "character": 9 } } },
            { "name": "set", "kind": 12, "range": { "start": { "line": 29, "character": 8 }, "end": { "line": 33, "character": 9 } }, "selectionRange": { "start": { "line": 29, "character": 8 }, "end": { "line": 33, "character": 9 } } },
            { "name": "invalidate", "kind": 12, "range": { "start": { "line": 34, "character": 8 }, "end": { "line": 39, "character": 9 } }, "selectionRange": { "start": { "line": 34, "character": 8 }, "end": { "line": 39, "character": 9 } } }
          ]},
          { "name": "Logger", "kind": 5, "range": { "start": { "line": 42, "character": 4 }, "end": { "line": 55, "character": 5 } }, "selectionRange": { "start": { "line": 42, "character": 4 }, "end": { "line": 55, "character": 5 } }, "children": [
            { "name": "level", "kind": 13, "range": { "start": { "line": 43, "character": 8 }, "end": { "line": 43, "character": 12 } }, "selectionRange": { "start": { "line": 43, "character": 8 }, "end": { "line": 43, "character": 12 } } },
            { "name": "info", "kind": 12, "range": { "start": { "line": 44, "character": 8 }, "end": { "line": 46, "character": 9 } }, "selectionRange": { "start": { "line": 44, "character": 8 }, "end": { "line": 46, "character": 9 } } },
            { "name": "warn", "kind": 12, "range": { "start": { "line": 47, "character": 8 }, "end": { "line": 50, "character": 9 } }, "selectionRange": { "start": { "line": 47, "character": 8 }, "end": { "line": 50, "character": 9 } } },
            { "name": "error", "kind": 12, "range": { "start": { "line": 51, "character": 8 }, "end": { "line": 54, "character": 9 } }, "selectionRange": { "start": { "line": 51, "character": 8 }, "end": { "line": 54, "character": 9 } } }
          ]},
          { "name": "EventHandler", "kind": 5, "range": { "start": { "line": 57, "character": 4 }, "end": { "line": 75, "character": 5 } }, "selectionRange": { "start": { "line": 57, "character": 4 }, "end": { "line": 75, "character": 5 } }, "children": [
            { "name": "listeners", "kind": 13, "range": { "start": { "line": 58, "character": 8 }, "end": { "line": 58, "character": 14 } }, "selectionRange": { "start": { "line": 58, "character": 8 }, "end": { "line": 58, "character": 14 } } },
            { "name": "on", "kind": 12, "range": { "start": { "line": 60, "character": 8 }, "end": { "line": 63, "character": 9 } }, "selectionRange": { "start": { "line": 60, "character": 8 }, "end": { "line": 63, "character": 9 } } },
            { "name": "off", "kind": 12, "range": { "start": { "line": 64, "character": 8 }, "end": { "line": 67, "character": 9 } }, "selectionRange": { "start": { "line": 64, "character": 8 }, "end": { "line": 67, "character": 9 } } },
            { "name": "emit", "kind": 12, "range": { "start": { "line": 68, "character": 8 }, "end": { "line": 74, "character": 9 } }, "selectionRange": { "start": { "line": 68, "character": 8 }, "end": { "line": 74, "character": 9 } } }
          ]}
        ]
      }
    ]
  }
]
