Glsl shader language support for intellij based ide. It has a lot more features than simple syntax highlighting.
This plugin is still in development, once it's done, it'll bump its version to v1.0.0.
Features 🥰:
- Code completion for built-in variables, functions, types and more
- Usage reference resolution, scope resolution for variables
- Syntax highlighter
- Common error annotator like redefinition of the same variable
- Includes standard library functions & variables
- Formatter to make your code looks good and well indented
- Macro like #include, #define and more (completion and highlighter)
Currently, it has some known limitation 🥲:
- Incomplete set of standard library
- No 100% coverage of glsl expression
- No member access validation
- No expression validation
- No function parameter validation
- No auto-completion for member access
Please give it a try and throw me with some feedback 😀! For more information and development roadmap about this plugin, please visit the plugin github repo.
- Autocomplete function name and variable name
- Member access
- Array support
- Macro, version header
- Built-in function and variables (the essential first)
- Initialise with built-in functions & initializer
- Formatter, auto indentation
- standard library usage styling
- for, while, return expression
- Boolean
- Variable proper scope reference
- Unary, prefix, postfix operation
- Support for vec type, swizzle expression
- Prefix match in auto complete to reduce noise
- Support for matrix type, double array
- Samplers & images & textures keywords
- Layout qualifier usage validation
- Common live templates like for, new file etc
- Check redefined variable in the same scope
- Swap expensive operation to less expesive one like getText -> textMatches
- Cache std lib references (custom)
- Cache references, computation result for whole file
- Fix stack overflow in origin variable
- Macro annotator + resolve #define, #include <>
- Matrix initialisation expression
- Good sample project reference
- Better expression handling for definition initialisation
- Test code example from Glsl manual
- Better auto complete, smart function name, variable name filter
- Automated unit testing
- Expression like int i, j;
- Add stub for performance and std library (optimise performance)
- Validate member access like swizzle, array access, valid member name
- Auto complete for member access
- Expression validation (no idea where to start)
-
Using IDE built-in plugin system:
Settings/Preferences > Plugins > Marketplace > Search for "better glsl" > Install Plugin
- Simple language, very brief and shallow
- Reference provider
- Reference navigation for custom language
- Code completion and syntax error recovery, talk about pin, error recovery in grammer kit
- Performance improvement tips, Very helpful