jedhy

Autocompletion and code introspection for Hy.

Downloads
50
Stars
46
Committers
2
  • Jedhy

/Last Hy version verified working for: Hy 0.16.0/

jedhy provides autocompletion, documentation introspection and formatting, and other tools useful to IDEs for [[https://github.com/hylang/hy][Hy]], a lisp embedded in Python.

Leveraged in Emacs [[https://github.com/hylang/hy-mode][hy-mode]] IDE which I maintain.

Install from pypi pip install jedhy.

  • Features
  1. Completes:
    1. All standard python constructs (builtins, user-defined funcs, modules, etc.)
    2. Hy constructs (macros, shadowed operators, compile table)
    3. All of the above with Hy's mangling rules handled.
  2. Documentation introspection and formatting (eg. for Emacs Eldoc mode).
  3. Annotations (eg. for Emacs Company mode).

Jedhy is fully tested. The tests folder is the easiest way to see example usage.

See jedhy.api, the simple entry point.

** Example Usage

#+BEGIN_SRC lisp (setv jedhy (jedhy.api.API))

;; Add some stuff to namespace (import [numpy :as np]) (import itertools) (defclass Foo [object] "A class\nDetails..." (defn --init-- [self x y])) (defmacro foo-macro [x])

(jedhy.set-namespace :locals- (locals) :macros- --macros--)

;; COMPLETION (jedhy.complete "pr") ; print (jedhy.complete "print.") ; print.--call--, print.--str--, ... (jedhy.complete "np.a") ; np.add, np.array, ... (jedhy.complete "foo-") ; foo-macro

;; DOCS (jedhy.docs "itertools") ; "Functional tools for creating and using iterators." (jedhy.docs "Foo") ; "Foo: (x y) - A class" (jedhy.full-docs "Foo") ; "Foo: (x y) - A class\nDetails..."

;; ANNOTATION (jedhy.annotate "itertools") ; (jedhy.annotate "try") ; #+END_SRC