diff --git a/CodeCompletion/SymTable.cs b/CodeCompletion/SymTable.cs index 4afcfe7c7..a0b63badf 100644 --- a/CodeCompletion/SymTable.cs +++ b/CodeCompletion/SymTable.cs @@ -6585,6 +6585,8 @@ namespace CodeCompletion this.param_kind = parametr_kind.var_parametr; else if (is_params(pi)) this.param_kind = parametr_kind.params_parametr; + if (pi.IsOptional) + this.cnst_val = pi.DefaultValue; //MakeDescription(); } diff --git a/ParserTools/ParserTools/DefaultLanguageInformation.cs b/ParserTools/ParserTools/DefaultLanguageInformation.cs index 75d88ed90..7d4bdcea7 100644 --- a/ParserTools/ParserTools/DefaultLanguageInformation.cs +++ b/ParserTools/ParserTools/DefaultLanguageInformation.cs @@ -1658,12 +1658,15 @@ namespace PascalABCCompiler.Parsers if (!pis[i].ParameterType.IsByRef) { sb.Append(GetFullTypeName(pis[i].ParameterType)); + if (pis[i].IsOptional) + sb.Append(":=" + (pis[i].DefaultValue != null ? pis[i].DefaultValue.ToString() : "nil")); } else { Type t = pis[i].ParameterType.GetElementType(); sb.Append(GetFullTypeName(t)); } + if (i < pis.Length - 1) sb.Append("; "); } @@ -1806,6 +1809,8 @@ namespace PascalABCCompiler.Parsers sb.Append(GetShortTypeName(pis[i].ParameterType, false)); else sb.Append(inst_type); + if (pis[i].IsOptional) + sb.Append(":=" + (pis[i].DefaultValue != null ? pis[i].DefaultValue.ToString() : "nil")); } else {