Skip to content

hylang/hy-mode

Repository files navigation

https://github.com/hylang/hy-mode/workflows/Testing%20Workflow/badge.svg

An Emacs major mode for Hy, a lisp embedded in python.

Provides autocompletion, documentation lookup, and all features required to make developing in Hy enjoyable and productive.

./img/jedhy.png

Installation

hy-mode is available in MELPA.

IDE components like autocompletion via company-mode rely on jedhy, which can be installed as standard with pip install jedhy in your virtual environment of choice, see https://github.com/ekaschalk/jedhy.

Jedhy should auto-start whenever it finds it.

Currently, completing imported packages requires sending the imports/requires/sys.path.extend manually in the current buffer with M-x hy-jedhy-update-imports.

The precise features enabled are: company-mode, eldoc-mode, and hy-describe-thing-at-point for looking up docs of the symbol at point.

Spacemacs users - Hy has its own layer in its dev branch.

Configuring

Company/Eldoc support is enabled by default with hy-jedhy--enable?.

Indentation can be customized with hy-indent--exactly and hy-indent--fuzzily.

See hy-shell.el for configuring the shell.

Raising Issues

Please provide the version of Hy you are using. The last confirmed version of Hy jedhy is compatible with is: 0.16.0.

The IDE features and management is feature-full but nascent. If you encounter issues please provide as much details as you can.

Contributing

hy-mode is well-tested. It uses buttercup rather than ert.

Execute tests after running cask install with the command: cask exec buttercup -L .

Process-based tests currently rely on setting hy-test--pyvenv-name to the name of a virtual environment containing Hy, see hy-test.el. If not set, then a warning will be given and process-based tests will be skipped.