Bash kabuğunda, dosya ve dizin adlarını önermek için sekme tamamlamasını kullanabilirim. Bunu nodejs ve readline ile nasıl yapabilirim?Ok dizisini kullanarak sekme tamamlandığında dosyalar nasıl önerilir?
Örnekler:
/<Tab>
düşünülmesi gerektiği/root/
,/bin/
vb/et<Tab>
/etc/
için tamamlamalıdır. Geçerli dizinde bu tür bir dosya varsayarakfoobar
numaralı- belirtilmelidir.
Globbing kullanmayı düşünüyordum (pattern search_term.replace(/[?*]/g, "\\$&") + "*"
), fakat gözden kaçan bir kütüphane var mı?
Bu canonicalized adını döndürür ve muhtemelen diğer bazı tuhaflıklar olduğu gibi //<Tab>
kullanırken, bu bozuldu topak kullanarak benim şimdiki yaklaşımdır:
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();