【发布时间】:2016-03-05 02:49:18
【问题描述】:
我有一个 ido-completing-read 调用的候选列表,代表了我系统上所有已安装的 python 模块。我想输入一个名字,然后是 .并让候选列表更改为仅在该模块中可用的类/功能。这可能吗?
【问题讨论】:
标签: emacs autocomplete
我有一个 ido-completing-read 调用的候选列表,代表了我系统上所有已安装的 python 模块。我想输入一个名字,然后是 .并让候选列表更改为仅在该模块中可用的类/功能。这可能吗?
【问题讨论】:
标签: emacs autocomplete
不确定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 函数的源代码,因为这是用于文件名完成的完成表,它使用您正在寻找的相同行为。
【讨论】: