CodeBlock CRBasic

by samutley
5
4
3
2
1
Score: 35/100

Description

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

Reviews

No reviews yet.

Stats

stars
12
downloads
0
forks
1
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

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

Token Examples
Keywords BeginProg, EndProg, Scan, NextScan, If, Else, Sub, Public, Dim, For, While
Built-in functions VoltSE, PanelTemp, Average, Sample, DataTable, GPS, SerialOpen, HTTPGet
Logical operators AND, OR, NOT, MOD, XOR
Constants True, False, As, LoggerType
Preprocessor #If, #ElseIf, #EndIf
Strings "Hello World"
Comments ' this is a comment
Numbers 3.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

  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 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

Acknowledgements

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