コード例 #1
0
ファイル: CMMCodeEditorInit.cs プロジェクト: CMM-IDE/CMM-IDE
        private void InitBookmarkMargin(ScintillaWPF ScintillaNet)
        {
            //TextArea.SetFoldMarginColor(true, IntToColor(BACK_COLOR));

            var margin = ScintillaNet.Margins[BREAKPOINT_MARGIN];

            margin.Width     = 20;
            margin.Sensitive = true;
            margin.Type      = MarginType.Symbol;

            // !!!!!!!!!!!注意
            margin.Mask   = 1 << BREAKPOINT_MARKER;
            margin.Cursor = MarginCursor.Arrow;

            var Dmarker = ScintillaNet.Markers[DEBUG_MARKER];

            Dmarker.SetBackColor(IntToColor(0xFF003B));
            Dmarker.SetForeColor(IntToColor(0x000000));
            Dmarker.SetAlpha(100);

            var Bmarker = ScintillaNet.Markers[BREAKPOINT_MARKER];

            Bmarker.Symbol = MarkerSymbol.Circle;
            Bmarker.SetBackColor(IntToColor(0xFF003B));
            Bmarker.SetForeColor(IntToColor(0xFF003B));
            Bmarker.SetAlpha(100);
        }
コード例 #2
0
        internal static void InitSyntaxColoring(ScintillaWPF scintillaNet)
        {
            scintillaNet.StyleResetDefault();
            scintillaNet.Styles[ScintillaNET.Style.Default].Font = "Consolas";
            scintillaNet.Styles[ScintillaNET.Style.Default].Size = 10;
            scintillaNet.StyleClearAll();

            // Configure the CPP (C#) lexer styles
            scintillaNet.Styles[ScintillaNET.Style.Cpp.Default].ForeColor        = System.Drawing.Color.Silver;
            scintillaNet.Styles[ScintillaNET.Style.Cpp.Comment].ForeColor        = System.Drawing.Color.FromArgb(0, 128, 0);     // Green
            scintillaNet.Styles[ScintillaNET.Style.Cpp.CommentLine].ForeColor    = System.Drawing.Color.FromArgb(0, 128, 0);     // Green
            scintillaNet.Styles[ScintillaNET.Style.Cpp.CommentLineDoc].ForeColor = System.Drawing.Color.FromArgb(128, 128, 128); // Gray
            scintillaNet.Styles[ScintillaNET.Style.Cpp.Number].ForeColor         = System.Drawing.Color.Olive;
            scintillaNet.Styles[ScintillaNET.Style.Cpp.Word].ForeColor           = System.Drawing.Color.Blue;
            scintillaNet.Styles[ScintillaNET.Style.Cpp.Word2].ForeColor          = System.Drawing.Color.FromArgb(43, 145, 175);
            scintillaNet.Styles[ScintillaNET.Style.Cpp.String].ForeColor         = System.Drawing.Color.FromArgb(163, 21, 21); // Red
            scintillaNet.Styles[ScintillaNET.Style.Cpp.Character].ForeColor      = System.Drawing.Color.FromArgb(163, 21, 21); // Red
            scintillaNet.Styles[ScintillaNET.Style.Cpp.Verbatim].ForeColor       = System.Drawing.Color.FromArgb(163, 21, 21); // Red
            scintillaNet.Styles[ScintillaNET.Style.Cpp.StringEol].BackColor      = System.Drawing.Color.Pink;
            scintillaNet.Styles[ScintillaNET.Style.Cpp.Operator].ForeColor       = System.Drawing.Color.Purple;
            scintillaNet.Styles[ScintillaNET.Style.Cpp.Preprocessor].ForeColor   = System.Drawing.Color.Maroon;
            scintillaNet.Lexer = Lexer.Cpp;

            // Set the keywords
            scintillaNet.SetKeywords(0, "abstract as base break case catch checked continue default delegate do else event explicit extern false finally fixed for foreach goto if implicit in interface internal is lock namespace new null object operator out override params private protected public readonly ref return sealed sizeof stackalloc switch this throw true try typeof unchecked unsafe using virtual while bool byte char class const decimal double enum float int long sbyte short static string struct uint ulong ushort void BigInteger");
            scintillaNet.SetKeywords(1, "DisplayName");
            //bool byte char class const decimal double enum float int long sbyte short static string struct uint ulong ushort void BigInteger
            scintillaNet.SetKeywords(2, "DisplayName");

            scintillaNet.CharAdded   += ScintillaNet_CharAdded;
            scintillaNet.InsertCheck += ScintillaNet_InsertCheck;
        }
コード例 #3
0
        internal static void InitBookmarkMargin(ScintillaWPF scintillaNet)
        {
            var margin = scintillaNet.Margins[ScintillaConstants.BREAKPOINT_MARGIN];

            margin.Width     = 20;
            margin.Sensitive = true;
            margin.Type      = MarginType.Symbol;
            margin.Mask      = (1 << ScintillaConstants.BREAKPOINT_MARKER);
            margin.Cursor    = MarginCursor.Arrow;

            var marker = scintillaNet.Markers[ScintillaConstants.BREAKPOINT_MARKER];

            marker.Symbol = MarkerSymbol.Circle;
            marker.SetBackColor(IntToColor(0xAB616B));
            marker.SetForeColor(IntToColor(0xFFFFFF));
            marker.SetAlpha(100);

            marker        = scintillaNet.Markers[ScintillaConstants.BREAKPOINT_BG];
            marker.Symbol = MarkerSymbol.Background;
            marker.SetBackColor(IntToColor(0xAB616B));

            scintillaNet.Indicators[ScintillaConstants.BREAKPOINT_INDICATOR].Style        = IndicatorStyle.StraightBox;
            scintillaNet.Indicators[ScintillaConstants.BREAKPOINT_INDICATOR].Under        = true;
            scintillaNet.Indicators[ScintillaConstants.BREAKPOINT_INDICATOR].ForeColor    = System.Drawing.Color.Maroon;
            scintillaNet.Indicators[ScintillaConstants.BREAKPOINT_INDICATOR].OutlineAlpha = 50;
            scintillaNet.Indicators[ScintillaConstants.BREAKPOINT_INDICATOR].Alpha        = 30;

            scintillaNet.Indicators[ScintillaConstants.ERROR_INDICATOR].Style        = IndicatorStyle.SquiggleLow;
            scintillaNet.Indicators[ScintillaConstants.ERROR_INDICATOR].Under        = true;
            scintillaNet.Indicators[ScintillaConstants.ERROR_INDICATOR].ForeColor    = System.Drawing.Color.Red;
            scintillaNet.Indicators[ScintillaConstants.ERROR_INDICATOR].OutlineAlpha = 50;
            scintillaNet.Indicators[ScintillaConstants.ERROR_INDICATOR].Alpha        = 30;
        }
コード例 #4
0
        private void InitCodeFolding(ScintillaWPF ScintillaNet)
        {
            ScintillaNet.SetFoldMarginColor(true, IntToMediaColor(BACK_COLOR));
            ScintillaNet.SetFoldMarginHighlightColor(true, IntToMediaColor(BACK_COLOR));

            // Enable code folding
            ScintillaNet.SetProperty("fold", "1");
            ScintillaNet.SetProperty("fold.compact", "1");

            // Configure a margin to display folding symbols
            ScintillaNet.Margins[FOLDING_MARGIN].Type      = MarginType.Symbol;
            ScintillaNet.Margins[FOLDING_MARGIN].Mask      = Marker.MaskFolders;
            ScintillaNet.Margins[FOLDING_MARGIN].Sensitive = true;
            ScintillaNet.Margins[FOLDING_MARGIN].Width     = 20;

            // Set colors for all folding markers
            for (int i = 25; i <= 31; i++)
            {
                ScintillaNet.Markers[i].SetForeColor(IntToColor(BACK_COLOR)); // styles for [+] and [-]
                ScintillaNet.Markers[i].SetBackColor(IntToColor(FORE_COLOR)); // styles for [+] and [-]
            }

            // Configure folding markers with respective symbols
            ScintillaNet.Markers[Marker.Folder].Symbol        = CODEFOLDING_CIRCULAR ? MarkerSymbol.CirclePlus : MarkerSymbol.BoxPlus;
            ScintillaNet.Markers[Marker.FolderOpen].Symbol    = CODEFOLDING_CIRCULAR ? MarkerSymbol.CircleMinus : MarkerSymbol.BoxMinus;
            ScintillaNet.Markers[Marker.FolderEnd].Symbol     = CODEFOLDING_CIRCULAR ? MarkerSymbol.CirclePlusConnected : MarkerSymbol.BoxPlusConnected;
            ScintillaNet.Markers[Marker.FolderMidTail].Symbol = MarkerSymbol.TCorner;
            ScintillaNet.Markers[Marker.FolderOpenMid].Symbol = CODEFOLDING_CIRCULAR ? MarkerSymbol.CircleMinusConnected : MarkerSymbol.BoxMinusConnected;
            ScintillaNet.Markers[Marker.FolderSub].Symbol     = MarkerSymbol.VLine;
            ScintillaNet.Markers[Marker.FolderTail].Symbol    = MarkerSymbol.LCorner;

            // Enable automatic folding
            ScintillaNet.AutomaticFold = (AutomaticFold.Show | AutomaticFold.Click | AutomaticFold.Change);
        }
