1
- using Microsoft . Extensions . Logging ;
1
+ using System . Linq ;
2
+ using System . Security . Cryptography . Xml ;
3
+ using Microsoft . Extensions . Logging ;
2
4
using OmniSharp . Extensions . LanguageServer . Protocol . Client . Capabilities ;
3
5
using OmniSharp . Extensions . LanguageServer . Protocol . Document ;
4
6
using OmniSharp . Extensions . LanguageServer . Protocol . Models ;
@@ -27,7 +29,7 @@ public SignatureHelpHandler(
27
29
this . _workspace = workspace ;
28
30
}
29
31
30
- public override async Task < SignatureHelp ? > Handle ( SignatureHelpParams request , CancellationToken cancellationToken )
32
+ public override async Task < SignatureHelp ? > Handle ( SignatureHelpParams request , CancellationToken token )
31
33
{
32
34
var uri = request . TextDocument . Uri ;
33
35
Position position = request . Position ;
@@ -42,7 +44,7 @@ public SignatureHelpHandler(
42
44
43
45
_logger . LogWarning ( "word: " + word ) ;
44
46
45
- var signatures = new Container < SignatureInformation > ( ) ;
47
+ var signatures = new List < SignatureInformation > ( ) ;
46
48
47
49
ShaderlabDataManager . Instance . HLSLCGFunctions . ForEach ( f =>
48
50
{
@@ -51,7 +53,8 @@ public SignatureHelpHandler(
51
53
if ( f . Name . Equals ( word ) )
52
54
{
53
55
var sign = CreateSignature ( item , f . Description ) ;
54
- signatures . Append ( sign ) ;
56
+
57
+ signatures . Add ( sign ) ;
55
58
}
56
59
}
57
60
} ) ;
@@ -63,11 +66,14 @@ public SignatureHelpHandler(
63
66
if ( f . Name . Equals ( word ) )
64
67
{
65
68
var sign = CreateSignature ( item , f . Description ) ;
66
- signatures . Append ( sign ) ;
69
+
70
+ signatures . Add ( sign ) ;
67
71
}
68
72
}
69
73
} ) ;
70
74
75
+ var elm = signatures . ElementAt < SignatureInformation > ( 0 ) ;
76
+
71
77
return new SignatureHelp
72
78
{
73
79
Signatures = signatures
@@ -85,12 +91,7 @@ protected override SignatureHelpRegistrationOptions CreateRegistrationOptions(Si
85
91
86
92
private SignatureInformation CreateSignature ( string sign , string documentation )
87
93
{
88
- var signature = new SignatureInformation
89
- {
90
- Documentation = documentation ,
91
- Label = sign ,
92
- Parameters = new ( )
93
- } ;
94
+ var paramLst = new Container < ParameterInformation > ( ) ;
94
95
95
96
//find the parameters in the method signature (expect methodname(one, two)
96
97
string [ ] pars = sign . Split ( new char [ ] { '(' , ',' , ')' , ';' } , StringSplitOptions . RemoveEmptyEntries ) ;
@@ -107,19 +108,22 @@ private SignatureInformation CreateSignature(string sign, string documentation)
107
108
108
109
if ( locusStart >= 0 )
109
110
{
110
- _logger . LogWarning ( "param: " + param ) ;
111
-
112
111
var newPararm = new ParameterInformation ( )
113
112
{
114
113
Documentation = "" ,
115
114
Label = param
116
115
} ;
117
116
118
- signature . Parameters . Append ( newPararm ) ;
117
+ paramLst . Append ( newPararm ) ;
119
118
}
120
119
}
121
120
122
- return signature ;
121
+ return new SignatureInformation
122
+ {
123
+ Documentation = documentation ,
124
+ Label = sign ,
125
+ Parameters = paramLst
126
+ } ;
123
127
}
124
128
}
125
129
}
0 commit comments