public void PushMethod(SignatureHelp methodInfo)
        {
            if (CurrentMethod != null)
            {
                methodStack.Push(CurrentMethod);
            }

            CurrentMethod = new SignatureHelpViewModel(methodInfo);

            IsVisible = true;
        }
Exemplo n.º 2
0
        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;
            }));
        }