@nesardramos/fmg
Version:
A CLI tool to manage path aliases in your terminal.
49 lines (42 loc) • 1.07 kB
JavaScript
// commands/completion.js
const { readAliases } = require("../utils/aliases");
function generateCompletionScript() {
const aliasNames = Object.keys(readAliases()).join(" ");
return `
_fmg_completions() {
local -a aliases
aliases=(${aliasNames})
_describe 'aliases' aliases
}
_fmg_fcd() {
_alternative 'files:->files:_files' 'aliases:->aliases:_fmg_completions'
}
_fmg_fcp() {
_alternative 'files:->files:_files' 'aliases:->aliases:_fmg_completions'
}
_fmg_fmv() {
_alternative 'files:->files:_files' 'aliases:->aliases:_fmg_completions'
}
_fmg() {
local -a commands
commands=(set get list delete setup remove completion)
_arguments '*:command:commands'
case "$words[2]" in
set)
_arguments '*:alias:(set_alias) *:(path):_files'
;;
get|delete)
_fmg_completions
;;
*)
;;
esac
}
`;
}
exports.command = "completion";
exports.describe =
"Generates Zsh completion script for fmg. Use this to update your shell configuration.";
exports.handler = (argv) => {
console.log(generateCompletionScript());
};