Skip to content

Commit c5a1781

Browse files
committed
Fix signature
1 parent fcf9ad1 commit c5a1781

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

Server/Handlers/SignatureHelpHandler.cs

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using Microsoft.Extensions.Logging;
1+
using System.Linq;
2+
using System.Security.Cryptography.Xml;
3+
using Microsoft.Extensions.Logging;
24
using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities;
35
using OmniSharp.Extensions.LanguageServer.Protocol.Document;
46
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
@@ -27,7 +29,7 @@ public SignatureHelpHandler(
2729
this._workspace = workspace;
2830
}
2931

30-
public override async Task<SignatureHelp?> Handle(SignatureHelpParams request, CancellationToken cancellationToken)
32+
public override async Task<SignatureHelp?> Handle(SignatureHelpParams request, CancellationToken token)
3133
{
3234
var uri = request.TextDocument.Uri;
3335
Position position = request.Position;
@@ -42,7 +44,7 @@ public SignatureHelpHandler(
4244

4345
_logger.LogWarning("word: " + word);
4446

45-
var signatures = new Container<SignatureInformation>();
47+
var signatures = new List<SignatureInformation>();
4648

4749
ShaderlabDataManager.Instance.HLSLCGFunctions.ForEach(f =>
4850
{
@@ -51,7 +53,8 @@ public SignatureHelpHandler(
5153
if (f.Name.Equals(word))
5254
{
5355
var sign = CreateSignature(item, f.Description);
54-
signatures.Append(sign);
56+
57+
signatures.Add(sign);
5558
}
5659
}
5760
});
@@ -63,11 +66,14 @@ public SignatureHelpHandler(
6366
if (f.Name.Equals(word))
6467
{
6568
var sign = CreateSignature(item, f.Description);
66-
signatures.Append(sign);
69+
70+
signatures.Add(sign);
6771
}
6872
}
6973
});
7074

75+
var elm = signatures.ElementAt<SignatureInformation>(0);
76+
7177
return new SignatureHelp
7278
{
7379
Signatures = signatures
@@ -85,12 +91,7 @@ protected override SignatureHelpRegistrationOptions CreateRegistrationOptions(Si
8591

8692
private SignatureInformation CreateSignature(string sign, string documentation)
8793
{
88-
var signature = new SignatureInformation
89-
{
90-
Documentation = documentation,
91-
Label = sign,
92-
Parameters = new()
93-
};
94+
var paramLst = new Container<ParameterInformation>();
9495

9596
//find the parameters in the method signature (expect methodname(one, two)
9697
string[] pars = sign.Split(new char[] { '(', ',', ')', ';' }, StringSplitOptions.RemoveEmptyEntries);
@@ -107,19 +108,22 @@ private SignatureInformation CreateSignature(string sign, string documentation)
107108

108109
if (locusStart >= 0)
109110
{
110-
_logger.LogWarning("param: " + param);
111-
112111
var newPararm = new ParameterInformation()
113112
{
114113
Documentation = "",
115114
Label = param
116115
};
117116

118-
signature.Parameters.Append(newPararm);
117+
paramLst.Append(newPararm);
119118
}
120119
}
121120

122-
return signature;
121+
return new SignatureInformation
122+
{
123+
Documentation = documentation,
124+
Label = sign,
125+
Parameters = paramLst
126+
};
123127
}
124128
}
125129
}

0 commit comments

Comments
 (0)