GithubHelp home page GithubHelp logo

rs-remedy's Introduction

remedy

crates.io docs dependency status build status

Getting Started

  • Install cargo
    • Ensure ~/.cargo/bin is in the PATH environment variable.
  • Install remedy (cargo install remedy)
  • Make a workspace directory (mkdir ~/workspace && cd "$_")
  • Create a document (echo "• b89a01bc ·A·Hello· ·B·World·\!" > test.rem)
  • Create a deck from this document (remedy deck add test.rem)
  • Initialise a session with all decks (remedy session initialize)
  • Start learning the cards in this session (remedy session learn)

What's going on?

document

  • A document contains many rems - a syntax that can generate cards.
  • A rem begins with a bullet followed by an ID of eight hex characters, and contains some text that can optionally be closed - this is the text that you want to learn.
  • Closed text belongs to a group and is defined by ·<group>·<text>·.
    • The group may be specified as an ancestor's group by prefixing the group with multiple ^ characters.

session

  • Implements the simple yet effective SM2 Algorithm.
    • Assess your retention of the card after viewing the answer.
  • On quitting the program, the session is saved.

rs-remedy's People

Contributors

rowanclarke avatar

Watchers

 avatar

rs-remedy's Issues

Cache Parsing VM

Is your feature request related to a problem? Please describe.
Cache VM when parsing for performance benefit.

Describe the solution you'd like

  • Cache indexed by files to profile
  • Cache indexed by grammar to parser

Command Interface

Is your feature request related to a problem? Please describe.
Allow plugins to register commands to the application via the command line.

Describe the solution you'd like
Provide a wrapper for the clap library.

Parse Document

Is your feature request related to a problem? Please describe.
The language server shall parse the document so that the tokens may be cached.

Describe the solution you'd like

  • Get the full document on textDocument/didChange notification
  • Get the current workspace of the document
  • Send to a Tokenizer for parsing
  • #11

Profile Manager

Is your feature request related to a problem? Please describe.
Users shall be able to specify different profiles, each with their own grammar, syntax highlighting, and usage criteria.

Describe the solution you'd like

  • A TOML file is loaded with a list of profile configurations.
  • The first profile with a matching criteria is loaded.
  • The grammar is parsed and compiled into optimised rules using pest_meta.
  • The document is parsed using pest_vm with the optimised rules and a base rule.
  • The result is returned.

Additional context
Caching the Vm will be necessary.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.