Developer tools for Monkey C, the language used to build apps for Garmin
devices. A formatter, a linter, a language server for your editor and test
coverage, all in one command called rafiki.
Read the documentation to get started.
cargo install --git https://github.com/bombsimon/monkey-c-rs rafiki --rev <commit>Nothing is stable yet, so pin the version with --rev.
rafiki fmt # format the project
rafiki lint --fix # lint, applying the fixes that are safe
rafiki server # run the language server for your editor
rafiki coverage test -d fr965 -y key.der # measure which functions the tests runSettings go in a rafiki.toml, which the editor and the command line both read.
See Configuration for what can be set.
Bug reports and ideas are welcome. Please open an issue for anything you run into or would like to see.
For transparency: this project is being built with assistance of AI. However, all implementations are suggested by me, discussed, and reviewed before being committed. The focus is still to build the best tools possible and know and understand 100% of the codebase. Although not every line of code is written by hand, the goal is to avoid slop.
In addition to this project I'm also working on other projects to improve the developer experience for Garmin Connect IQ development.
- garmin-monkeyc.nvim - A Neovim port of the VS Code Connect IQ plugin
- tree-sitter-monkey-c - Tree-sitter implementation for Monkey C
- awesome-garmin - An awesome list of Garmin applications and tools for Garmin
This repository is licensed under the MIT License.
