Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metaprogramming #249

Closed
1 task
raineorshine opened this issue Dec 31, 2019 · 0 comments
Closed
1 task

Metaprogramming #249

raineorshine opened this issue Dec 31, 2019 · 0 comments
Assignees

Comments

@raineorshine
Copy link
Contributor

raineorshine commented Dec 31, 2019

This is an initial formalization of metaprogramming in em. That is, programming from within em itself self-reflectively operating on the content of em. With metaprogramming, features of em can be implemented in em: Settings is just another context with thoughts like “Theme” it “Font Size” that can be edited directly. Recently Edited Thoughts is just another context. It’s similar to how Search already works, except we are adding templates, type validation, and command triggers so that users can create their own dynamic and interactive contexts. This moves closer to the vision of em’s contextual data model as a universal sensemaking structure.

Requirements

  • Namespacing
    • Functions start with =
    • Manually exclude descendants of functions from context views and search
    • Otherwise allow signifier conflicts and do not enforce strict namespace (eventually may want the ability to seerch or view in contexts)
  • Syntax Sugar
    • “:” and “()” == nesting

Functions

  • Hidden
    • Hides context and all descendants from:
      • search
      • context views
  • Immutable (?)
    • Do not allow subthought to be modified
  • Readonly
    • Names
      • Fixed
      • Permanent
    • Do not allow context to be deleted or the signifier edited
  • Type
    • Options
      • Boolean
      • Link
      • Options
      • String (default)
    • Validation
      • “Warning: Invalid value. Expected X or Y”
@raineorshine raineorshine self-assigned this Jan 11, 2020
@raineorshine raineorshine changed the title Context Schema Metaprogramming Jan 11, 2020
@raineorshine raineorshine mentioned this issue Jan 11, 2020
1 task
@raineorshine raineorshine removed their assignment Jan 27, 2020
@raineorshine raineorshine self-assigned this Feb 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant