Skip to content

Replace the increasingly complex messaging system with a Scheme interpreter  #50

@mdsimmo

Description

@mdsimmo

What problem does the feature solve
The localisation system is becoming increasingly more and more complex.
While it is possible to do many cool things with it - we are ultimately just reinventing the wheel (and doing a worse job)
The current syntax for "lambda" functions is ugly and confusing. Ugly example:

command.group.help: |-
      {#|heading|Help: {command|name}}
      {command|children|sort|{!it|name}|filter|{!sender|haspermission|{it|permission}}|map|{!#|map|{it|name}|{#switch|{=|{#len|{it|description}}>40}|1|{#sub|{it|description}|0|40}...|{it|description}}}|join|
      }

Describe the solution you'd like
Allow message to run scheme code.

Be able to replace the above with something like:

command.group.help: |-
      {#scheme|(heading (get command 'name))}
      {#scheme|(??? I need to learn scheme...))}

Describe alternatives you've considered
Add more and more custom functions, until a horrid language is written.

I have noticed that the macro expansion system I've created does look scheme-ish, but with braces instead of parenthesise. Possibly, the all braces could be interpreted as scheme?

Things to think about

  • Syntax for calling scheme?
  • Maybe keep simple functions like the colour functions?
  • How to pass objects
  • Syntax for declaring functions?

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions