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

Download plugin

Recent change notes

Changes in version 1.6.8:
  • #431: The arithmetic bitwise assignments are now correctly parsed.
  • #426: Fixed parsing of arithmetic operators "^", "^^", "," ",,"
  • #426: (Very) basic support to parse patterns in arithmetic expressions
  • #424: Error displaying the folding elements in the HERE-document when there are variables in the text
  • #420: Assignment chains in arithmetic expressions have to static replacement values (an exception was thrown for $((a=1,b=2,=3)), for example)
  • #419: Parsing error with double-pipe in subshell contained in list parenthesis

Changes in version 1.6.7:
  • #413: Fix variable and function resolving in files which are outside of a module content root
  • #409: Jump to function def does not work in language injected string literals
  • #408: All variables in injected language chunks are flagged as unresolved

Changes in version 1.6.6:
  • #391/#358: Removed maximum levels of chained comamnds in the parser

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: