如果键入。(点),如何为Python作用域触发自动完成弹出窗口?
要解决@skuroda评论,我会提出问题:
如果在首选项中设置"auto_complete": true
(默认情况下已设置),则在按下的任何字符上触发ST中的自动完成。我发现这最烦人,因为我不希望它按下单键时触发,所以我把它关掉了。
html_completions.py
只检查哪个是当前的前一个字符,并提供完成列表,但不会更改自动完成行为或设置触发它的内容。
OTOH,有auto_complete_triggers
首选项,但这并不能解决我的问题,因为它取决于auto_complete
首选项:
auto_complete
首选项设置为false,则auto_complete_triggers
中定义的触发器不会触发完成另一个可接受的解决方案是,如果我可以定义一些阈值,例如4个字符,那么自动完成不会在自动按下的单个按键上显示,而是在4个字符后显示。
答案 0 :(得分:1)
您可以编写一个简单的插件来获得该阈值效果。
import sublime
import sublime_plugin
class MyEventListener(sublime_plugin.EventListener):
def on_query_completions(self, view, prefix, locations):
if len(prefix) < 4:
return ([], sublime.INHIBIT_WORD_COMPLETIONS | sublime.INHIBIT_EXPLICIT_COMPLETIONS)
else:
return []
此外,请尝试将以下内容添加到语法特定设置(Preferences -> Settings - More -> Syntax Specific - User
)中。我相信它应该通过点运算符为您提供所需的行为。
"auto_complete_selector": "- source, comment",
"auto_complete_triggers": [ {"selector": "source.python", "characters": "."} ]
我只对这两种解决方案进行了最低限度的测试,所以请告诉我是否可以澄清任何内容。