[go: up one dir, main page]

Menu

[r1]: / bin / BraceMatch.py  Maximize  Restore  History

Download this file

40 lines (31 with data), 1.3 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import wx
def OnUpdateUI(evt,text_id):
# check for matching braces
CurrentWidget = wx.FindWindowById(text_id)
braceAtCaret = -1
braceOpposite = -1
charBefore = None
caretPos = CurrentWidget.GetCurrentPos()
if caretPos > 0:
charBefore = CurrentWidget.GetCharAt(caretPos - 1)
styleBefore = CurrentWidget.GetStyleAt(caretPos - 1)
# check before
if charBefore and chr(charBefore) in "[]{}()" and styleBefore == wx.stc.STC_P_OPERATOR:
braceAtCaret = caretPos - 1
# check after
if braceAtCaret < 0:
charAfter = CurrentWidget.GetCharAt(caretPos)
styleAfter = CurrentWidget.GetStyleAt(caretPos)
if charAfter and chr(charAfter) in "[]{}()" and styleAfter == wx.stc.STC_P_OPERATOR:
braceAtCaret = caretPos
if braceAtCaret >= 0:
braceOpposite = CurrentWidget.BraceMatch(braceAtCaret)
if braceAtCaret != -1 and braceOpposite == -1:
CurrentWidget.BraceBadLight(braceAtCaret)
else:
CurrentWidget.BraceHighlight(braceAtCaret, braceOpposite)
#pt = CurrentWidget.PointFromPosition(braceOpposite)
#CurrentWidget.Refresh(True, wx.Rect(pt.x, pt.y, 5,5))
#print pt
#CurrentWidget.Refresh(True)
evt.Skip()