Hg代码中的哪个位置是命令完成实现的?

时间:2013-04-09 08:59:41

标签: python mercurial

Mercurial有一个非常好的功能,它允许用户只键入命令行中明确需要的内容,例如:

hg pus

推送,或:

hg comm

提交。

我很想在Git和Maven这样的功能中看到这个功能,让我对它是如何完成感到好奇。我有一个拖网通过代码,但没有太多的运气,我发现与bash_completion有关,但不是为了Windows。

Hg code中的哪个位置已完成此命令的完成?

3 个答案:

答案 0 :(得分:3)

为命令执行此操作的代码是mercurial.cmdutil中的findpossiblefindcmd函数。他们搜索已知命令并找到以您键入的内容开头的命令,因此hg pus找到push命令。

对于命令行选项(标记),正常getopt module可让您自动缩短hg log --patchhg log --pat

答案 1 :(得分:2)

我认为它位于mercurial/cmdutil.py中,执行此操作的方法称为findpossible

答案 2 :(得分:0)

在Linux上,这是由bash_completion

完成的

在我的系统上,hg的配置位于/etc/bash_completion.d/mercurial