我有一个ido-completed-read调用的候选列表,它代表了我系统上所有已安装的python模块。我想输入一个名字,然后输入一个。并让候选人列表更改为说明该模块中可用的类/功能。这可能吗?
答案 0 :(得分:0)
不确定ido-completing-read
,但通常在完成表中,您通过将完成表实现为函数来执行此操作,该函数需要3个参数(STRING PRED ACTION)
其中 STRING 是要完成的当前前缀,` PRED 是传递给完成读取函数的谓词(如果你没有传递这样的谓词,你可以忽略这个参数),和 ACTION 是要做的操作。
该函数最好被认为是一个OO风格的对象,其中 ACTION 参数是方法。您需要实现几种方法(列出所有完成,找到当前最佳完成,测试完成,返回对应于“列出所有完成”的边界)(例如,如果“ab”上的“列出所有完成”方法返回列出("bob" "baby")
而不是("a.bob" "a.baby")
,那么“ab”上的完成边界应放在“b”周围)。
有关更详细的文档,请参阅(elisp)Programmed Completion
节点。您可能还想查看completion-file-name-table
函数的源代码,因为这是用于文件名完成的完成表,它使用了您正在寻找的相同行为。