コード例 #5
0
        private void InitSyntaxColoring(ScintillaWPF ScintillaNet)
        {
            // Configure the default style
            ScintillaNet.StyleResetDefault();
            ScintillaNet.Styles[ScintillaNET.Style.Default].Font      = "Consolas";
            ScintillaNet.Styles[ScintillaNET.Style.Default].Size      = 10;
            ScintillaNet.Styles[ScintillaNET.Style.Default].BackColor = IntToColor(0xFFFFFF);
            ScintillaNet.Styles[ScintillaNET.Style.Default].ForeColor = IntToColor(0x000000);
            ScintillaNet.StyleClearAll();

            // Configure the cursor color
            ScintillaNet.CaretForeColor = Color.FromRgb(0, 0, 0);

            // Configure the CPP (C#) lexer styles
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.Identifier].ForeColor     = IntToColor(0x000000);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.CommentLine].ForeColor    = IntToColor(0x008000);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.CommentDoc].ForeColor     = IntToColor(0x008000);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.Number].ForeColor         = IntToColor(0x000000);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.String].ForeColor         = IntToColor(0xA31515);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.Preprocessor].ForeColor   = IntToColor(0x808080);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.Operator].ForeColor       = IntToColor(0x000000);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.CommentLineDoc].ForeColor = IntToColor(0x008000);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.Word].ForeColor           = IntToColor(0x0000FF);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.Word2].ForeColor          = IntToColor(0x000000);
            ScintillaNet.Styles[ScintillaNET.Style.Cpp.GlobalClass].ForeColor    = IntToColor(0x0000FF);

            ScintillaNet.Lexer = Lexer.Cpp;

            ScintillaNet.SetKeywords(0, "class extends implements import interface new case do while else if for in switch throw get set function var try catch finally while with default break continue delete return each const namespace package include use is as instanceof typeof author copy default deprecated eventType example exampleText exception haxe inheritDoc internal link mtasc mxmlc param private return see serial serialData serialField since throws usage version langversion playerversion productversion dynamic private public partial static intrinsic internal native override protected AS3 final super this arguments null Infinity NaN undefined true false abstract as base bool break by byte case catch char checked class const continue decimal default delegate do double descending explicit event extern else enum false finally fixed float for foreach from goto group if implicit in int interface internal into is lock long new null namespace object operator out override orderby params private protected public readonly ref return switch struct sbyte sealed short sizeof stackalloc static string select this throw true try typeof uint ulong unchecked unsafe ushort using var virtual volatile void while where yield");
            ScintillaNet.SetKeywords(1, "void Null ArgumentError arguments Array Boolean Class Date DefinitionError Error EvalError Function int Math Namespace Number Object RangeError ReferenceError RegExp SecurityError String SyntaxError TypeError uint XML XMLList Boolean Byte Char DateTime Decimal Double Int16 Int32 Int64 IntPtr SByte Single UInt16 UInt32 UInt64 UIntPtr Void Path File System Windows Forms ScintillaNET");
        }
コード例 #6
0
        private void InitColors(ScintillaWPF ScintillaNet)
        {
            ScintillaNet.CaretForeColor = Colors.White;
            ScintillaNet.SetSelectionBackColor(true, IntToMediaColor(0x114D9C));

            //FindReplace.Indicator.ForeColor = System.Drawing.Color.DarkOrange;
        }
コード例 #7
0
        internal static bool IsBreakPointAllowed(ScintillaWPF scintilla, Line line, out int breakPointStartPosition, out int breakPointHighlightLength)
        {
            string lineString       = line.Text.Trim();
            int    lineStringLength = lineString.Length;

            breakPointStartPosition   = 0;
            breakPointHighlightLength = 0;
            string firstWord            = string.Empty;
            int    firstWhiteSpaceIndex = lineString.IndexOf(" ");

            if (lineStringLength > 1 && firstWhiteSpaceIndex >= 0)
            {
                firstWord = lineString.Substring(0, firstWhiteSpaceIndex);
            }
            else
            {
                firstWord = lineString;
            }

            string[] disAllowedString = new string[] { "NAMESPACE" };
            if (!disAllowedString.Contains(firstWord.ToUpper()) && !string.IsNullOrEmpty(firstWord))
            {
                breakPointStartPosition   = line.Position + (line.Length - lineStringLength - 2);
                breakPointHighlightLength = lineStringLength;
                return(true);
            }

            return(false);
        }
