Sep 16, 2017
5 085 024
Bash language support for the IntelliJ platform.
Supports syntax highlighting, rename refactoring, documentation lookup, inspections, quickfixes and much more.
Recent change notes
Changes in version 1.6.12:
Changes in version 1.6.11:
- #457: Unresolved Variable Warning on Linebreak
- #459: Fixed formatting of redirects with process substitutions
- #460: Parse commands separated by |&
- #462: Unexpected Token w/ declare and some other constructs
- #465: BashShebang NPE
- #467: Deadlock in BashSupport
- #468: Functions assumed to have curly brace body
- #469: Support variables defined by `printf -v`
- #473: Support heredocs where the end marker is followed by a backtick
- #474: Support semicolon after command which starts a heredoc
Changes in version 1.6.10:
- #394: Renaming a variable shows 'Renaming unknown type $1' in the dialog
- #401: Parameter expansion parsing error
- #404: Using array variable without quotes generates a warning "Simple use of array variable"
- #411: NPE in OSUtil.findBestExecutable
- #412: Syntax Errors on valid code involving regular expression
- #433: BashCommandManipulator: Cannot modify a read-only file
- #444: Formatter removes space after empty string variable assignment
- #452: Concurrent modification in BashVarDefImpl
- #453: A weird light blue background is seen over my code area
- #454: Using "mapfile" results in "Array use of non-array variables"
- #456: NPE in BashVarDefImpl
Changes in version 1.6.9:
- #451: Fix stub exceptions triggered by BashSupport while looking for include files (Thanks to @kshchepanovskyi). If you include non-bash files, then this might break. Let me know in that case..
- #450: If a script has an exit call on toplevel we assume that all following lines contain non-bash/binary data. The content after the exit command will be highlighed as binary data. Before an exception was thrown and IDEA had to be restarted.
- #449: Don't warn on variable identifiers declared in an eval block
- Removed "Build" step from default Bash run configuration
Changes in version 1.6.8:
- #432: Unexpected token on correct line with here-string
- #427: Wrong autoformatting for wrapped heredoc
- #418: Fix to parsed structure of variable assignment lists
Changes in version 1.6.7:
- #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.6:
- #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.5:
- #391/#358: Removed maximum levels of chained comamnds in the parser
Changes in version 1.6.4:
- #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.3:
- 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.2:
- #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.1:
- 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.0:
- #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
- 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
General usage instructions
Github project: https://github.com/jansorg/BashSupport