diff --git a/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/FormBuilder.java b/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/FormBuilder.java index cfcd4dd6f6..a2f92ccf56 100644 --- a/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/FormBuilder.java +++ b/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/FormBuilder.java @@ -317,9 +317,16 @@ public FormBuilder dataVariable(TypedBindingPatternNode node, String variable data(node == null ? null : node.bindingPattern(), variableLabel, variableDoc, NameUtil.generateTypeName("var", names), false); - String typeName = node == null ? "" : CommonUtils.getTypeSymbol(semanticModel, node) - .map(typeSymbol -> CommonUtils.getTypeSignature(semanticModel, typeSymbol, true, moduleInfo)) - .orElse(CommonUtils.getVariableName(node)); + String typeName; + if (node == null) { + typeName = ""; + } else if (node.typeDescriptor().kind() == SyntaxKind.VAR_TYPE_DESC) { + typeName = "var"; + } else { + typeName = CommonUtils.getTypeSymbol(semanticModel, node) + .map(typeSymbol -> CommonUtils.getTypeSignature(semanticModel, typeSymbol, true, moduleInfo)) + .orElse(CommonUtils.getVariableName(node)); + } return type(typeName, typeDoc, editable, null, node == null ? null : node.typeDescriptor().lineRange(), hidden); } diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/binary_data.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/binary_data.json index 3c24347624..d96addcc5a 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/binary_data.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/binary_data.json @@ -461,7 +461,7 @@ "selected": true } ], - "value": "byte[3]", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/comment10.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/comment10.json index 103d0cee0d..a5c2e95682 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/comment10.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/comment10.json @@ -369,7 +369,7 @@ "selected": true } ], - "value": "int", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/comment9.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/comment9.json index 0c52b8c2ef..c7b814b3d2 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/comment9.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/comment9.json @@ -191,7 +191,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/flags1.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/flags1.json index 25e3522eb1..264793cd29 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/flags1.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/flags1.json @@ -552,7 +552,7 @@ "selected": true } ], - "value": "boolean", + "value": "var", "placeholder": "var", "optional": false, "editable": false, @@ -676,7 +676,7 @@ "selected": true } ], - "value": "boolean", + "value": "var", "placeholder": "var", "optional": false, "editable": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/foreach1.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/foreach1.json index 31c529c125..bbe4ed5198 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/foreach1.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/foreach1.json @@ -280,7 +280,7 @@ "selected": true } ], - "value": "int", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/foreach2.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/foreach2.json index 31c529c125..bbe4ed5198 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/foreach2.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/foreach2.json @@ -280,7 +280,7 @@ "selected": true } ], - "value": "int", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/match8.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/match8.json index 91ff9daba4..9cf438c142 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/match8.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/match8.json @@ -190,7 +190,7 @@ "selected": true } ], - "value": "int", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/remote_action_call-http-get2.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/remote_action_call-http-get2.json index c350ade24e..dbd7c05e23 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/remote_action_call-http-get2.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/remote_action_call-http-get2.json @@ -223,7 +223,7 @@ "selected": true } ], - "value": "json", + "value": "var", "placeholder": "var", "optional": false, "editable": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/remote_action_call-http-post2.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/remote_action_call-http-post2.json index 914c86d0ad..fd31513a15 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/remote_action_call-http-post2.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/remote_action_call-http-post2.json @@ -274,7 +274,7 @@ "selected": true } ], - "value": "json", + "value": "var", "placeholder": "var", "optional": false, "editable": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/resource_action_call-http-get1.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/resource_action_call-http-get1.json index e5a0745635..2c29229bc7 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/resource_action_call-http-get1.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/resource_action_call-http-get1.json @@ -870,7 +870,7 @@ "selected": true } ], - "value": "json", + "value": "var", "placeholder": "var", "optional": false, "editable": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/resource_action_call-http-post1.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/resource_action_call-http-post1.json index c8cbe7fd3e..5a3fd3f080 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/resource_action_call-http-post1.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/resource_action_call-http-post1.json @@ -1068,7 +1068,7 @@ "selected": true } ], - "value": "json", + "value": "var", "placeholder": "var", "optional": false, "editable": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction1.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction1.json index 341a334a70..e17a7b17e0 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction1.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction1.json @@ -119,7 +119,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction2.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction2.json index 3decb1f0e4..09607315d5 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction2.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction2.json @@ -243,7 +243,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, @@ -366,7 +366,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction3.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction3.json index bcaf81c664..7a002907d4 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction3.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction3.json @@ -191,7 +191,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, @@ -271,7 +271,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction4.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction4.json index 4ec9d640dd..b388bafd3c 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction4.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction4.json @@ -148,7 +148,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction5.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction5.json index ff851f836a..8eeeee2b9c 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction5.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction5.json @@ -148,7 +148,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction6.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction6.json index 476693b1b1..e3dec9aeda 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction6.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/transaction6.json @@ -191,7 +191,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, @@ -271,7 +271,7 @@ "selected": true } ], - "value": "()", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/variable1.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/variable1.json index f30ce4e335..457795e862 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/variable1.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/variable1.json @@ -645,7 +645,7 @@ "selected": true } ], - "value": "int", + "value": "var", "placeholder": "var", "optional": false, "editable": true, @@ -737,7 +737,7 @@ "selected": true } ], - "value": "int", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/variable9.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/variable9.json new file mode 100644 index 0000000000..3d3a649a01 --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/variable9.json @@ -0,0 +1,186 @@ +{ + "start": { + "line": 0, + "offset": 0 + }, + "end": { + "line": 3, + "offset": 1 + }, + "source": "variable.bal", + "description": "Tests a simple diagram flow", + "diagram": { + "fileName": "variable.bal", + "nodes": [ + { + "id": "33233", + "metadata": { + "label": "Start", + "data": { + "kind": "Function", + "label": "function1", + "isServiceFunction": false, + "parameters": [ + "int a", + "int b" + ], + "return": "int" + } + }, + "codedata": { + "node": "EVENT_START", + "lineRange": { + "fileName": "variable.bal", + "startLine": { + "line": 0, + "offset": 45 + }, + "endLine": { + "line": 3, + "offset": 1 + } + }, + "sourceCode": "function function1(int a, int b) returns int {\n var x = \"test\";\n return a + b;\n}" + }, + "returning": false, + "flags": 0 + }, + { + "id": "32879", + "metadata": { + "label": "Declare Variable", + "description": "Create a new variable" + }, + "codedata": { + "node": "VARIABLE", + "lineRange": { + "fileName": "variable.bal", + "startLine": { + "line": 1, + "offset": 4 + }, + "endLine": { + "line": 1, + "offset": 19 + } + }, + "sourceCode": "var x = \"test\";" + }, + "returning": false, + "properties": { + "expression": { + "metadata": { + "label": "Expression", + "description": "Initialize with value" + }, + "types": [ + { + "fieldType": "ACTION_OR_EXPRESSION", + "selected": true + } + ], + "value": "\"test\"", + "optional": true, + "editable": true, + "advanced": false, + "hidden": false + }, + "variable": { + "metadata": { + "label": "Name", + "description": "Name of the variable" + }, + "types": [ + { + "fieldType": "IDENTIFIER", + "selected": true + } + ], + "value": "x", + "optional": false, + "editable": false, + "advanced": false, + "hidden": false, + "codedata": { + "lineRange": { + "fileName": "variable.bal", + "startLine": { + "line": 1, + "offset": 8 + }, + "endLine": { + "line": 1, + "offset": 9 + } + } + } + }, + "type": { + "metadata": { + "label": "Type", + "description": "Type of the variable" + }, + "types": [ + { + "fieldType": "TYPE", + "selected": true + } + ], + "value": "var", + "placeholder": "var", + "optional": false, + "editable": true, + "advanced": false, + "hidden": false, + "codedata": {} + } + }, + "flags": 0 + }, + { + "id": "33869", + "metadata": { + "label": "Return", + "description": "Value of 'a + b'" + }, + "codedata": { + "node": "RETURN", + "lineRange": { + "fileName": "variable.bal", + "startLine": { + "line": 2, + "offset": 4 + }, + "endLine": { + "line": 2, + "offset": 17 + } + }, + "sourceCode": "return a + b;" + }, + "returning": true, + "properties": { + "expression": { + "metadata": { + "label": "Expression", + "description": "Return value" + }, + "types": [ + { + "fieldType": "ACTION_OR_EXPRESSION", + "selected": true + } + ], + "value": "a + b", + "optional": true, + "editable": true, + "advanced": false, + "hidden": false + } + }, + "flags": 0 + } + ], + "connections": [] + } +} diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/xml_payload.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/xml_payload.json index a8d630648d..7d1bb6fd30 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/xml_payload.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/config/xml_payload.json @@ -461,7 +461,7 @@ "selected": true } ], - "value": "xml:Element", + "value": "var", "placeholder": "var", "optional": false, "editable": true, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/source/variable.bal b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/source/variable.bal new file mode 100644 index 0000000000..359c8b7c49 --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/diagram_generator/source/variable.bal @@ -0,0 +1,4 @@ +function function1(int a, int b) returns int { + var x = "test"; + return a + b; +}