Language Server for TyranoScript. Used by the VS Code extension tyranoscript-vscode and the Zed extension tyranoscript-zed.
- Tag name completion (on
[or@input) - Parameter completion (already used parameters are excluded)
- Snippet insertion for required parameters
- Hover documentation for tags and parameters
- Automatic workspace indexing for assets, labels, macros, and characters
- Asset file completion for
storage="" - Label completion (
*xxx) fortarget="" - User-defined macro completion and hover documentation
- Asset file completion for
- Go to Definition
target="*xxx"→ jump to label definitionstorage="xxx.ks"→ jump to file[mymacro]/@mymacro→ jump to macro definition[chara_show name="xxx"]→ jump to[chara_new name="xxx"]definitionface=in[chara_mod name="akane" face="smile"]→ jump to[chara_face]definitionptext=in[chara_config]/use=in[glyph]→ jump to[ptext]/[image]definition
- Find References — list all usages of labels, macros, characters, faces, and named elements
- Diagnostics (checks the entire project, including unopened files)
- Missing required parameters (error)
- Missing file references (warning):
storage,graphic,enterimg,leaveimg,clickimg - Undefined tag/macro (warning)
- Undefined label references (warning)
- Unused labels (warning)
- Undefined character references (warning):
nameinchara_show/chara_hideetc. not defined bychara_new - Unused characters (warning):
chara_newdefined but never referenced - Skips JS code inside
[iscript]...[endscript] - Resolves relative paths containing
../ - Skips variable expansion prefixes (
&,%,[)
You can suppress specific warnings using comment directives:
; tyranoscript-disable-next-line ← suppress next line entirely
; tyranoscript-disable-next-line tyrano-unused-label ← suppress specific code only
[jump target="*unused"] ; tyranoscript-disable-line ← suppress current line
; tyranoscript-disable ← start of suppressed range
...
; tyranoscript-enable ← end of suppressed range
npm install
npm run build # bundle to dist/server.js
npm run watch # watch modeTag dictionary data is based on tyrano.Tooltip.json from orukRed/tyranosyntax.