Files
sublime-text-3/Packages/SublimeREPL/completions.py

42 lines
1.2 KiB
Python

from __future__ import absolute_import, unicode_literals, print_function, division
import sublime
import sublime_plugin
class SublimeREPLCompletions(sublime_plugin.EventListener):
def on_query_completions(self, view, prefix, locations):
try:
from .sublimerepl import manager
except ValueError:
from sublimerepl import manager
if not view.settings().get("repl"):
return True
rv = manager.repl_view(view)
if not rv:
return []
repl = rv.repl
if not repl.autocomplete_available():
return []
line = view.line(locations[0])
start = max(line.begin(), rv._output_end)
end = line.end()
whole_line = view.substr(sublime.Region(start, end))
pos_in_line = locations[0] - start
whole_prefix = whole_line[:pos_in_line]
completions = repl.autocomplete_completions(
whole_line=whole_line,
pos_in_line=pos_in_line,
prefix=prefix,
whole_prefix=whole_prefix,
locations=locations)
return completions, sublime.INHIBIT_WORD_COMPLETIONS | sublime.INHIBIT_EXPLICIT_COMPLETIONS