# ISF Syntax Highlighting for Sublime Text Syntax highlighting for [Interactive Shader Format](https://isf.video) (ISF) files in Sublime Text. ISF is a GLSL-based format for describing GPU shaders used in VJ tools, creative coding environments, and video effects hosts such as VDMX, ISFTool and ISF editors on the web. This package extends GLSL highlighting with ISF-specific awareness: - Highlights the JSON metadata block in the leading `/* { ... } */` comment - Recognizes ISF uniforms (`PASSINDEX`, `RENDERSIZE`, `isf_FragNormCoord`, `TIME`, `TIMEDELTA`, `DATE`, `FRAMEINDEX`) - Recognizes ISF functions (`IMG_PIXEL`, `IMG_NORM_PIXEL`, `IMG_SIZE`, `IMG_THIS_PIXEL`, `IMG_THIS_NORM_PIXEL`, `isf_vertShaderInit`) - Recognizes ISF input types (`event`, `bool`, `long`, `float`, `point2D`, `color`, `image`, `audio`, `audioFFT`) - Full GLSL base coverage (keywords, types, built-ins, preprocessor) ## File Extensions The package registers the following extensions: - `.isf` - `.fs` - `.vs` Most ISF hosts save fragment shaders as `.fs` and vertex shaders as `.vs`, so all three are registered by default. The syntax also auto-activates via a first-line match when a file begins with a `/* {` ISF metadata block. ## Installation ### Package Control (recommended) 1. Open the Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`) 2. Run `Package Control: Install Package` 3. Search for `ISF` and install ### Manual Clone this repository into your Sublime Text `Packages` directory: ``` git clone https://codeberg.org/newrose/isf-syntax.git "$(sublime-packages-dir)/ISF" ``` ## Credits Forked from [euler0/sublime-glsl](https://github.com/euler0/sublime-glsl) and extended with ISF-specific rules. ## License MIT — see [LICENSE](LICENSE).