parent
ea3426f235
commit
e1ad655912
56
method.py
56
method.py
|
@ -874,62 +874,6 @@ class IndentBlock(Method):
|
|||
w.buffer.delete(Point(0, p1.y), Point(0, p2.y))
|
||||
w.buffer.insert_string(Point(0, p1.y), '\n'.join(lines) + '\n')
|
||||
|
||||
class CodeComplete(Method):
|
||||
'''Complete based on tokenized strings'''
|
||||
def execute(self, w, **vargs):
|
||||
cursor = w.logical_cursor()
|
||||
|
||||
if len(w.buffer.lines[cursor.y]) == 0:
|
||||
return
|
||||
|
||||
bounds = w.get_word_bounds()
|
||||
if bounds is None:
|
||||
return
|
||||
|
||||
(p1, p2) = bounds
|
||||
buffer = w.buffer
|
||||
word = buffer.get_substring(p1, p2)
|
||||
app = w.application
|
||||
highlighter = buffer.highlights[w.mode.name()]
|
||||
tokens = highlighter.tokens
|
||||
seen = {}
|
||||
sofar = None
|
||||
|
||||
for group in tokens:
|
||||
for token in group:
|
||||
s = token.string
|
||||
if s == word:
|
||||
continue
|
||||
elif s.startswith(word):
|
||||
seen[s] = True
|
||||
if sofar is None:
|
||||
sofar = s
|
||||
else:
|
||||
l = min(len(s), len(sofar))
|
||||
i = len(word)
|
||||
while i < l:
|
||||
if s[i] == sofar[i]:
|
||||
i += 1
|
||||
else:
|
||||
break
|
||||
sofar = s[:i]
|
||||
|
||||
seen_keys = seen.keys()
|
||||
num_seen = len(seen_keys)
|
||||
if word == sofar:
|
||||
w.application.set_error('No completion possible: %r' % word)
|
||||
pass
|
||||
elif sofar:
|
||||
w.buffer.delete(p1, p2)
|
||||
w.buffer.insert_string(p1, sofar)
|
||||
if num_seen == 1:
|
||||
w.application.set_error('Unique!')
|
||||
else:
|
||||
w.application.set_error('Ambiguous: %r' % seen_keys)
|
||||
else:
|
||||
w.application.set_error('No completion found: %r' % word)
|
||||
pass
|
||||
|
||||
class OpenConsole(Method):
|
||||
'''Evaluate python expressions (for advanced use and debugging only)'''
|
||||
def execute(self, w, **vargs):
|
||||
|
|
3
mode2.py
3
mode2.py
|
@ -166,7 +166,7 @@ class Fundamental(Handler):
|
|||
self.add_bindings('justify-left', ('C-c b',))
|
||||
self.add_bindings('indent-block', ('C-c >',))
|
||||
self.add_bindings('unindent-block', ('C-c <',))
|
||||
self.add_bindings('code-complete', ('M-c',))
|
||||
self.add_bindings('token-complete', ('M-c', 'C-c c'))
|
||||
self.add_bindings('shell-cmd', ('C-c !',))
|
||||
self.add_bindings('open-aes-file', ('C-c a',))
|
||||
self.add_bindings('open-console', ('M-e',))
|
||||
|
@ -179,7 +179,6 @@ class Fundamental(Handler):
|
|||
self.add_bindings('grep', ('C-c g',))
|
||||
self.add_bindings('pipe', ('C-c p',))
|
||||
self.add_bindings('view-buffer-parent', ('C-c .',))
|
||||
self.add_bindings('token-complete', ('C-c c',))
|
||||
|
||||
# unbound actions
|
||||
self.add_action(method.GetToken())
|
||||
|
|
Loading…
Reference in New Issue