CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
114 lines
4.1 KiB
Plaintext
114 lines
4.1 KiB
Plaintext
# RUN: clangd -lit-test < %s | FileCheck -strict-whitespace %s
|
|
# Tests InsertReplaceEdit with auto-triggered completions.
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"id": 0,
|
|
"method": "initialize",
|
|
"params": {
|
|
"processId": 123,
|
|
"rootPath": "clangd",
|
|
"capabilities": {
|
|
"textDocument": {
|
|
"completion": {
|
|
"completionItem": {
|
|
"insertReplaceSupport": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"trace": "off"
|
|
}
|
|
}
|
|
---
|
|
{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"test:///main.cpp","languageId":"cpp","version":1,"text":"struct vector { int size; };\nvoid test(vector *a, vector *b) {\n if (a > b) {} \n a->size = 10;\n a->\n}"}}}
|
|
---
|
|
# Case 1 (rejected trigger): ">" in "a > b" is comparison, not "->".
|
|
# insertReplaceSupport doesn't break trigger rejection.
|
|
{"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: }
|
|
---
|
|
# Case 2 (trigger with word after cursor): "a->^size = 10;"
|
|
# Cursor right after "->", word "size" follows. Insert range is empty.
|
|
# insert: [5,5], replace: [5,9]
|
|
{"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: "insert": {
|
|
# 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: "newText": "size",
|
|
# CHECK-NEXT: "replace": {
|
|
# CHECK-NEXT: "end": {
|
|
# CHECK-NEXT: "character": 9,
|
|
# 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: }
|
|
---
|
|
# Case 3 (trigger with nothing after cursor): "a->^"
|
|
# Cursor right after "->", nothing follows. insert == replace.
|
|
# insert: [5,5], replace: [5,5]
|
|
{"jsonrpc":"2.0","id":3,"method":"textDocument/completion","params":{"textDocument":{"uri":"test:///main.cpp"},"position":{"line":4,"character":5},"context":{"triggerKind":2,"triggerCharacter":">"}}}
|
|
# CHECK: "id": 3,
|
|
# CHECK-NEXT: "jsonrpc": "2.0"
|
|
# CHECK-NEXT: "result": {
|
|
# CHECK: "textEdit": {
|
|
# CHECK-NEXT: "insert": {
|
|
# CHECK-NEXT: "end": {
|
|
# CHECK-NEXT: "character": 5,
|
|
# CHECK-NEXT: "line": 4
|
|
# CHECK-NEXT: },
|
|
# CHECK-NEXT: "start": {
|
|
# CHECK-NEXT: "character": 5,
|
|
# CHECK-NEXT: "line": 4
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: },
|
|
# CHECK-NEXT: "newText": {{.*}},
|
|
# CHECK-NEXT: "replace": {
|
|
# CHECK-NEXT: "end": {
|
|
# CHECK-NEXT: "character": 5,
|
|
# CHECK-NEXT: "line": 4
|
|
# CHECK-NEXT: },
|
|
# CHECK-NEXT: "start": {
|
|
# CHECK-NEXT: "character": 5,
|
|
# CHECK-NEXT: "line": 4
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: }
|
|
---
|
|
{"jsonrpc":"2.0","id":4,"method":"shutdown"}
|
|
---
|
|
{"jsonrpc":"2.0","method":"exit"}
|