コード例 #8
0
        private void InitSyntaxColoring(ScintillaWPF ScintillaNet)
        {
            // Configure the default style
            ScintillaNet.StyleResetDefault();
            ScintillaNet.Styles[ScintillaNET.Style.Default].Font      = "Consolas";
            ScintillaNet.Styles[ScintillaNET.Style.Default].Size      = 10;
            ScintillaNet.Styles[ScintillaNET.Style.Default].BackColor = IntToColor(0x212121);
            ScintillaNet.Styles[ScintillaNET.Style.Default].ForeColor = IntToColor(0xFFFFFF);
            ScintillaNet.StyleClearAll();

            // Configure the Lua lexer styles
            ScintillaNet.Styles[ScintillaNET.Style.Lua.Identifier].ForeColor   = IntToColor(0xD0DAE2);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.Comment].ForeColor      = IntToColor(0xBD758B);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.CommentLine].ForeColor  = IntToColor(0x40BF57);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.CommentDoc].ForeColor   = IntToColor(0x2FAE35);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.Number].ForeColor       = IntToColor(0xFFFF00);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.String].ForeColor       = IntToColor(0xFFFF00);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.Character].ForeColor    = IntToColor(0xE95454);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.Preprocessor].ForeColor = IntToColor(0x8AAFEE);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.Operator].ForeColor     = IntToColor(0xE0E0E0);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.Word].ForeColor         = IntToColor(0x48A8EE);
            ScintillaNet.Styles[ScintillaNET.Style.Lua.Word2].ForeColor        = IntToColor(0xF98906);


            ScintillaNet.Lexer = Lexer.Lua;
            ScintillaNet.SetKeywords(0, "and or not function table nil for while do break in return until goto repeat true false if then else elseif local end");
        }
コード例 #9
0
        private void SetScintillaToCurrentOptions(DocumentForm doc)
        {
            ScintillaWPF ScintillaNet = doc.Scintilla;

            ScintillaNet.KeyDown += ScintillaNet_KeyDown;

            // INITIAL VIEW CONFIG
            ScintillaNet.WrapMode          = WrapMode.None;
            ScintillaNet.IndentationGuides = IndentView.LookBoth;

            // STYLING
            InitColors(ScintillaNet);
            InitSyntaxColoring(ScintillaNet);

            // NUMBER MARGIN
            InitNumberMargin(ScintillaNet);

            // BOOKMARK MARGIN
            InitBookmarkMargin(ScintillaNet);

            // CODE FOLDING MARGIN
            InitCodeFolding(ScintillaNet);

            // DRAG DROP
            // TODO - Enable InitDragDropFile
            //InitDragDropFile();

            // INIT HOTKEYS
            // TODO - Enable InitHotkeys
            //InitHotkeys(ScintillaNet);
            #region Uncomment Later
            //// Turn on line numbers?
            //if (lineNumbersMenuItem.IsChecked)
            //    doc.Scintilla.Margins[NUMBER_MARGIN].Width = LINE_NUMBERS_MARGIN_WIDTH;
            //else
            //    doc.Scintilla.Margins[NUMBER_MARGIN].Width = 0;

            //// Turn on white space?
            //if (whitespaceMenuItem.IsChecked)
            //    doc.Scintilla.ViewWhitespace = WhitespaceMode.VisibleAlways;
            //else
            //    doc.Scintilla.ViewWhitespace = WhitespaceMode.Invisible;

            //// Turn on word wrap?
            //if (wordWrapMenuItem.IsChecked)
            //    doc.Scintilla.WrapMode = WrapMode.Word;
            //else
            //    doc.Scintilla.WrapMode = WrapMode.None;

            //// Show EOL?
            //doc.Scintilla.ViewEol = endOfLineMenuItem.IsChecked;

            //// Set the zoom
            //doc.Scintilla.Zoom = _zoomLevel;
            #endregion
        }
コード例 #10
0
ファイル: CSharp.cs プロジェクト: NeoParticle/NeoStudio
        internal static bool Compile()
        {
            DocumentView activeDocument = ((MainWindow)App.Current.MainWindow).ActiveDocument;

            if (activeDocument == null)
            {
                return(false);
            }
            ScintillaWPF scintilla = activeDocument.scintilla;

            if (activeDocument.FilePath != null)
            {
                using (CodeDomProvider csc = Microsoft.CSharp.CSharpCodeProvider.CreateProvider("CSharp"))
                {
                    ((MainWindow)App.Current.MainWindow).errorView.ClearError();
                    System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
                    parameters.ReferencedAssemblies.Add("Microsoft.CSharp.dll");
                    parameters.ReferencedAssemblies.Add("Neo.SmartContract.Framework.dll");
                    parameters.ReferencedAssemblies.Add("System.dll");
                    parameters.ReferencedAssemblies.Add("System.Data.DataSetExtensions.dll");
                    parameters.ReferencedAssemblies.Add("System.Data.dll");
                    parameters.ReferencedAssemblies.Add("System.Core.dll");
                    parameters.ReferencedAssemblies.Add("System.Numerics.dll");
                    parameters.ReferencedAssemblies.Add("System.Drawing.dll");
                    parameters.ReferencedAssemblies.Add("System.Runtime.Serialization.dll");
                    parameters.ReferencedAssemblies.Add("System.ComponentModel.dll");
                    parameters.ReferencedAssemblies.Add("System.Xml.dll");
                    parameters.ReferencedAssemblies.Add("System.Xml.Linq.dll");
                    parameters.GenerateExecutable = false;
                    parameters.GenerateInMemory   = true;
                    parameters.OutputAssembly     = activeDocument.FilePath.Remove(activeDocument.FilePath.Length - 2, 2) + "dll";
                    CompilerResults results = csc.CompileAssemblyFromSource(parameters, activeDocument.scintilla.Text);

                    scintilla.IndicatorCurrent = ScintillaConstants.ERROR_INDICATOR;
                    scintilla.IndicatorClearRange(0, scintilla.TextLength);


                    if (results.Errors.Count > 0)
                    {
                        ((MainWindow)App.Current.MainWindow).errorView.IsNoError(false);
                        foreach (CompilerError CompErr in results.Errors)
                        {
                            ((MainWindow)App.Current.MainWindow).errorView.AddError(CompErr);
                            UnderLineCompiledError(CompErr, scintilla);
                        }
                    }
                    else
                    {
                        ((MainWindow)App.Current.MainWindow).errorView.IsNoError(true);
                    }
                    return(true);
                }
            }
            return(false);
        }
