【问题标题】:How do I change the candidates for ido-completing read based on the input?如何根据输入更改 ido 完成读取的候选者?
【发布时间】:2016-03-05 02:49:18
【问题描述】:

我有一个 ido-completing-read 调用的候选列表,代表了我系统上所有已安装的 python 模块。我想输入一个名字,然后是 .并让候选列表更改为仅在该模块中可用的类/功能。这可能吗?

【问题讨论】:

    标签: emacs autocomplete


    【解决方案1】:

    不确定ido-completing-read,但通常在完成表中,您可以通过将完成表实现为一个函数,它接受3个参数(STRING PRED ACTION),其中STRING是要完成的当前前缀,`PRED 是传递给完成读取函数的谓词(如果你不传递这样的谓词,你可以忽略这个参数), ACTION 是要执行的操作。

    函数最好被认为是一个面向对象风格的对象,其中ACTION 参数是方法。您需要实现几种方法(列出所有完成,查找当前最佳完成,测试完成,返回与“列出所有完成”相对应的边界(例如,如果“a.b”上的“列出所有完成”方法返回一个列表像("bob" "baby") 而不是("a.bob" "a.baby") 那么你在“a.b”上的完成boundaries应该放在“b”周围))。

    有关更详细的文档,请参阅(elisp)Programmed Completion 节点。您可能还想查看 completion-file-name-table 函数的源代码,因为这是用于文件名完成的完成表,它使用您正在寻找的相同行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 1970-01-01
      • 2012-06-03
      相关资源
      最近更新 更多