- Fix wrong pnpm engine version
- Bump treesitter to latest version
- Add .editorconfig support for shfmt #1171
- Add additonal shfmt formatting config options #1168
- Revert "Add --help fallback for documentation" #1052
- Handle non-zero exit status when formatting using shfmt #1163
- Clear diagnostics when closing document #1135
- Add support for formatting using shfmt (if installed). #1136
- Upgrade tree-sitter-bash from 0.20.7 to 0.22.5 #1148
- Dependency upgrades
- Use shellcheck's shell directive for selecting the dialect #1081
- Add --help fallback for documentation #1052
- Support for renaming symbol! #915
- Downgrade tree sitter to a stable version #911
- Drop support for Node.js 14 that is no longer maintained (security updates ended 30 Apr 2023) #893
- Internal changes: switch from yarn classic to pnpm #893
- Use cat as man pager #909
- Bump semver development dependency causing false positive distributions security warnings #905
- Handle tree-sitter-bash parse errors gracefully
- Upgrade tree-sitter-bash from 2022 November to 2023 May
- Fix flags/options insertion issue for some clients by using textEdits #861
- Dependency upgrades
- Fix flags/options insertion issue for some clients #847
- Dependency upgrades
- Add more snippets and change their naming convention #805
- Make source error diagnostics ("Source command could not be analyzed") configurable with the
enableSourceErrorDiagnostics
flag.
- Skip sending a
client/registerCapability
request when dynamic capability registration is not supported by the client #763
- ShellCheck: avoid using the diagnostic tag "deprecated" that allow clients to render diagnostics with a strike through #753
- Ensure ShellCheck directive parse does not throw on malformed input #749
- Use ShellCheck directives when analyzing source commands #747
- Support for bash options auto completions when using Brew or when
pkg-config
fails, but bash completions are found in"${PREFIX:-/usr}/share/bash-completion/bash_completion"
#717
- Remove diagnostics for missing nodes that turns out to be unstable (this was introduced in 4.5.3) #708
- Fix the ShellCheck code action feature that for some clients did not return any code actions. #700
- Support parsing
: "${VARIABLE:="default"}"
as a variable definition #693
- Use sourcing info even if
includeAllWorkspaceSymbols
is true to ensure that files not matching theglobPattern
(and therefore not part of the background analysis) is still resolved based on source commands. #695
- Skip running ShellCheck for unsupported zsh files. We will still try for files without a shebang and without a known file extension. #694
- Fix issue where some features would work as expected in case of a syntax issue #691
- Fixed
onReferences
to respect thecontext.includeDeclaration
flag #688 - Removed unnecessary dependency
urijs
#688
- Include grouped variables and functions when finding global declarations #685
- Skip completions in the middle of a non word when the following characters is not an empty list or whitespace. #684
- Remove infrequent and rather useless "Failed to parse" diagnostics (and thereby the
HIGHLIGHT_PARSING_ERRORS
andhighlightParsingErrors
configuration option) – the tree sitter parser is actually rather good at error recovery. Note that these messages will now be shown in the log. #686
- Include 30 snippets for language constructs (e.g.
if
), builtins (e.g.test
), expansions (e.g.[##]
), and external programs (e.g.sed
) #683
- Improve source command parser and include diagnostics when parser fails #673
- Fix
onHover
bug where sourced symbols on the same line as a reference would hide documentation #673
- Improved CLI output #672
- Add centralized and configurable logger that can be controlled using the
BASH_IDE_LOG_LEVEL
environment variable and workspace configuration. #669
- Fix a critical bug causing memory leaks and high CPU usage for workspaces with many files #661
- Increase ShellCheck execution delay to 500ms after typing ends.
- Simpler debouncing for ShellCheck tasks where only the last request will return diagnostics #656
- Reduce CPU usage by introduce a short execution delay and throttling for ShellCheck tasks #655
- Add support for resolving loop variables #653
- Improve heuristic for resolving variables by taking the scope into account, both locally and when sourcing files. #649
- Support client responding with
null
forworkspace/configuration
. #650
- Correctly parse environment variable
BACKGROUND_ANALYSIS_MAX_FILES
, although clients should migrate to the new configuration system (see info in the 4.0.1 release). #640
- Correct ShellCheck
source-path
argument to support following sources based on the local folder of the file and the workspace root.
- Background analysis: handle workspace root being a URL #625
- Shell documentation: add
--noprofile --norc
to avoid config files breaking formatting #626
- Symbols across files are now only included based on sourced files (using non dynamic statements like
source file.sh
or. ~/file.inc
) instead of including symbols from all files in the workspace. We now also support jump-to-definition on the file path used in a source command. The new behavior can be disabled by turning on theincludeAllWorkspaceSymbols
configuration option. #244
- Breaking: Drop support for Node 12, which reached its official end of life on April 30th 2022. Doing so enables new features. #584
- ShellCheck: support code actions, remove duplicated error codes, add URLs and tags, support parsing dialects (sh, bash, dash, ksh) but still fallback to bash, enable configuring ShellCheck arguments using the
shellcheckArguments
configuration parameter (legacy environment variable:SHELLCHECK_ARGUMENTS
) - Support workspace configuration instead of environment variables which enables updating configuration without reloading the server. We still support environment variables, but clients should migrate to the new workspace configuration. #599
- Allow disabling background analysis by setting
backgroundAnalysisMaxFiles: 0
.
- Fix missing documentation for some help pages #577
- Performant globbing and background analysis that should fix the server crashing for large workspaces. We currently limit the files parsed to 500, but can be configured using the
BACKGROUND_ANALYSIS_MAX_FILES
environment variable #569 - Enable ShellCheck integration to be disabled from the configuration. The default configuration used should be "shellcheck". #571
- Support more bash shebangs when doing background analysis #568
- Fix auto detection for path of shellcheck.exe on Windows #563
- Get rid of deprecated dependencies for the explainshell integration #564
- Fix shebang parser that ignores some bash files #560
- Dependency upgrades
- Default to shellcheck binary found on path #555
- Dependency upgrades
- Improve ShellCheck robustness for files without shebang #536
- Bunch of dependency upgrades
- Better completion kind #466
- Fix Shellcheck issue when using vim-lsp #443
- Fix Windows support for analyzer #433
- Workaround for emscripten node 18 support #404
- Fix analyzer not being called when getHighlightParsingError is off #396
- Upgrade web-tree-sitter to fix node 18 issue #394
- Linting based on shellcheck (#342)
- BREAKING: Drop node 11 support (ton of dependencies upgraded).
- Fix failing to get options if bash-completion<=2.9 (#340)
- onHover now supports for multiline code comments (#348)
- Dependency upgrades
- BREAKING: Drop node 10 support
- Upgrade dependencies
- Adds support for completing command line arguments (#294)
- Default configuration change: parsing errors are not highlighted as problems (as the grammar is buggy)
- Improved completion handler for parameter expansions (#237)
- onHover and onCompletion documentation improvements (#230)
- support 0/1 as values for
HIGHLIGHT_PARSING_ERRORS
(#231)
- Upgrade
vscode-languageserver
from 5 to 6 (#217)
- Completion handler improvements: remove duplicates, include symbols from other files, ensure that programs found on the paths are actually executable (#215)
- Recover from file reading errors (#211)
- Fix invalid documentHighlight response when word cannot be found (#209)
- Workspace symbols are resolved using fuzzy search (not just starting with it)
- Support for workspace symbols (#195)
- Improved completion handler and support auto-completion and documentation for bash reserved words (#192)
- Upgrade tree-sitter
- Skip analyzing files with a non-bash shebang
- Extend file glob used for pre-analyzing files from
**/*.sh
to**/*@(.sh|.inc|.bash|.command)
- Make file glob configurable with
GLOB_PATTERN
environment variable
- Add PATH tilde expansion
- Builtins and man pages formatting
- Expose TypeScript typings from server
- Update vscode-languageserver dependency
- Switch to tree-sitter-wasm instead of tree-sitter (native bindings) to support node 12 and to ease installation (#147)
- Upgrade
tree-sitter
from0.13.5
to0.13.22
- Upgrade
tree-sitter-bash
from0.13.3
to0.13.7
- Fix explain shell configuration issue (#80)
- Support for showing warning for missing nodes
- Upgrade
tree-sitter-bash
to0.13.3
- Upgrade
tree-sitter
to0.13.5
andtree-sitter-bash
to0.13.2
- Upgrade
tree-sitter
andtree-sitter-bash
- Fixed build issue with 1.5.0
- Upgrade
tree-sitter
andtree-sitter-bash
- It's now possible to disable error reporting by setting the environment variable
HIGHLIGHT_PARSING_ERRORS
tofalse
.
- Add support for explainshell implemented by @chrismwendt #45
- Prefer explainshell output if it's enabled by @maximbaz #58
- More reliable NPM command execution on Windows #40
-
Improved completions by adding support for
-
Implemented the
onHover
message that now shows documentation for programs and builtins when you hover your cursor over words in the document. #17 #33 -
Improved outline hierarchy #31
-
Upgraded tree-sitter bash and other libraries. #28
Update tree-sitter
to 0.10.0
and tree-sitter-bash
to 0.6.0
. This
improves the Bash parser. There are still known parsing issues. For more
information following the progress on this issue over at
tree-sitter/tree-sitter-bash#9