Exemplo n.º 1
0
        public virtual Script AddScript(Script script, bool removeScriptWithSamePath = false)
        {
            if (script == null)
            {
                return(null);
            }

            // If script was already loaded, reload it to last saved state
            var oldScript = m_LoadedScripts.FirstOrDefault(s => s.Path.Equals(script.Path));

            if (oldScript != default(Script) && removeScriptWithSamePath)
            {
                // Reload Script
                var index = m_LoadedScripts.IndexOf(oldScript);
                UnsubscribeToScriptEvents(oldScript);

                ScriptGuidMap.RemoveGuidFromMap(m_LoadedScripts[index]);
                ScriptGuidMap.AddGuidToMapAndGenerateUniqueIfNeeded(script);

                m_LoadedScripts[index] = script;
                ScriptModified?.Invoke(script);
            }
            else
            {
                // Load New Script
                ScriptGuidMap.AddGuidToMapAndGenerateUniqueIfNeeded(script);
                m_LoadedScripts.Add(script);
                ScriptAdded?.Invoke(script);
            }

            SubscribeToScriptEvents(script);
            return(script);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Updates the ribbon.
        /// </summary>
        private void UpdateRibbon()
        {
            var ribbon = new Ribbon {
                ID = "PowerShellRibbon"
            };
            var item = ScriptItem;

            ribbon.CommandContext     = new CommandContext(item);
            ribbon.ShowContextualTabs = false;
            ribbon.CommandContext.Parameters["ScriptRunning"]    = ScriptRunning ? "1" : "0";
            ribbon.CommandContext.Parameters["currentSessionId"] = CurrentSessionId ?? string.Empty;
            ribbon.CommandContext.Parameters["scriptLength"]     = Editor.Value.Length.ToString();
            ribbon.CommandContext.Parameters["selectionLength"]  = SelectionText.Value.Trim().Length.ToString();
            ribbon.CommandContext.Parameters["modified"]         = ScriptModified.ToString();
            ribbon.CommandContext.Parameters["debugging"]        = Debugging ? "1" : "0";
            ribbon.CommandContext.Parameters["inBreakpoint"]     = InBreakpoint ? "1" : "0";


            var sessionName         = CurrentSessionId ?? string.Empty;
            var persistentSessionId = sessionName;

            if (string.Equals(sessionName, StringTokens.PersistentSessionId, StringComparison.OrdinalIgnoreCase))
            {
                var name =
                    item != null &&
                    !string.IsNullOrEmpty(item[ScriptItemFieldNames.PersistentSessionId])
                        ? item[ScriptItemFieldNames.PersistentSessionId]
                        : null;
                sessionName         = string.Format(Texts.PowerShellIse_UpdateRibbon_Script_defined___0_, name ?? Texts.PowerShellIse_UpdateRibbon_Single_execution);
                persistentSessionId = name ?? string.Empty;
            }

            ribbon.CommandContext.Parameters["persistentSessionId"] = persistentSessionId;
            ribbon.CommandContext.Parameters["currentSessionName"]  = string.IsNullOrEmpty(sessionName)
                ? Texts.PowerShellIse_UpdateRibbon_Single_execution
                : (sessionName == DefaultSessionName)
                    ? Factory.GetDatabase("core")
                                                                      .GetItem(
                "/sitecore/content/Applications/PowerShell/PowerShellIse/Menus/Sessions/ISE editing session")?
                                                                      .DisplayName ?? DefaultSessionName
                    : sessionName;
            var obj2 = Context.Database.GetItem("/sitecore/content/Applications/PowerShell/PowerShellIse/Ribbon");

            Error.AssertItemFound(obj2, "/sitecore/content/Applications/PowerShell/PowerShellIse/Ribbon");
            ribbon.CommandContext.RibbonSourceUri = obj2.Uri;

            ribbon.CommandContext.Parameters["currentUser"]     = string.IsNullOrEmpty(CurrentUser) ? DefaultUser : CurrentUser;
            ribbon.CommandContext.Parameters["currentLanguage"] = string.IsNullOrEmpty(CurrentLanguage) ? DefaultLanguage : CurrentLanguage;

            ribbon.CommandContext.Parameters.Add("contextDB", UseContext ? ContextItemDb : string.Empty);
            ribbon.CommandContext.Parameters.Add("contextItem", UseContext ? ContextItemId : string.Empty);
            ribbon.CommandContext.Parameters.Add("scriptDB", ScriptItemDb);
            ribbon.CommandContext.Parameters.Add("scriptItem", ScriptItemId);
            RibbonPanel.InnerHtml = HtmlUtil.RenderControl(ribbon);
        }
Exemplo n.º 3
0
        private void UpdateRibbon()
        {
            var ribbon = new Ribbon()
            {
                ID = "TurboConsoleRibbon"
            };

            ribbon.CommandContext = new Sitecore.Shell.Framework.Commands.CommandContext();
            ribbon.CommandContext.Parameters["ScriptRunning"]    = ScriptRunning ? "1" : "0";
            ribbon.CommandContext.Parameters["ScriptModified"]   = ScriptModified.ToString();
            ribbon.CommandContext.Parameters["currentSessionId"] = CurrentSessionId ?? String.Empty;

            var ribbonItem = Sitecore.Context.Database.GetItem("/sitecore/content/Applications/Turbo Console/Turbo Console/Ribbon");

            Error.AssertItemFound(ribbonItem, "/sitecore/content/Applications/Turbo Console/Turbo Console/Ribbon");
            ribbon.CommandContext.RibbonSourceUri = ribbonItem.Uri;
            RibbonPanel.InnerHtml = HtmlUtil.RenderControl(ribbon);
        }
Exemplo n.º 4
0
 private void tbScriptOutput_TextChanged(object sender, FastColoredTextBoxNS.TextChangedEventArgs e)
 {
     _manualEdits = true;
     ScriptModified?.Invoke(sender, e);
 }