From 3afe2f8cbe1070dcc56337ed2186133c59490bbb Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Thu, 29 Sep 2022 15:20:55 +1000 Subject: updating readme --- README.org | 56 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/README.org b/README.org index 8c7cbe8..6a5b277 100644 --- a/README.org +++ b/README.org @@ -1,20 +1,25 @@ #+title: hc.el -hc.el is a client to [[https://g.ypei.me/hcel.git/][hcel]] and an Emacs package for Haskell code -exploring. Features include: +hc.el (or hcel in ELPA) is a client to [[https://g.ypei.me/hcel.git/][hcel]] and an Emacs package for +Haskell code browsing and exploring. Features include: -- Jump to definition (using xref) -- Find references (based on compilation mode) -- Search identifiers in a package or globally (based on compilation mode) +- Jump to definition across packages +- Find references across packages +- Search identifiers in a package or globally - Highlight the identifier at point - Browse packages, modules and identifiers in an outline mode buffer - Eldoc integration, showing type and documentation of the identifier at point, or the selected expression. -- Syntax highlight (requires haskell-mode) +- Syntax highlight, either with builtin font-locks or haskell-mode +- Show info about an identifier in a help buffer +- Integration with [[https://g.ypei.me/haddock.git/about][haddorg]], allowing jumps between identifier + definition site and its org entry in documentation generated by + haddorg. * Install -Clone this repo, and add load path (assuming you clone to ~~/.emacs.d~): +Clone this repo, and add to load path (assuming you clone to +~~/.emacs.d~): #+begin_src sh cd ~/.emacs.d @@ -29,24 +34,39 @@ You'll also need an hcel server. To host one yourself, clone the [[https://g.yp and follow the instructions there. Once you have a server set up (say at ~localhost:8080~) and serving -indexed packages, do the following and you are all set. +source info about indexed packages, do the following and you are all +set. #+begin_src elisp -(require 'hc) +(require 'hcel) (setq hcel-host "localhost:8080") #+end_src * Use -The main entry points are two commands: ~hcel~, which opens up an -hcel-outline mode buffer, which you can use to browse all packages, -modules and identifiers in outline mode, and open any module source or -jump to the definition of any identifier you like; ~hcel-package~ -prompts you for a package id, followed by a module path, to open the -module source. If you want to search for an identifier, the command -~hcel-global-ids~ is for you. +There are several entry points: +- ~hcel~ opens up an hcel-outline mode buffer, where you can + browse all packages, modules and identifiers in outline mode, and + open any module source or jump to the definition of any identifier you like; +- ~hcel-package~ prompts you for a package id, followed by a module + path, to open the module source. +- ~hcel-global-ids~ lets you search for identifiers globally, and + either jump to the source (in case of a hit) or display search + results. +- ~hcel-help~ lets you search for identifiers globally and displays + the result in a help buffer. + +* TODOs + +Most of these TODOs likely require changes to the server program. + +- Navigation between identifiers within the help buffer. +- Awareness of all modules exporting an identifier (like hoogle) +- Requesting server to index a new package, or re-index an updated + one. * Contact and Copyright -~hc.el~ is covered by [[https://www.gnu.org/licenses/agpl-3.0.en.html][GNU AGPLv3+]]. You may find the license text in a -file named COPYING.agpl3 in the project tree. +~hc.el~ is maintained by Yuchen Pei and covered by [[https://www.gnu.org/licenses/agpl-3.0.en.html][GNU +AGPLv3+]]. You may find the license text in a file named COPYING.agpl3 +in the project tree. -- cgit v1.2.3