/// <summary>
        /// This method is a static call made via reflection from the Caller of the Extensions.
        /// It instantiates all the IDE extensions and passes the list back to the caller, where
        /// different methods can be called for different visual behaviours from the controls.
        /// </summary>
        /// <param name="textEditorControl"> Main TextEditorControl object </param>
        /// <param name="textCore"> TextCore singleton </param>
        /// <returns></returns>
        public static List <EditorExtension> EnumerateExtensions(TextEditorControl textEditorControl, ITextEditorCore textCore)
        {
            ExtensionFactory.textEditorCore = textCore;
            List <EditorExtension> extensions = new List <EditorExtension>();

            // Instantiate all popups
            FunctionSignatureExtension functionSignatureExt = new FunctionSignatureExtension();
            AutoCompleteExtension      autoCompleteExt      = new AutoCompleteExtension();
            NumericSliderExtension     numericSliderExt     = new NumericSliderExtension();
            InspectionToolTipExtension inspectionToolTipExt = new InspectionToolTipExtension();

            // Instantiate Core
            functionSignatureExt.SetEditorCore(textEditorControl, textCore);
            autoCompleteExt.SetEditorCore(textEditorControl, textCore);
            numericSliderExt.SetEditorCore(textEditorControl, textCore);
            inspectionToolTipExt.SetEditorCore(textEditorControl, textCore);

            // Add to main list
            extensions.Add(functionSignatureExt);
            extensions.Add(autoCompleteExt);
            extensions.Add(numericSliderExt);
            extensions.Add(inspectionToolTipExt);

            return(extensions);
        }
        /// <summary>
        /// This method is a static call made via reflection from the Caller of the Extensions.
        /// It instantiates all the IDE extensions and passes the list back to the caller, where
        /// different methods can be called for different visual behaviours from the controls.
        /// </summary>
        /// <param name="textEditorControl"> Main TextEditorControl object </param>
        /// <param name="textCore"> TextCore singleton </param>
        /// <returns></returns>
        public static List<EditorExtension> EnumerateExtensions(TextEditorControl textEditorControl, ITextEditorCore textCore)
        {
            ExtensionFactory.textEditorCore = textCore;
            List<EditorExtension> extensions = new List<EditorExtension>();

            // Instantiate all popups
            FunctionSignatureExtension functionSignatureExt = new FunctionSignatureExtension();
            AutoCompleteExtension autoCompleteExt = new AutoCompleteExtension();
            NumericSliderExtension numericSliderExt = new NumericSliderExtension();
            InspectionToolTipExtension inspectionToolTipExt = new InspectionToolTipExtension();

            // Instantiate Core
            functionSignatureExt.SetEditorCore(textEditorControl, textCore);
            autoCompleteExt.SetEditorCore(textEditorControl, textCore);
            numericSliderExt.SetEditorCore(textEditorControl, textCore);
            inspectionToolTipExt.SetEditorCore(textEditorControl, textCore);

            // Add to main list
            extensions.Add(functionSignatureExt);
            extensions.Add(autoCompleteExt);
            extensions.Add(numericSliderExt);
            extensions.Add(inspectionToolTipExt);

            return extensions;
        }