コード例 #11
0
        private void InitBookmarkMargin(ScintillaWPF ScintillaNet)
        {
            //TextArea.SetFoldMarginColor(true, IntToColor(BACK_COLOR));

            var margin = ScintillaNet.Margins[BOOKMARK_MARGIN];

            margin.Width     = 20;
            margin.Sensitive = true;
            margin.Type      = MarginType.Symbol;
            margin.Mask      = (1 << BOOKMARK_MARKER);
            //margin.Cursor = MarginCursor.Arrow;
        }
コード例 #12
0
        internal static void InitBase(DocumentView doc)
        {
            ScintillaWPF scintillaNet = doc.scintilla;

            scintillaNet.WrapMode          = WrapMode.None;
            scintillaNet.IndentationGuides = IndentView.LookBoth;

            InitSyntaxColoring(scintillaNet);
            InitBookmarkMargin(scintillaNet);
            InitCodeFolding(scintillaNet);
            InitColors(scintillaNet);
            InitNumberMargin(scintillaNet);
        }
コード例 #13
0
ファイル: CMMCodeEditorInit.cs プロジェクト: CMM-IDE/CMM-IDE
        private void InitIndicator(ScintillaWPF ScintillaNet)
        {
            const int NUM = 8;

            // Remove all uses of our indicator
            textEditor.IndicatorCurrent = NUM;
            textEditor.IndicatorClearRange(0, textEditor.TextLength);

            // Update indicator appearance
            textEditor.Indicators[NUM].Style        = IndicatorStyle.FullBox;
            textEditor.Indicators[NUM].Under        = false;
            textEditor.Indicators[NUM].ForeColor    = System.Drawing.Color.Red;
            textEditor.Indicators[NUM].OutlineAlpha = 100;
            textEditor.Indicators[NUM].Alpha        = 100;
        }
コード例 #14
0
        private void InitNumberMargin(ScintillaWPF ScintillaNet)
        {
            ScintillaNet.Styles[ScintillaNET.Style.LineNumber].BackColor  = IntToColor(BACK_COLOR);
            ScintillaNet.Styles[ScintillaNET.Style.LineNumber].ForeColor  = IntToColor(FORE_COLOR);
            ScintillaNet.Styles[ScintillaNET.Style.IndentGuide].ForeColor = IntToColor(FORE_COLOR);
            ScintillaNet.Styles[ScintillaNET.Style.IndentGuide].BackColor = IntToColor(BACK_COLOR);

            var nums = ScintillaNet.Margins[NUMBER_MARGIN];

            nums.Width                = LINE_NUMBERS_MARGIN_WIDTH;
            nums.Type                 = MarginType.Number;
            nums.Sensitive            = true;
            nums.Mask                 = 0;
            ScintillaNet.MarginClick += TextArea_MarginClick;
        }
コード例 #15
0
        internal static void InitNumberMargin(ScintillaWPF scintillaNet)
        {
            scintillaNet.Styles[ScintillaNET.Style.LineNumber].BackColor  = IntToColor(ScintillaConstants.BACK_COLOR);
            scintillaNet.Styles[ScintillaNET.Style.LineNumber].ForeColor  = IntToColor(ScintillaConstants.FORE_COLOR);
            scintillaNet.Styles[ScintillaNET.Style.IndentGuide].ForeColor = IntToColor(ScintillaConstants.FORE_COLOR);
            scintillaNet.Styles[ScintillaNET.Style.IndentGuide].BackColor = IntToColor(ScintillaConstants.BACK_COLOR);

            var nums = scintillaNet.Margins[ScintillaConstants.NUMBER_MARGIN];

            nums.Width     = ScintillaConstants.LINE_NUMBERS_MARGIN_WIDTH;
            nums.Type      = MarginType.Number;
            nums.Sensitive = true;
            nums.Mask      = 0;

            scintillaNet.MarginClick += TextArea_MarginClick;
        }
