Blog

Luis Majano

October 08, 2026

Spread the word


Share your thoughts

Ortus Solutions today announces the official release of the BoxLang package for Sublime Text 4, the newest member of the BoxLang productivity tool suite.

Sublime Text has always been about speed and focus. Now it also speaks BoxLang fluently: syntax highlighting, intelligent completions, inline documentation, syntax checking, formatting, build tools and a full TestBox runner, all inside the editor you already love.

Package Control: Install Package > BoxLang

That is the whole install. Open a .bx file and you are productive.

BoxLang function completions in Sublime Text

Part of the BoxLang productivity tool suite

BoxLang is the software productivity platform for building, modernizing and running applications, with developers and AI agents working together. A platform is only as productive as the tools around it, so we ship first-class support where you work.

The Sublime Text package joins our growing editor lineup. BoxLang is also supported in VS Code, Cursor, IntelliJ and more, so whichever editor your team standardizes on, BoxLang meets you there. Same language, same docs, your choice of tool.

This package is official, built and maintained by Ortus Solutions, and released under Apache 2.0.

What's in the box

Syntax highlighting for every BoxLang file type

  • .bx: script classes with full syntax support
  • .bxs: script-only files
  • .bxm: templates with embedded script blocks

Modern BoxLang constructs are covered too: range operators, assert with messages, set and StringBuilder literals, and two-variable for loops over arrays and structs.

Intelligent completions

WhatHow many
Built-in functions (BIFs), core plus module940+ with parameter hints and snippet insertion
bx: tags (components), core plus module86 with attribute completions
Member functions for native types370+ (string, array, struct, query, numeric, date, datetime, list, xml)

On top of that you get:

  • Type-aware completions based on inferred variable types, from literals, new expressions, createObject() calls, BIF return types and variable assignment tracing
  • Dot-path completions for import, new and createObject()
  • Project-wide component indexing with inheritance resolution
  • Application.bx lifecycle completions and in-file function, variable and property completions

Completion data is generated straight from the official BoxLang docs, and covers the core runtime plus modules such as bx-jwt, bx-redis, bx-spreadsheet, bx-ldap, bx-csv, bx-couchbase, bx-meilisearch, bx-plus and more.

Inline BoxLang function documentation in Sublime Text

Documentation without leaving the editor

  • F1 popup with full documentation and parameter references
  • Hover docs for quick info under your mouse
  • Completion docs with parameter hints as you type
  • Go to Docs to jump straight to boxlang.ortusbooks.com

Syntax checking as you work

The package runs boxlang check to find errors without executing your code.

  • On save by default, or while typing if you opt in
  • Squiggles, gutter icons, inline error text, a hover popup and a full error panel
  • F4 and Shift+F4 to jump between errors
  • Check Project to validate every file at once

TestBox, built in

Run tests from the Command Palette without switching to a terminal:

  • Run Bundle for the current file
  • Run Spec at Cursor for the it(), test() or function testXxx() above your cursor, or the enclosing describe() suite
  • Run All Tests and Run Last
  • Go to TestBox Spec or Suite to jump to any describe(), it(), feature(), story() or xUnit test in the file, with live preview as you move through the list

Results land in a clickable output panel, and failing lines in open files get a squiggle, a gutter icon and an inline message. Tests run through TestBox's BoxLang runner by default, and teams with a web runner can opt in per project:

{
  "settings": {
    "boxlang_testbox": {
      "http_runner_url": "http://localhost:8080/tests/runner.bxm"
    }
  }
}
TestBox test results in Sublime Text
Navigating TestBox specs from Sublime Text

Build, compile, format

VariantUse
RunExecute the current file
Run with ArgumentsExecute with CLI args
Run with DebugRun with debug output
Compile File / ProjectCompile to ./bin
Check Syntax / Check ProjectValidate without running
Feature AuditAudit CFML to BoxLang compatibility

Format your code with Shift+Alt+F (Shift+Option+F on macOS), powered by the boxlang format CLI, or turn on format on save.

  • Goto Symbol lists classes (including inner and local classes) and functions, in both script and tag form
  • Go to Definition with Ctrl+Click (Cmd+Click on macOS)
  • Go to Property lists every property declaration in a file
  • Controller/view toggle with Ctrl+F1
  • 19 snippets, including bxclass, bxtest, bxtry, bxset, bxrange, bxtransformer, bxscheduler and bxtask

