File tree Expand file tree Collapse file tree 2 files changed +28
-6
lines changed Expand file tree Collapse file tree 2 files changed +28
-6
lines changed Original file line number Diff line number Diff line change @@ -82,6 +82,8 @@ class AttributeDict(dict):
8282 "^[0-7]$" : "^[0-7]$" ,
8383}
8484
85+ _pat_compiled = {}
86+
8587def viml_add (lst , item ):
8688 lst .append (item )
8789
@@ -97,14 +99,23 @@ def viml_empty(obj):
9799def viml_equalci (a , b ):
98100 return a .lower () == b .lower ()
99101
102+ def _get_compiled_pat (reg , flags ):
103+ key = (reg , flags )
104+ try :
105+ return _pat_compiled [key ]
106+ except KeyError :
107+ pat = re .compile (reg , flags )
108+ _pat_compiled [key ] = pat
109+ return pat
110+
100111def viml_eqreg (s , reg ):
101- return re . search ( pat_vim2py [ reg ], s , re .IGNORECASE )
112+ return _get_compiled_pat ( reg , re .IGNORECASE ). search ( s )
102113
103114def viml_eqregh (s , reg ):
104- return re . search ( pat_vim2py [ reg ], s )
115+ return _get_compiled_pat ( reg , 0 ). search ( s )
105116
106117def viml_eqregq (s , reg ):
107- return re . search ( pat_vim2py [ reg ], s , re .IGNORECASE )
118+ return _get_compiled_pat ( reg , re .IGNORECASE ). search ( s )
108119
109120def viml_escape (s , chars ):
110121 r = ''
Original file line number Diff line number Diff line change @@ -82,6 +82,8 @@ class AttributeDict(dict):
8282 "^[0-7]$" : "^[0-7]$" ,
8383}
8484
85+ _pat_compiled = {}
86+
8587def viml_add (lst , item ):
8688 lst .append (item )
8789
@@ -97,14 +99,23 @@ def viml_empty(obj):
9799def viml_equalci (a , b ):
98100 return a .lower () == b .lower ()
99101
102+ def _get_compiled_pat (reg , flags ):
103+ key = (reg , flags )
104+ try :
105+ return _pat_compiled [key ]
106+ except KeyError :
107+ pat = re .compile (pat_vim2py [reg ], flags )
108+ _pat_compiled [key ] = pat
109+ return pat
110+
100111def viml_eqreg (s , reg ):
101- return re . search ( pat_vim2py [ reg ], s , re .IGNORECASE )
112+ return _get_compiled_pat ( reg , re .IGNORECASE ). search ( s )
102113
103114def viml_eqregh (s , reg ):
104- return re . search ( pat_vim2py [ reg ], s )
115+ return _get_compiled_pat ( reg , 0 ). search ( s )
105116
106117def viml_eqregq (s , reg ):
107- return re . search ( pat_vim2py [ reg ], s , re .IGNORECASE )
118+ return _get_compiled_pat ( reg , re .IGNORECASE ). search ( s )
108119
109120def viml_escape (s , chars ):
110121 r = ''
You can’t perform that action at this time.
0 commit comments