146 lines · plain
1# RUN: clangd -lit-test < %s | FileCheck -strict-whitespace %s2{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"clangd","capabilities":{},"trace":"off"}}3---4{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"test:///main.cpp","languageId":"cpp","version":1,"text":"struct Parent {};\nstruct Child1 : Parent {};\nstruct Child2 : Child1 {};\nstruct Child3 : Child2 {};\nstruct Child4 : Child3 {};"}}}5---6{"jsonrpc":"2.0","id":1,"method":"textDocument/prepareTypeHierarchy","params":{"textDocument":{"uri":"test:///main.cpp"},"position":{"line":2,"character":11},"direction":2,"resolve":1}}7# CHECK: "id": 18# CHECK-NEXT: "jsonrpc": "2.0",9# CHECK-NEXT: "result": [10# CHECK-NEXT: {11# CHECK-NEXT: "data": {12# CHECK-NEXT: "parents": [13# CHECK-NEXT: {14# CHECK-NEXT: "parents": [15# CHECK-NEXT: {16# CHECK-NEXT: "parents": [],17# CHECK-NEXT: "symbolID": "FE546E7B648D69A7"18# CHECK-NEXT: }19# CHECK-NEXT: ],20# CHECK-NEXT: "symbolID": "ECDC0C46D75120F4"21# CHECK-NEXT: }22# CHECK-NEXT: ],23# CHECK-NEXT: "symbolID": "8A991335E4E67D08"24# CHECK-NEXT: },25# CHECK-NEXT: "kind": 23,26# CHECK-NEXT: "name": "Child2",27# CHECK-NEXT: "range": {28# CHECK-NEXT: "end": {29# CHECK-NEXT: "character": 25,30# CHECK-NEXT: "line": 231# CHECK-NEXT: },32# CHECK-NEXT: "start": {33# CHECK-NEXT: "character": 0,34# CHECK-NEXT: "line": 235# CHECK-NEXT: }36# CHECK-NEXT: },37# CHECK-NEXT: "selectionRange": {38# CHECK-NEXT: "end": {39# CHECK-NEXT: "character": 13,40# CHECK-NEXT: "line": 241# CHECK-NEXT: },42# CHECK-NEXT: "start": {43# CHECK-NEXT: "character": 7,44# CHECK-NEXT: "line": 245# CHECK-NEXT: }46# CHECK-NEXT: },47# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"48# CHECK-NEXT: }49# CHECK-NEXT: ]50---51{"jsonrpc":"2.0","id":2,"method":"typeHierarchy/supertypes","params":{"item":{"uri":"test:///main.cpp","data":{"parents":[{"parents":[{"parents":[],"symbolID":"FE546E7B648D69A7"}],"symbolID":"ECDC0C46D75120F4"}],"symbolID":"8A991335E4E67D08"},"name":"Child2","kind":23,"range":{"end":{"character":13,"line":3},"start":{"character":7,"line":3}},"selectionRange":{"end":{"character":13,"line":3},"start":{"character":7,"line":3}}}}}52# CHECK: "id": 253# CHECK-NEXT: "jsonrpc": "2.0",54# CHECK-NEXT: "result": [55# CHECK-NEXT: {56# CHECK-NEXT: "data": {57# CHECK-NEXT: "parents": [58# CHECK-NEXT: {59# CHECK-NEXT: "parents": [],60# CHECK-NEXT: "symbolID": "FE546E7B648D69A7"61# CHECK-NEXT: }62# CHECK-NEXT: ],63# CHECK-NEXT: "symbolID": "ECDC0C46D75120F4"64# CHECK-NEXT: },65# CHECK-NEXT: "detail": "Child1",66# CHECK-NEXT: "kind": 23,67# CHECK-NEXT: "name": "Child1",68# CHECK-NEXT: "range": {69# CHECK-NEXT: "end": {70# CHECK-NEXT: "character": 13,71# CHECK-NEXT: "line": 172# CHECK-NEXT: },73# CHECK-NEXT: "start": {74# CHECK-NEXT: "character": 7,75# CHECK-NEXT: "line": 176# CHECK-NEXT: }77# CHECK-NEXT: },78# CHECK-NEXT: "selectionRange": {79# CHECK-NEXT: "end": {80# CHECK-NEXT: "character": 13,81# CHECK-NEXT: "line": 182# CHECK-NEXT: },83# CHECK-NEXT: "start": {84# CHECK-NEXT: "character": 7,85# CHECK-NEXT: "line": 186# CHECK-NEXT: }87# CHECK-NEXT: },88# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"89# CHECK-NEXT: }90# CHECK-NEXT: ]91---92{"jsonrpc":"2.0","id":2,"method":"typeHierarchy/subtypes","params":{"item":{"uri":"test:///main.cpp","data":{"parents":[{"parents":[{"parents":[],"symbolID":"FE546E7B648D69A7"}],"symbolID":"ECDC0C46D75120F4"}],"symbolID":"8A991335E4E67D08"},"name":"Child2","kind":23,"range":{"end":{"character":13,"line":3},"start":{"character":7,"line":3}},"selectionRange":{"end":{"character":13,"line":3},"start":{"character":7,"line":3}}}}}93# CHECK: "id": 294# CHECK-NEXT: "jsonrpc": "2.0",95# CHECK-NEXT: "result": [96# CHECK-NEXT: {97# CHECK-NEXT: "data": {98# CHECK-NEXT: "parents": [99# CHECK-NEXT: {100# CHECK-NEXT: "parents": [101# CHECK-NEXT: {102# CHECK-NEXT: "parents": [103# CHECK-NEXT: {104# CHECK-NEXT: "parents": [],105# CHECK-NEXT: "symbolID": "FE546E7B648D69A7"106# CHECK-NEXT: }107# CHECK-NEXT: ],108# CHECK-NEXT: "symbolID": "ECDC0C46D75120F4"109# CHECK-NEXT: }110# CHECK-NEXT: ],111# CHECK-NEXT: "symbolID": "8A991335E4E67D08"112# CHECK-NEXT: }113# CHECK-NEXT: ],114# CHECK-NEXT: "symbolID": "A6576FE083F2949A"115# CHECK-NEXT: },116# CHECK-NEXT: "detail": "Child3",117# CHECK-NEXT: "kind": 23,118# CHECK-NEXT: "name": "Child3",119# CHECK-NEXT: "range": {120# CHECK-NEXT: "end": {121# CHECK-NEXT: "character": 13,122# CHECK-NEXT: "line": 3123# CHECK-NEXT: },124# CHECK-NEXT: "start": {125# CHECK-NEXT: "character": 7,126# CHECK-NEXT: "line": 3127# CHECK-NEXT: }128# CHECK-NEXT: },129# CHECK-NEXT: "selectionRange": {130# CHECK-NEXT: "end": {131# CHECK-NEXT: "character": 13,132# CHECK-NEXT: "line": 3133# CHECK-NEXT: },134# CHECK-NEXT: "start": {135# CHECK-NEXT: "character": 7,136# CHECK-NEXT: "line": 3137# CHECK-NEXT: }138# CHECK-NEXT: },139# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"140# CHECK-NEXT: }141# CHECK-NEXT: ]142---143{"jsonrpc":"2.0","id":3,"method":"shutdown"}144---145{"jsonrpc":"2.0","method":"exit"}146