Skip to content

Latest commit

 

History

History
25 lines (22 loc) · 1.22 KB

Notes.md

File metadata and controls

25 lines (22 loc) · 1.22 KB

Notes

Random notes about internals so they don't get forgotten (and most of them not about Christine, how about that).

Creating new command functionality

  • Core functionality (message attributes etc) is all handled in connection.pike _send_recursive(). The order things are checked determines precedence.
  • Commands can be directly manipulated in the config mapping with no validation checks. This is unsupported behaviour but will probably work.
  • From the front end, commands are filtered by chan_commands.pike validate(), with the majority of flags being checked in the recursive _validate().
  • For completely new functionality, the command GUI will need a new type of element, possibly with a new colour.
    • This element needs a method of distinguishment, most commonly an attribute with a fixed value.
  • For any kind of newish feature, the command GUI probably needs a new tray item to make it easily accessible. This may also require enhancing the type to allow more flexibility. (Optional for new builtins.)
  • The classic editor needs to be enhanced.
    • Simple features can be added to the flags mapping at the top
    • More complicated features need ad-hoc code in render_command()