Dialogic Syntax Support for VS Code
Syntax highlighting and code snippets for Godot Dialogic timeline files (.dtl).
Features
🎨 Syntax Highlighting
Full syntax highlighting for Dialogic timeline files with color-coded elements:
- Keywords:
join, leave, update, if, set, jump, label, audio, background, etc.
- Character names: Highlighted in dialogue lines
- Dialogue text: Distinct color for conversation content
- Variables:
{variable_name} references
- Strings: Quoted text and file paths
- Numbers: Numeric values
- Comments:
# Comment text
- Operators:
=, +=, ==, >, etc.
✨ Code Snippets
Quick snippets for common Dialogic commands:
| Prefix |
Description |
join |
Add a character to the scene |
leave |
Remove a character |
update |
Update character portrait/position |
: |
Character dialogue |
set |
Set a variable |
if |
Conditional statement |
elif |
Else-if condition |
else |
Else condition |
jump |
Jump to label/timeline |
label |
Create a label |
- |
Choice option |
audio |
Play audio |
background |
Set background |
wait |
Wait for time |
signal |
Emit signal |
call |
Call function |
# |
Add comment |
🔧 Language Features
- Auto-closing pairs: Brackets, quotes, and parentheses
- Comment toggling: Use
Cmd+/ (Mac) or Ctrl+/ (Windows/Linux)
- Code folding: Fold
if/elif/else blocks and choice groups
Installation
From VSIX (Recommended for now)
- Download the
.vsix file
- Open VS Code
- Press
Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux)
- Type "Install from VSIX"
- Select the downloaded
.vsix file
From Marketplace (Coming Soon)
Search for "Dialogic Syntax Support" in the VS Code Extensions marketplace.
Usage
- Open any
.dtl file in VS Code
- Syntax highlighting will activate automatically
- Type a snippet prefix (like
join) and press Tab to use snippets
- Use
Ctrl+Space to see all available snippets
Example
# This is a comment
join juliet center
juliet: Oh Romeo, what's your favourite game type?
join romeo right
romeo: Oh Juliet, it's simple...
- Visual Novels
set {choice} = "vn"
jump VNs
- JRPG
set {choice} = "jrpg"
jump other_timeline/
label VNs
if {choice} == "vn":
juliet (happy): Great choice!
end
Dialogic Syntax Reference
Character Events
join character_name center
leave character_name
update character_name (portrait) left
Dialogue
character_name: Dialogue text
character_name (portrait): Dialogue with portrait
Variables
set {variable} = value
set {name} = "string"
set {score} += 10
Conditions
if {score} > 5:
# actions
elif {score} == 5:
# actions
else:
# actions
end
Choices
- Choice text
# action
- Conditional choice | [if {condition}]
# action
Flow Control
jump label_name
jump timeline/label
label label_name
return
audio music "res://path/to/music.mp3"
audio music -
background "res://path/to/background.png"
Other
wait 2.0
signal signal_name
call function_name(args)
# Comment
Requirements
- VS Code 1.80.0 or higher
- Godot Engine with Dialogic plugin (for runtime, not required for syntax highlighting)
Contributing
Contributions are welcome! Please visit the GitHub repository to:
- Report bugs
- Request features
- Submit pull requests
License
MIT License - See LICENSE file for details
Credits
Changelog
See CHANGELOG.md for release history.
Enjoy writing Dialogic timelines in VS Code! 🎮✨