Skip to content

About

Language support for Obfusku, the symbolic ritualistic esoteric programming language, directly inside VS Code.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Obfusku for VS Code

Obfusku icon

Highlighting ✦ Live Diagnostics ✦ Project-Aware Tasks
Language support for Obfusku, the symbolic ritualistic esoteric programming language, directly inside VS Code.

Version License CI


Why This Extension

Obfusku expresses computation through a frozen alphabet of glyphs (λ, ≔, ⟡, ▷, ☄, ☊, ❧…) rather than ASCII keywords. Without editor support, that alphabet is just unrecognized text to VS Code — no highlighting, no error feedback until you run the CLI by hand, no sense of whether a directory is a Project or a bare file.

This extension closes that gap: it never reimplements any of Obfusku's language logic itself — parsing, type inference, and formatting all stay owned by the obfusku/obfusku-lsp binaries — it only wires their real output into VS Code's native UI.


Key Features

Syntax Highlighting

A TextMate grammar built directly from spec/CONCRETE_SYMBOLIC_GRAMMAR.md's glyph table — binders (≔ ˚ ⚙︎), control (⟡ ☄ ☊), base types, pattern/match syntax, and every operator at its correct precedence group.

Live Diagnostics

obfusku-lsp runs as a real language server, pushing type errors, parse errors, and warnings as you type — against the unsaved buffer, not just on save.

Formatting

Formats the current buffer through obfusku fmt, no save required first.

Project Support

Recognizes obfusku.toml (spec/adr/ADR-017/018/020) the same way the CLI does — walking upward from the active file:

  • Obfusku: Build Project and its editor-title icon appear only when the active file sits inside a Project.
  • Build/Run tasks (Terminal: Run Task → obfusku) for every workspace folder with a manifest, with errors and warnings attributed to the Project's entry file and surfaced in the Problems panel.
  • Schema-backed completion for obfusku.toml when the Even Better TOML extension is installed.

Commands

Command What it does
Obfusku: Run File Runs the active file with obfusku run and shows output
Obfusku: Type Check File Runs obfusku check and refreshes diagnostics
Obfusku: Format File Formats the active file
Obfusku: Open REPL Opens an integrated terminal running obfusku repl
Obfusku: Build Project Runs obfusku build (only shown inside a Project)
Obfusku: Show Language Server Output Opens the obfusku-lsp output channel

Status Bar

Shows whether obfusku-lsp is running, starting, or failed to start — click it to jump straight to the server's own log.

Snippets

Functions, bindings, type declarations (sum/record/tuple), match, conditionals, raise/catch, and imports.


Requirements

Both obfusku and obfusku-lsp must be installed and resolvable on PATH — the official install.sh installs both together:

curl -fsSL https://raw.githubusercontent.com/core-red-project/obfusku/main/install.sh | bash

If they live somewhere else, point to them explicitly:

{
  "obfusku.path": "/path/to/obfusku",
  "obfusku.lspPath": "/path/to/obfusku-lsp"
}

Compatible versions

The extension reads obfusku --version and enables only what that CLI can do. Tested against 1.0.0 and 1.1.0.

Feature 1.0.x 1.1.x
Live diagnostics (obfusku-lsp) yes yes
Error in an imported module drawn on the importing file at the imported file's line pinned to line 1 with an "in an imported module" prefix
Closing a file its diagnostics stay in Problems cleared
Buffer not on disk yet could not read '<path>' checked against its directory
Type Check File, Run, Build, REPL yes (text output) yes (JSON output)
Format File disabled: the 1.0 formatter deletes comments yes
Run Project Tests and the test task no yes
Manifest format 2 ([capabilities], [dependencies]…) no yes

The obfusku-lsp rows come from running the real server (tests/lsp, selectable with OBFUSKU_LSP_PATH and OBFUSKU_PATH); the extension cannot correct what a 1.0 server publishes.

A 1.0.x CLI shows a notice once. Anything from 2.0 on is outside the tested range and also notices once; 1.x releases after 1.1 keep every 1.1 feature. Keep obfusku and obfusku-lsp on the same version.

Settings

Setting Default Description
obfusku.path "obfusku" Path to the obfusku CLI executable
obfusku.lspPath "obfusku-lsp" Path to the obfusku-lsp language server executable

Known Limitations

  • With obfusku 1.0.x a brand-new file that is not on disk yet is reported as unreadable until it is saved once; 1.1 checks it against its directory.
  • No hover, go-to-definition, or completion yet — obfusku-lsp currently implements textDocument/publishDiagnostics only.
  • Build/Run tasks don't use a declarative problemMatcher: the CLI's plain-text diagnostic lines (error: message (line:col)) never include a filename, so a regex-based matcher has nothing to key on. Instead, the task provider resolves the Project's entry file itself and attributes diagnostics to it directly — correct for the common case, but a diagnostic that actually originates in an imported module still surfaces against the entry file, not the module that raised it.

Resources & Community


Obfusku for VS Code — A Core Red Project
© 2026 Sxnnyside Project. Distributed under the MIT License.

About

Language support for Obfusku, the symbolic ritualistic esoteric programming language, directly inside VS Code.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages