|:------------------------------------------------------:|
| ⚡︎ B o x L a n g ⚡︎
| Dynamic : Modular : Productive
|:------------------------------------------------------:|
Copyright Since 2023 by Ortus Solutions, Corp
www.boxlang.io | www.ortussolutions.com
- Overview
- Features
- Installation
- Usage
- Configuration
- Bundle Development & Maintenance
- Language Features
- Troubleshooting
- Contributing
- Changelog
- License
- Open-Source & Professional Support
- Ortus Sponsors
A comprehensive TextMate bundle that provides rich language support for BoxLang development, including syntax highlighting, code execution, documentation lookup, intelligent code navigation, and extensive code snippets.
🌟 Key Highlights:
- 315+ Built-In Functions automatically updated from BoxLang API
- 52+ Code Snippets for rapid development
- 3 Beautiful Themes with BoxLang's signature green-cyan palette
- Full HTML Integration in template files (
.bxm
) - Automated CI/CD Pipeline for always up-to-date releases
- BoxLang Script (
.bx
,.bxs
) - Full syntax highlighting for BoxLang script files - BoxLang Templates (
.bxm
) - Template syntax with embedded script support and HTML integration - HTML Markup Support - Complete HTML syntax highlighting within template files with proper comment handling
- Dynamic BIF Recognition - Automatically updated Built-In Functions from BoxLang API documentation
- Modern Language Features - Support for lambda functions, arrow functions, and advanced syntax
Beautiful themes designed with BoxLang's signature green-cyan gradient colors:
- BoxLang Light - Clean, professional light theme with vibrant accents
- BoxLang Dark - Modern dark theme perfect for extended coding sessions
- BoxLang High Contrast - Accessibility-focused theme with enhanced readability
All themes feature:
- Brand Consistency - Uses BoxLang's signature green-cyan color palette
- Semantic Highlighting - Different colors for keywords, functions, strings, and components
- BoxLang-Specific - Special highlighting for
bx:
components and built-in functions - Eye Comfort - Carefully chosen contrast ratios for reduced eye strain
- Run Current File - Execute the current BoxLang file with a single command
- Run with Arguments - Execute files with custom command-line arguments
- Run Selected Code - Execute only the selected code snippet
- BoxLang REPL - Launch an interactive BoxLang Read-Eval-Print Loop
Comprehensive snippet collection for rapid development:
class
- Class definition with inheritance and interfacesinterface
- Interface definitionfunction
- Function declaration with modifiersproperty
- Property declaration with attributesimport
- Import statement with module supportvar
- Variable declarationnew
- Object instantiation
if
/ife
- If and if-else statementsfor
/forin
- Traditional and for-in loopswhile
/do
- While and do-while loopsswitch
/case
/default
- Switch statementstry
/tryf
- Try-catch and try-catch-finally blocksbreak
/continue
- Loop control statements
anon
- Anonymous function:function(params) {}
closure
- Closure with=>
:(params) => {}
lambda
- Lambda with->
:(params) -> {}
public
/private
/static
/final
/abstract
/remote
- Method and property modifiers
array
/struct
- Literal declarationseach
/seach
- Array and struct iterationmap
/filter
/reduce
- Functional programming methods
bxhttp
- HTTP request componentbxfile
- File operation componentbxquery
- Database query componentlock
/thread
/transaction
- Concurrency components
test
- Test case template with Given-When-Then structuredoc
- JavaDoc comment templatetodo
- TODO commentmain
- Main method templateprintln
/dump
- Debugging utilities
- API Documentation - Quick access to BoxLang API documentation
- Context-Sensitive Help - Get documentation for the word under cursor
- Built-in Examples - Sample files demonstrating BoxLang features
- Auto-Updated BIFs - Built-In Functions automatically extracted from latest API docs
- Symbol Lists - Navigate through classes, methods, and variables
- Smart Folding - Intelligent code folding for better readability
- Go to Symbol - Quick navigation to class definitions and method declarations
- CI/CD Pipeline - Automated builds and releases via GitHub Actions
- Version Management - Automatic version bumping and changelog generation
- Multi-format Releases - Both
.zip
and.tar.gz
formats available - S3 Distribution - Fast global distribution via AWS S3
- Snapshot Builds - Development builds from
development
branch
- TextMate 2.0 or later (also compatible with VS Code, Sublime Text, and other TextMate-compatible editors)
- BoxLang runtime installed and available in your PATH
cd ~/Library/Application\ Support/TextMate/Bundles/
git clone https://github.com/ortus-boxlang/boxlang.tmbundle.git
Recommended: Download the latest stable release for the most up-to-date features and BIF definitions.
- Visit the releases page
- Download the latest release (available in
.zip
and.tar.gz
formats) - Extract the bundle to
~/Library/Application Support/TextMate/Bundles/
- Restart TextMate or reload bundles with
Bundles → Bundle Editor → Reload Bundles
For the latest features and fixes (may be unstable):
- Check the S3 bucket for snapshot builds
- Download the latest snapshot build
- Follow the same extraction steps as above
After installation, verify the bundle is working:
- Create a new file with
.bx
extension - Type
class
and press Tab - you should see a class template - The syntax should be highlighted in BoxLang colors
⌘R
should be available to run BoxLang files
.bx
- BoxLang script files.bxs
- BoxLang script files.bxm
- BoxLang template files
⌘R
- Run current file⌘⇧R
- Run with arguments⌃⌘R
- Run selected code⌃H
- Show documentation for current word⌃⌥⌘H
- Open BoxLang API documentation
class
+ Tab - Class definitionfunction
+ Tab - Function declarationanon
+ Tab - Anonymous functionclosure
+ Tab - Closure with=>
lambda
+ Tab - Lambda with->
if
+ Tab - If statementfor
+ Tab - For looptry
+ Tab - Try-catch blockeach
+ Tab - Array iterationbxhttp
+ Tab - HTTP componenttest
+ Tab - Test case template- And 44 more snippets for rapid development!
The bundle includes three custom themes optimized for BoxLang development:
- Open TextMate Preferences (
⌘,
) - Go to the Themes tab
- Select from the available BoxLang themes:
- BoxLang Light - For bright, comfortable daytime coding
- BoxLang Dark - For reduced eye strain and night coding
- BoxLang High Contrast - For maximum accessibility and readability
- Consistent Branding - All themes use BoxLang's signature color palette
- Syntax-Aware - Distinct colors for keywords, functions, strings, and comments
- Component Highlighting - Special treatment for
bx:
components and attributes - BIF Recognition - Built-in functions styled for easy identification
- Template Support - Optimized for both script and template file types
The bundle includes several file templates to help you quickly create new BoxLang files. Access them via File → New From Template → BoxLang
:
- BoxLang Class (
.bx
) - Basic class template with constructor - BoxLang Component (
.bx
) - Component template with initialization - BoxLang Service (
.bx
) - Service layer template with singleton annotation - BoxLang Interface (
.bx
) - Interface template with sample method signature - BoxLang Test (
.bx
) - TestBox-compatible test template - BoxLang Script (
.bxs
) - Executable script template with shebang - BoxLang Template (
.bxm
) - HTML template with embedded BoxLang script
All templates include:
- Proper file headers with author and date placeholders
- Basic structure and common patterns
- Cursor positioning for immediate coding (
$0
placeholder)
The bundle includes sample files in the Samples/
directory:
Class.bxm
- Class definition exampleUserService.bx
- Service layer exampleScheduler.bx
- Task scheduling examplegeneratePrimes.bxs
- Algorithm exampleInput.bx
- User input handling
Ensure BoxLang is installed and the boxlang
command is available in your PATH. You can verify installation by running:
boxlang --version
You can customize the execution commands by editing the .tmCommand
files in the Commands/
directory.
The BoxLang TextMate bundle features a sophisticated CI/CD pipeline that ensures always up-to-date releases:
- Automated BIF Extraction - Built-In Functions are automatically extracted from the latest BoxLang API documentation
- Version Management - Versions are read from
box.json
and automatically applied to bundle metadata - Multi-Branch Releases - Snapshot builds from
development
branch, stable releases frommain
- Multiple Distribution Channels - Released to both GitHub Releases and AWS S3 for global availability
- Quality Assurance - All releases include automated testing and validation
boxlang.tmbundle/
├── Commands/ # Execution and utility commands
├── Preferences/ # Editor behavior and folding rules
├── Samples/ # Example BoxLang files
├── Snippets/ # 52+ code snippets for rapid development
├── Support/ # Utilities and extracted BIF lists
├── Syntaxes/ # Language grammar definitions
├── Templates/ # File templates for new documents
└── info.plist # Bundle metadata and configuration
The bundle automatically stays current with BoxLang development:
- BIF Synchronization - Built-In Functions are extracted fresh from API docs with each release
- Grammar Updates - Language grammar updated to match BoxLang language evolution
- Feature Additions - New language features and capabilities added as BoxLang grows
- Community Feedback - Regular updates based on developer community needs
- Classes and Interfaces - Full OOP support with inheritance and implementations
- Methods and Functions - Named functions, anonymous functions, lambda expressions, arrow functions
- Variables and Scoped Variables - var, final, static declarations with proper scoping
- Annotations and Metadata - @annotation support with parameter passing
- Components and Templates - bx: prefixed components with attribute support
- String Interpolation -
#variable#
expressions within strings - Comments - Single-line (
//
), multi-line (/* */
), and documentation (/** */
) comments - Keywords and Operators - Complete BoxLang keyword set and operator precedence
- Numbers and Literals - Integer, float, string, boolean, and null literals
- Collection Literals - Array
[]
and struct{}
literal syntax - Control Structures - if/else, for/while/do-while, switch/case, try/catch/finally
- Functional Programming - map, filter, reduce, each operations on collections
- Concurrency - lock, thread, transaction components
- Type System - Dynamic typing with optional type hints
- Module System - import statements with aliasing and module references
- Component Architecture - Reusable components with attribute binding
- HTML Integration - Seamless mixing of HTML and BoxLang code
- Embedded Script Blocks -
<bx:script>
tags for server-side logic - Component Islands - ``` delimited component blocks
- Tag-based Syntax - XML-style component syntax with attributes
- Expression Interpolation -
#expression#
evaluation within templates
- 315+ Built-In Functions - Automatically extracted from BoxLang API documentation
- Auto-Updated - BIF list refreshed with each release from official API docs
- Categorized Functions - Array, String, Math, Date, Decision, Conversion, Struct, Query, System, Cache, Encryption, XML, and Zip functions
- Intelligent Completion - All BIFs available for syntax highlighting and completion
If you receive a "BoxLang command not found" error:
- Verify BoxLang is installed:
which boxlang
- Add BoxLang to your PATH in your shell profile
- Restart TextMate after updating your PATH
- Ensure the file extension is recognized (
.bx
,.bxs
,.bxm
) - Manually set the language:
View → Language → BoxLang
- Reload bundles:
Bundles → Bundle Editor → Reload Bundles
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
- Reporting bugs
- Suggesting features
- Submitting pull requests
- Code style guidelines
See CHANGELOG.md for a detailed history of changes and updates.
Apache License, Version 2.0.
This project is a professional open source project and is available as FREE and open source to use. Ortus Solutions, Corp provides commercial support, training and commercial subscriptions which include the following:
- Professional Support and Priority Queuing
- Remote Assistance and Troubleshooting
- New Feature Requests and Custom Development
- Custom SLAs
- Application Modernization and Migration Services
- Performance Audits
- Enterprise Modules and Integrations
- Much More
Visit us at BoxLang.io Plans for more information.
BoxLang is a professional open-source project and it is completely funded by the community and Ortus Solutions, Corp. Ortus Patreons get many benefits like a cfcasts account, a FORGEBOX Pro account and so much more. If you are interested in becoming a sponsor, please visit our patronage page: https://patreon.com/ortussolutions
"I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12