An [Obsidian](https://obsidian.md) plugin that adds syntax highlighting for **CRBasic** — the programming language used by [Campbell Scientific](https://www.campbellsci.com) dataloggers (CR1000X, CR300, CR6, CR800, and others) — inside fenced markdown code blocks.
## Features
- ✅ Syntax highlighting in **Edit / Live Preview** mode (CodeMirror 6)
- ✅ Syntax highlighting in **Reading View** (PrismJS-compatible classes)
- ✅ Works with any Obsidian theme — uses the theme's built-in token colors
- ✅ Case-insensitive matching (CRBasic is case-insensitive)
The `--legacy-peer-deps` flag is required because the `obsidian` npm package has a peer dependency conflict with `@codemirror/state` versions.
After building, copy `main.js`, `manifest.json`, and `styles.css` to your vault's `.obsidian/plugins/codeblock-crbasic/` folder.
## Compatibility
| Obsidian version | Status |
|---|---|
| 1.12.7+ | ✅ Tested and working |
| Older versions | Not tested |
The plugin uses:
-`Plugin.registerEditorExtension()` — available since Obsidian 0.13
-`Plugin.registerMarkdownCodeBlockProcessor()` — available since Obsidian 0.12
## Limitations
This plugin provides **syntax highlighting only**. It does not include:
- Autocomplete or IntelliSense
- Linting or error checking
- Code formatting
- Snippets
- File type associations for `.cr1x` / `.cr8` files
## License
[MIT](LICENSE)
## Acknowledgements
Token lists derived from the Campbell Scientific VSCode CRBasic extension (`daiwalkr.cr-basic-ms-vscode`). CRBasic is a product of [Campbell Scientific, Inc.](https://www.campbellsci.com)