Quantum DSL (QTN) Syntax Highlighting
Professional syntax highlighting for Photon Quantum3 DSL (.qtn) files in Visual Studio Code.
What It Does
This extension provides comprehensive syntax highlighting for the Quantum Scripting Language (QSL), Quantum3's domain-specific language for defining game data structures, components, and networking protocols. It enables developers to write clean, readable QTN code with proper color differentiation for all language constructs.
Features
Declaration Keywords
Syntax highlighting for all declaration types:
component - Define game components
struct - Define data structures
enum - Define enumeration types
flags - Define bit flag enumerations
union - Define union types
input - Define input structures
event - Define event types
signal - Define signal types
global - Define global properties
import - Import external types
Modifiers
Support for declaration modifiers:
singleton - Mark components as singletons
abstract - Mark types as abstract
synced - Synchronized property modifier
local - Local-only property modifier
remote - Remote property modifier
Primitive Types
Complete support for all primitive types:
bool - Boolean type
byte, sbyte - 8-bit integer types
short, ushort - 16-bit integer types
int, uint - 32-bit integer types
long, ulong - 64-bit integer types
Boolean - Alternative boolean name
Quantum Types
Support for Quantum3-specific types:
FP - Fixed-point number type
FPVector2 - 2D fixed-point vector
FPVector3 - 3D fixed-point vector
FPQuaternion - Quaternion for rotations
FPMatrix - Matrix type
FPBounds2 - 2D bounding box
FPBounds3 - 3D bounding box
EntityRef - Reference to game entities
PlayerRef - Reference to players
AssetRef - Reference to game assets
QString - String type
QStringUtf8 - UTF-8 string type
LayerMask - Layer mask type
Hit - 2D physics hit information
Hit3D - 3D physics hit information
Shape2D - 2D shape type
Shape3D - 3D shape type
button - Input button type
Generic and Collection Types
Support for parameterized types:
list<T> - Dynamic list type
array<T>[N] - Fixed-size array with explicit size
dictionary<K,V> - Key-value map type
hash_set<T> - Hash set type
set<T> - Ordered set type
bitset[N] - Bit set with explicit size
entity_ref<T> - Typed entity reference
player_ref<T> - Typed player reference
asset_ref<T> - Typed asset reference
Generic types support nesting, allowing complex type definitions like list<FPVector3> or dictionary<QString, int>.
Preprocessor Directives
Support for preprocessor commands:
#pragma - Compiler directives
#define - Macro definitions
Attributes
Highlighting for annotation attributes:
[Header("...")] - Group properties in inspector
[Tooltip("...")] - Provide tooltips for properties
- All custom attributes using square bracket notation
Full comment support:
// - Single-line comments
/* */ - Multi-line comments
Code Navigation
- Bracket Matching - Automatic matching for
{}, [], (), and <>
- Code Folding - Fold/unfold code regions using
// #region and // #endregion markers
- Auto-Closing Pairs - Automatically close brackets, parentheses, and quotes
String Handling
- Double-quoted strings with proper escape sequence recognition
- Escape sequences:
\\, \", \n, \t, \r, \0
Numbers
Support for multiple number formats:
- Decimal integers:
42, 0, 1000
- Floating-point:
3.14, 0.5
- Hexadecimal:
0xFF, 0x1A2B
Installation
From VSIX File
- Download the extension package
qtn-syntax-highlighting-1.0.0.vsix
- Install it using the VS Code command line:
code --install-extension qtn-syntax-highlighting-1.0.0.vsix
- Reload VS Code
- The extension will automatically activate for
.qtn files
From VS Code Extension Marketplace (when published)
- Open VS Code
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "QTN" or "Quantum DSL"
- Click Install
- The extension activates automatically
Supported File Extensions
.qtn - Quantum DSL source files
Files with the .qtn extension will automatically be recognized and highlighted.
Usage Example
Create or open a .qtn file and start writing code. Syntax highlighting will activate automatically:
// Define a player component
singleton component Player
{
// Position using Quantum types
FPVector3 position;
// Input data structure
input PlayerInput
{
FPVector2 movement;
bool jump;
}
// Event definition
event PlayerDamaged
{
int damageAmount;
EntityRef damageSource;
}
// Synced properties
synced int health = 100;
local bool isAlive;
// Collections
list<EntityRef> inventory;
array<int>[10] scores;
}
Requirements
- Visual Studio Code 1.50.0 or higher
- No additional dependencies required
Documentation
For detailed information about the Photon Quantum3 DSL, refer to:
Contributing
To report issues or suggest improvements, please submit feedback through the appropriate channels for your installation method.
License
This extension is provided as-is for use with Photon Quantum3 projects.