static public void InitMarkers(ScintillaControl sci)
 {
     sci.ModEventMask |= (Int32)ModificationFlags.ChangeMarker;
     sci.MarkerChanged += new MarkerChangedHandler(SciControl_MarkerChanged);
     sci.MarginSensitiveN(0, true);
     int mask = sci.GetMarginMaskN(0);
     mask |= GetMarkerMask(markerBPEnabled);
     mask |= GetMarkerMask(markerBPDisabled);
     mask |= GetMarkerMask(markerBPNotAvailable);
     mask |= GetMarkerMask(markerCurrentLine);
     sci.SetMarginMaskN(0, mask);
     var enabledImage = ScaleHelper.Scale(Resource.Enabled);
     var disabledImage = ScaleHelper.Scale(Resource.Disabled);
     var curlineImage = ScaleHelper.Scale(Resource.CurLine);
     sci.MarkerDefineRGBAImage(markerBPEnabled, enabledImage);
     sci.MarkerDefineRGBAImage(markerBPDisabled, disabledImage);
     sci.MarkerDefineRGBAImage(markerCurrentLine, curlineImage);
     Language lang = PluginBase.MainForm.SciConfig.GetLanguage("as3"); // default
     sci.MarkerSetBack(markerBPEnabled, lang.editorstyle.ErrorLineBack); // enable
     sci.MarkerSetBack(markerBPDisabled, lang.editorstyle.DisabledLineBack); // disable
     sci.MarginClick += new MarginClickHandler(SciControl_MarginClick);
     sci.Modified += new ModifiedHandler(sci_Modified);
 }
 /// <summary>
 /// Creates a new editor control for the document
 /// </summary>
 public static ScintillaControl CreateControl(String file, String text, Int32 codepage)
 {
     ScintillaControl sci = new ScintillaControl();
     sci.AutoCSeparator = 32;
     sci.AutoCTypeSeparator = 63;
     sci.IsAutoCGetAutoHide = true;
     sci.IsAutoCGetCancelAtStart = false;
     sci.IsAutoCGetChooseSingle = false;
     sci.IsAutoCGetDropRestOfWord = false;
     sci.IsAutoCGetIgnoreCase = false;
     sci.ControlCharSymbol = 0;
     sci.CurrentPos = 0;
     sci.CursorType = -1;
     sci.Dock = DockStyle.Fill;
     sci.EndAtLastLine = 0;
     sci.EdgeColumn = 0;
     sci.EdgeMode = 0;
     sci.IsMouseDownCaptures = true;
     sci.IsBufferedDraw = true;
     sci.IsOvertype = false;
     sci.IsReadOnly = false;
     sci.IsUndoCollection = true;
     sci.IsUsePalette = true;
     sci.IsTwoPhaseDraw = true;
     sci.LayoutCache = 1;
     sci.Lexer = 3;
     sci.Location = new Point(0, 0);
     sci.MarginLeft = 5;
     sci.MarginRight = 5;
     sci.ModEventMask = (Int32)ModificationFlags.InsertText | (Int32)ModificationFlags.DeleteText | (Int32)ModificationFlags.RedoPerformed | (Int32)ModificationFlags.UndoPerformed;
     sci.MouseDwellTime = ScintillaControl.MAXDWELLTIME;
     sci.Name = "sci";
     sci.PasteConvertEndings = false;
     sci.PrintColourMode = (Int32)PrintOption.Normal;
     sci.PrintWrapMode = (Int32)Wrap.Word;
     sci.PrintMagnification = 0;
     sci.SearchFlags = 0;
     sci.SelectionEnd = 0;
     sci.SelectionMode = 0;
     sci.SelectionStart = 0;
     sci.SmartIndentType = SmartIndent.CPP;
     sci.Status = 0;
     sci.StyleBits = 7;
     sci.TabIndex = 0;
     sci.TargetEnd = 0;
     sci.TargetStart = 0;
     sci.WrapStartIndent = Globals.Settings.IndentSize;
     sci.WrapVisualFlagsLocation = (Int32)WrapVisualLocation.EndByText;
     sci.WrapVisualFlags = (Int32)WrapVisualFlag.End;
     sci.XOffset = 0;
     sci.ZoomLevel = 0;
     sci.UsePopUp(false);
     sci.SetMarginTypeN(0, (Int32)MarginType.Symbol);
     sci.SetMarginMaskN(0, MarkerManager.MARKERS);
     sci.SetMarginWidthN(0, ScaleHelper.Scale(14));
     sci.SetMarginTypeN(1, (Int32)MarginType.Number);
     sci.SetMarginMaskN(1, (Int32)MarginType.Symbol);
     sci.SetMarginTypeN(2, (Int32)MarginType.Symbol);
     sci.SetMarginMaskN(2, -33554432 | 1 << 2);
     sci.MarginSensitiveN(2, true);
     sci.SetMultiSelectionTyping(true);
     sci.MarkerDefineRGBAImage(0, Bookmark);
     sci.MarkerDefine(2, MarkerSymbol.Fullrect);
     sci.MarkerDefine((Int32)MarkerOutline.Folder, MarkerSymbol.BoxPlus);
     sci.MarkerDefine((Int32)MarkerOutline.FolderOpen, MarkerSymbol.BoxMinus);
     sci.MarkerDefine((Int32)MarkerOutline.FolderSub, MarkerSymbol.VLine);
     sci.MarkerDefine((Int32)MarkerOutline.FolderTail, MarkerSymbol.LCorner);
     sci.MarkerDefine((Int32)MarkerOutline.FolderEnd, MarkerSymbol.BoxPlusConnected);
     sci.MarkerDefine((Int32)MarkerOutline.FolderOpenMid, MarkerSymbol.BoxMinusConnected);
     sci.MarkerDefine((Int32)MarkerOutline.FolderMidTail, MarkerSymbol.TCorner);
     sci.SetXCaretPolicy((Int32)(CaretPolicy.Jumps | CaretPolicy.Even), 30);
     sci.SetYCaretPolicy((Int32)(CaretPolicy.Jumps | CaretPolicy.Even), 2);
     sci.ScrollWidthTracking = (Globals.Settings.ScrollWidth == 3000);
     sci.CodePage = SelectCodePage(codepage);
     sci.Encoding = Encoding.GetEncoding(codepage);
     sci.SaveBOM = (sci.CodePage == 65001) && Globals.Settings.SaveUnicodeWithBOM;
     sci.Text = text; sci.FileName = file; // Set text and save file name
     sci.Modified += new ModifiedHandler(Globals.MainForm.OnScintillaControlModified);
     sci.MarginClick += new MarginClickHandler(Globals.MainForm.OnScintillaControlMarginClick);
     sci.UpdateUI += new UpdateUIHandler(Globals.MainForm.OnScintillaControlUpdateControl);
     sci.URIDropped += new URIDroppedHandler(Globals.MainForm.OnScintillaControlDropFiles);
     sci.ModifyAttemptRO += new ModifyAttemptROHandler(Globals.MainForm.OnScintillaControlModifyRO);
     String untitledFileStart = TextHelper.GetString("Info.UntitledFileStart");
     if (!file.StartsWith(untitledFileStart)) sci.IsReadOnly = FileHelper.FileIsReadOnly(file);
     sci.SetFoldFlags((Int32)Globals.Settings.FoldFlags);
     sci.EmptyUndoBuffer(); ApplySciSettings(sci);
     UITools.Manager.ListenTo(sci);
     return sci;
 }