GLSL Support
for IntelliJ IDEA

Compatible with all products except MPS
52 956
Support for the OpenGL Shading Language

Download plugin

Recent change notes


  • 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+
Works well except for problems dealing with macro function definitions.
The new version works absolutely wonderfully. It does appear to have issues with layout(), though? I use layout(location=X) for some shaders, and the plugin is giving me an error when it parses it.
Hello, maybe You can help me with my question Why do you not upload the new version instead of put the link? Thanks, Perry
Apparently the comment form stripped out my xml :( Anyway, copy an option under attribuges, name it "GLSL.TEXT" and set style value as with others
Those with dark color schemes might find it frustrating that unidentified areas of text are just colored black. You can overwrite this by editing the style .icls file manually and add this under attributes; This colors those parts white.
Nice plugin! and thanks Eugene for adding that feature!
I fixed the plugin for the Darcula theme by adding a new color category for various tokens previously shown in black. Compiled plugin: Source code:
Nice idea, but crashes my Intellij every time by hammering the CPU to the point that intellij stops responding and has to be killed. MacOSX 10.7.5 Intellij 12.0.4
Having the same problem as photex. Hard to use with Darcula theme.
It's nice to have GLSL support! Works pretty well, but please add support for configuring the color scheme for braces, commas, semicolons, dots, etc etc. They are by default set to black and people like me who use dark color schemes can't use this plugin.
This is a great improvement from having to edit GLSL files as plain text in IntelliJ.

I hope the plugin will get a bit of support from JetBrains.

Some obvious suggestions:
1) Provide an exception reporter
2) "Deduce expression type" action (in context menu) is added to all file types, instead of just GLSL
3) Some support for WebGL/GLSL ES

Please  sign in  to leave a comment.