214 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/typeHierarchy","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: "children": [11# CHECK-NEXT: {12# CHECK-NEXT: "data": {13# CHECK-NEXT: "symbolID": "A6576FE083F2949A"14# CHECK-NEXT: },15# CHECK-NEXT: "detail": "Child3",16# CHECK-NEXT: "kind": 23,17# CHECK-NEXT: "name": "Child3",18# CHECK-NEXT: "range": {19# CHECK-NEXT: "end": {20# CHECK-NEXT: "character": 13,21# CHECK-NEXT: "line": 322# CHECK-NEXT: },23# CHECK-NEXT: "start": {24# CHECK-NEXT: "character": 7,25# CHECK-NEXT: "line": 326# CHECK-NEXT: }27# CHECK-NEXT: },28# CHECK-NEXT: "selectionRange": {29# CHECK-NEXT: "end": {30# CHECK-NEXT: "character": 13,31# CHECK-NEXT: "line": 332# CHECK-NEXT: },33# CHECK-NEXT: "start": {34# CHECK-NEXT: "character": 7,35# CHECK-NEXT: "line": 336# CHECK-NEXT: }37# CHECK-NEXT: },38# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"39# CHECK-NEXT: }40# CHECK-NEXT: ],41# CHECK-NEXT: "data": {42# CHECK-NEXT: "parents": [43# CHECK-NEXT: {44# CHECK-NEXT: "parents": [45# CHECK-NEXT: {46# CHECK-NEXT: "parents": [],47# CHECK-NEXT: "symbolID": "FE546E7B648D69A7"48# CHECK-NEXT: }49# CHECK-NEXT: ],50# CHECK-NEXT: "symbolID": "ECDC0C46D75120F4"51# CHECK-NEXT: }52# CHECK-NEXT: ],53# CHECK-NEXT: "symbolID": "8A991335E4E67D08"54# CHECK-NEXT: },55# CHECK-NEXT: "kind": 23,56# CHECK-NEXT: "name": "Child2",57# CHECK-NEXT: "parents": [58# CHECK-NEXT: {59# CHECK-NEXT: "data": {60# CHECK-NEXT: "parents": [61# CHECK-NEXT: {62# CHECK-NEXT: "parents": [],63# CHECK-NEXT: "symbolID": "FE546E7B648D69A7"64# CHECK-NEXT: }65# CHECK-NEXT: ],66# CHECK-NEXT: "symbolID": "ECDC0C46D75120F4"67# CHECK-NEXT: },68# CHECK-NEXT: "kind": 23,69# CHECK-NEXT: "name": "Child1",70# CHECK-NEXT: "parents": [71# CHECK-NEXT: {72# CHECK-NEXT: "data": {73# CHECK-NEXT: "parents": [],74# CHECK-NEXT: "symbolID": "FE546E7B648D69A7"75# CHECK-NEXT: },76# CHECK-NEXT: "kind": 23,77# CHECK-NEXT: "name": "Parent",78# CHECK-NEXT: "parents": [],79# CHECK-NEXT: "range": {80# CHECK-NEXT: "end": {81# CHECK-NEXT: "character": 16,82# CHECK-NEXT: "line": 083# CHECK-NEXT: },84# CHECK-NEXT: "start": {85# CHECK-NEXT: "character": 0,86# CHECK-NEXT: "line": 087# CHECK-NEXT: }88# CHECK-NEXT: },89# CHECK-NEXT: "selectionRange": {90# CHECK-NEXT: "end": {91# CHECK-NEXT: "character": 13,92# CHECK-NEXT: "line": 093# CHECK-NEXT: },94# CHECK-NEXT: "start": {95# CHECK-NEXT: "character": 7,96# CHECK-NEXT: "line": 097# CHECK-NEXT: }98# CHECK-NEXT: },99# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"100# CHECK-NEXT: }101# CHECK-NEXT: ],102# CHECK-NEXT: "range": {103# CHECK-NEXT: "end": {104# CHECK-NEXT: "character": 25,105# CHECK-NEXT: "line": 1106# CHECK-NEXT: },107# CHECK-NEXT: "start": {108# CHECK-NEXT: "character": 0,109# CHECK-NEXT: "line": 1110# CHECK-NEXT: }111# CHECK-NEXT: },112# CHECK-NEXT: "selectionRange": {113# CHECK-NEXT: "end": {114# CHECK-NEXT: "character": 13,115# CHECK-NEXT: "line": 1116# CHECK-NEXT: },117# CHECK-NEXT: "start": {118# CHECK-NEXT: "character": 7,119# CHECK-NEXT: "line": 1120# CHECK-NEXT: }121# CHECK-NEXT: },122# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"123# CHECK-NEXT: }124# CHECK-NEXT: ],125# CHECK-NEXT: "range": {126# CHECK-NEXT: "end": {127# CHECK-NEXT: "character": 25,128# CHECK-NEXT: "line": 2129# CHECK-NEXT: },130# CHECK-NEXT: "start": {131# CHECK-NEXT: "character": 0,132# CHECK-NEXT: "line": 2133# CHECK-NEXT: }134# CHECK-NEXT: },135# CHECK-NEXT: "selectionRange": {136# CHECK-NEXT: "end": {137# CHECK-NEXT: "character": 13,138# CHECK-NEXT: "line": 2139# CHECK-NEXT: },140# CHECK-NEXT: "start": {141# CHECK-NEXT: "character": 7,142# CHECK-NEXT: "line": 2143# CHECK-NEXT: }144# CHECK-NEXT: },145# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"146# CHECK-NEXT: }147---148{"jsonrpc":"2.0","id":2,"method":"typeHierarchy/resolve","params":{"item":{"uri":"test:///main.cpp","data":{"symbolID":"A6576FE083F2949A"},"name":"Child3","kind":23,"range":{"end":{"character":13,"line":3},"start":{"character":7,"line":3}},"selectionRange":{"end":{"character":13,"line":3},"start":{"character":7,"line":3}}},"direction":0,"resolve":1}}149# CHECK: "id": 2150# CHECK-NEXT: "jsonrpc": "2.0",151# CHECK-NEXT: "result": {152# CHECK-NEXT: "children": [153# CHECK-NEXT: {154# CHECK-NEXT: "data": {155# CHECK-NEXT: "symbolID": "5705B382DFC77CBC"156# CHECK-NEXT: },157# CHECK-NEXT: "detail": "Child4",158# CHECK-NEXT: "kind": 23,159# CHECK-NEXT: "name": "Child4",160# CHECK-NEXT: "range": {161# CHECK-NEXT: "end": {162# CHECK-NEXT: "character": 13,163# CHECK-NEXT: "line": 4164# CHECK-NEXT: },165# CHECK-NEXT: "start": {166# CHECK-NEXT: "character": 7,167# CHECK-NEXT: "line": 4168# CHECK-NEXT: }169# CHECK-NEXT: },170# CHECK-NEXT: "selectionRange": {171# CHECK-NEXT: "end": {172# CHECK-NEXT: "character": 13,173# CHECK-NEXT: "line": 4174# CHECK-NEXT: },175# CHECK-NEXT: "start": {176# CHECK-NEXT: "character": 7,177# CHECK-NEXT: "line": 4178# CHECK-NEXT: }179# CHECK-NEXT: },180# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"181# CHECK-NEXT: }182# CHECK-NEXT: ],183# CHECK-NEXT: "data": {184# CHECK-NEXT: "symbolID": "A6576FE083F2949A"185# CHECK-NEXT: },186# CHECK-NEXT: "kind": 23,187# CHECK-NEXT: "name": "Child3",188# CHECK-NEXT: "range": {189# CHECK-NEXT: "end": {190# CHECK-NEXT: "character": 13,191# CHECK-NEXT: "line": 3192# CHECK-NEXT: },193# CHECK-NEXT: "start": {194# CHECK-NEXT: "character": 7,195# CHECK-NEXT: "line": 3196# CHECK-NEXT: }197# CHECK-NEXT: },198# CHECK-NEXT: "selectionRange": {199# CHECK-NEXT: "end": {200# CHECK-NEXT: "character": 13,201# CHECK-NEXT: "line": 3202# CHECK-NEXT: },203# CHECK-NEXT: "start": {204# CHECK-NEXT: "character": 7,205# CHECK-NEXT: "line": 3206# CHECK-NEXT: }207# CHECK-NEXT: },208# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"209# CHECK-NEXT: }210---211{"jsonrpc":"2.0","id":3,"method":"shutdown"}212---213{"jsonrpc":"2.0","method":"exit"}214