Esempio n. 1
0
        private void scintillaControl_UpdateUI(object sender, UpdateUIEventArgs e)
        {
            // Has the caret changed position?
            var caretPosition = _scintillaControl.CurrentPosition;

            if (_lastCaretPosition != caretPosition)
            {
                _lastCaretPosition = caretPosition;
                BraceInfo braceInfo = GetCurrentBraceInfo();

                if (braceInfo != null)
                {
                    int bracePosition2 = _scintillaControl.BraceMatch(braceInfo.Position);
                    if (bracePosition2 == Scintilla.InvalidPosition)
                    {
                        _scintillaControl.BraceBadLight(braceInfo.Position);
                    }
                    else
                    {
                        _scintillaControl.BraceHighlight(braceInfo.Position, bracePosition2);
                    }
                }
                else
                {
                    _scintillaControl.BraceHighlight(Scintilla.InvalidPosition, Scintilla.InvalidPosition);
                }
            }
        }
Esempio n. 2
0
        private void codeBox_UpdateUI(object sender, UpdateUIEventArgs e)
        {
            const string openBraces  = "([{";
            const string closeBraces = ")]}";

            var caretPos = _codeBox.CurrentPosition;

            if (caretPos != _lastCaretPos)
            {
                int lastLine    = _codeBox.LineFromPosition(_lastCaretPos);
                int currentLine = _codeBox.LineFromPosition(caretPos);
                _codeBox.MarkerDeleteAll(3);
                if (_highlightLine)
                {
                    _codeBox.Lines[currentLine].MarkerAdd(3);
                }
                char charBefore = (char)_codeBox.GetCharAt(caretPos - 1);
                char charAfter  = (char)_codeBox.GetCharAt(caretPos);
                int  brace1Pos  = Scintilla.InvalidPosition;
                if (closeBraces.Contains(charBefore))
                {
                    brace1Pos = caretPos - 1;
                }
                else if (openBraces.Contains(charAfter))
                {
                    brace1Pos = caretPos;
                }
                if (brace1Pos != Scintilla.InvalidPosition)
                {
                    int brace2Pos = _codeBox.BraceMatch(brace1Pos);
                    if (brace2Pos != Scintilla.InvalidPosition)
                    {
                        _codeBox.BraceHighlight(brace1Pos, brace2Pos);
                    }
                    else
                    {
                        _codeBox.BraceBadLight(brace1Pos);
                    }
                }
                else
                {
                    _codeBox.BraceHighlight(Scintilla.InvalidPosition, Scintilla.InvalidPosition);
                }
                _lastCaretPos = caretPos;
            }
        }
Esempio n. 3
0
        private void Scintilla_UpdateUI(object sender, UpdateUIEventArgs e)
        {
            var caretPos = Scintilla.CurrentPosition;

            if (_lastCaretPos == caretPos)
            {
                return;
            }

            _lastCaretPos = caretPos;

            var openingBracePos = -1;

            if (caretPos > 0 && IsBrace(Scintilla.GetCharAt(caretPos - 1)))
            {
                openingBracePos = caretPos - 1;
            }
            else if (IsBrace(Scintilla.GetCharAt(caretPos)))
            {
                openingBracePos = caretPos;
            }

            if (openingBracePos != -1)
            {
                var closingBracePos = Scintilla.BraceMatch(openingBracePos);

                if (closingBracePos == Scintilla.InvalidPosition)
                {
                    Scintilla.BraceBadLight(openingBracePos);
                    Scintilla.HighlightGuide = 0;
                }
                else
                {
                    Scintilla.BraceHighlight(openingBracePos, closingBracePos);
                    Scintilla.HighlightGuide = Scintilla.GetColumn(openingBracePos);
                }
            }
            else
            {
                Scintilla.BraceHighlight(Scintilla.InvalidPosition, Scintilla.InvalidPosition);
                Scintilla.HighlightGuide = 0;
            }
        }