import { Command } from "../../shared/Command"; export class UnknownCommandError extends Error { constructor(value: string) { super(`unknown command '${value}'`); } } export default class CommandParser { parse(value: string): Command { switch (value) { case 'o': case 'open': return Command.Open; case 't': case 'tabopen': return Command.TabOpen; case 'w': case 'winopen': return Command.WindowOpen; case 'b': case 'buffer': return Command.Buffer; case 'bd': case 'bdel': case 'bdelete': return Command.BufferDelete; case 'bd!': case 'bdel!': case 'bdelete!': return Command.BufferDeleteForce; case 'bdeletes': return Command.BuffersDelete; case 'bdeletes!': return Command.BuffersDeleteForce; case 'addbookmark': return Command.AddBookmark; case 'q': case 'quit': return Command.Quit; case 'qa': case 'quitall': return Command.QuitAll; case 'set': return Command.Set; case 'h': case 'help': return Command.Help; } throw new UnknownCommandError(value); } }