6
Bashシェル内では、タブ補完を使用して、推奨ファイル名とディレクトリ名を使用できます。 nodejsとでこれをどのように達成できますか?readlineを使用してタブ補完のあるファイルを提案するには?
例:
/<Tab>
を示唆すべきは/root/
、/bin/
など/et<Tab>
は/etc/
に完了する必要があります。fo<Tab>
は、このようなファイルがカレントディレクトリに存在すると仮定して、foobar
に完了する必要があります。
globbing(パターンsearch_term.replace(/[?*]/g, "\\$&") + "*"
)を使用することを考えていましたが、私が見落としているライブラリがありますか?
//<Tab>
を使用している場合、それは正規化された名前を返し、おそらく他のいくつかの奇妙を持っているので、これはグロブを使用して私の現在のアプローチは、それが壊れているされています
function command_completion(line) {
var hits;
// likely broken, one does not simply escape a glob char
var pat = line.replace(/[?*]/g, "\\$&") + "*";
// depends: glob >= 3.0
var glob = require("glob").sync;
hits = glob(pat, {
silent: true,
nobrace: true,
noglobstar: true,
noext: true,
nocomment: true,
nonegate: true
});
return [hits, line];
}
var readline = require("readline");
rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
completer: command_completion
});
rl.prompt();