frenya / vscode-recall

MIT License
27 stars 7 forks source link

Introduction

Recall is an extension of Microsoft's Visual Studio Code to help you remember stuff using spaced repetition.

It creates flashcards directly from your Markdown notes and let's you test yourself repeatedly to maximize your memory retention. This can be usefull when learning a new language, taking a course on a particular subject, remembering jokes or pretty much anything else you want to remember. The choice is yours 😉

Want to learn more? You can check the documentation site.

Screenshot

How does it work?

Write your notes in Markdown and store them in .md files. Recall will scan your workspace folders, identify possible "flashcards" and test you using spaced repetition.

Notes:

How are flashcards identified

Recall scans all the .md files in you workspace and identifies flashcards using the following algorithm

To better understand the above, look at the practical examples in the demo folder.

For example, the above screenshot comes from this paragraph

### decir

|Singular|Plural  |
|--------|--------|
|decía   |decíamos|
|decías  |decíais |
|decía   |decían  |

Note: If you want to prevent a page break, put a single space on the line. Make sure you have the files.trimTrailingWhitespace set to false, otherwise it will get removed when saving the file.

Testing yourself

To really train your memory, you should do a daily review of your cards. To run it, simply run the "Recall: Flashcards Test" command in VSCode (easiest way is to press Ctrl-P to see list of commands and start typing the name).

A webview will appear show you the first page of the first card to review. You then have the following options/hotkeys:

Recall level

Every card has a so called "recall level" which indicates how well you remember it. It also represents the number of days after which it will be queued for review again.

All cards start with a default recall level of 1 which means the card will be queued for review the next day. If you mark it as remembered, the recall level will be doubled. If you mark it as forgotten, the recall level will be halved.

Configuration

You can find the configuration options in Settings (Extensions -> Recall). Pay extra attention to these configuration options

If you need to override the default level of card recognition for a particular file, you can use the YAML header.

For example, to tell Recall that individual bullets should be recognized in the file, simply add the following sequence at the beginning of your .md file.

---
recall: bullet
---

Import from Mochi

To import export files from Mochi, you can run the Recall: Convert Mochi archive command, select a .mochi archive and for every deck in it a separate new Markdown file will be created. You can then save it anywhere you want.

If your Mochi deck contains media files (e.g. pictures), they will not be extracted. To extract them, simply unzip the .mochi file into a media subfolder and correct the links in the Markdown files accordingly. You can find all the links easily by searching for "@media".

In certain cases, the import fails. This is due to a bug in the EDN parser library and would be difficult to correct. As a workaround, it is possible to unzip the .mochi file, convert the data.edn file to JSON using this tool, open the JSON file in VSCode and run the "Recall: Convert Mochi JSON" command.

Support

Credits

Some concepts of this extension were inspired by the Mochi application. Go ahead and check it out. You may find it more suitable to your needs.

Please note that I am not associated with that project in any way.