CodeBlock CRBasic

approved

by samutley

Syntax highlighting for CRBasic (Campbell Scientific) markdown code blocks. - This plugin has not been manually reviewed by Obsidian staff.

72 downloadsUpdated 2mo agoMIT

CodeBlock CRBasic

An Obsidian plugin that adds syntax highlighting for CRBasic — the programming language used by Campbell Scientific 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)
  • ✅ Highlights keywords, built-in functions, operators, constants, strings, comments, numbers, and preprocessor directives

What Gets Highlighted

TokenExamples
KeywordsBeginProg, EndProg, Scan, NextScan, If, Else, Sub, Public, Dim, For, While
Built-in functionsVoltSE, PanelTemp, Average, Sample, DataTable, GPS, SerialOpen, HTTPGet
Logical operatorsAND, OR, NOT, MOD, XOR
ConstantsTrue, False, As, LoggerType
Preprocessor#If, #ElseIf, #EndIf
Strings"Hello World"
Comments' this is a comment
Numbers3.14, 60, 1000
Operators=, <>, >=, +=, &

Usage

Use the language identifier crbasic in a fenced code block:

```crbasic
' CR1000X example program

Public BattV As Float

DataTable(OneMin, True, -1)
  DataInterval(0, 1, Min, 10)
  Minimum(1, BattV, FP2, False)
EndTable

BeginProg
  Scan(5, Sec, 1, 0)
    Battery(BattV)
    CallTable OneMin
  NextScan
EndProg
```

Installation

From Community Plugins (recommended)

  1. Open Obsidian → SettingsCommunity plugins
  2. Turn off Restricted mode if prompted
  3. Click Browse and search for CodeBlock CRBasic
  4. Click Install, then Enable

Manual Installation

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Create the folder .obsidian/plugins/codeblock-crbasic/ inside your vault
  3. Copy the three files into that folder
  4. Open Obsidian → SettingsCommunity plugins → enable CodeBlock CRBasic

Building from Source

Requires Node.js 18+.

git clone https://github.com/utleysam/codeblock-crbasic.git
cd codeblock-crbasic
npm install --legacy-peer-deps
npm run build

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 versionStatus
1.12.7+✅ Tested and working
Older versionsNot 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

Acknowledgements

Token lists derived from the Campbell Scientific VSCode CRBasic extension (daiwalkr.cr-basic-ms-vscode). CRBasic is a product of Campbell Scientific, Inc.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.