public void PushMethod(SignatureHelp methodInfo) { if (CurrentMethod != null) { methodStack.Push(CurrentMethod); } CurrentMethod = new SignatureHelpViewModel(methodInfo); IsVisible = true; }
static dynamic ToMonacoSignatureHelp(ScriptContext context, SignatureHelpViewModel signatureHelp) { if (!(signatureHelp.Signatures?.Length > 0)) { return(null); } dynamic signatures = context.CreateArray(); foreach (var sig in signatureHelp.Signatures) { dynamic parameters = context.CreateArray(); if (sig.Parameters?.Length > 0) { foreach (var param in sig.Parameters) { parameters.push(context.CreateObject(o => { o.label = param.Label; o.documentation = param.Documentation; })); } } signatures.push(context.CreateObject(o => { o.label = sig.Label; o.documentation = sig.Documentation; o.parameters = parameters; })); } return(context.CreateObject(o => { o.signatures = signatures; o.activeSignature = signatureHelp.ActiveSignature; o.activeParameter = signatureHelp.ActiveParameter; })); }