diff --git a/README.md b/README.md index 4d5bb4b..76bbac8 100644 --- a/README.md +++ b/README.md @@ -111,17 +111,58 @@ This special edit mode is evolving rapidly, see the CHANGES of lambda-term for t UTop exposes several more settings through its API; see [documentation](http://ocaml-community.github.io/utop). -Integration with emacs +Integration with Emacs ---------------------- +### Overview + +`utop.el` is a package that provides `utop` integration with Emacs. +The package allows you to run `utop` inside Emacs and to evaluate +code in it straight from your source buffers (with the help with `utop-minor-mode`). + +Those features are covered in more details in the ["Usage"](#usage-emacs) section. + +### Requirements + +`utop.el` requires Emacs 26.1 or newer. You'll also have to install +`utop` and make sure it's on Emacs's `exec-path`, so that it could be +started from within Emacs. + ### Main setup -To use utop in emacs, first you need to make sure emacs can find the -command `utop` and the file `utop.el`. `utop.el` is available through -[melpa](https://melpa.org/), so `M-x package-install RET utop RET` -should do. +The recommended way to install `utop.el` is via Emacs's built-in package manager `package.el`. -If this doesn't work and you installed utop via opam, you can add this +`utop.el` is available on the community-maintained +[MELPA Stable](https://stable.melpa.org) and [MELPA](https://melpa.org) `package.el` repositories. If you're not using them already, please follow the setup instructions [here](https://melpa.org/#/getting-started). + +**Note:** Using MELPA Stable is recommended as it has the latest stable version. +MELPA has a development snapshot for users who don't mind breakage but +don't want to run `utop.el` from a git checkout. + +Once you've enabled MELPA (Stable), you can install `utop.el` using the following command: + +M-x package-install [RET] utop [RET] + +or if you'd rather keep it in your Emacs config: + +```emacs-lisp +(unless (package-installed-p 'utop) + (package-refresh-contents) + (package-install 'utop)) +``` + +`use-package` users can do something like this: + +```emacs-lisp +(use-package utop + :ensure t) +``` + +If the installation doesn't work try refreshing the package list: + +M-x package-refresh-contents + +Alternatively, if you have installed utop via opam, you can add this to your `~/.emacs`: ```elisp @@ -171,11 +212,11 @@ copy&paste this to your `~/.emacs`: (autoload 'utop "utop" "Toplevel for OCaml" t) ``` -### Usage +### [Usage](#usage-emacs) -Then you can execute utop inside emacs with: `M-x utop`. +You can start utop inside Emacs with: `M-x utop`. -utop also ships with a minor mode that has the following key-bindings +`utop.el` also ships with a minor mode that has the following key-bindings: | key-binding | function | Description | |-------------|-------------------|------------------------------|