267 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":"#attr = i32\n!alias = i32\nfunc.func private @foo(%arg: i32) -> i32 {\n%cast = \"builtin.unrealized_conversion_cast\"() : () -> (!pdl.value)\nreturn %"9}}}10// -----11{"jsonrpc":"2.0","id":1,"method":"textDocument/completion","params":{12 "textDocument":{"uri":"test:///foo.mlir"},13 "position":{"line":2,"character":0}14}}15// CHECK-LABEL: "id": 116// CHECK-NEXT: "jsonrpc": "2.0",17// CHECK-NEXT: "result": {18// CHECK-NEXT: "isIncomplete": false,19// CHECK-NEXT: "items": [20// CHECK: {21// CHECK: "detail": "dialect",22// CHECK: "insertTextFormat": 1,23// CHECK: "kind": 9,24// CHECK: "label": "builtin",25// CHECK: "sortText": "3"26// CHECK: },27// CHECK: {28// CHECK: "detail": "operation",29// CHECK: "insertTextFormat": 1,30// CHECK: "kind": 5,31// CHECK: "label": "module",32// CHECK: "sortText": "1"33// CHECK: }34// CHECK: ]35// CHECK-NEXT: }36// -----37{"jsonrpc":"2.0","id":2,"method":"textDocument/completion","params":{38 "textDocument":{"uri":"test:///foo.mlir"},39 "position":{"line":3,"character":9}40}}41// CHECK-LABEL: "id": 242// CHECK-NEXT: "jsonrpc": "2.0",43// CHECK-NEXT: "result": {44// CHECK-NEXT: "isIncomplete": false,45// CHECK-NEXT: "items": [46// CHECK: {47// CHECK: "detail": "dialect",48// CHECK: "insertTextFormat": 1,49// CHECK: "kind": 9,50// CHECK: "label": "builtin",51// CHECK: "sortText": "3"52// CHECK: },53// CHECK-NOT: "detail": "operation",54// CHECK: ]55// CHECK-NEXT: }56// -----57{"jsonrpc":"2.0","id":3,"method":"textDocument/completion","params":{58 "textDocument":{"uri":"test:///foo.mlir"},59 "position":{"line":3,"character":17}60}}61// CHECK-LABEL: "id": 362// CHECK-NEXT: "jsonrpc": "2.0",63// CHECK-NEXT: "result": {64// CHECK-NEXT: "isIncomplete": false,65// CHECK-NEXT: "items": [66// CHECK-NOT: "detail": "dialect",67// CHECK: {68// CHECK: "detail": "operation",69// CHECK: "insertTextFormat": 1,70// CHECK: "kind": 5,71// CHECK: "label": "module",72// CHECK: "sortText": "1"73// CHECK: }74// CHECK: ]75// CHECK-NEXT: }76// -----77{"jsonrpc":"2.0","id":4,"method":"textDocument/completion","params":{78 "textDocument":{"uri":"test:///foo.mlir"},79 "position":{"line":4,"character":8}80}}81// CHECK-LABEL: "id": 482// CHECK-NEXT: "jsonrpc": "2.0",83// CHECK-NEXT: "result": {84// CHECK-NEXT: "isIncomplete": false,85// CHECK-NEXT: "items": [86// CHECK-NEXT: {87// CHECK-NEXT: "detail": "arg #0: i32",88// CHECK-NEXT: "insertText": "arg",89// CHECK-NEXT: "insertTextFormat": 1,90// CHECK-NEXT: "kind": 6,91// CHECK-NEXT: "label": "%arg"92// CHECK-NEXT: },93// CHECK-NEXT: {94// CHECK-NEXT: "detail": "builtin.unrealized_conversion_cast: !pdl.value",95// CHECK-NEXT: "insertText": "cast",96// CHECK-NEXT: "insertTextFormat": 1,97// CHECK-NEXT: "kind": 6,98// CHECK-NEXT: "label": "%cast"99// CHECK-NEXT: }100// CHECK: ]101// CHECK-NEXT: }102// -----103{"jsonrpc":"2.0","id":5,"method":"textDocument/completion","params":{104 "textDocument":{"uri":"test:///foo.mlir"},105 "position":{"line":2,"character":10}106}}107// CHECK-LABEL: "id": 5108// CHECK-NEXT: "jsonrpc": "2.0",109// CHECK-NEXT: "result": {110// CHECK-NEXT: "isIncomplete": false,111// CHECK-NEXT: "items": [112// CHECK-NEXT: {113// CHECK-NEXT: "detail": "optional",114// CHECK-NEXT: "insertTextFormat": 1,115// CHECK-NEXT: "kind": 14,116// CHECK-NEXT: "label": "public",117// CHECK-NEXT: "sortText": "0"118// CHECK-NEXT: },119// CHECK-NEXT: {120// CHECK-NEXT: "detail": "optional",121// CHECK-NEXT: "insertTextFormat": 1,122// CHECK-NEXT: "kind": 14,123// CHECK-NEXT: "label": "private",124// CHECK-NEXT: "sortText": "0"125// CHECK-NEXT: },126// CHECK-NEXT: {127// CHECK-NEXT: "detail": "optional",128// CHECK-NEXT: "insertTextFormat": 1,129// CHECK-NEXT: "kind": 14,130// CHECK-NEXT: "label": "nested",131// CHECK-NEXT: "sortText": "0"132// CHECK-NEXT: }133// CHECK-NEXT: ]134// CHECK-NEXT: }135// -----136{"jsonrpc":"2.0","id":6,"method":"textDocument/completion","params":{137 "textDocument":{"uri":"test:///foo.mlir"},138 "position":{"line":0,"character":8}139}}140// CHECK-LABEL: "id": 6141// CHECK-NEXT: "jsonrpc": "2.0",142// CHECK-NEXT: "result": {143// CHECK-NEXT: "isIncomplete": false,144// CHECK-NEXT: "items": [145// CHECK: {146// CHECK: "insertTextFormat": 1,147// CHECK: "kind": 5,148// CHECK: "label": "false"149// CHECK: },150// CHECK: {151// CHECK: "insertTextFormat": 1,152// CHECK: "kind": 5,153// CHECK: "label": "loc"154// CHECK: },155// CHECK: {156// CHECK: "insertTextFormat": 1,157// CHECK: "kind": 5,158// CHECK: "label": "true"159// CHECK: },160// CHECK: {161// CHECK: "insertTextFormat": 1,162// CHECK: "kind": 5,163// CHECK: "label": "unit"164// CHECK: }165// CHECK: ]166// CHECK: }167// -----168{"jsonrpc":"2.0","id":7,"method":"textDocument/completion","params":{169 "textDocument":{"uri":"test:///foo.mlir"},170 "position":{"line":3,"character":56}171}}172// CHECK-LABEL: "id": 7173// CHECK-NEXT: "jsonrpc": "2.0",174// CHECK-NEXT: "result": {175// CHECK-NEXT: "isIncomplete": false,176// CHECK-NEXT: "items": [177// CHECK: {178// CHECK: "insertTextFormat": 1,179// CHECK: "kind": 5,180// CHECK: "label": "index"181// CHECK: },182// CHECK: {183// CHECK: "insertTextFormat": 1,184// CHECK: "kind": 5,185// CHECK: "label": "none"186// CHECK: },187// CHECK: {188// CHECK: "insertText": "i",189// CHECK: "insertTextFormat": 1,190// CHECK: "kind": 5,191// CHECK: "label": "i<N>"192// CHECK: }193// CHECK: ]194// CHECK-NEXT: }195// -----196{"jsonrpc":"2.0","id":8,"method":"textDocument/completion","params":{197 "textDocument":{"uri":"test:///foo.mlir"},198 "position":{"line":3,"character":57}199}}200// CHECK-LABEL: "id": 8201// CHECK-NEXT: "jsonrpc": "2.0",202// CHECK-NEXT: "result": {203// CHECK-NEXT: "isIncomplete": false,204// CHECK-NEXT: "items": [205// CHECK: {206// CHECK: "detail": "dialect",207// CHECK: "insertTextFormat": 1,208// CHECK: "kind": 9,209// CHECK: "label": "builtin",210// CHECK: "sortText": "3"211// CHECK: },212// CHECK: {213// CHECK: "detail": "alias: i32",214// CHECK: "insertTextFormat": 1,215// CHECK: "kind": 5,216// CHECK: "label": "alias",217// CHECK: "sortText": "2"218// CHECK: }219// CHECK: ]220// CHECK-NEXT: }221// -----222{"jsonrpc":"2.0","id":9,"method":"textDocument/completion","params":{223 "textDocument":{"uri":"test:///foo.mlir"},224 "position":{"line":3,"character":61}225}}226// CHECK-LABEL: "id": 9227// CHECK-NEXT: "jsonrpc": "2.0",228// CHECK-NEXT: "result": {229// CHECK-NEXT: "isIncomplete": false,230// CHECK-NEXT: "items": [231// CHECK-NEXT: {232// CHECK-NEXT: "insertTextFormat": 1,233// CHECK-NEXT: "kind": 14,234// CHECK-NEXT: "label": "attribute",235// CHECK-NEXT: "sortText": "0"236// CHECK-NEXT: },237// CHECK-NEXT: {238// CHECK-NEXT: "insertTextFormat": 1,239// CHECK-NEXT: "kind": 14,240// CHECK-NEXT: "label": "operation",241// CHECK-NEXT: "sortText": "0"242// CHECK-NEXT: },243// CHECK-NEXT: {244// CHECK-NEXT: "insertTextFormat": 1,245// CHECK-NEXT: "kind": 14,246// CHECK-NEXT: "label": "range",247// CHECK-NEXT: "sortText": "0"248// CHECK-NEXT: },249// CHECK-NEXT: {250// CHECK-NEXT: "insertTextFormat": 1,251// CHECK-NEXT: "kind": 14,252// CHECK-NEXT: "label": "type",253// CHECK-NEXT: "sortText": "0"254// CHECK-NEXT: },255// CHECK-NEXT: {256// CHECK-NEXT: "insertTextFormat": 1,257// CHECK-NEXT: "kind": 14,258// CHECK-NEXT: "label": "value",259// CHECK-NEXT: "sortText": "0"260// CHECK-NEXT: }261// CHECK-NEXT: ]262// CHECK-NEXT: }263// -----264{"jsonrpc":"2.0","id":10,"method":"shutdown"}265// -----266{"jsonrpc":"2.0","method":"exit"}267