sm213_editor is a web-based code editor for the SM213 language. It is hosted here.
- Live error reporting: Errors are displayed in real time. Error messages are descriptive so that you can understand what's wrong.
- Browser-based: You don't need to install anything to run. Just go to https://gabeperson.github.io/sm213_editor/ and start writing.
- Light mode and Dark mode: Pretty self explanatory.
- Code Formatting (Experimental): Reformats your code in a nice-to-view way.
Goto https://gabeperson.github.io/sm213_editor/.
For local development, you have to do the following:
- Install Rust.
- Install Node.
- Install Just.
- Install Wasm-pack.
- From the root directory, run
just watchwasm
in one terminal andjust watchvite
in another. - Navigate to
localhost:5173
.
The frontend, located in the sm213_editor
subdirectory in the repo, is made in HTML, CSS, and Typescript with no frameworks. It leverages Monaco Editor for the editor ui.
The parser is made in rust with a custom parser combinator framework designed for returning great errors. (I might implement a ground up parser in the future for even better errors)
The frontend communicates with the backend (compiled to wasm) using a lightweight js <-> wasm bridge, located in the sm213_parser_wasm
subdirectory in this repo.
- Instruction overwrite & unaligned instruction detection
- "Run" button in editor to actually run the code directly without having to copy it over
- Debugging support
Contributions are welcome!
Please report any issues or feature requests using GitHub issues on this repository.
If there is an issue that you would like to work on, feel free to leave a comment in the corresponding GitHub issue and then make a PR.
This work is licensed under the MIT License.