首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从崇高文本4自动完成列表中删除当前缓冲区中的单词

如何从崇高文本4自动完成列表中删除当前缓冲区中的单词
EN

Stack Overflow用户
提问于 2022-01-13 22:39:07
回答 1查看 104关注 0票数 2

在过去8年左右的时间里,该插件与Sublime 2和3一起工作得很好,可以从ctrl + space自动完成列表中删除当前缓冲区中的单词,但它不再适用于ST4 (b4126):

代码语言:javascript
复制
import sublime, sublime_plugin

class MyAutocomplete(sublime_plugin.EventListener):
  def on_query_completions(self, view, prefix, locations):
    # Popup autocomplete only for .sublime-snippet and
    # .sublime-completions files
    return ([], sublime.INHIBIT_WORD_COMPLETIONS)

我知道on_query_completionssublime.INHIBIT_WORD_COMPLETIONS仍然有效,所以我认为问题在于数组返回语句。医生们不会在不同版本之间显示任何更改。

我能够让sublime.INHIBIT_WORD_COMPLETIONS使用的惟一不同的返回语句是这样的,但是现在我在我不想要的列表中有了一个额外的完成:

代码语言:javascript
复制
return [
  sublime.CompletionItem(
    trigger="fox",
    completion="The quick brown fox jumps over the lazy dog",
    kind=sublime.KIND_KEYWORD
  )
], sublime.INHIBIT_WORD_COMPLETIONS

sublime.CompletionListset_completions方面一点运气都没有

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-23 19:28:14

似乎不可能在不返回至少一个完成的情况下抑制缓冲区/字完成。但是,如果该完成(触发器和结果)是一个单一字符,它将永远不会相关,因此自动完成将永远不会显示。

代码语言:javascript
复制
import sublime, sublime_plugin


class InhibitWordCompletionsEventListener(sublime_plugin.EventListener):
    def on_query_completions(self, view, prefix, locations):
        clist = sublime.CompletionList()
        sublime.set_timeout(lambda: clist.set_completions([' '], sublime.INHIBIT_WORD_COMPLETIONS), 0)
        return clist

(注:部分基于对案文/问题/4999的评论,我在搜索时发现了这一点,以查看是否报告了bug。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70703975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档