Skip to content

LeeTeng2001/better-glsl-plugin

Repository files navigation

Better glsl plugin for intellij IDE

Version Downloads

Plugin description

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.

Roadmap

  • 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

Feature that's good to have but not in top priority

  • 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)

Installation

  • Using IDE built-in plugin system:

    Settings/Preferences > Plugins > Marketplace > Search for "better glsl" > Install Plugin

Resources I used to build this plugin