GLSL Support

Compatible with: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand DataGrip Rider MPS Android Studio
Mar 06, 2019
105 856
Support for GLSL - the OpenGL Shading Language

Recent change notes


  • buffer is now allowed in layout qualifier statements
  • Basic formatter - thanks wyozi!
  • Extensions .vsh and .fsh are now supported by default
  • Improve struct member parsing
  • Improve refactoring and various internal symbol tracking


  • Fix certain operator sequences freezing the IDE


  • Fix '#define's which contain their name freezing the IDE


  • Allow custom highlighting for uniforms, varyings and attributes


  • Add autocompletion for struct members
  • Add checking of constructor call parameters
  • Support scalar conversion constructors
  • Fix support for modulo operator
  • Minor fixes and improvements


  • Fix lexer not being thread safe and failing when parsing many files at the same time
  • Many minor fixes in parsing and error reporting


  • Major improvements to handling of preprocessor #define directives
  • Add checking of switch statement correctness
  • Improvements to Deduce Expression Type action
  • Distinguish between function call and constructor


  • Rewrite preprocessor token parsing to be much more robust
  • Parse multidimensional struct members correctly
  • Improve autocomplete and finding usages
  • Parse switch statements correctly
  • Overhaul new file creation, allow custom templates for all supported file extensions
  • Warn on incorrect array indexes
  • Warn on incorrect const variable handling
  • Add function parameter lookup
  • Support 4.50 opaque types (samplers)
  • Many smaller fixes and improvements


  • Vastly improved under-the-hood handling of types, operators and arrays
  • Added basic renaming and find-usages support (WIP feature)
  • Parse initializer lists correctly
  • Allow the use of multi-dimensional arrays
  • Added retina icons
  • Changed highlighting of unreachable code
  • Warn on use of reserved identifiers
  • Repeated swizzles are no longer L values
  • Add type checking for conditional expressions
  • Fix issues with return types
  • Improve unreachable statement marking
  • Many small fixes and improvements


  • Support for basic #define token replacement (everything except function-like)
  • Parse "layout qualifier statements"
  • Handling syntax and grammar errors is more robust
  • Fix variable declarations with already-defined struct types not parsing correctly
  • Improve highlighting of GLES precision statements


  • Fix problem in parsing which could cause the plugin to freeze
  • Improve handling of GLES precision statements


  • Add missing return; warning
  • Add support for layout qualifiers
  • Add support for interface blocks
  • Add error highligting in Project view
  • Add invalid initializer type warning
  • Add support for bitwise operators
  • Fix Convert Vector Components action


  • Improved unreachability analyzing
  • Recognize more file extensions
  • Improved token lexing around #if preprocessor statements
  • Added support for more native types (uint, double, uvec, dvec, dmat)


  • Brace folding for compound statements
  • Added more qualifiers from glsl 450
  • Improved highlighting, especially on dark themes
  • Parsing is a bit more robust


  • Added support for GL ES precision modifiers and statements


  • Fixed compatibility with CLion
  • Fix minor bugs

Notable older changes

  • Update to support Intellij 14
  • Update color scheme handling

General usage instructions

Compatibility: WebStorm 4.0+, PhpStorm 4.0+, IntelliJ IDEA Community or Ultimate 11.1+, PyCharm 2.5+, AppCode 1.5+