Compatible with: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion Gogland DataGrip Rider Android Studio
3 316 245
Bash language support for the IntelliJ plattform.
Supports syntax highlighting, rename refactoring, documentation lookup, inspections, quickfixes and much more.

Download plugin

Recent change notes

Changes in version 1.6.5:
  • #398: Error updating LexerEditorHighlighter, resulted in many error while working in a Bash script.
  • #399: Potential fix for java.lang.NoClassDefFoundError: BashIcons

Changes in version 1.6.4:
  • Sorry for the many releases!
  • #397: Tokens after a here string start were not always detected properly
  • Index version increased to avoid PSI index exceptions

Changes in version 1.6.3:
  • #395: Hotfix to make BashSupport work again with scripts containing errors
  • #396: Check for working directory only if the module is valid

Changes in version 1.6.2:
  • Increase stub index version to handle index vs. psi exceptions
  • Improved parsing to be more error resistant, functions and commands which contain faulty code will now be recognized more often
  • Handle line continuations in case pattern lists

Changes in version 1.6.1:
  • #361: Added support for the mapfile and readarray Bash builtin comamnds
  • #349: Support unicode characters in scripts, warn about invalid identifiers which include illegal characters
  • #392: Reformatting changes code in eval strings and redirect tokens
  • #388: Reformatting heredocs changes content
  • #350: Redirection in eval statement is flagged as error
  • #245: No possibly incorrect warnings about unused parameters if shift is used in the function inside of a loop.
  • #391: New inspection to highlighting unresolved, but globally registered variables (to have a separate highlighting level and inspection description)
  • #393: Update JFlex to the latest version
  • #357: Added a potential fix for the problem

Changes in version 1.6.0:
  • Compatible with builds >= 162.x, dropped support for builds 135.x to 161.x (Sorry! I'm unable to maintain 5 more branches.)
  • #389: Files with line continuations were not parsed properly and may break the whole project (might have broken your project!)
  • #377: NPE in UnregisterGlobalVariableQuickfix
  • #367: Fixed parsing of redirects in subshells inside of conditional commands, e.g. [[ $(< $1) ]]
  • #367: Fixed parsing of here-strings, e.g. "tr [:lower:] [:upper:] <<< [abc]"
  • #379: Undo "Register Global Variable" doesn't work
  • #368: Added debugging messages for arithmetic expressions
  • #383: Handle division by zero in arithmetic expressions and show a warning in the code
  • #388: References for files are now searched in the module content scope and not in the module scope.
  • Added support for the ## parameter expansion operator
  • #351: Added debug message for further diagnosis

Full changelog

General usage instructions

Github project: