public async void LoadFile(EasyScintilla.SimpleEditor codeEditor, string file_name)
        {
            try
            {
                var loader = codeEditor.CreateLoader(256);
                if (loader == null)
                {
                    throw new ApplicationException("Unable to create loader.");
                }

                var cts      = new CancellationTokenSource();
                var document = await LoadFileAsync(loader, file_name, cts.Token);

                codeEditor.Document = document;

                // Every document starts with a reference count of 1. Assigning it to Scintilla increased that to 2.
                // To let Scintilla control the life of the document, we'll drop it back down to 1.
                codeEditor.ReleaseDocument(document);
                codeEditor.Styler = new EasyScintilla.Stylers.DarkCSharpStyler();

                FileName = file_name;
            }
            catch (OperationCanceledException)
            {
                this.Error = true;
            }
            catch (Exception)
            {
                this.Error = true;

                MessageBox.Show("There was an error loading the file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 private void InitializeComponent()
 {
     System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(XMLFileViewerWindow));
     this.kryptonPanel1                 = new Krypton.Toolkit.KryptonPanel();
     this.menuStrip1                    = new System.Windows.Forms.MenuStrip();
     this.fileToolStripMenuItem         = new System.Windows.Forms.ToolStripMenuItem();
     this.newToolStripMenuItem          = new System.Windows.Forms.ToolStripMenuItem();
     this.openToolStripMenuItem         = new System.Windows.Forms.ToolStripMenuItem();
     this.toolStripSeparator            = new System.Windows.Forms.ToolStripSeparator();
     this.saveToolStripMenuItem         = new System.Windows.Forms.ToolStripMenuItem();
     this.saveAsToolStripMenuItem       = new System.Windows.Forms.ToolStripMenuItem();
     this.toolStripSeparator1           = new System.Windows.Forms.ToolStripSeparator();
     this.printToolStripMenuItem        = new System.Windows.Forms.ToolStripMenuItem();
     this.printPreviewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
     this.toolStripSeparator2           = new System.Windows.Forms.ToolStripSeparator();
     this.exitToolStripMenuItem         = new System.Windows.Forms.ToolStripMenuItem();
     this.editToolStripMenuItem         = new System.Windows.Forms.ToolStripMenuItem();
     this.undoToolStripMenuItem         = new System.Windows.Forms.ToolStripMenuItem();
     this.redoToolStripMenuItem         = new System.Windows.Forms.ToolStripMenuItem();
     this.toolStripSeparator3           = new System.Windows.Forms.ToolStripSeparator();
     this.cutToolStripMenuItem          = new System.Windows.Forms.ToolStripMenuItem();
     this.copyToolStripMenuItem         = new System.Windows.Forms.ToolStripMenuItem();
     this.pasteToolStripMenuItem        = new System.Windows.Forms.ToolStripMenuItem();
     this.toolStripSeparator4           = new System.Windows.Forms.ToolStripSeparator();
     this.selectAllToolStripMenuItem    = new System.Windows.Forms.ToolStripMenuItem();
     this.toolsToolStripMenuItem        = new System.Windows.Forms.ToolStripMenuItem();
     this.customizeToolStripMenuItem    = new System.Windows.Forms.ToolStripMenuItem();
     this.optionsToolStripMenuItem      = new System.Windows.Forms.ToolStripMenuItem();
     this.helpToolStripMenuItem         = new System.Windows.Forms.ToolStripMenuItem();
     this.contentsToolStripMenuItem     = new System.Windows.Forms.ToolStripMenuItem();
     this.indexToolStripMenuItem        = new System.Windows.Forms.ToolStripMenuItem();
     this.searchToolStripMenuItem       = new System.Windows.Forms.ToolStripMenuItem();
     this.toolStripSeparator5           = new System.Windows.Forms.ToolStripSeparator();
     this.aboutToolStripMenuItem        = new System.Windows.Forms.ToolStripMenuItem();
     this.kryptonPanel2                 = new Krypton.Toolkit.KryptonPanel();
     this.statusStrip1                  = new System.Windows.Forms.StatusStrip();
     this.kryptonPanel3                 = new Krypton.Toolkit.KryptonPanel();
     this.seEdit = new EasyScintilla.SimpleEditor();
     this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
     this.ksZoomLevelSlider     = new Krypton.Toolkit.Suite.Extended.Tool.Strip.Items.KryptonSlider();
     this.tsslZoomLevel         = new System.Windows.Forms.ToolStripStatusLabel();
     ((System.ComponentModel.ISupportInitialize)(this.kryptonPanel1)).BeginInit();
     this.kryptonPanel1.SuspendLayout();
     this.menuStrip1.SuspendLayout();
     ((System.ComponentModel.ISupportInitialize)(this.kryptonPanel2)).BeginInit();
     this.kryptonPanel2.SuspendLayout();
     this.statusStrip1.SuspendLayout();
     ((System.ComponentModel.ISupportInitialize)(this.kryptonPanel3)).BeginInit();
     this.kryptonPanel3.SuspendLayout();
     this.SuspendLayout();
     //
     // kryptonPanel1
     //
     this.kryptonPanel1.Controls.Add(this.menuStrip1);
     this.kryptonPanel1.Dock     = System.Windows.Forms.DockStyle.Top;
     this.kryptonPanel1.Location = new System.Drawing.Point(0, 0);
     this.kryptonPanel1.Name     = "kryptonPanel1";
     this.kryptonPanel1.Size     = new System.Drawing.Size(1103, 24);
     this.kryptonPanel1.TabIndex = 0;
     //
     // menuStrip1
     //
     this.menuStrip1.Font = new System.Drawing.Font("Segoe UI", 9F);
     this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
         this.fileToolStripMenuItem,
         this.editToolStripMenuItem,
         this.toolsToolStripMenuItem,
         this.helpToolStripMenuItem
     });
     this.menuStrip1.Location = new System.Drawing.Point(0, 0);
     this.menuStrip1.Name     = "menuStrip1";
     this.menuStrip1.Size     = new System.Drawing.Size(1103, 24);
     this.menuStrip1.TabIndex = 0;
     this.menuStrip1.Text     = "menuStrip1";
     //
     // fileToolStripMenuItem
     //
     this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
         this.newToolStripMenuItem,
         this.openToolStripMenuItem,
         this.toolStripSeparator,
         this.saveToolStripMenuItem,
         this.saveAsToolStripMenuItem,
         this.toolStripSeparator1,
         this.printToolStripMenuItem,
         this.printPreviewToolStripMenuItem,
         this.toolStripSeparator2,
         this.exitToolStripMenuItem
     });
     this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
     this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
     this.fileToolStripMenuItem.Text = "&File";
     //
     // newToolStripMenuItem
     //
     this.newToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("newToolStripMenuItem.Image")));
     this.newToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
     this.newToolStripMenuItem.Name         = "newToolStripMenuItem";
     this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
     this.newToolStripMenuItem.Size         = new System.Drawing.Size(180, 22);
     this.newToolStripMenuItem.Text         = "&New";
     //
     // openToolStripMenuItem
     //
     this.openToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("openToolStripMenuItem.Image")));
     this.openToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
     this.openToolStripMenuItem.Name         = "openToolStripMenuItem";
     this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
     this.openToolStripMenuItem.Size         = new System.Drawing.Size(180, 22);
     this.openToolStripMenuItem.Text         = "&Open";
     //
     // toolStripSeparator
     //
     this.toolStripSeparator.Name = "toolStripSeparator";
     this.toolStripSeparator.Size = new System.Drawing.Size(177, 6);
     //
     // saveToolStripMenuItem
     //
     this.saveToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripMenuItem.Image")));
     this.saveToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
     this.saveToolStripMenuItem.Name         = "saveToolStripMenuItem";
     this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
     this.saveToolStripMenuItem.Size         = new System.Drawing.Size(180, 22);
     this.saveToolStripMenuItem.Text         = "&Save";
     //
     // saveAsToolStripMenuItem
     //
     this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
     this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
     this.saveAsToolStripMenuItem.Text = "Save &As";
     //
     // toolStripSeparator1
     //
     this.toolStripSeparator1.Name = "toolStripSeparator1";
     this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
     //
     // printToolStripMenuItem
     //
     this.printToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("printToolStripMenuItem.Image")));
     this.printToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
     this.printToolStripMenuItem.Name         = "printToolStripMenuItem";
     this.printToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P)));
     this.printToolStripMenuItem.Size         = new System.Drawing.Size(180, 22);
     this.printToolStripMenuItem.Text         = "&Print";
     //
     // printPreviewToolStripMenuItem
     //
     this.printPreviewToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("printPreviewToolStripMenuItem.Image")));
     this.printPreviewToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
     this.printPreviewToolStripMenuItem.Name = "printPreviewToolStripMenuItem";
     this.printPreviewToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
     this.printPreviewToolStripMenuItem.Text = "Print Pre&view";
     //
     // toolStripSeparator2
     //
     this.toolStripSeparator2.Name = "toolStripSeparator2";
     this.toolStripSeparator2.Size = new System.Drawing.Size(177, 6);
     //
     // exitToolStripMenuItem
     //
     this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
     this.exitToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
     this.exitToolStripMenuItem.Text = "E&xit";
     //
     // editToolStripMenuItem
     //
     this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
         this.undoToolStripMenuItem,
         this.redoToolStripMenuItem,
         this.toolStripSeparator3,
         this.cutToolStripMenuItem,
         this.copyToolStripMenuItem,
         this.pasteToolStripMenuItem,
         this.toolStripSeparator4,
         this.selectAllToolStripMenuItem
     });
     this.editToolStripMenuItem.Name    = "editToolStripMenuItem";
     this.editToolStripMenuItem.Size    = new System.Drawing.Size(39, 20);
     this.editToolStripMenuItem.Text    = "&Edit";
     this.editToolStripMenuItem.Visible = false;
     //
     // undoToolStripMenuItem
     //
     this.undoToolStripMenuItem.Name         = "undoToolStripMenuItem";
     this.undoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z)));
     this.undoToolStripMenuItem.Size         = new System.Drawing.Size(180, 22);
     this.undoToolStripMenuItem.Text         = "&Undo";
     //
     // redoToolStripMenuItem
     //
     this.redoToolStripMenuItem.Name         = "redoToolStripMenuItem";
     this.redoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y)));
     this.redoToolStripMenuItem.Size         = new System.Drawing.Size(180, 22);
     this.redoToolStripMenuItem.Text         = "&Redo";
     //
     // toolStripSeparator3
     //
     this.toolStripSeparator3.Name = "toolStripSeparator3";
     this.toolStripSeparator3.Size = new System.Drawing.Size(177, 6);
     //
     // cutToolStripMenuItem
     //
     this.cutToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("cutToolStripMenuItem.Image")));
     this.cutToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
     this.cutToolStripMenuItem.Name         = "cutToolStripMenuItem";
     this.cutToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X)));
     this.cutToolStripMenuItem.Size         = new System.Drawing.Size(180, 22);
     this.cutToolStripMenuItem.Text         = "Cu&t";
     //
     // copyToolStripMenuItem
     //
     this.copyToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("copyToolStripMenuItem.Image")));
     this.copyToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
     this.copyToolStripMenuItem.Name         = "copyToolStripMenuItem";
     this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C)));
     this.copyToolStripMenuItem.Size         = new System.Drawing.Size(180, 22);
     this.copyToolStripMenuItem.Text         = "&Copy";
     //
     // pasteToolStripMenuItem
     //
     this.pasteToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("pasteToolStripMenuItem.Image")));
     this.pasteToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
     this.pasteToolStripMenuItem.Name         = "pasteToolStripMenuItem";
     this.pasteToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V)));
     this.pasteToolStripMenuItem.Size         = new System.Drawing.Size(180, 22);
     this.pasteToolStripMenuItem.Text         = "&Paste";
     //
     // toolStripSeparator4
     //
     this.toolStripSeparator4.Name = "toolStripSeparator4";
     this.toolStripSeparator4.Size = new System.Drawing.Size(177, 6);
     //
     // selectAllToolStripMenuItem
     //
     this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";
     this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
     this.selectAllToolStripMenuItem.Text = "Select &All";
     //
     // toolsToolStripMenuItem
     //
     this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
         this.customizeToolStripMenuItem,
         this.optionsToolStripMenuItem
     });
     this.toolsToolStripMenuItem.Name    = "toolsToolStripMenuItem";
     this.toolsToolStripMenuItem.Size    = new System.Drawing.Size(46, 20);
     this.toolsToolStripMenuItem.Text    = "&Tools";
     this.toolsToolStripMenuItem.Visible = false;
     //
     // customizeToolStripMenuItem
     //
     this.customizeToolStripMenuItem.Name = "customizeToolStripMenuItem";
     this.customizeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
     this.customizeToolStripMenuItem.Text = "&Customize";
     //
     // optionsToolStripMenuItem
     //
     this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
     this.optionsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
     this.optionsToolStripMenuItem.Text = "&Options";
     //
     // helpToolStripMenuItem
     //
     this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
         this.contentsToolStripMenuItem,
         this.indexToolStripMenuItem,
         this.searchToolStripMenuItem,
         this.toolStripSeparator5,
         this.aboutToolStripMenuItem
     });
     this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
     this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
     this.helpToolStripMenuItem.Text = "&Help";
     //
     // contentsToolStripMenuItem
     //
     this.contentsToolStripMenuItem.Name = "contentsToolStripMenuItem";
     this.contentsToolStripMenuItem.Size = new System.Drawing.Size(122, 22);
     this.contentsToolStripMenuItem.Text = "&Contents";
     //
     // indexToolStripMenuItem
     //
     this.indexToolStripMenuItem.Name = "indexToolStripMenuItem";
     this.indexToolStripMenuItem.Size = new System.Drawing.Size(122, 22);
     this.indexToolStripMenuItem.Text = "&Index";
     //
     // searchToolStripMenuItem
     //
     this.searchToolStripMenuItem.Name = "searchToolStripMenuItem";
     this.searchToolStripMenuItem.Size = new System.Drawing.Size(122, 22);
     this.searchToolStripMenuItem.Text = "&Search";
     //
     // toolStripSeparator5
     //
     this.toolStripSeparator5.Name = "toolStripSeparator5";
     this.toolStripSeparator5.Size = new System.Drawing.Size(119, 6);
     //
     // aboutToolStripMenuItem
     //
     this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
     this.aboutToolStripMenuItem.Size = new System.Drawing.Size(122, 22);
     this.aboutToolStripMenuItem.Text = "&About...";
     //
     // kryptonPanel2
     //
     this.kryptonPanel2.Controls.Add(this.statusStrip1);
     this.kryptonPanel2.Dock     = System.Windows.Forms.DockStyle.Bottom;
     this.kryptonPanel2.Location = new System.Drawing.Point(0, 745);
     this.kryptonPanel2.Name     = "kryptonPanel2";
     this.kryptonPanel2.Size     = new System.Drawing.Size(1103, 22);
     this.kryptonPanel2.TabIndex = 1;
     //
     // statusStrip1
     //
     this.statusStrip1.Font = new System.Drawing.Font("Segoe UI", 9F);
     this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
         this.toolStripStatusLabel1,
         this.ksZoomLevelSlider,
         this.tsslZoomLevel
     });
     this.statusStrip1.Location   = new System.Drawing.Point(0, -1);
     this.statusStrip1.Name       = "statusStrip1";
     this.statusStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode;
     this.statusStrip1.Size       = new System.Drawing.Size(1103, 23);
     this.statusStrip1.TabIndex   = 0;
     this.statusStrip1.Text       = "statusStrip1";
     //
     // kryptonPanel3
     //
     this.kryptonPanel3.Controls.Add(this.seEdit);
     this.kryptonPanel3.Dock     = System.Windows.Forms.DockStyle.Fill;
     this.kryptonPanel3.Location = new System.Drawing.Point(0, 24);
     this.kryptonPanel3.Name     = "kryptonPanel3";
     this.kryptonPanel3.Size     = new System.Drawing.Size(1103, 721);
     this.kryptonPanel3.TabIndex = 2;
     //
     // seEdit
     //
     this.seEdit.Dock     = System.Windows.Forms.DockStyle.Fill;
     this.seEdit.Lexer    = ScintillaNET.Lexer.Xml;
     this.seEdit.Location = new System.Drawing.Point(0, 0);
     this.seEdit.Name     = "seEdit";
     this.seEdit.Size     = new System.Drawing.Size(1103, 721);
     this.seEdit.Styler   = null;
     this.seEdit.TabIndex = 0;
     //
     // toolStripStatusLabel1
     //
     this.toolStripStatusLabel1.Name      = "toolStripStatusLabel1";
     this.toolStripStatusLabel1.Size      = new System.Drawing.Size(917, 18);
     this.toolStripStatusLabel1.Spring    = true;
     this.toolStripStatusLabel1.Text      = "Ready";
     this.toolStripStatusLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
     //
     // ksZoomLevelSlider
     //
     this.ksZoomLevelSlider.BackColor     = System.Drawing.Color.Transparent;
     this.ksZoomLevelSlider.Font          = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
     this.ksZoomLevelSlider.Name          = "ksZoomLevelSlider";
     this.ksZoomLevelSlider.Size          = new System.Drawing.Size(140, 21);
     this.ksZoomLevelSlider.Steps         = 2;
     this.ksZoomLevelSlider.Text          = "kryptonSlider1";
     this.ksZoomLevelSlider.TrackerSize   = new System.Drawing.Size(140, 21);
     this.ksZoomLevelSlider.ValueChanged += new Krypton.Toolkit.Suite.Extended.Tool.Strip.Items.KryptonSlider.ValueChangedEventHandler(this.ksZoomLevelSlider_ValueChanged);
     //
     // tsslZoomLevel
     //
     this.tsslZoomLevel.Name = "tsslZoomLevel";
     this.tsslZoomLevel.Size = new System.Drawing.Size(31, 18);
     this.tsslZoomLevel.Text = "{0}%";
     //
     // XMLFileViewerWindow
     //
     this.ClientSize = new System.Drawing.Size(1103, 767);
     this.Controls.Add(this.kryptonPanel3);
     this.Controls.Add(this.kryptonPanel2);
     this.Controls.Add(this.kryptonPanel1);
     this.MainMenuStrip = this.menuStrip1;
     this.Name          = "XMLFileViewerWindow";
     ((System.ComponentModel.ISupportInitialize)(this.kryptonPanel1)).EndInit();
     this.kryptonPanel1.ResumeLayout(false);
     this.kryptonPanel1.PerformLayout();
     this.menuStrip1.ResumeLayout(false);
     this.menuStrip1.PerformLayout();
     ((System.ComponentModel.ISupportInitialize)(this.kryptonPanel2)).EndInit();
     this.kryptonPanel2.ResumeLayout(false);
     this.kryptonPanel2.PerformLayout();
     this.statusStrip1.ResumeLayout(false);
     this.statusStrip1.PerformLayout();
     ((System.ComponentModel.ISupportInitialize)(this.kryptonPanel3)).EndInit();
     this.kryptonPanel3.ResumeLayout(false);
     this.ResumeLayout(false);
 }
        public Control CreateEditor()
        {
            Panel panelCodeEditor = new Panel();

            EasyScintilla.SimpleEditor codeEditor = new EasyScintilla.SimpleEditor();

            this.Editor = codeEditor;

            codeEditor.SavePointLeft += (s, ea) => {
                this.OnSavePointLeftCallback?.Invoke();
            };

            codeEditor.SavePointReached += (s, ea) =>
            {
                this.OnSavePointReachedCallback?.Invoke();
            };

            ToolStrip tsCodeEditor = new ToolStrip();

            ToolStripButton tsbSave = new ToolStripButton("Save");

            tsbSave.DisplayStyle = ToolStripItemDisplayStyle.Text;
            tsbSave.Click       += TsbSave_Click;

            ToolStripButton tsbRun = new ToolStripButton("Run");

            tsbRun.DisplayStyle = ToolStripItemDisplayStyle.Text;
            tsbRun.Click       += TsbRun_Click;

            ToolStripButton tsbRunTests = new ToolStripButton("Run Tests");

            tsbRunTests.DisplayStyle = ToolStripItemDisplayStyle.Text;
            tsbRunTests.Click       += TsbRunTests_Click;

            ToolStripDropDownButton tsddbBoilerplate = new ToolStripDropDownButton("Boilerplate");

            tsddbBoilerplate.DisplayStyle = ToolStripItemDisplayStyle.Text;

            ToolStripItem tsiBoilerplateHLSP = new ToolStripMenuItem();

            tsiBoilerplateHLSP.Text         = "Hierarchical LSP";
            tsiBoilerplateHLSP.DisplayStyle = ToolStripItemDisplayStyle.Text;

            tsiBoilerplateHLSP.Click += (a, ea) => {
                // Editor.Text = shift.ui.architect.Code.ShiftCode.Intent.boilerplate;
            };

            tsddbBoilerplate.DropDownItems.Add(tsiBoilerplateHLSP);

            tsCodeEditor.Items.Add(tsbSave);
            tsCodeEditor.Items.Add(tsbRun);
            tsCodeEditor.Items.Add(tsbRunTests);
            tsCodeEditor.Items.Add(tsddbBoilerplate);


            StatusStrip ssCodeEditor = new StatusStrip();

            ssCodeEditor.LayoutStyle = ToolStripLayoutStyle.HorizontalStackWithOverflow;

            pbCodeEditor           = new ToolStripProgressBar();
            pbCodeEditor.Style     = ProgressBarStyle.Marquee;
            pbCodeEditor.Alignment = ToolStripItemAlignment.Left;
            pbCodeEditor.Visible   = false;

            ssCodeEditor.Items.Add(pbCodeEditor);

            lblCodeEditor = new ToolStripLabel("Ready");
            lblCodeEditor.DisplayStyle = ToolStripItemDisplayStyle.Text;
            lblCodeEditor.Alignment    = ToolStripItemAlignment.Right;

            ssCodeEditor.Items.Add(lblCodeEditor);

            codeEditor.Styler     = new EasyScintilla.Stylers.DarkCSharpStyler();
            codeEditor.CharAdded += CodeEditor_CharAdded;
            codeEditor.Name       = "codeEditor";

            panelCodeEditor.Controls.Add(codeEditor);
            codeEditor.Location = new System.Drawing.Point(3, 28);
            codeEditor.Size     = new System.Drawing.Size(panelCodeEditor.Width - 6, panelCodeEditor.Height - 48);
            codeEditor.Anchor   = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right);

            panelCodeEditor.Controls.Add(tsCodeEditor);
            tsCodeEditor.Dock = DockStyle.Top;

            panelCodeEditor.Controls.Add(ssCodeEditor);
            ssCodeEditor.Dock = DockStyle.Bottom;

            return(panelCodeEditor);
        }