221
|
1 // RUN: mlir-lsp-server -lit-test < %s | FileCheck -strict-whitespace %s
|
|
2 {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"mlir","capabilities":{},"trace":"off"}}
|
|
3 // -----
|
|
4 {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{
|
|
5 "uri":"test:///foo.mlir",
|
|
6 "languageId":"mlir",
|
|
7 "version":1,
|
|
8 "text":"func @foo(%arg: i1) {\n%value = constant true\nbr ^bb2\n^bb2:\nreturn\n}"
|
|
9 }}}
|
|
10 // -----
|
|
11 // Hover on an operation.
|
|
12 {"jsonrpc":"2.0","id":1,"method":"textDocument/hover","params":{
|
|
13 "textDocument":{"uri":"test:///foo.mlir"},
|
|
14 "position":{"line":1,"character":12}
|
|
15 }}
|
|
16 // CHECK: "id": 1,
|
|
17 // CHECK-NEXT: "jsonrpc": "2.0",
|
|
18 // CHECK-NEXT: "result": {
|
|
19 // CHECK-NEXT: "contents": {
|
|
20 // CHECK-NEXT: "kind": "markdown",
|
|
21 // CHECK-NEXT: "value": "```mlir\n%true = \"std.constant\"() {value = true} : () -> i1\n```\n"
|
|
22 // CHECK-NEXT: },
|
|
23 // CHECK-NEXT: "range": {
|
|
24 // CHECK-NEXT: "end": {
|
|
25 // CHECK-NEXT: "character": 17,
|
|
26 // CHECK-NEXT: "line": 1
|
|
27 // CHECK-NEXT: },
|
|
28 // CHECK-NEXT: "start": {
|
|
29 // CHECK-NEXT: "character": 9,
|
|
30 // CHECK-NEXT: "line": 1
|
|
31 // CHECK-NEXT: }
|
|
32 // CHECK-NEXT: }
|
|
33 // CHECK-NEXT: }
|
|
34 // -----
|
|
35 // Hover on an operation result.
|
|
36 {"jsonrpc":"2.0","id":1,"method":"textDocument/hover","params":{
|
|
37 "textDocument":{"uri":"test:///foo.mlir"},
|
|
38 "position":{"line":1,"character":2}
|
|
39 }}
|
|
40 // CHECK: "id": 1,
|
|
41 // CHECK-NEXT: "jsonrpc": "2.0",
|
|
42 // CHECK-NEXT: "result": {
|
|
43 // CHECK-NEXT: "contents": {
|
|
44 // CHECK-NEXT: "kind": "markdown",
|
|
45 // CHECK-NEXT: "value": "Operation: \"std.constant\"\n\nResult #0\n\nType: `i1`\n\n"
|
|
46 // CHECK-NEXT: },
|
|
47 // CHECK-NEXT: "range": {
|
|
48 // CHECK-NEXT: "end": {
|
|
49 // CHECK-NEXT: "character": 6,
|
|
50 // CHECK-NEXT: "line": 1
|
|
51 // CHECK-NEXT: },
|
|
52 // CHECK-NEXT: "start": {
|
|
53 // CHECK-NEXT: "character": 0,
|
|
54 // CHECK-NEXT: "line": 1
|
|
55 // CHECK-NEXT: }
|
|
56 // CHECK-NEXT: }
|
|
57 // CHECK-NEXT: }
|
|
58 // -----
|
|
59 // Hover on a Block.
|
|
60 {"jsonrpc":"2.0","id":1,"method":"textDocument/hover","params":{
|
|
61 "textDocument":{"uri":"test:///foo.mlir"},
|
|
62 "position":{"line":3,"character":2}
|
|
63 }}
|
|
64 // CHECK: "id": 1,
|
|
65 // CHECK-NEXT: "jsonrpc": "2.0",
|
|
66 // CHECK-NEXT: "result": {
|
|
67 // CHECK-NEXT: "contents": {
|
|
68 // CHECK-NEXT: "kind": "markdown",
|
|
69 // CHECK-NEXT: "value": "Operation: \"func\"\n\nBlock #1\n\nPredecessors: <Block #0>\n\n"
|
|
70 // CHECK-NEXT: },
|
|
71 // CHECK-NEXT: "range": {
|
|
72 // CHECK-NEXT: "end": {
|
|
73 // CHECK-NEXT: "character": 4,
|
|
74 // CHECK-NEXT: "line": 3
|
|
75 // CHECK-NEXT: },
|
|
76 // CHECK-NEXT: "start": {
|
|
77 // CHECK-NEXT: "character": 0,
|
|
78 // CHECK-NEXT: "line": 3
|
|
79 // CHECK-NEXT: }
|
|
80 // CHECK-NEXT: }
|
|
81 // CHECK-NEXT: }
|
|
82 // -----
|
|
83 // Hover on a Block argument.
|
|
84 {"jsonrpc":"2.0","id":1,"method":"textDocument/hover","params":{
|
|
85 "textDocument":{"uri":"test:///foo.mlir"},
|
|
86 "position":{"line":0,"character":12}
|
|
87 }}
|
|
88 // CHECK: "id": 1,
|
|
89 // CHECK-NEXT: "jsonrpc": "2.0",
|
|
90 // CHECK-NEXT: "result": {
|
|
91 // CHECK-NEXT: "contents": {
|
|
92 // CHECK-NEXT: "kind": "markdown",
|
|
93 // CHECK-NEXT: "value": "Operation: \"func\"\n\nBlock: <Block #0>\n\nArgument #0\n\nType: `i1`\n\n"
|
|
94 // CHECK-NEXT: },
|
|
95 // CHECK-NEXT: "range": {
|
|
96 // CHECK-NEXT: "end": {
|
|
97 // CHECK-NEXT: "character": 14,
|
|
98 // CHECK-NEXT: "line": 0
|
|
99 // CHECK-NEXT: },
|
|
100 // CHECK-NEXT: "start": {
|
|
101 // CHECK-NEXT: "character": 10,
|
|
102 // CHECK-NEXT: "line": 0
|
|
103 // CHECK-NEXT: }
|
|
104 // CHECK-NEXT: }
|
|
105 // CHECK-NEXT: }
|
|
106 // -----
|
|
107 {"jsonrpc":"2.0","id":3,"method":"shutdown"}
|
|
108 // -----
|
|
109 {"jsonrpc":"2.0","method":"exit"}
|