コード例 #16
0
        private void InitSyntaxColoring(ScintillaWPF ScintillaNet)
        {
            // Configure the default style
            ScintillaNet.StyleResetDefault();
            ScintillaNet.Styles[ScintillaNET.Style.Default].Font      = "Consolas";
            ScintillaNet.Styles[ScintillaNET.Style.Default].Size      = 10;
            ScintillaNet.Styles[ScintillaNET.Style.Default].BackColor = IntToColor(0xFFFFFF);
            ScintillaNet.Styles[ScintillaNET.Style.Default].ForeColor = IntToColor(0x000000);
            ScintillaNet.StyleClearAll();

            // Configure the Python lexer styles
            ScintillaNet.Styles[ScintillaNET.Style.Python.Default].ForeColor      = System.Drawing.Color.Black;
            ScintillaNet.Styles[ScintillaNET.Style.Python.CommentLine].ForeColor  = System.Drawing.Color.Red;
            ScintillaNet.Styles[ScintillaNET.Style.Python.CommentLine].Italic     = true;
            ScintillaNet.Styles[ScintillaNET.Style.Python.Number].ForeColor       = System.Drawing.Color.FromArgb(0x00, 0x7F, 0x7F);
            ScintillaNet.Styles[ScintillaNET.Style.Python.String].ForeColor       = System.Drawing.Color.LightBlue;
            ScintillaNet.Styles[ScintillaNET.Style.Python.Character].ForeColor    = System.Drawing.Color.Silver;
            ScintillaNet.Styles[ScintillaNET.Style.Python.Word].ForeColor         = System.Drawing.Color.FromArgb(0x00, 0x00, 0x7F);
            ScintillaNet.Styles[ScintillaNET.Style.Python.Word].Bold              = true;
            ScintillaNet.Styles[ScintillaNET.Style.Python.Triple].ForeColor       = System.Drawing.Color.DarkRed;
            ScintillaNet.Styles[ScintillaNET.Style.Python.TripleDouble].ForeColor = System.Drawing.Color.FromArgb(0x7F, 0x00, 0x00);
            ScintillaNet.Styles[ScintillaNET.Style.Python.ClassName].ForeColor    = System.Drawing.Color.FromArgb(0x00, 0x00, 0xFF);
            ScintillaNet.Styles[ScintillaNET.Style.Python.ClassName].Bold         = true;
            ScintillaNet.Styles[ScintillaNET.Style.Python.DefName].ForeColor      = System.Drawing.Color.FromArgb(0x00, 0x7F, 0x7F);
            ScintillaNet.Styles[ScintillaNET.Style.Python.DefName].Bold           = true;
            ScintillaNet.Styles[ScintillaNET.Style.Python.Operator].Bold          = true;
            ScintillaNet.Styles[ScintillaNET.Style.Python.CommentBlock].ForeColor = System.Drawing.Color.FromArgb(0x7F, 0x7F, 0x7F);
            ScintillaNet.Styles[ScintillaNET.Style.Python.CommentBlock].Italic    = true;
            ScintillaNet.Styles[ScintillaNET.Style.Python.StringEol].ForeColor    = System.Drawing.Color.FromArgb(0x00, 0x00, 0x00);
            ScintillaNet.Styles[ScintillaNET.Style.Python.StringEol].BackColor    = System.Drawing.Color.FromArgb(0xE0, 0xC0, 0xE0);
            ScintillaNet.Styles[ScintillaNET.Style.Python.StringEol].FillLine     = true;
            ScintillaNet.Styles[ScintillaNET.Style.Python.Word2].ForeColor        = System.Drawing.Color.FromArgb(0x40, 0x70, 0x90);
            ScintillaNet.Styles[ScintillaNET.Style.Python.Decorator].ForeColor    = System.Drawing.Color.FromArgb(0x80, 0x50, 0x00);

            ScintillaNet.Lexer = Lexer.Python;;

            ScintillaNet.SetKeywords(0, "False None True and as assert break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while with yield cdef cimport cpdef");
            //ScintillaNet.SetKeywords(1, "void Null ArgumentError arguments Array Boolean Class Date DefinitionError Error EvalError Function int Math Namespace Number Object RangeError ReferenceError RegExp SecurityError String SyntaxError TypeError uint XML XMLList Boolean Byte Char DateTime Decimal Double Int16 Int32 Int64 IntPtr SByte Single UInt16 UInt32 UInt64 UIntPtr Void Path File System Windows Forms ScintillaNET");
        }
