Welcome, Guest! Log In | Create Account

Unimplemented Features

The system usually get approximately one tenth of a second to process input and produce output (It is impractical to wait for a character to appear on screen after key press). Moreover, it was an experimental system (no equivalent was known). Thus Banjon implemented fast and simple algorithms over advance and slow algorithms as a first attempt.

Backend 1

  • Add support for Nested scope, nested function and lambda function. (5.done)
  • Add Rule data type in code section and functions for manipulation. (2.done)
  • Add RegExp data type in code section, shortcut matching syntaxes and flags. (2.done)
  • Add functions for rule key, rule value with and without meta-characters (enhance algorithms) (4.done)
  • Add more functions for string, list, hash manipulation (1.done)
  • Add functions for input stream (key stream) manipulation (add and remove chars from stream)
  • Add functions, which are called by the system, for pre-process and post-process input text (key press)
  • Add functions, which are called on load and unload script
  • Support modifier keys (such as Alt, Ctrl, Command etc) in rule for non-phonetic key mapping (3.done)
  • Remove assign function and provide simple print function (like PHP, AWK) (1.done)
  • Write a pipe based interface (or other FFIs) of backend for applications develop in other languages
  • Compile backend into native code (to provide better FFI)

Backend 2

  • Construct AST instead of other forms to enhance structure (although it slow down the system) (5.done)
  • Add regular expression based rule key (with matching group for value) and change all necessary algorithm. (long task and also slow down the system)
  • Add variable decl. support in rule section and share symbol table with code section.
  • Add conditional rule support that can select value set based on condition. (analogous to, but more powerful with friendly syntax than, the selection rule in older version)
  • Support rearrangement of the alternative values according to their usage frequency.
  • Incorporate with external dictionaries for automatic word insertion and suggestion.
  • Tracking usage frequency of words (both from dictionaries and user typed) and rearrange suggestion accordingly.
  • Design fast and efficient intermediate from of map script (considering IR, byte code)
  • Design hand written parser for map language for performance improvement
  • Add real-time dynamic keys and dynamic rules support (1.done)

Frontend 1

  • Support shortcut key customization
  • Support shortcut number key for alternative selection and improve rule assist
  • Add more map scripts for different languages
  • Update old text editor frontend that supports many platforms
  • Support syntax mode (as available on old version)
  • Add spell checking feature (as available on old version)
  • Add Internationalization of interface (as some on old version)
  • Add more theme for frontend
  • Develop IM (frontend) for Linux, Mac and other OSs using banjon backend

Miscellaneous 1

  • Change the name of the project to reflect generalization of the system
  • Replace non English contents with their equivalent English contents.
  • Release the entire project (or some parts of the project) under a permissive license
  • C/C++ clone of the entire project

The number (1-5) before the word done implies the amount of work done on that feature.