Awesome
flymake-shellcheck (maintenance mode)
Note: If you're using Emacs version 29 or higher, installing this package is not necessary, as the Flymake-Shellcheck integration is now built-in into the editor. This project is now in maintenance mode; no new features or enhancements will be made for it, unless they are required for security reasons.
An Emacs (26+) Flymake handler for bash/sh scripts, using ShellCheck. Installing Flymake is not necessary as it is included with Emacs itself.
Installation
First, make sure ShellCheck is installed by following the installation guide. After that, you can install flymake-shellcheck
by using the package-install
command (make sure MELPA is included in your package sources):
<kbd>M-x</kbd> package-install
<kbd>RET</kbd> flymake-shellcheck
<kbd>RET</kbd>
Alternatively, you can just add flymake-shellcheck.el
to your load-path
.
Usage
To enable the Flymake backend whenever a bash or sh script is visited, add the following to your init.el
file:
(add-hook 'sh-mode-hook 'flymake-shellcheck-load)
If you're using use-package
, try this instead:
(use-package flymake-shellcheck
:commands flymake-shellcheck-load
:init
(add-hook 'sh-mode-hook 'flymake-shellcheck-load))
After opening a shell/sh file, remember to enable Flymake:
<kbd>M-x</kbd> flymake-mode
<kbd>RET</kbd>
Customization
- You can set the
flymake-shellcheck-program
variable to the path of the ShellCheck executable in your system, in caseexecutable-find
wasn't able to find it automatically. - You can set the
flymake-shellcheck-use-file
variable tonil
if you wish to run the syntax checker on the contents of the buffer, rather than the contents of the file on disk (default:t
). - You can set the
flymake-shellcheck-allow-external-files
variable tot
if you want to allow shellcheck to read external sources (it adds-x
as argument, described in the SC1091 docs, default:nil
).
License
Distributed under the GNU General Public License, version 3.