コード例 #17
0
        private void InitBookmarkMargin(ScintillaWPF ScintillaNet)
        {
            //TextArea.SetFoldMarginColor(true, IntToColor(BACK_COLOR));

            var margin = ScintillaNet.Margins[BOOKMARK_MARGIN];

            margin.Width     = 20;
            margin.Sensitive = true;
            margin.Type      = MarginType.Symbol;
            margin.Mask      = (1 << BOOKMARK_MARKER);
            //margin.Cursor = MarginCursor.Arrow;

            var marker = ScintillaNet.Markers[BOOKMARK_MARKER];

            marker.Symbol = MarkerSymbol.Arrows;
            //marker.SetBackColor(IntToColor(0xFF003B));
            //marker.SetForeColor(IntToColor(0x000000));

            marker.SetBackColor(IntToColor(0xFF003B));
            marker.SetForeColor(IntToColor(0x00FF00));

            marker.SetAlpha(100);
        }
コード例 #18
0
        private void InitCodeHighlighting()
        {
            ScintillaWPF ScintillaNet = scintilla;

            ScintillaNet.StyleResetDefault();
            ScintillaNet.Styles[ScintillaNET.Style.Default].Font      = viewModel.EditorSettings.FontFamily.ToString();
            ScintillaNet.Styles[ScintillaNET.Style.Default].Size      = (int)(viewModel.EditorSettings.FontSize * (72.0 / 96.0));
            ScintillaNet.Styles[ScintillaNET.Style.Default].Italic    = viewModel.EditorSettings.FontStyle == FontStyles.Italic;
            ScintillaNet.Styles[ScintillaNET.Style.Default].Weight    = viewModel.EditorSettings.FontWeight.ToOpenTypeWeight();
            ScintillaNet.Styles[ScintillaNET.Style.Default].BackColor = viewModel.EditorSettings.BackColor.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.Default].ForeColor = viewModel.EditorSettings.ForeColor.ToDrawingColor();
            ScintillaNet.StyleClearAll(); // i.e. Apply to all

            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Asm].ForeColor          = viewModel.EditorSettings.Asm.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.BinNumber].ForeColor    = viewModel.EditorSettings.BinNumber.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Comment].ForeColor      = viewModel.EditorSettings.Comment.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.CommentBlock].ForeColor = viewModel.EditorSettings.CommentBlock.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Constant].ForeColor     = viewModel.EditorSettings.Constant.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Default].ForeColor      = viewModel.EditorSettings.Default.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Error].ForeColor        = viewModel.EditorSettings.Error.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.HexNumber].ForeColor    = viewModel.EditorSettings.HexNumber.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Identifier].ForeColor   = viewModel.EditorSettings.Identifier.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Keyword].ForeColor      = viewModel.EditorSettings.Keyword0.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Keyword2].ForeColor     = viewModel.EditorSettings.Keyword1.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Keyword3].ForeColor     = viewModel.EditorSettings.Keyword2.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Keyword4].ForeColor     = viewModel.EditorSettings.Keyword3.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Label].ForeColor        = viewModel.EditorSettings.Label.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Number].ForeColor       = viewModel.EditorSettings.Number.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Operator].ForeColor     = viewModel.EditorSettings.Operator.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.Preprocessor].ForeColor = viewModel.EditorSettings.PreProcessor.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.String].ForeColor       = viewModel.EditorSettings.String.ToDrawingColor();
            ScintillaNet.Styles[ScintillaNET.Style.VbScript.StringEol].BackColor    = viewModel.EditorSettings.StringEol.ToDrawingColor();
            //// Set the lexer
            ScintillaNet.Lexer = Lexer.VbScript;
            ScintillaNet.SetKeywords(0, "addhandler addressof andalso alias and ansi as assembly attribute auto begin boolean byref byte byval call case catch cbool cbyte cchar cdate cdec cdbl char cint class clng cobj compare const continue cshort csng cstr ctype currency date decimal declare default delegate dim do double each else elseif end enum erase error event exit explicit false finally for friend function get gettype global gosub goto handles if implement implements imports in inherits integer interface is let lib like load long loop lset me mid mod module mustinherit mustoverride mybase myclass namespace new next not nothing notinheritable notoverridable object on option optional or orelse overloads overridable overrides paramarray preserve private property protected public raiseevent readonly redim rem removehandler rset resume return select set shadows shared short single static step stop string structure sub synclock then throw to true try type typeof unload unicode until variant wend when while with withevents writeonly xor");
            ScintillaNet.SetKeywords(1, "form_onload form_onsave form_onentertab form_onleavetab form_onenterfield form_onleavefield form_oncancel form_onactivexcontrolevent");
        }
 internal ScintillaWPFConfigItemCollection(ScintillaWPF parent)
 {
     this.mParentScintilla = parent;
 }
コード例 #20
0
ファイル: CSharp.cs プロジェクト: NeoParticle/NeoStudio
        internal static void UnderLineCompiledError(CompilerError compilerError, ScintillaWPF scintilla)
        {
            Line line = scintilla.Lines[compilerError.Line - 1];

            scintilla.IndicatorFillRange(line.Position + compilerError.Column - 1, line.Length - compilerError.Column - 1);
        }
コード例 #21
0
 internal virtual void ApplyConfig(ScintillaWPF scintilla)
 {
     mLastAppliedParent = scintilla;
 }
