Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hylang/hy-mode

Hy mode for Emacs
https://github.com/hylang/hy-mode

Last synced: 3 months ago
JSON representation

Hy mode for Emacs

Awesome Lists containing this project

README

        

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

An Emacs major mode for [[http://docs.hylang.org/en/stable/][Hy]], a lisp embedded in python.

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

[[file:./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 [[https://github.com/jorgenschaefer/emacs-buttercup][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.