| # RUN: clangd -lit-test < %s | FileCheck -strict-whitespace %s |
| {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"clangd","capabilities":{},"trace":"off"}} |
| --- |
| {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"test:///main.cpp","languageId":"cpp","version":1,"text":"namespace ns { int ns_member; } struct vector { int size; static int default_capacity; };\nvoid test(vector *a, vector *b) {\n if (a > b) {} \n a->size = 10;\n\n a ? a : b;\n ns::ns_member = 10;\n}"}}} |
| --- |
| {"jsonrpc":"2.0","id":1,"method":"textDocument/completion","params":{"textDocument":{"uri":"test:///main.cpp"},"position":{"line":2,"character":9},"context":{"triggerKind":2,"triggerCharacter":">"}}} |
| # CHECK: "id": 1, |
| # CHECK-NEXT: "jsonrpc": "2.0" |
| # CHECK-NEXT: "result": { |
| # CHECK-NEXT: "isIncomplete": false, |
| # CHECK-NEXT: "items": [] |
| # CHECK-NEXT: } |
| --- |
| {"jsonrpc":"2.0","id":2,"method":"textDocument/completion","params":{"textDocument":{"uri":"test:///main.cpp"},"position":{"line":3,"character":5},"context":{"triggerKind":2,"triggerCharacter":">"}}} |
| # CHECK: "id": 2, |
| # CHECK-NEXT: "jsonrpc": "2.0" |
| # CHECK-NEXT: "result": { |
| # CHECK-NEXT: "isIncomplete": false, |
| # CHECK-NEXT: "items": [ |
| # CHECK-NEXT: { |
| # CHECK-NEXT: "detail": "int", |
| # CHECK-NEXT: "filterText": "size", |
| # CHECK-NEXT: "insertText": "size", |
| # CHECK-NEXT: "insertTextFormat": 1, |
| # CHECK-NEXT: "kind": 5, |
| # CHECK-NEXT: "label": " size", |
| # CHECK-NEXT: "score": {{[0-9]+.[0-9]+}}, |
| # CHECK-NEXT: "sortText": "{{.*}}size", |
| # CHECK-NEXT: "textEdit": { |
| # CHECK-NEXT: "newText": "size", |
| # CHECK-NEXT: "range": { |
| # CHECK-NEXT: "end": { |
| # CHECK-NEXT: "character": 5, |
| # CHECK-NEXT: "line": 3 |
| # CHECK-NEXT: }, |
| # CHECK-NEXT: "start": { |
| # CHECK-NEXT: "character": 5, |
| # CHECK-NEXT: "line": 3 |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: }, |
| # CHECK-NEXT: { |
| # CHECK-NEXT: "detail": "int", |
| # CHECK-NEXT: "filterText": "default_capacity", |
| # CHECK-NEXT: "insertText": "default_capacity", |
| # CHECK-NEXT: "insertTextFormat": 1, |
| # CHECK-NEXT: "kind": 10, |
| # CHECK-NEXT: "label": " default_capacity", |
| # CHECK-NEXT: "score": {{[0-9]+.[0-9]+}}, |
| # CHECK-NEXT: "sortText": "{{.*}}default_capacity", |
| # CHECK-NEXT: "textEdit": { |
| # CHECK-NEXT: "newText": "default_capacity", |
| # CHECK-NEXT: "range": { |
| # CHECK-NEXT: "end": { |
| # CHECK-NEXT: "character": 5, |
| # CHECK-NEXT: "line": 3 |
| # CHECK-NEXT: }, |
| # CHECK-NEXT: "start": { |
| # CHECK-NEXT: "character": 5, |
| # CHECK-NEXT: "line": 3 |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: ] |
| # CHECK-NEXT: } |
| --- |
| {"jsonrpc":"2.0","id":3,"method":"textDocument/completion","params":{"textDocument":{"uri":"test:///main.cpp"},"position":{"line":5,"character":9},"context":{"triggerKind":2,"triggerCharacter":":"}}} |
| # CHECK: "id": 3, |
| # CHECK-NEXT: "jsonrpc": "2.0", |
| # CHECK-NEXT: "result": { |
| # CHECK-NEXT: "isIncomplete": false, |
| # CHECK-NEXT: "items": [] |
| # CHECK-NEXT: } |
| --- |
| {"jsonrpc":"2.0","id":4,"method":"textDocument/completion","params":{"textDocument":{"uri":"test:///main.cpp"},"position":{"line":6,"character":6},"context":{"triggerKind":2,"triggerCharacter":":"}}} |
| --- |
| # CHECK: "id": 4, |
| # CHECK-NEXT: "jsonrpc": "2.0" |
| # CHECK-NEXT: "result": { |
| # CHECK-NEXT: "isIncomplete": false, |
| # CHECK-NEXT: "items": [ |
| # CHECK-NEXT: { |
| # CHECK-NEXT: "detail": "int", |
| # CHECK-NEXT: "filterText": "ns_member", |
| # CHECK-NEXT: "insertText": "ns_member", |
| # CHECK-NEXT: "insertTextFormat": 1, |
| # CHECK-NEXT: "kind": 6, |
| # CHECK-NEXT: "label": " ns_member", |
| # CHECK-NEXT: "score": {{[0-9]+.[0-9]+}}, |
| # CHECK-NEXT: "sortText": "{{.*}}ns_member", |
| # CHECK-NEXT: "textEdit": { |
| # CHECK-NEXT: "newText": "ns_member", |
| # CHECK-NEXT: "range": { |
| # CHECK-NEXT: "end": { |
| # CHECK-NEXT: "character": 6, |
| # CHECK-NEXT: "line": 6 |
| # CHECK-NEXT: }, |
| # CHECK-NEXT: "start": { |
| # CHECK-NEXT: "character": 6, |
| # CHECK-NEXT: "line": 6 |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: } |
| # CHECK-NEXT: ] |
| # CHECK-NEXT: } |
| {"jsonrpc":"2.0","id":5,"method":"shutdown"} |
| --- |
| {"jsonrpc":"2.0","method":"exit"} |