brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · edca346 Raw
158 lines · plain
1// RUN: mlir-lsp-server -lit-test < %s | FileCheck -strict-whitespace %s2{"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.func @foo(%arg: i1) {\n%value = arith.constant true\ncf.br ^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": "\"arith.constant\"\n\nGeneric Form:\n\n```mlir\n%0 = \"arith.constant\"() <{value = true}> : () -> i1\n```\n"22// CHECK-NEXT:    },23// CHECK-NEXT:    "range": {24// CHECK-NEXT:      "end": {25// CHECK-NEXT:        "character": 23,26// CHECK-NEXT:        "line": 127// CHECK-NEXT:      },28// CHECK-NEXT:      "start": {29// CHECK-NEXT:        "character": 9,30// CHECK-NEXT:        "line": 131// CHECK-NEXT:      }32// CHECK-NEXT:    }33// CHECK-NEXT:  }34// -----35// Hover on an operation result.36{"jsonrpc":"2.0","id":2,"method":"textDocument/hover","params":{37  "textDocument":{"uri":"test:///foo.mlir"},38  "position":{"line":1,"character":2}39}}40//      CHECK:  "id": 2,41// CHECK-NEXT:  "jsonrpc": "2.0",42// CHECK-NEXT:  "result": {43// CHECK-NEXT:    "contents": {44// CHECK-NEXT:      "kind": "markdown",45// CHECK-NEXT:      "value": "Operation: \"arith.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": 151// CHECK-NEXT:      },52// CHECK-NEXT:      "start": {53// CHECK-NEXT:        "character": 0,54// CHECK-NEXT:        "line": 155// CHECK-NEXT:      }56// CHECK-NEXT:    }57// CHECK-NEXT:  }58// -----59// Hover on a Block.60{"jsonrpc":"2.0","id":3,"method":"textDocument/hover","params":{61  "textDocument":{"uri":"test:///foo.mlir"},62  "position":{"line":3,"character":2}63}}64//      CHECK:  "id": 3,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.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": 375// CHECK-NEXT:      },76// CHECK-NEXT:      "start": {77// CHECK-NEXT:        "character": 0,78// CHECK-NEXT:        "line": 379// CHECK-NEXT:      }80// CHECK-NEXT:    }81// CHECK-NEXT:  }82// -----83// Hover on a Block argument.84{"jsonrpc":"2.0","id":4,"method":"textDocument/hover","params":{85  "textDocument":{"uri":"test:///foo.mlir"},86  "position":{"line":0,"character":17}87}}88//      CHECK:  "id": 4,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.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": 19,98// CHECK-NEXT:        "line": 099// CHECK-NEXT:      },100// CHECK-NEXT:      "start": {101// CHECK-NEXT:        "character": 15,102// CHECK-NEXT:        "line": 0103// CHECK-NEXT:      }104// CHECK-NEXT:    }105// CHECK-NEXT:  }106// -----107// Hover on a region operation.108{"jsonrpc":"2.0","id":5,"method":"textDocument/hover","params":{109  "textDocument":{"uri":"test:///foo.mlir"},110  "position":{"line":0,"character":1}111}}112//      CHECK:  "id": 5,113// CHECK-NEXT:  "jsonrpc": "2.0",114// CHECK-NEXT:  "result": {115// CHECK-NEXT:    "contents": {116// CHECK-NEXT:      "kind": "markdown",117// CHECK-NEXT:      "value": "\"func.func\" : public @foo\n\nGeneric Form:\n\n```mlir\n\"func.func\"() <{function_type = (i1) -> (), sym_name = \"foo\"}> ({...}) : () -> ()\n```\n"118// CHECK-NEXT:    },119// CHECK-NEXT:    "range": {120// CHECK-NEXT:      "end": {121// CHECK-NEXT:        "character": 9,122// CHECK-NEXT:        "line": 0123// CHECK-NEXT:      },124// CHECK-NEXT:      "start": {125// CHECK-NEXT:        "character": 0,126// CHECK-NEXT:        "line": 0127// CHECK-NEXT:      }128// CHECK-NEXT:    }129// CHECK-NEXT:  }130// -----131// Hover on a symbol reference.132{"jsonrpc":"2.0","id":6,"method":"textDocument/hover","params":{133  "textDocument":{"uri":"test:///foo.mlir"},134  "position":{"line":0,"character":13}135}}136//      CHECK:  "id": 6,137// CHECK-NEXT:  "jsonrpc": "2.0",138// CHECK-NEXT:  "result": {139// CHECK-NEXT:    "contents": {140// CHECK-NEXT:      "kind": "markdown",141// CHECK-NEXT:      "value": "\"func.func\" : public @foo\n\nGeneric Form:\n\n```mlir\n\"func.func\"() <{function_type = (i1) -> (), sym_name = \"foo\"}> ({...}) : () -> ()\n```\n"142// CHECK-NEXT:    },143// CHECK-NEXT:    "range": {144// CHECK-NEXT:      "end": {145// CHECK-NEXT:        "character": 14,146// CHECK-NEXT:        "line": 0147// CHECK-NEXT:      },148// CHECK-NEXT:      "start": {149// CHECK-NEXT:        "character": 10,150// CHECK-NEXT:        "line": 0151// CHECK-NEXT:      }152// CHECK-NEXT:    }153// CHECK-NEXT:  }154// -----155{"jsonrpc":"2.0","id":7,"method":"shutdown"}156// -----157{"jsonrpc":"2.0","method":"exit"}158