This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+readers/dash/README.org
2019-09-17 20:02:49 +02:00

88 lines
3.3 KiB
Org Mode

#+TITLE: Dash layer
#+TAGS: layer|reader
[[file:img/dash.png]]
[[file:img/zeal.png]]
* Table of Contents :TOC_5_gh:noexport:
- [[#description][Description]]
- [[#features][Features:]]
- [[#install][Install]]
- [[#dash-os-x][Dash (OS X)]]
- [[#sqlite3][Sqlite3]]
- [[#zeal-linux--windows][Zeal (Linux & Windows)]]
- [[#configuration][Configuration]]
- [[#word-at-point][Word at point]]
- [[#key-bindings][Key bindings]]
* Description
This layer integrates offline api browsers into Emacs. It provides one for OS X, Linux and Windows.
** Features:
- Searching for word at point in offline api browser's UI.
- Integration of offline api browser search results in helm and ivy.
- Support for [[https://kapeli.com/dash][dash]] offline api browser for OS X.
- Support for [[https://zealdocs.org/][zeal]] offline api browser for Linux.
* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =dash= to the existing =dotspacemacs-configuration-layers= list in this
file.
** Dash (OS X)
You have to install [[https://kapeli.com/dash][dash]] on your machine.
It is recommended to set the =HUD mode= in your Dash application preferences
when using this layer.
*** Sqlite3
Helm Dash [[https://github.com/areina/helm-dash#user-content-requirements][requires]] sqlite3 to be installed to function properly.
** Zeal (Linux & Windows)
You have to install [[https://zealdocs.org/][zeal]] on your machine.
Then install the docsets you use more frequently
* Configuration
By default, the dash layer will initialize all installed docsets to be active in
all buffers. To disable this and opt-in to specific docsets for specific buffers, set:
#+BEGIN_SRC emacs-lisp
(dash :variables
dash-autoload-common-docsets nil)
#+END_SRC
To change the location of the installed docsets, set:
#+BEGIN_SRC elisp
(dash :variables
helm-dash-docset-newpath "~/.docsets")
#+END_SRC
* Word at point
=dash-at-point= and =zeal-at-point= will search for the word at point in the respective offline api browser.
The result will be displayed in the offline browser's UI.
However having to leave emacs to have a look at the search results may be a bit awkward.
To help with this it is also possible to integrate the search results directly in =helm= or =ivy=
and show the details in a browser. To do so [[https://github.com/dash-docs-el/helm-dash][helm-dash]] can be used for =helm= and [[https://github.com/dash-docs-el/counsel-dash][counsel-dash]] for =ivy=.
To get them working it is necessary to set =dash-docs-docset-newpath= to the location of your docsets.
#+BEGIN_SRC elisp
(dash :variables
dash-docs-docset-newpath "~/.local/share/Zeal/Zeal/docsets")
#+END_SRC
For more details please check [[https://github.com/stanaka/dash-at-point#Usage][dash-at-point-usage]] or [[https://github.com/jinzhu/zeal-at-point][zeal-at-point]].
* Key bindings
| Key binding | Description |
|-------------+-----------------------------------------------------------------|
| ~SPC d d~ | Lookup thing at point in Dash or Zeal |
| ~SPC d D~ | Lookup thing at point in Dash or Zeal within a specified Docset |
| ~SPC d h~ | Lookup thing at point in helm-dash or counsel-dash |
| ~SPC d H~ | Lookup in helm-dash or counsel-dash within a specified Docset |