230 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:///foo.c","languageId":"c","version":1,"text":"int foo ( int x ) {\n x = x+1;\n return x;\n }"}}}5---6{"jsonrpc":"2.0","id":1,"method":"textDocument/rangeFormatting","params":{"textDocument":{"uri":"test:///foo.c"},"range":{"start":{"line":1,"character":4},"end":{"line":1,"character":12}}}}7# CHECK: "id": 1,8# CHECK-NEXT: "jsonrpc": "2.0",9# CHECK-NEXT: "result": [10# CHECK-NEXT: {11# CHECK-NEXT: "newText": "\n ",12# CHECK-NEXT: "range": {13# CHECK-NEXT: "end": {14# CHECK-NEXT: "character": 4,15# CHECK-NEXT: "line": 116# CHECK-NEXT: },17# CHECK-NEXT: "start": {18# CHECK-NEXT: "character": 19,19# CHECK-NEXT: "line": 020# CHECK-NEXT: }21# CHECK-NEXT: }22# CHECK-NEXT: },23# CHECK-NEXT: {24# CHECK-NEXT: "newText": " ",25# CHECK-NEXT: "range": {26# CHECK-NEXT: "end": {27# CHECK-NEXT: "character": 9,28# CHECK-NEXT: "line": 129# CHECK-NEXT: },30# CHECK-NEXT: "start": {31# CHECK-NEXT: "character": 9,32# CHECK-NEXT: "line": 133# CHECK-NEXT: }34# CHECK-NEXT: }35# CHECK-NEXT: },36# CHECK-NEXT: {37# CHECK-NEXT: "newText": " ",38# CHECK-NEXT: "range": {39# CHECK-NEXT: "end": {40# CHECK-NEXT: "character": 10,41# CHECK-NEXT: "line": 142# CHECK-NEXT: },43# CHECK-NEXT: "start": {44# CHECK-NEXT: "character": 10,45# CHECK-NEXT: "line": 146# CHECK-NEXT: }47# CHECK-NEXT: }48# CHECK-NEXT: },49# CHECK-NEXT: {50# CHECK-NEXT: "newText": "\n ",51# CHECK-NEXT: "range": {52# CHECK-NEXT: "end": {53# CHECK-NEXT: "character": 4,54# CHECK-NEXT: "line": 255# CHECK-NEXT: },56# CHECK-NEXT: "start": {57# CHECK-NEXT: "character": 12,58# CHECK-NEXT: "line": 159# CHECK-NEXT: }60# CHECK-NEXT: }61# CHECK-NEXT: }62# CHECK-NEXT: ]63---64{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"test:///foo.c","version":5},"contentChanges":[{"text":"int foo ( int x ) {\n x = x + 1;\n return x;\n }"}]}}65#66#67---68{"jsonrpc":"2.0","id":2,"method":"textDocument/rangeFormatting","params":{"textDocument":{"uri":"test:///foo.c"},"range":{"start":{"line":1,"character":2},"end":{"line":1,"character":12}}}}69# CHECK: "id": 2,70# CHECK-NEXT: "jsonrpc": "2.0",71# CHECK-NEXT: "result": []72---73{"jsonrpc":"2.0","id":3,"method":"textDocument/formatting","params":{"textDocument":{"uri":"test:///foo.c"}}}74# CHECK: "id": 3,75# CHECK-NEXT: "jsonrpc": "2.0",76# CHECK-NEXT: "result": [77# CHECK-NEXT: {78# CHECK-NEXT: "newText": "",79# CHECK-NEXT: "range": {80# CHECK-NEXT: "end": {81# CHECK-NEXT: "character": 8,82# CHECK-NEXT: "line": 083# CHECK-NEXT: },84# CHECK-NEXT: "start": {85# CHECK-NEXT: "character": 7,86# CHECK-NEXT: "line": 087# CHECK-NEXT: }88# CHECK-NEXT: }89# CHECK-NEXT: },90# CHECK-NEXT: {91# CHECK-NEXT: "newText": "",92# CHECK-NEXT: "range": {93# CHECK-NEXT: "end": {94# CHECK-NEXT: "character": 10,95# CHECK-NEXT: "line": 096# CHECK-NEXT: },97# CHECK-NEXT: "start": {98# CHECK-NEXT: "character": 9,99# CHECK-NEXT: "line": 0100# CHECK-NEXT: }101# CHECK-NEXT: }102# CHECK-NEXT: },103# CHECK-NEXT: {104# CHECK-NEXT: "newText": "",105# CHECK-NEXT: "range": {106# CHECK-NEXT: "end": {107# CHECK-NEXT: "character": 16,108# CHECK-NEXT: "line": 0109# CHECK-NEXT: },110# CHECK-NEXT: "start": {111# CHECK-NEXT: "character": 15,112# CHECK-NEXT: "line": 0113# CHECK-NEXT: }114# CHECK-NEXT: }115# CHECK-NEXT: },116# CHECK-NEXT: {117# CHECK-NEXT: "newText": "\n",118# CHECK-NEXT: "range": {119# CHECK-NEXT: "end": {120# CHECK-NEXT: "character": 4,121# CHECK-NEXT: "line": 3122# CHECK-NEXT: },123# CHECK-NEXT: "start": {124# CHECK-NEXT: "character": 11,125# CHECK-NEXT: "line": 2126# CHECK-NEXT: }127# CHECK-NEXT: }128# CHECK-NEXT: }129# CHECK-NEXT: ]130---131{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"test:///foo.c","version":9},"contentChanges":[{"text":"int foo(int x) {\n x = x + 1;\n return x;\n}"}]}}132---133{"jsonrpc":"2.0","id":4,"method":"textDocument/formatting","params":{"textDocument":{"uri":"test:///foo.c"}}}134# CHECK: "id": 4,135# CHECK-NEXT: "jsonrpc": "2.0",136# CHECK-NEXT: "result": []137---138{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"test:///foo.c","version":9},"contentChanges":[{"text":"int foo( int x){\n x=x+1;\nreturn x;\n}"}]}}139---140{"jsonrpc":"2.0","id":5,"method":"textDocument/rangesFormatting","params":{"textDocument":{"uri":"test:///foo.c"},"ranges":[{"start":{"line":0,"character":0},"end":{"line":0,"character":15}}, {"start":{"line":2,"character":0},"end":{"line":2,"character":5}}]}}141---142# CHECK: "id": 5,143# CHECK-NEXT: "jsonrpc": "2.0",144# CHECK-NEXT: "result": [145# CHECK-NEXT: {146# CHECK-NEXT: "newText": "",147# CHECK-NEXT: "range": {148# CHECK-NEXT: "end": {149# CHECK-NEXT: "character": 10,150# CHECK-NEXT: "line": 0151# CHECK-NEXT: },152# CHECK-NEXT: "start": {153# CHECK-NEXT: "character": 8,154# CHECK-NEXT: "line": 0155# CHECK-NEXT: }156# CHECK-NEXT: }157# CHECK-NEXT: },158# CHECK-NEXT: {159# CHECK-NEXT: "newText": " ",160# CHECK-NEXT: "range": {161# CHECK-NEXT: "end": {162# CHECK-NEXT: "character": 16,163# CHECK-NEXT: "line": 0164# CHECK-NEXT: },165# CHECK-NEXT: "start": {166# CHECK-NEXT: "character": 16,167# CHECK-NEXT: "line": 0168# CHECK-NEXT: }169# CHECK-NEXT: }170# CHECK-NEXT: },171# CHECK-NEXT: {172# CHECK-NEXT: "newText": "\n ",173# CHECK-NEXT: "range": {174# CHECK-NEXT: "end": {175# CHECK-NEXT: "character": 0,176# CHECK-NEXT: "line": 2177# CHECK-NEXT: },178# CHECK-NEXT: "start": {179# CHECK-NEXT: "character": 8,180# CHECK-NEXT: "line": 1181# CHECK-NEXT: }182# CHECK-NEXT: }183# CHECK-NEXT: }184# CHECK-NEXT: ]185---186{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"test:///foo.c","version":9},"contentChanges":[{"text":"int foo(int x) {\n x=x+1;\n return x;\n}"}]}}187---188{"jsonrpc":"2.0","id":6,"method":"textDocument/rangesFormatting","params":{"textDocument":{"uri":"test:///foo.c"},"ranges":[{"start":{"line":0,"character":0},"end":{"line":0,"character":15}}, {"start":{"line":2,"character":0},"end":{"line":2,"character":5}}]}}189# CHECK: "id": 6,190# CHECK-NEXT: "jsonrpc": "2.0",191# CHECK-NEXT: "result": []192---193{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"test:///foo.c","version":5},"contentChanges":[{"text":"int x=\n"}]}}194---195{"jsonrpc":"2.0","id":7,"method":"textDocument/onTypeFormatting","params":{"textDocument":{"uri":"test:///foo.c"},"position":{"line":1,"character":0},"ch":"\n"}}196# CHECK: "id": 7,197# CHECK-NEXT: "jsonrpc": "2.0",198# CHECK-NEXT: "result": [199# CHECK-NEXT: {200# CHECK-NEXT: "newText": " ",201# CHECK-NEXT: "range": {202# CHECK-NEXT: "end": {203# CHECK-NEXT: "character": 5,204# CHECK-NEXT: "line": 0205# CHECK-NEXT: },206# CHECK-NEXT: "start": {207# CHECK-NEXT: "character": 5,208# CHECK-NEXT: "line": 0209# CHECK-NEXT: }210# CHECK-NEXT: }211# CHECK-NEXT: },212# CHECK-NEXT: {213# CHECK-NEXT: "newText": "\n ",214# CHECK-NEXT: "range": {215# CHECK-NEXT: "end": {216# CHECK-NEXT: "character": 0,217# CHECK-NEXT: "line": 1218# CHECK-NEXT: },219# CHECK-NEXT: "start": {220# CHECK-NEXT: "character": 6,221# CHECK-NEXT: "line": 0222# CHECK-NEXT: }223# CHECK-NEXT: }224# CHECK-NEXT: }225# CHECK-NEXT: ]226---227{"jsonrpc":"2.0","id":6,"method":"shutdown"}228---229{"jsonrpc":"2.0","method":"exit"}230