Skip to content

hhvm/hack-mode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0addbff · Mar 4, 2025
Feb 24, 2021
Oct 5, 2021
Oct 9, 2018
Sep 5, 2024
Jul 26, 2018
Jul 26, 2018
Oct 9, 2018
Jul 26, 2018
Dec 23, 2021
Mar 4, 2025
May 9, 2019

Repository files navigation

hack-mode MELPA

hack-mode is an Emacs major mode for editing Hack code.

screenshot

hack-mode includes extensive, precise syntax highlighting:

  • Comment highlighting (additionally highlighting special comments like strict, HH_FIXME)
  • Keyword highlighting (case insensitive where appropriate)
  • String ('foo', "foo", <<<FOO and <<<'FOO') highlighting, including interpolation
  • XHP support

It also provides indentation, integration with hackfmt and parenthesis match highlighting.

Installation

Install from MELPA, or load this package into your elisp load-path.

Configuration

After installation, hack-mode will automatically run on .hack, .hck and .hhi files.

It will also run on .php files, but php-mode will take precedence if installed. If you want hack-mode to take precedence, use the following:

(add-to-list 'auto-mode-alist '("\\.php\\'" . hack-mode))

Formatting

hack-mode provides hack-format-buffer to run hackfmt on the whole file. If you'd like this automatically run on save, add it to your hooks:

(add-hook 'hack-mode-hook #'hack-enable-format-on-save)

Other Packages

We recommend using hack-mode with the following minor-modes:

(add-hook 'hack-mode-hook #'lsp)
(add-hook 'hack-mode-hook #'flycheck-mode)
(add-hook 'hack-mode-hook #'company-mode)

License

hack-mode is licensed under the GNU General Public License v3.0.