コード例 #22
0
 internal abstract void Reset(ScintillaWPF scintilla);
コード例 #23
0
        private void SetKeyWords(ScintillaWPF ScintillaNet)
        {
            ScintillaNet.CharAdded += ScintillaNet_CharAdded;
            ScintillaNet.Delete    += ScintillaNet_Delete;

            //For AutoComplete
            foreach (var it in rawDataDic)
            {
                sbWord1.Append(it.Key);
                sbWord1.Append(" ");
                strCateDic.Add(it.Key, "");
                foreach (var funcName in it.Value)
                {
                    sbWord1.Append(it.Key);
                    sbWord1.Append(".");
                    sbWord1.Append(funcName);
                    sbWord1.Append(" ");
                    sbWord1.Append(funcName);
                    sbWord1.Append(" ");
                    strCateDic[it.Key] += funcName;
                    strCateDic[it.Key] += " ";
                }
            }

            //Axis
            LogicAxisList  = (DataContext as ViewModelLocator).Service.LogicalAxisCollection;
            InstrumentList = (DataContext as ViewModelLocator).Service.MeasurementInstrumentCollection;
            foreach (var axis in LogicAxisList)
            {
                string strAxisPromt = axis.ToString().Replace(" ", "").Replace("*", "").Replace("@", "_").ToUpper();
                sbWord1.Append(strAxisPromt);
                sbWord1.Append(" ");
                sbWord1.Append("AXIS.");
                sbWord1.Append(strAxisPromt);
                sbWord1.Append(" ");

                sbAxisStructPromt.Append(strAxisPromt);
                sbAxisStructPromt.Append(" ");
            }
            sbWord1.Append("AXIS");
            sbWord1.Append(" ");

            //Instrument
            foreach (var instrument in InstrumentList)
            {
                string strInstrumentPromt = instrument.Config.Caption.Replace(" ", "_").ToUpper();
                sbWord1.Append(strInstrumentPromt);
                sbWord1.Append(" ");
                sbWord1.Append("INST.");
                sbWord1.Append(strInstrumentPromt);
                sbWord1.Append(" ");

                sbInstrumentStructPromt.Append(strInstrumentPromt);
                sbInstrumentStructPromt.Append(" ");
            }
            sbWord1.Append("INST");
            sbWord1.Append(" ");

            //Enum
            List <KeyValuePair <string, List <KeyValuePair <string, int> > > > enumInfos = (DataContext as ViewModelLocator).Service.EnumInfos["ENUM"];

            sbWord1.Append("ENUM");
            sbWord1.Append(" ");

            foreach (var kp in enumInfos)
            {
                sbWord1.Append("ENUM.");
                sbWord1.Append(kp.Key);
                sbWord1.Append(" ");
                sbWord1.Append(kp.Key);
                sbWord1.Append(" ");

                sbEnumPromt1.Append(kp.Key);
                sbEnumPromt1.Append(" ");

                StringBuilder sbEnumPromt2 = new StringBuilder();
                foreach (var it in kp.Value)
                {
                    sbWord1.Append("ENUM.");
                    sbWord1.Append(kp.Key);
                    sbWord1.Append(".");
                    sbWord1.Append(it.Key);
                    sbWord1.Append(" ");
                    sbWord1.Append(it.Key);
                    sbWord1.Append(" ");

                    sbEnumPromt2.Append(it.Key);
                    sbEnumPromt2.Append(" ");
                }
                sbEnumPromt2Dic.Add(kp.Key, sbEnumPromt2);
            }
            ScintillaNet.SetKeywords(1, sbWord1.ToString());
        }
コード例 #24
0
 public TextProvider(ScintillaWPF editor)
 {
     this.editor = editor;
 }
コード例 #25
0
 public ValueProvider(ScintillaWPF editor)
 {
     this.editor = editor;
 }
コード例 #26
0
 public ScintillaAutomationPeer(ScintillaWPF owner) : base(owner)
 {
     this.editor = owner;
 }
コード例 #27
0
 internal static void InitColors(ScintillaWPF scintillaNet)
 {
     scintillaNet.CaretForeColor = System.Windows.Media.Colors.Black;
     scintillaNet.SetSelectionBackColor(true, IntToMediaColor(0x99C9EF));
 }
コード例 #28
0
 public TextRangeProvider(ScintillaWPF owner, int position, int endPosition)
 {
     this.editor      = owner;
     this.Position    = position;
     this.EndPosition = endPosition;
 }
コード例 #29
0
ファイル: CMMCodeEditorInit.cs プロジェクト: CMM-IDE/CMM-IDE
 private void InitColors(ScintillaWPF ScintillaNet)
 {
     ScintillaNet.CaretForeColor = Colors.Black;
     ScintillaNet.SetSelectionBackColor(true, IntToMediaColor(0x6070CC));
 }