Know exactly which BoxLang you are running

BoxLang: Show Version Info re-detects your install and tells you what Sublime Text is using, whether you installed through BVM, Homebrew, the quick installer or the Windows installer:

BoxLang Version Info
============================================================
Version      : 1.18.0+1
Executable   : /Users/you/.local/bin/boxlang
Source       : Quick installer (user)
Features     : syntax check available
BOXLANG_HOME : /Users/you/.boxlang (default, variable not set)

Project      : /Users/you/work/app
  .boxlang.json : not found

Upgrade      : install-boxlang --check-update

If you use BVM, the status bar even warns you when your project's .bvmrc does not match the active version.

BoxLang function completions in Sublime Text

Context-aware completions

Inline BoxLang function documentation in Sublime Text

Inline documentation

BoxLang syntax errors shown inline and in the error panel

Syntax diagnostics

BoxLang build variants in the Sublime Text command palette

Build variants

TestBox test results in Sublime Text

TestBox results

Navigating TestBox specs from Sublime Text

TestBox spec navigation

Under the hood

We did not bolt on regex highlighting and call it a day.

  • AST-based parsing for .bx and .bxs files, using the BoxLang CLI itself, so the editor understands your code the way the runtime does
  • A flexible tag parser for .bxm templates
  • A pluggable architecture for completions, docs, classes, dot paths, type completions and lifecycle methods
  • Medium-depth type inference that stays fast and predictable
  • A real test suite: 363 tests, run in CI on Python 3.11, 3.12 and 3.13

The architecture draws inspiration from the excellent sublimetext-cfml package, reimagined and rebuilt from the ground up for BoxLang.

Get started

Requirements

DependencyVersion
Sublime Text4 (Build 4180+)
BoxLang1.17.0+
Python3.11+ (bundled with Sublime Text)

Syntax highlighting works without BoxLang installed. The full feature set needs the BoxLang CLI available on your PATH.

Install

  1. Open the Command Palette (Cmd+Shift+P or Ctrl+Shift+P)
  2. Select Package Control: Install Package
  3. Search for BoxLang and press Enter

On first launch a setup wizard detects BoxLang, optionally enables CFML file handling (.cfc, .cfm, .cfs) and shows you the essential shortcuts. Re-run it anytime with BoxLang: Run Setup Wizard.

Pin a specific BoxLang if you have more than one install, in Preferences: BoxLang Settings:

{ "boxlang_executable_path": "/Users/you/.local/bin/boxlang" }

Open source, and we want your feedback

The package is Apache 2.0 licensed and lives on GitHub. Try it, star it, file issues and send pull requests. Contribution guidelines and the full settings reference are in the repo.

Resources

Install it, open a .bx file, and write BoxLang at the speed of Sublime.

Add Your Comment

Recent Entries

Modernizing Legacy ColdFusion Doesn't Have to Mean Rewriting It

Modernizing Legacy ColdFusion Doesn't Have to Mean Rewriting It

Your CFML application may be old, large, and business critical. That doesn't mean modernization has to start with a rewrite.

When organizations talk about modernizing a legacy ColdFusion application, the conversation can quickly become much bigger than it needs to be.

Do we need a new frontend?

Should we rebuild the APIs?

Do we need React or Vue?

Should we replace the application entirely?

How many developers will that require?

Cristobal Escobar
Cristobal Escobar
October 05, 2026
BoxLang 1.18.0 Released :  Every Cloud, Every Node, Every Agent

BoxLang 1.18.0 Released : Every Cloud, Every Node, Every Agent

Azure joins the serverless family. Scheduled tasks become cluster-safe. And the whole platform gets documentation and skills built for developers and AI agents working side by side.

If you run a technology organization, you are being asked to do three things at once: ship faster, keep the estate you already have running, and make AI part of how your teams work. Most stacks make you choose. BoxLang 1.18 is another step toward not having to.

Luis Majano
Luis Majano
October 02, 2026