// RUN: mlir-pdll-lsp-server -pdll-extra-dir %S -pdll-extra-dir %S/../../include -lit-test < %s | FileCheck -strict-whitespace %s {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"pdll","capabilities":{},"trace":"off"}} // ----- {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{ "uri":"test:///foo.pdll", "languageId":"pdll", "version":1, "text":"#include \"include/included.td\"\nConstraint Cst(attr: Attr);\nPattern {\n op(_: Value, _: Value);\n op(_: ValueRange) -> (_: Type, _: Type);\n let op = op;\n let value = op.0;\n Cst(_: Attr);\n erase op;\n}\n" }}} // ----- {"jsonrpc":"2.0","id":2,"method":"textDocument/inlayHint","params":{ "textDocument":{"uri":"test:///foo.pdll"}, "range": { "start": {"line":3,"character":0}, "end": {"line":5,"character":0} } }} // CHECK: "id": 2, // CHECK-NEXT: "jsonrpc": "2.0", // CHECK-NEXT: "result": [ // CHECK-NEXT: { // CHECK-NEXT: "kind": 2, // CHECK-NEXT: "label": "operand:", // CHECK-NEXT: "paddingLeft": false, // CHECK-NEXT: "paddingRight": true, // CHECK-NEXT: "position": { // CHECK-NEXT: "character": 17, // CHECK-NEXT: "line": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "kind": 2, // CHECK-NEXT: "label": "operand2:", // CHECK-NEXT: "paddingLeft": false, // CHECK-NEXT: "paddingRight": true, // CHECK-NEXT: "position": { // CHECK-NEXT: "character": 27, // CHECK-NEXT: "line": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "kind": 2, // CHECK-NEXT: "label": "operands:", // CHECK-NEXT: "paddingLeft": false, // CHECK-NEXT: "paddingRight": true, // CHECK-NEXT: "position": { // CHECK-NEXT: "character": 17, // CHECK-NEXT: "line": 4 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "kind": 2, // CHECK-NEXT: "label": "result:", // CHECK-NEXT: "paddingLeft": false, // CHECK-NEXT: "paddingRight": true, // CHECK-NEXT: "position": { // CHECK-NEXT: "character": 36, // CHECK-NEXT: "line": 4 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "kind": 2, // CHECK-NEXT: "label": "result2:", // CHECK-NEXT: "paddingLeft": false, // CHECK-NEXT: "paddingRight": true, // CHECK-NEXT: "position": { // CHECK-NEXT: "character": 45, // CHECK-NEXT: "line": 4 // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // ----- {"jsonrpc":"2.0","id":3,"method":"textDocument/inlayHint","params":{ "textDocument":{"uri":"test:///foo.pdll"}, "range": { "start": {"line":5,"character":0}, "end": {"line":8,"character":0} } }} // CHECK: "id": 3, // CHECK-NEXT: "jsonrpc": "2.0", // CHECK-NEXT: "result": [ // CHECK-NEXT: { // CHECK-NEXT: "kind": 1, // CHECK-NEXT: "label": ": Value", // CHECK-NEXT: "paddingLeft": false, // CHECK-NEXT: "paddingRight": false, // CHECK-NEXT: "position": { // CHECK-NEXT: "character": 11, // CHECK-NEXT: "line": 6 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "kind": 2, // CHECK-NEXT: "label": "attr:", // CHECK-NEXT: "paddingLeft": false, // CHECK-NEXT: "paddingRight": true, // CHECK-NEXT: "position": { // CHECK-NEXT: "character": 6, // CHECK-NEXT: "line": 7 // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // ----- {"jsonrpc":"2.0","id":4,"method":"shutdown"} // ----- {"jsonrpc":"2.0","method":"exit"}