本文整理汇总了Python中idlelib.HyperParser.HyperParser.get_surrounding_brackets方法的典型用法代码示例。如果您正苦于以下问题:Python HyperParser.get_surrounding_brackets方法的具体用法?Python HyperParser.get_surrounding_brackets怎么用?Python HyperParser.get_surrounding_brackets使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类idlelib.HyperParser.HyperParser
的用法示例。
在下文中一共展示了HyperParser.get_surrounding_brackets方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: calltip_event
# 需要导入模块: from idlelib.HyperParser import HyperParser [as 别名]
# 或者: from idlelib.HyperParser.HyperParser import get_surrounding_brackets [as 别名]
def calltip_event(self, event=None):
window = self.docWindow.window
if window is None:
return
if not window.update_calltip.get():
# don't process calltip event
return
# get calltip
# code borrows from CallTips.py::open_calltip
evalfuncs = False
hp = HyperParser(self.editwin, "insert")
sur_paren = hp.get_surrounding_brackets('(')
if not sur_paren:
return
hp.set_index(sur_paren[0])
name = hp.get_expression()
if not name or (not evalfuncs and name.find('(') != -1):
return
w = window
w.entry.delete("0", "end")
w.entry.insert("insert", name)
w.get_doc()
示例2: open_calltip
# 需要导入模块: from idlelib.HyperParser import HyperParser [as 别名]
# 或者: from idlelib.HyperParser.HyperParser import get_surrounding_brackets [as 别名]
def open_calltip(self, evalfuncs):
self._remove_calltip_window()
hp = HyperParser(self.editwin, 'insert')
sur_paren = hp.get_surrounding_brackets('(')
if not sur_paren:
return
hp.set_index(sur_paren[0])
expression = hp.get_expression()
if not expression or not evalfuncs and expression.find('(') != -1:
return
arg_text = self.fetch_tip(expression)
if not arg_text:
return
self.calltip = self._make_calltip_window()
self.calltip.showtip(arg_text, sur_paren[0], sur_paren[1])
示例3: paren_closed_event
# 需要导入模块: from idlelib.HyperParser import HyperParser [as 别名]
# 或者: from idlelib.HyperParser.HyperParser import get_surrounding_brackets [as 别名]
def paren_closed_event(self, event):
# If it was a shortcut and not really a closing paren, quit.
closer = self.text.get("insert-1c")
if closer not in _openers:
return
hp = HyperParser(self.editwin, "insert-1c")
if not hp.is_in_code():
return
indices = hp.get_surrounding_brackets(_openers[closer], True)
if indices is None:
self.warn_mismatched()
return
self.activate_restore()
self.create_tag(indices)
self.set_timeout()
示例4: open_calltip
# 需要导入模块: from idlelib.HyperParser import HyperParser [as 别名]
# 或者: from idlelib.HyperParser.HyperParser import get_surrounding_brackets [as 别名]
def open_calltip(self, evalfuncs):
self._remove_calltip_window()
hp = HyperParser(self.editwin, "insert")
sur_paren = hp.get_surrounding_brackets("(")
if not sur_paren:
return
hp.set_index(sur_paren[0])
name = hp.get_expression()
if not name or (not evalfuncs and name.find("(") != -1):
return
arg_text = self.fetch_tip(name)
if not arg_text:
return
self.calltip = self._make_calltip_window()
self.calltip.showtip(arg_text, sur_paren[0], sur_paren[1])
示例5: paren_closed_event
# 需要导入模块: from idlelib.HyperParser import HyperParser [as 别名]
# 或者: from idlelib.HyperParser.HyperParser import get_surrounding_brackets [as 别名]
def paren_closed_event(self, event):
closer = self.text.get('insert-1c')
if closer not in _openers:
return
else:
hp = HyperParser(self.editwin, 'insert-1c')
if not hp.is_in_code():
return
indices = hp.get_surrounding_brackets(_openers[closer], True)
if indices is None:
self.warn_mismatched()
return
self.activate_restore()
self.create_tag(indices)
self.set_timeout()
return
示例6: open_calltip
# 需要导入模块: from idlelib.HyperParser import HyperParser [as 别名]
# 或者: from idlelib.HyperParser.HyperParser import get_surrounding_brackets [as 别名]
def open_calltip(self, evalfuncs):
self._remove_calltip_window()
# - 2016 9 28 --
lt = self.text.get('insert linestart', 'insert')
m = re.search(r'(\w+)<[^>]*', lt)
if m:
from idlelib.languages import _cppclassref
if m.group(1) in _cppclassref.CPP_CLASSREF:
arg_text = _cppclassref.CPP_CLASSREF[m.group(1)]
if not arg_text:
return
self.calltip = self._make_calltip_window()
## print `self.text.index('insert-1c')`, `self.text.index('insert').split('.')[0]+'.end'`
self.calltip.showtip(
arg_text,
self.text.index('insert-1c'),
self.text.index('insert').split('.')[0]+'.end',
)
return
# ---
hp = HyperParser(self.editwin, "insert")
sur_paren = hp.get_surrounding_brackets('(')
if not sur_paren:
return
hp.set_index(sur_paren[0])
expression = hp.get_expression()
if not expression or (not evalfuncs and expression.find('(') != -1):
return
arg_text = self.fetch_tip(expression)
# - 2016 9 27 --
if hasattr(self.editwin, 'ftype') and self.editwin.ftype.get() in ('C++/l',):
e = ''
if not arg_text:
# treat as constructor
lt = self.text.get('insert linestart', 'insert lineend')
## print `lt`, 1
if re.match(r'^[ \t]', lt, flags=re.MULTILINE):
e = lt.lstrip().split()[0]
if e == 'string':
e = 'basic_string'
arg_text = self.fetch_tip(e)
if not arg_text:
e = e.split('<')[0]
if e == 'string':
e = 'basic_string'
arg_text = self.fetch_tip(e)
if not arg_text:
# treat as member function
if expression.count('.') != 1:
return # gives up
name = expression.split('.')[0]
func = expression.split('.')[1]
# queue<int> q; < hit this
# q.push(1); < skip this
# q.front(); < when call here
ln = int(sur_paren[0].split('.')[0])-1
pat = re.compile(
(
r'\b{n}(?!\.)'
).format(n=name)
)
lt = self.text.get('{}.0'.format(ln), '{}.end'.format(ln))
m = pat.search(lt)
while ln > 0 and not m:
lt = self.text.get('{}.0'.format(ln), '{}.end'.format(ln))
m = pat.search(lt)
ln -= 1
if m:
pat = re.compile(
(
r'((?:{w}::)*{w}(?:<[^<>]*(?:<[^>]*>)*[^<>]*>)?)\s*'
r'{n}'
).format(
n=name,
w=r'(?:[_A-Za-z]\w*)',
)
)
m2 = pat.search(lt)
if m2:
e = m2.group(1)
if e == 'string':
e = 'basic_string'
arg_text = self.fetch_tip('{}::{}'.format(e, func))
if not arg_text:
e = lt.lstrip().split()[0]
if e == 'string':
e = 'basic_string'
arg_text = self.fetch_tip(
'{}::{}'.format(e, func)
)
#.........这里部分代码省略.........