示例#1
0
 public static IOutputWriter Create(ScriptControlVM owner, bool startOnNewLine)
 {
     if (startOnNewLine)
     {
         return(new OutputWriter(owner, startOnNewLine));
     }
     return(normalOutputWriter = new OutputWriter(owner, false));
 }
示例#2
0
 public void Execute(ScriptControlVM vm, string[] args)
 {
     vm.ReplEditor.OutputPrintLine(dnSpy_Scripting_Roslyn_Resources.HelpKeyboardShortcuts);
     Print(vm, keyboardShortcuts);
     vm.ReplEditor.OutputPrintLine(dnSpy_Scripting_Roslyn_Resources.HelpReplCommands);
     Print(vm, GetCommands(vm));
     vm.ReplEditor.OutputPrintLine(dnSpy_Scripting_Roslyn_Resources.HelpScriptDirectives);
     Print(vm, scriptDirectives);
 }
示例#3
0
 public void Execute(ScriptControlVM vm, string[] args)
 {
     vm.ReplEditor.OutputPrintLine(dnSpy_Scripting_Roslyn_Resources.HelpKeyboardShortcuts, BoxedTextColor.ReplOutputText);
     Print(vm, keyboardShortcuts, BoxedTextColor.PreprocessorKeyword, BoxedTextColor.ReplOutputText);
     vm.ReplEditor.OutputPrintLine(dnSpy_Scripting_Roslyn_Resources.HelpReplCommands, BoxedTextColor.ReplOutputText);
     PrintCommands(vm, BoxedTextColor.PreprocessorKeyword, BoxedTextColor.ReplOutputText);
     vm.ReplEditor.OutputPrintLine(dnSpy_Scripting_Roslyn_Resources.HelpScriptDirectives, BoxedTextColor.ReplOutputText);
     Print(vm, scriptDirectives, BoxedTextColor.PreprocessorKeyword, BoxedTextColor.ReplOutputText);
 }
示例#4
0
 protected ScriptContent(IThemeManager themeManager, IReplEditorCreator replEditorCreator, ReplEditorOptions replOpts, IServiceLocator serviceLocator)
 {
     this.replEditorUI  = replEditorCreator.Create(replOpts);
     this.scriptControl = new ScriptControl();
     this.scriptControl.SetTextEditorObject(this.replEditorUI.UIObject);
     this.scriptControlVM = CreateScriptControlVM(this.replEditorUI, serviceLocator);
     this.scriptControlVM.OnCommandExecuted += ScriptControlVM_OnCommandExecuted;
     this.replEditorUI.Tag          = this;
     this.scriptControl.DataContext = this.scriptControlVM;
     themeManager.ThemeChanged     += ThemeManager_ThemeChanged;
 }
示例#5
0
 /// <summary>
 /// Adds the <see cref="ScriptControlVM"/> instance to the <see cref="ITextView"/> properties
 /// </summary>
 /// <param name="vm">Script control</param>
 /// <param name="textView">REPL editor text view</param>
 public static void AddInstance(ScriptControlVM vm, ITextView textView)
 {
     if (vm == null)
     {
         throw new ArgumentNullException(nameof(vm));
     }
     if (textView == null)
     {
         throw new ArgumentNullException(nameof(textView));
     }
     textView.Properties.AddProperty(Key, vm);
 }
示例#6
0
 protected ScriptContent(IReplEditorProvider replEditorProvider, ReplEditorOptions replOpts, ReplSettings replSettings, IServiceLocator serviceLocator, string appearanceCategory)
 {
     replOpts.Roles.Add(PredefinedDsTextViewRoles.RoslynRepl);
     replEditor = replEditorProvider.Create(replOpts);
     replEditor.TextView.Options.SetOptionValue(DefaultWpfViewOptions.AppearanceCategory, appearanceCategory);
     scriptControl = new ScriptControl();
     scriptControl.SetTextEditorObject(replEditor.UIObject);
     scriptControlVM = CreateScriptControlVM(replEditor, serviceLocator, replSettings);
     scriptControlVM.OnCommandExecuted += ScriptControlVM_OnCommandExecuted;
     RoslynReplEditorUtils.AddInstance(scriptControlVM, replEditor.TextView);
     replEditor.Tag            = this;
     scriptControl.DataContext = scriptControlVM;
 }
示例#7
0
 void Print(ScriptControlVM vm, IEnumerable <Tuple <string, string> > descs, object color1, object color2)
 {
     foreach (var t in descs)
     {
         vm.ReplEditor.OutputPrint("  ", BoxedTextColor.ReplOutputText);
         vm.ReplEditor.OutputPrint(t.Item1, color1);
         int len = LEFT_COL_LEN - t.Item1.Length;
         if (len > 0)
         {
             vm.ReplEditor.OutputPrint(new string(' ', len), BoxedTextColor.ReplOutputText);
         }
         vm.ReplEditor.OutputPrint(" ", BoxedTextColor.ReplOutputText);
         vm.ReplEditor.OutputPrint(t.Item2, color2);
         vm.ReplEditor.OutputPrintLine(string.Empty, BoxedTextColor.ReplOutputText);
     }
 }
示例#8
0
 public void Execute(ScriptControlVM vm, string[] args) => vm.ReplEditor.ClearScreen();
示例#9
0
 OutputWriter(ScriptControlVM owner, bool startOnNewLine)
 {
     this.owner = owner;
 }
示例#10
0
 public ReplEditorCtxMenuContext(IReplEditor ui)
 {
     UI = ui;
     VM = ScriptContent.GetScriptContent(ui).ScriptControlVM;
 }
示例#11
0
        public void Execute(ScriptControlVM vm, string[] args)
        {
            bool noconfig = args.Any(a => a == "noconfig");

            vm.Reset(!noconfig);
        }
示例#12
0
 public void Execute(ScriptControlVM vm, string[] args)
 {
     vm.ReplEditor.Clear();
 }
示例#13
0
 public ReplEditorCtxMenuContext(IReplEditorUI ui)
 {
     this.UI = ui;
     this.VM = ScriptContent.GetScriptContent(ui).ScriptControlVM;
 }
示例#14
0
 public void Execute(ScriptControlVM vm, string[] args)
 {
     vm.Reset();
 }
示例#15
0
 public ExecState(ScriptControlVM vm, CancellationTokenSource cts)
 {
     this.CancellationTokenSource = cts;
     this.Globals        = new ScriptGlobals(vm, cts.Token);
     this.IsInitializing = true;
 }