- [DONE] Rewrite the parser to return an AST.
- Implement globbing.
- [IRRELEVANT] [DROPPED] Use temporary files to overcome the restriction in size of io.StringIO buffers.
- [DONE] Rewrite the engine to fit the rewritten parser.
- [DONE] Right now, I've made the parser return BinCmd, which is not going to be very good for knowing if the STDOUT needs to output to a TTY or not. So, instead the design needs to be changed in such a way that a CmdExpr node contains an array of operators and an array of SimpCmd nodes. That way, the SimpCmd nodes in the middle can see what operator is next to it.
- [DONE] Implement aliases.
- Improve aliases. Right now, it's very basic. You can alias only commands, not commands and options or arguments or flags.
- [DONE] Implement kbhit(). See the issues file for more information.
- Implement tab completion.
- [DONE] Item type differentiation: Output different symbols for different file types, as well as colour the output consistently.
- [DONE] Number of inode links: Implement display of number of inode links.
Use
stat.st_nlink.
- [DONE] Add process filtering.