docs(:tools): update READMEs to new format

This commit is contained in:
Henrik Lissner 2021-10-16 01:29:27 +02:00 committed by Henrik Lissner
parent a226655486
commit 6da20e45bd
21 changed files with 1401 additions and 748 deletions

View file

@ -1,10 +1,8 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-changelog-search:::tools nil][Changelog]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
← [[doom-module-index:][Back to module index]] ↖ [[doom-module-source:tools][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools
#+CREATED: July 29, 2021
#+SINCE: v21.12.0
#+SETUPFILE: ../../docs/.setupfile.org
#+TITLE: :tools
#+CREATED: July 29, 2021
#+SINCE: 21.12.0
* Description
Replace this with a description of what modules in this category are for,
including any important information (like load order constraints).
Modules that integrate external tools into Emacs.

View file

@ -0,0 +1,55 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools ansible][Issues]] ↖ [[doom-module-source:tools/ansible][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools ansible
#+SUBTITLE: Allow silly people to focus on silly things
#+CREATED: September 11, 2018
#+SINCE: 21.12.0 (#881)
* Description :unfold:
/(No description)/
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][ansible]]
- [[doom-package:][ansible-doc]]
- [[doom-package:][company-ansible]] if [[doom-module:][:completion company]]
- [[doom-package:][jinja2-mode]]
- [[doom-package:][yaml-mode]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires [[https://www.ansible.com/][Ansible]].
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -0,0 +1,169 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools debugger][Issues]] ↖ [[doom-module-source:tools/debugger][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools debugger
#+SUBTITLE: Step through code to help you add bugs
#+CREATED: February 20, 2020
#+SINCE: 2.0.0
* Description :unfold:
Introduces a code debugger to Emacs, powered by [[doom-package:][realgud]] or [[doom-package:][dap-mode]] (LSP).
This document will help you to configure [[doom-package:][dap-mode]] [[https://emacs-lsp.github.io/dap-mode/page/configuration/#native-debug-gdblldb][Native Debug(GDB/LLDB)]] as
there is still not *enough* documentation for it.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +lsp ::
Enable support for [[https://microsoft.github.io/debug-adapter-protocol/][Debug Adapter Protocol]] (DAP) debuggers.
** Packages
- [[doom-package:][realgud]]
- [[doom-package:][realgud-trepan-ni]] if [[doom-module:][:lang javascript]]
- if [[doom-module:][+lsp]]
- [[doom-package:][dap-mode]]
- [[doom-package:][posframe]]
** TODO Hacks
#+begin_quote
🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]]
#+end_quote
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* TODO Installation
#+begin_quote
🔨 /This module's prerequisites documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
Make sure all of these pre-requirements is in your ~$PATH~:
- =nodejs=
- =lldb= and =lldb-mi= (optional)
- =gdb= (optional), requires =unzip=
If you are getting an error like ~Searching for program no such file or
directory "node"~, then you need [[github:nodejs/node][nodejs]] ([[github:emacs-lsp/dap-mode/issues/79][emacs-lsp/dap-mode#79]]).
** Realgud debuggers
*** lldb and lldb-mi
This is optional if you want to debug with [[https:lldb.llvm.org][LLDB]]. Install lldb and [[github:lldb-tools/lldb-mi][lldb-mi]].
*** gdb
This is optional if you want to debug with [[https:www.gnu.org/software/gdb/][GDB]]. Install gdb.
You will need ~unzip~ for ~dap-gdb-lldb-setup~. It downloads a VS-Code extension
and it needs to extract compressed downloaded file.
You need this if you are having ~"wrong-type-argument stringp nil"~ error when
calling ~dap-gdb-lldb-setup~. [[github:emacs-lsp/dap-mode/issues/313][See emacs-lsp/dap-mode#313]]
** DAP debuggers
*** Python
DAP expects [[https://github.com/Microsoft/ptvsd][ptvsd]] by default as the Python debugger, but [[https://github.com/microsoft/debugpy][debugpy]] is recommended.
See [[*Configuration][Configuration]].
*installing ptvsd:*
#+begin_src sh
pip3 install ptvsd --user
#+end_src
*install debugpy:*
#+begin_src sh
pip3 install debugpy --user
#+end_src
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! dap-mode
(setq dap-python-debugger 'debugpy))
#+end_src
*** C, C++, Rust, Golang
Needs [[https://github.com/llvm/llvm-project/tree/main/lldb/tools/lldb-vscode][lldb-vscode]]. Install LLDB from your package manager.
*Fedora:*
#+begin_src sh
dnf install lldb
#+end_src
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
- ~M-x +debugger/start~
- ~M-x +debugger/start-last~
- ~M-x +debugger/quit~
** Realgud
1. Call ~dap-gdb-lldb-setup~ function.
2. Use ~dap-debug-edit-template~ to configure debugging settings for your
project. [[github:WebFreak001/code-debug/blob/master/package.json#L72][Available settings can be inspected here.]] Call ~eval-buffer~ to save
your settings. *Don't save the file!*
3. Call ~dap-debug~, select a configuration and start debugging.
** dap-mode with ~+lsp~
Intuitive and powerful debugging.
- Breakpoints
- REPL
- *local variable view:* Allows you to browse variables in the current stack
frame.
- *expressions:* Add expressions to either watch variables or generic
expressions.
** Keybindings
#+begin_src emacs-lisp
(map! :map dap-mode-map
:leader
:prefix ("d" . "dap")
;; basics
:desc "dap next" "n" #'dap-next
:desc "dap step in" "i" #'dap-step-in
:desc "dap step out" "o" #'dap-step-out
:desc "dap continue" "c" #'dap-continue
:desc "dap hydra" "h" #'dap-hydra
:desc "dap debug restart" "r" #'dap-debug-restart
:desc "dap debug" "s" #'dap-debug
;; debug
:prefix ("dd" . "Debug")
:desc "dap debug recent" "r" #'dap-debug-recent
:desc "dap debug last" "l" #'dap-debug-last
;; eval
:prefix ("de" . "Eval")
:desc "eval" "e" #'dap-eval
:desc "eval region" "r" #'dap-eval-region
:desc "eval thing at point" "s" #'dap-eval-thing-at-point
:desc "add expression" "a" #'dap-ui-expressions-add
:desc "remove expression" "d" #'dap-ui-expressions-remove
:prefix ("db" . "Breakpoint")
:desc "dap breakpoint toggle" "b" #'dap-breakpoint-toggle
:desc "dap breakpoint condition" "c" #'dap-breakpoint-condition
:desc "dap breakpoint hit count" "h" #'dap-breakpoint-hit-condition
:desc "dap breakpoint log message" "l" #'dap-breakpoint-log-message)
#+end_src
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
- There is a known issue with the ~+debugger/start~ command, which is bound to
[[kbd:][SPC o d]] right now. It prints "No debugging session to quit" no matter what.
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,76 +1,98 @@
#+TITLE: tools/direnv
#+DATE: July 10, 2019
#+SINCE: v2.1.0
#+STARTUP: inlineimages
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools direnv][Issues]] ↖ [[doom-module-source:tools/direnv][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools direnv
#+SUBTITLE: Save (or destroy) the environment at your leisure
#+CREATED: April 05, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#macos][MacOS]]
- [[#arch-linux][Arch Linux]]
- [[#nixos][NixOS]]
- [[#troubleshooting][Troubleshooting]]
- [[#direnv--nix-is-slow][direnv + nix is slow]]
* Description
* Description :unfold:
This module integrates direnv into Emacs.
#+begin_quote
direnv is an environment switcher for the shell. It knows how to hook into bash,
zsh, tcsh, fish shell and elvish to load or unload environment variables
depending on the current directory. This allows project-specific environment
variables without cluttering the ~/.profile file.
📌 direnv is an environment switcher for the shell. It knows how to hook into
bash, zsh, tcsh, fish shell and elvish to load or unload environment
variables depending on the current directory. This allows project-specific
environment variables without cluttering the ~/.profile file.
Before each prompt, direnv checks for the existence of a ".envrc" file in the
current and parent directories. If the file exists (and is authorized), it is
loaded into a bash sub-shell and all exported variables are then captured by
direnv and then made available to the current shell.
Before each prompt, direnv checks for the existence of a ".envrc" file in
the current and parent directories. If the file exists (and is authorized),
it is loaded into a bash sub-shell and all exported variables are then
captured by direnv and then made available to the current shell.
#+end_quote
** Module Flags
This module provides no flags.
** Maintainers
- [[doom-user:][@hlissner]]
** Plugins
+ [[https://github.com/purcell/envrc][envrc]]
[[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][envrc]]
** Hacks
+ Normally, the direnv environment is updated on ~post-command-hook~. We've
changed it to update on ~doom-switch-buffer-hook~, ~doom-switch-window-hook~
and ~doom-switch-frame-hook~ instead.
+ Special direnv keywords/commands are highlighted in direnv-envrc-mode.
+ A fix has been applied to ensure flycheck searches for executables from within
the direnv environment, if any.
- ~envrc-mode~ has been modified to fail gracefully if ~direnv~ isn't available.
- ~envrc-global-mode~ has been modified to activate envrc-mode sooner in the
major mode activation process, so that any env state performed in mode hooks
aren't overwritten by direnv.
- Added direnv support for Org src blocks.
* Prerequisites
This module requires the ~direnv~ utility.
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires [[https://direnv.net/][direnv]].
** MacOS
#+BEGIN_SRC bash
#+begin_src sh
brew install direnv
#+END_SRC
#+end_src
** Arch Linux
~direnv~ is available on the AUR
#+BEGIN_SRC bash
~direnv~ is available on the AUR:
#+begin_src sh
yay -S direnv
#+END_SRC
#+end_src
** NixOS
#+BEGIN_SRC nix
#+begin_src nix
environment.systemPackages = [ pkgs.direnv ];
#+END_SRC
#+end_src
Or ~nix-env -i direnv~
Or ~$ nix-env -i direnv~
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
To make use of direnv you need a =.envrc= file in a directory. Any time you open
a file or buffer in said directory, the [[doom-package:][envrc]] Emacs package will kick in,
activate the local env, and inject it into Emacs for the current buffer.
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
[[doom-report:][Report an issue?]]
** direnv + nix is slow
Consider augmenting direnv with [[https://github.com/nix-community/lorri][lorri]], which will cache nix builds and speed up
direnv tremendously:
#+BEGIN_SRC nix
#+begin_src nix
services.lorri.enable = true;
#+END_SRC
#+end_src
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,139 +1,150 @@
#+TITLE: tools/docker
#+DATE: April 30, 2019
#+SINCE: v2.0.9
#+STARTUP: inlineimages
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools docker][Issues]] ↖ [[doom-module-source:tools/docker][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools docker
#+SUBTITLE: Yo dawg, I heard you like OSes, so I…
#+CREATED: September 06, 2018
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#docker-control][Docker control]]
- [[#supported-commands][Supported commands]]
- [[#tramp][TRAMP]]
- [[#configuration][Configuration]]
- [[#popups][Popups]]
- [[#other-useful-variables][Other useful variables]]
- [[#completion-in-dockerfiles][Completion in Dockerfiles]]
- [[#troubleshooting][Troubleshooting]]
- [[#tramp-hangs-on-alpine-container][Tramp hangs on Alpine container]]
* Description
This module allows you to manipulate Docker images, containers & more from
* Description :unfold:
This module allows you to manipulate Docker images, containers, and more from
Emacs.
Provides a major =dockerfile-mode= to edit =Dockerfiles=. Additional
convenience functions allow images to be built easily.
Provides a major ~dockerfile-mode~ to edit =Dockerfiles=. Additional convenience
functions allow images to be built easily.
=docker-tramp.el= offers a [[https://www.gnu.org/software/tramp/][TRAMP]] method for Docker containers.
[[doom-package:][docker-tramp]] offers [[https://www.gnu.org/software/tramp/][TRAMP]] support for Docker containers.
** Module Flags
+ =+lsp= Enables integration for the Dockerfile Language Server.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/Silex/docker.el][docker]]
+ [[https://github.com/emacs-pe/docker-tramp.el][docker-tramp]]
+ [[https://github.com/spotify/dockerfile-mode][dockerfile-mode]]
** Module flags
- +lsp ::
Enable integration for the Dockerfile Language Server.
* Prerequisites
This module assumes =docker=, =docker-compose= and =docker-machine= binaries
are installed and accessible from your PATH.
** Packages
- [[doom-package:][docker]]
- [[doom-package:][docker-tramp]]
- [[doom-package:][dockerfile-mode]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module assumes =docker=, =docker-compose= and =docker-machine= binaries are
installed and accessible from your PATH.
Optionally, this module also uses the following programs:
- =docker-langserver= (for LSP users): ~$ npm install -g
dockerfile-language-server-nodejs~
+ =docker-langserver= (for LSP users): ~npm install -g dockerfile-language-server-nodejs~
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features
** Docker control
Use =M-x docker=, select a resource, and then mark or unmark items using the
Use ~M-x docker~, select a resource, and then mark or unmark items using the
following keybindings (for more marking possibilities, check out
https://github.com/politza/tablist):
[[github:politza/tablist][politza/tablist]]):
| Binding | Description |
|-----------+----------------------|
| =?= | List actions |
| =l= | Configure listing |
| =m= | Mark item |
| =u= | Unmark item |
| =t= | Toggle marks |
| =U= | Unmark all |
| =s= | Sort |
| =* r= | Mark items by regexp |
| =<= | Shrink column |
| =>= | Enlarge column |
| =C-c C-e= | Export to csv |
| [[kbd:][?]] | List actions |
| [[kbd:][l]] | Configure listing |
| [[kbd:][m]] | Mark item |
| [[kbd:][u]] | Unmark item |
| [[kbd:][t]] | Toggle marks |
| [[kbd:][U]] | Unmark all |
| [[kbd:][s]] | Sort |
| [[kbd:][* r]] | Mark items by regexp |
| [[kbd:][<]] | Shrink column |
| [[kbd:][>]] | Enlarge column |
| [[kbd:][C-c C-e]] | Export to csv |
*** Supported commands
- =docker container=: =attach=, =cp=, =diff=, =inspect=, =kill=, =logs=,
=pause=, =rename=, =restart=, =rm=, =start=, =stop=, =unpause=
- =docker image=: =inspect=, =pull=, =push=, =rm=, =run=, =tag=
- =docker network=: =rm=
- =docker volume=: =rm=
- =docker-machine=: =create=, =env=, =restart=, =rm=, =start=, =stop=
- =docker-compose=: =build=, =config=, =create=, =down=, =exec=, =logs=,
=pull=, =push=, =remove=, =restart=, =run=, =start=, =stop=, =up=
- ~docker container~: ~attach~, ~cp~, ~diff~, ~inspect~, ~kill~, ~logs~,
~pause~, ~rename~, ~restart~, ~rm~, ~start~, ~stop~, ~unpause~
- ~docker image~: ~inspect~, ~pull~, ~push~, ~rm~, ~run~, ~tag~
- ~docker network~: ~rm~
- ~docker volume~: ~rm~
- ~docker-machine~: ~create~, ~env~, ~restart~, ~rm~, ~start~, ~stop~
- ~docker-compose~: ~build~, ~config~, ~create~, ~down~, ~exec~, ~logs~, ~pull~,
~push~, ~remove~, ~restart~, ~run~, ~start~, ~stop~, ~up~
You can also enter =dired= or open a file inside a container or volume.
** TRAMP
Offers the [[https://www.gnu.org/software/tramp/][TRAMP]] method =docker= to access running containers.
Offers the [[https://www.gnu.org/software/tramp/][TRAMP]] method =docker= to access running containers:
#+BEGIN_EXAMPLE
C-x C-f /docker:user@container:/path/to/file
C-x C-f /docker:$USER@$CONTAINER:/path/to/file
#+END_EXAMPLE
| =user= | the user that you want to use (optional) |
| =container= | the id or name of the container |
| =$USER= | the user that you want to use (optional) |
| =$CONTAINER= | the id or name of the container |
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
** Popups
Thanks to [[https://github.com/magit/magit-popup][magit-popup]], all the popups default arguments can be customized. For
example, here is how to customize the arguments for =docker-image-run-popup=:
#+BEGIN_SRC emacs-lisp
#+begin_src emacs-lisp
(setq docker-image-run-arguments '("-i" "-t" "--rm"))
#+END_SRC
#+end_src
or inside a =use-package= declaration:
#+BEGIN_SRC emacs-lisp
#+begin_src emacs-lisp
(use-package! docker
:bind ("C-c d" . docker)
:custom (docker-image-run-arguments '("-i" "-t" "--rm")))
#+END_SRC
You can also customize these using =M-x customize-variable=.
#+end_src
*** Other useful variables
| Variable | Description | Default |
|-------------------------------------+---------------------------------------+------------------|
| =docker-command= | The docker binary to use | =docker= |
| =docker-container-default-sort-key= | Sort key for docker containers | =("Image")= |
| =docker-container-shell-file-name= | Shell to use when entering containers | =/bin/bash= |
| =docker-image-default-sort-key= | Sort key for docker images | =("Repository")= |
| =docker-machine-default-sort-key= | Sort key for docker machines | =("Name")= |
| =docker-network-default-sort-key= | Sort key for docker networks | =("Name")= |
| =docker-run-as-root= | Run docker as root | =nil= |
| =docker-volume-default-sort-key= | Sort key for docker volumes | =("Driver")= |
| ~docker-command~ | The docker binary to use | ~docker~ |
| ~docker-container-default-sort-key~ | Sort key for docker containers | ~("Image")~ |
| ~docker-container-shell-file-name~ | Shell to use when entering containers | ~/bin/bash~ |
| ~docker-image-default-sort-key~ | Sort key for docker images | ~("Repository")~ |
| ~docker-machine-default-sort-key~ | Sort key for docker machines | ~("Name")~ |
| ~docker-network-default-sort-key~ | Sort key for docker networks | ~("Name")~ |
| ~docker-run-as-root~ | Run docker as root | ~nil~ |
| ~docker-volume-default-sort-key~ | Sort key for docker volumes | ~("Driver")~ |
** Completion in Dockerfiles
By default, the keyword completion function detects the =docker-compose=
version of the current buffer and suggests the appropriate keywords.
By default, the keyword completion function detects the =docker-compose= version
of the current buffer and suggests the appropriate keywords.
You can change the candidates offered by the backend by customizing
=docker-compose-keywords=.
* Troubleshooting
[[doom-report:][Report an issue?]]
** Tramp hangs on Alpine container
Busyboxes built with the =ENABLE_FEATURE_EDITING_ASK_TERMINAL= config option
also send escape sequences, which =tramp-wait-for-output= doesn't ignore
correctly. This was [[http://git.savannah.gnu.org/cgit/tramp.git/commit/?id=98a511248a9405848ed44de48a565b0b725af82c][fixed in TRAMP upstream]] and is available since TRAMP 2.3.
For older versions of TRAMP you can dump [[https://github.com/emacs-pe/docker-tramp.el/blob/master/docker-tramp-compat.el][docker-tramp-compat.el]] in your
=load-path= somewhere and add the following to your =init.el= to overwrite
=tramp-wait-for-output= with the patch applied:
~load-path~ somewhere and add the following to =$DOOMDIR/config.el= to overwrite
~tramp-wait-for-output~ with the patch applied:
#+begin_src emacs-lisp
(after! tramp
(require 'docker-tramp-compat))
#+end_src
#+BEGIN_SRC emacs-lisp
(require 'docker-tramp-compat)
#+END_SRC
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,46 +1,44 @@
#+TITLE: tools/editorconfig
#+DATE: August 22, 2020
#+SINCE: 2.0.9
#+STARTUP: inlineimages nofold
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools editorconfig][Issues]] ↖ [[doom-module-source:tools/editorconfig][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools editorconfig
#+SUBTITLE: Let someone else argue tabs and spaces
#+CREATED: December 27, 2015
#+SINCE: 0.9
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#adding-support-for-more-major-modes][Adding support for more major modes]]
- [[#troubleshooting][Troubleshooting]]
* Description
* Description :unfold:
This module integrates [[https://editorconfig.org/][EditorConfig]] into Emacs, allowing users to dictate code
style on a per-project basis with an =.editorconfig= file ([[https://editorconfig-specification.readthedocs.io/][formal
specification]]).
** Maintainers
This module has no dedicated maintainers
- [[doom-user:][@hlissner]]
** Module Flags
This module provides no flags.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/editorconfig/editorconfig-emacs][editorconfig-emacs]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][editorconfig-emacs]]
** Hacks
+ Added logic to guess an extension-less file's type from its shebang line. For
- Added logic to guess an extension-less file's type from its shebang line. For
example, editorconfig rules for =*.py= files will apply to =bin/myscript=
assuming its first line is ~#!/usr/bin/env python~. See
~+editorconfig-mode-alist~ for adding support for more languages.
+ *Special integration for =dtrt-indent=:* If the local editorconfig file
specifies ~indent_style~ or ~indent_size~, the =dtrt-indent= (which tries to
- *Special integration for =dtrt-indent=:* If the local editorconfig file
specifies ~indent_style~ or ~indent_size~, the [[doom-package:][dtrt-indent]] (which tries to
guess your indent settings by analyzing your text file) will bow out.
+ *Special integration for =ws-butler=:* this module will use =ws-butler= to
- *Special integration for =ws-butler=:* this module will use [[doom-package:][ws-butler]] to
enforce ~trim_trailing_whitespace~.
* Prerequisites
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module has one optional dependency: the ~editorconfig~ native binary.
Without it, a built-in elisp implementation will be used, but it has fewer
features and can be a bit slower.
@ -48,11 +46,15 @@ features and can be a bit slower.
The editorconfig binary has [[https://github.com/editorconfig#contributing][many implementations]] you can choose from, typically
available through your OS package manager (or build it yourself).
* Features
* Usage
You will need to write an ~.editorconfig~ file in your project (this is usually
in the root of your project) you can find out about all the properties [[https://editorconfig.org/#example-file][here]]
in the root of your project) you can find out about all the properties [[https://editorconfig.org/#example-file][here]].
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
** Adding support for more major modes
Out the box, the editorconfig plugin supports many Emacs major modes, but it's
possible you'll find one it doesn't support. Adding support is easy so long as
@ -63,16 +65,25 @@ doesn't:
The ~editorconfig-indentation-alist~ variable contains a list of major modes and
their indentation variables. To add coffee-mode to it:
#+BEGIN_SRC emacs-lisp
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! editorconfig
(add-to-list 'editorconfig-indentation-alist '(coffee-mode coffee-tab-width)))
#+END_SRC
#+end_src
But what if you don't know the correct indentation variable(s). Use =SPC h v=
(=C-h v= for non-evil users) to peruse all the available variables in your
current session of Emacs. Look for variables that have the words =indent=,
=offset= or =tab-width= in them. They will be prefixed with the plugin they
belong to (e.g. ~rustic-indent-offset~).
But what if you don't know the correct indentation variable(s). Use [[kbd:][SPC h v]] ([[kbd:][C-h
v]] for non-evil users) to peruse all the available variables in your current
session of Emacs. Look for variables that have the words =indent=, =offset= or
=tab-width= in them. They will be prefixed with the plugin they belong to (e.g.
~rustic-indent-offset~).
* TODO Troubleshooting
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,26 +1,55 @@
#+TITLE: tools/ein
#+DATE: April 11, 2018
#+SINCE: v2.0
#+STARTUP: inlineimages
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools ein][Issues]] ↖ [[doom-module-source:tools/ein][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools ein
#+SUBTITLE: Tame Jupyter notebooks with emacs
#+CREATED: April 11, 2018
#+SINCE: 21.12.0 (#524)
* Table of Contents :TOC:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
* Description :unfold:
Adds [[https://jupyter.org/][Jupyter]] notebook integration into Emacs.
* Description
Adds Jupyter notebook integration into emacs.
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** Plugins
+ [[https://github.com/millejoh/emacs-ipython-notebook][ein]]
** Packages
- [[doom-package:][ein]]
* Prerequisites
This module has no prerequisites.
** Hacks
/No hacks documented for this module./
* Features
Please refer [[https://github.com/millejoh/emacs-ipython-notebook][millejoh/emacs-ipython-notebook's README]].
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* TODO Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
#+begin_quote
🔨 /This module's prerequisites are not documented./ [[doom-contrib-module:][Document them?]]
#+end_quote
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
Refer to [[https://github.com/millejoh/emacs-ipython-notebook][millejoh/emacs-ipython-notebook's README]].
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,73 +1,79 @@
#+TITLE: tools/eval
#+DATE: February 13, 2017
#+SINCE: v2.0
#+STARTUP: inlineimages
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools eval][Issues]] ↖ [[doom-module-source:tools/eval][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools eval
#+SUBTITLE: Run code, run (also, repls)
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#inline-code-evaluation][Inline Code Evaluation]]
- [[#repls][REPLs]]
- [[#configuration][Configuration]]
- [[#register-a-repl-for-a-major-mode][Register a REPL for a major-mode]]
- [[#change-how-code-is-evaluated-in-a-major-mode][Change how code is evaluated in a major mode]]
- [[#troubleshooting][Troubleshooting]]
* Description
* Description :unfold:
This modules adds inline code evaluation support to Emacs and a universal
interface for opening and interacting with REPLs.
** Module Flags
+ =+overlay= Enables the use of overlays (near the cursor) to display the result
of inline code evaluation (rather than the minibuffer). That is, unless the
results are too big, in which case it will still fall back to popup buffers.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/syohex/emacs-quickrun][quickrun]]
** Module flags
- +overlay ::
Enable the use of overlays (near the cursor) to display the result of inline
code evaluation (rather than the minibuffer). If the results are too big the
minibuffer will be used anyway.
** Packages
- [[doom-package:][quickrun]]
** Hacks
+ Quickrun has been modified to:
+ Use only one output window, in case of consecutive execution of code.
+ The quickrun window will resize itself to fit its output, once the
- Quickrun has been modified to:
- Use only one output window, in case of consecutive execution of code.
- The quickrun window will resize itself to fit its output, once the
underlying process is finished executing the code.
* Prerequisites
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module has no direct prerequisites.
However, many languages will require that you install their interpreters, code
runners and/or repls to power the functionality of this module. Visit the
documentation of their respective =:lang= module for instructions.
documentation of their respective [[doom-module:][:lang]] module for instructions.
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features
** Inline Code Evaluation
Quickrun can be invoked via:
+ ~M-x +eval/buffer~ (or ~gR~, or ~M-r~)
+ ~M-x +eval/region~
+ ~M-x +eval/region-and-replace~
+ Evil users can use the ~gr~ operator to select and run a region.
- ~M-x +eval/buffer~ (or [[kbd:][gR]], or [[kbd:][M-r]])
- ~M-x +eval/region~
- ~M-x +eval/region-and-replace~
- Evil users can use the [[kbd:][gr]] operator to select and run a region.
** REPLs
Invoked via:
+ =SPC o r= or ~:repl~ will open a REPL in a popup window. =SPC o R= or ~:repl!~
- [[kbd:][SPC o r]] or ~:repl~ will open a REPL in a popup window. [[kbd:][SPC o R]] or ~:repl!~
will open a REPL in the current window. If a REPL is already open and a
selection is active, it will be sent to the REPL.
+ ~M-x +eval/open-repl-other-window~ (=SPC o r=)
+ ~M-x +eval/open-repl-same-window~ (=SPC o R=)
+ ~M-x +eval/send-region-to-repl~ (=SPC c s=) while a selection (and REPL) is
- ~M-x +eval/open-repl-other-window~ ([[kbd:][SPC o r]])
- ~M-x +eval/open-repl-same-window~ ([[kbd:][SPC o R]])
- ~M-x +eval/send-region-to-repl~ ([[kbd:][SPC c s]]) while a selection (and REPL) is
active
* Configuration
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** Register a REPL for a major-mode
REPLs are defined for most languages Doom supports. Check that language module's
README.org to see if it does (and if it requires additional setup).
To use them, you may use ~M-x +eval/open-repl-other-window~, ~M-x
+eval/open-repl-same-window~, ~:repl~ (for evil users) or the default binding:
=SPC o r=. These will open a REPL in a popup window.
[[kbd:][SPC o r]]. These will open a REPL in a popup window.
#+begin_quote
You can simply call that mode's REPL command manually. e.g. ~M-x ielm~, but this
@ -79,19 +85,18 @@ Otherwise, you can define your own for a specified major mode:
~(set-repl-handler! MAJOR-MODES FUNCTION)~
MAJOR-MODES is a single major mode symbol or a list of them.
=MAJOR-MODES= is a single major mode symbol or a list of them.
FUNCTION should return a repl buffer. Any window changes in this function are
ignored, then the REPL is opened in a popup window.
#+BEGIN_SRC emacs-lisp
=FUNCTION= should return a repl buffer. Any window changes in this function are
ignored, then the REPL is opened in a popup window. E.g.
#+begin_src emacs-lisp
(defun +lua/open-repl ()
(interactive)
(lua-start-process "lua" "lua")
(pop-to-buffer lua-process-buffer))
(set-repl-handler! 'lua-mode #'+lua/open-repl)
#+END_SRC
#+end_src
** Change how code is evaluated in a major mode
Run regions or entire buffers with [[https://github.com/syohex/emacs-quickrun][Quickrun]]. Output is show in a popup window.
@ -101,25 +106,31 @@ to interpreters or compilers. However, occasionally, you'll find a language
without support (like [[https://crystal-lang.org/][Crystal]]), or a language with better Emacs integration
(like elisp).
Here's how you define a "runner":
#+BEGIN_SRC emacs-lisp
To define a "runner":
#+begin_src emacs-lisp
(set-eval-handler! 'crystal-mode
'((:command . "crystal")
(:exec . "%c %s")
(:description . "Run Crystal script")))
#+END_SRC
#+end_src
A simpler version is simply to use the path to the binary:
#+BEGIN_SRC emacs-lisp
#+begin_src emacs-lisp
(set-eval-handler! 'groovy-mode "groovy")
#+END_SRC
#+end_src
Or if you'd rather run an elisp command:
#+BEGIN_SRC emacs-lisp
#+begin_src emacs-lisp
(set-eval-handler! 'emacs-lisp-mode #'+emacs-lisp-eval)
#+END_SRC
#+end_src
* TODO Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -0,0 +1,57 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools gist][Issues]] ↖ [[doom-module-source:tools/gist][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools gist
#+SUBTITLE: A pastebin for Githubsters
#+CREATED: May 07, 2017
#+SINCE: 2.0.3
#+begin_quote
🚧 *This module is deprecated.* gist.el has been abandoned and is generally
buggy. This may be replaced by a more general pastebin module that
interfaces with various pastebin servers.
#+end_quote
* Description :unfold:
Adds the ability to manage, pull from, or push to your [[https://gist.github.com][Gists]] from within Emacs.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][gist]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
/This module has no external requirements./
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,74 +1,73 @@
#+TITLE: tools/lookup
#+DATE: January 4, 2018
#+SINCE: v2.0.9
#+STARTUP: inlineimages
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools lookup][Issues]] ↖ [[doom-module-source:tools/lookup][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools lookup
#+SUBTITLE: Navigate your labyrinthine code and docs
#+CREATED: January 04, 2018
#+SINCE: 2.0.9
* Table of Contents :TOC:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#macos][MacOS]]
- [[#arch-linux][Arch Linux]]
- [[#nixos][NixOS]]
- [[#features][Features]]
- [[#jump-to-definition][Jump to definition]]
- [[#find-references][Find references]]
- [[#look-up-documentation][Look up documentation]]
- [[#search-a-specific-documentation-backend][Search a specific documentation backend]]
- [[#dashapp-docset-integration][Dash.app Docset integration]]
- [[#configuration][Configuration]]
- [[#associating-lookup-handlers-with-major-modes][Associating lookup handlers with major modes]]
- [[#associating-dash-docsets-with-major-modes][Associating Dash docsets with major modes]]
- [[#open-in-eww-instead-of-browser][Open in eww instead of browser]]
- [[#open-in-xwidget-webkit-instead-of-browser][Open in Xwidget WebKit instead of browser]]
- [[#appendix][Appendix]]
- [[#commands][Commands]]
* Description
* Description :unfold:
This module adds code navigation and documentation lookup tools to help you
quickly look up definitions, references, documentation, dictionary definitions
or synonyms.
+ Jump-to-definition and find-references implementations that just work.
+ Powerful xref integration for languages that support it.
+ Search online providers like devdocs.io, stackoverflow, google, duckduckgo or
youtube (duckduckgo and google have live suggestions).
+ Integration with Dash.app docsets.
+ Support for online (and offline) dictionaries and thesauruses.
- Jump-to-definition and find-references implementations that just work.
- Powerful xref integration for languages that support it.
- Search online providers like [[https://devdocs.io][devdocs.io]], [[https://stackoverflow.com][stackoverflow]], [[https://google.com][google]], [[https://duckduckgo.com][duckduckgo]], or
[[https://youtube.com][youtube]] (duckduckgo and google have live suggestions).
- Integration with [[https://github.com/Kapeli/feeds][Dash.app docsets]].
- Support for online (and offline) dictionaries and thesauruses.
** Module Flags
+ ~+dictionary~ Enable word definition and thesaurus lookup functionality.
+ ~+offline~ Install and prefer offline dictionary/thesaurus.
+ ~+docsets~ Enable integration with Dash.app docsets.
** Maintainers
- [[doom-user:][@hlissner]]
** Plugins
+ [[https://github.com/jacktasia/dumb-jump][dumb-jump]]
+ [[https://github.com/alexmurray/ivy-xref][ivy-xref]] or [[https://github.com/brotzeit/helm-xref][helm-xref]]
+ [[https://github.com/tkf/emacs-request][request]]
+ =+docsets=
+ [[https://github.com/dash-docs-el/dash-docs][dash-docs]]
+ [[https://github.com/nathankot/counsel-dash][counsel-dash]] or [[https://github.com/areina/helm-dash][helm-dash]]
+ =+dictionary=
+ if macOS
+ [[https://github.com/xuchunyang/osx-dictionary.el][osx-dictionary]]* (on macOS)
+ else
+ [[https://github.com/abo-abo/define-word][define-word]]
+ [[https://github.com/maxchaos/emacs-powerthesaurus][powerthesaurus]]
+ =+offline=
+ [[https://github.com/gromnitsky/wordnut][wordnut]]
+ [[https://github.com/hpdeifel/synosaurus][synosaurus]]
[[doom-contrib-maintainer:][Become a maintainer?]]
* Prerequisites
This module has several soft dependencies:
** Module flags
- +dictionary ::
Enable word definition and thesaurus lookup functionality.
- +docsets ::
Enable integration with Dash.app docsets.
- +offline ::
Install and prefer offline dictionary/thesaurus (with [[doom-module:][+dictionary]]).
+ ~ripgrep~ as a last-resort fallback for jump-to-definition/find-references.
+ ~sqlite3~ for Dash docset support (if you have =+docsets= enabled)
+ ~wordnet~ for offline dictionary and thesaurus support (if you have
=+dictionary +offline= enabled).
** Packages
- [[doom-package:][dumb-jump]]
- [[doom-package:][helm-xref]] if [[doom-module:][:completion helm]]
- [[doom-package:][ivy-xref]] if [[doom-module:][:completion ivy]]
- [[doom-package:][request]]
- if [[doom-module:][+docsets]]
- [[doom-package:][dash-docs]]
- [[doom-package:][counsel-dash]] if [[doom-module:][:completion ivy]]
- [[doom-package:][helm-dash]] if [[doom-module:][:completion helm]]
- if [[doom-module:][+dictionary]]
- if macOS
- [[doom-package:][osx-dictionary]]
- else
- [[doom-package:][define-word]]
- [[doom-package:][powerthesaurus]]
- if [[doom-module:][+offline]]
- [[doom-package:][wordnut]]
- [[doom-package:][synosaurus]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module has several optional dependencies:
- ~ripgrep~ as a last-resort fallback for jump-to-definition/find-references.
- ~sqlite3~ for Dash docset support (if you have [[doom-module:][+docsets]] enabled)
- ~wordnet~ for offline dictionary and thesaurus support (if you have
[[doom-module:][+dictionary]] and [[doom-module:][+offline]] enabled).
** MacOS
#+BEGIN_SRC sh
#+begin_src sh
brew install ripgrep wordnet
# An older version of sqlite is included in MacOS. If it causes you problems (and
@ -77,27 +76,27 @@ brew install sqlite
# Note that it's keg-only, meaning it isn't symlinked to /usr/local/bin. You'll
# have to add it to PATH yourself (or symlink it into your PATH somewhere). e.g.
export PATH="/usr/local/opt/sqlite/bin:$PATH"
#+END_SRC
#+end_src
** Arch Linux
#+BEGIN_SRC sh
#+begin_src sh
sudo pacman -S sqlite ripgrep
yay -S wordnet-cli
#+END_SRC
#+end_src
** NixOS
#+BEGIN_SRC nix
#+begin_src nix
environment.systemPackages = with pkgs; [
ripgrep
sqlite
wordnet
];
#+END_SRC
#+end_src
* Features
* Usage
** Jump to definition
Use ~+lookup/definition~ (bound to =gd= in normal mode) to jump to the
definition of the symbol at point
Use ~+lookup/definition~ (bound to [[kbd:][gd]] in normal mode) to jump to the definition
of the symbol at point.
This module provides a goto-definition implementation that will try the
following sources before giving up:
@ -105,30 +104,30 @@ following sources before giving up:
1. Whatever ~:definition~ function is registered for the current buffer with the
~:lookup~ setting (see "Configuration" section).
2. Any available xref backends.
3. ~dumb-jump~ (a text search with aides to reduce false positives).
3. An ordinary project-wide text search with ripgrep.
3. [[doom-package:][dumb-jump]] (a text search with aides to reduce false positives).
3. An ordinary project-wide text search with =ripgrep=.
5. If ~evil-mode~ is active, use ~evil-goto-definition~, which preforms a simple
text search within the current buffer.
If there are multiple results, you will be prompted to select one.
** Find references
Use ~+lookup/references~ (bound to =gD= in normal mode) to see a list of
Use ~+lookup/references~ (bound to [[kbd:][gD]] in normal mode) to see a list of
references for the symbol at point from throughout your project.
Like ~+lookup/definition~, this tries a number of sources before giving up. It
will try:
1. Whatever ~:references~ function is registered for the current buffer with the
~:lookup~ setting (see "Configuration" section).
2. Any available xref backends.
~:lookup~ setting (see [[*Configuration][Configuration]]).
2. Any available [[doom-package:][xref]] backends.
3. An ordinary project-wide text search with ripgrep.
If there are multiple results, you will be prompted to select one.
** Look up documentation
~+lookup/documentation~ (bound to =K= in normal mode) will open documentation
for the symbol at point.
~+lookup/documentation~ (bound to [[kbd:][K]] in normal mode) will open documentation for
the symbol at point.
Depending on your configuration, this will try a list of sources:
@ -143,8 +142,8 @@ Depending on your configuration, this will try a list of sources:
You can perform a documentation lookup on any backends directly:
+ Dash Docsets: ~+lookup/in-docsets~, or ~:dash QUERY~ for evil users.
+ Online (generic): ~+lookup/online~ or ~+lookup/online-select~ (bound to =SPC /
o=), or ~:lo[okup] QUERY~ for evil users.
+ Online (generic): ~+lookup/online~ or ~+lookup/online-select~ (bound to [[kbd:][SPC /
o]]), or ~:lo[okup] QUERY~ for evil users.
** Dash.app Docset integration
You can install dash docsets with ~M-x dash-docset-install-docset~ and search
@ -153,26 +152,31 @@ modes that don't have a specialized :documentation lookup handler.
* Configuration
** Associating lookup handlers with major modes
~set-lookup-handlers! MODES &key DEFINITION REFERENCES DOCUMENTATION FILE XREF-BACKEND ASYNC~
~set-lookup-handlers! MODES &key DEFINITION REFERENCES DOCUMENTATION FILE
XREF-BACKEND ASYNC~
Use ~set-lookup-handlers!~ to register lookup targets for MODES (a major or
minor mode symbol or list thereof). PLIST accepts the following optional
properties:
+ ~:definition FN~ :: Run when jumping to a symbol's definition. Used by
~+lookup/definition~.
+ ~:references FN~ :: Run when looking for usage references of a symbol in the
current project. Used by ~+lookup/references~.
+ ~:documentation FN~ :: Run when looking up documentation for a symbol. Used by
~+lookup/documentation~.
+ ~:file FN~ :: Run when looking up the file for a symbol/string. Typically a
file path. Used by ~+lookup/file~.
+ ~:xref-backend FN~ :: Defines an xref backend, which implicitly provides
:definition and :references handlers. If you specify them anyway, they will
take precedence over the xref backend, however.
- ~:definition FN~ ::
Run when jumping to a symbol's definition. Used by ~+lookup/definition~.
- ~:references FN~ ::
Run when looking for usage references of a symbol in the current project. Used
by ~+lookup/references~.
- ~:documentation FN~ ::
Run when looking up documentation for a symbol. Used by
~+lookup/documentation~.
- ~:file FN~ ::
Run when looking up the file for a symbol/string. Typically a file path. Used
by ~+lookup/file~.
- ~:xref-backend FN~ ::
Defines an [[doom-package:][xref]] backend, which implicitly provides ~:definition~ and
~:references~ handlers. If you specify them anyway, they will take precedence
over the xref backend, however.
e.g.
#+BEGIN_SRC emacs-lisp
E.g.
#+begin_src emacs-lisp
;; For python-mode, anaconda-mode offers a backend for all three lookup
;; functions. We can register them like so:
(set-lookup-handlers! 'python-mode
@ -185,7 +189,7 @@ e.g.
;; experience. You can specify custom xref backends with:
(set-lookup-handlers! 'js2-mode :xref-backend #'xref-js2-xref-backend)
;; NOTE: xref doesn't provide a :documentation backend.
#+END_SRC
#+end_src
** Associating Dash docsets with major modes
~set-docsets! MODES &rest DOCSETS...~
@ -194,14 +198,14 @@ Use ~set-docsets!~ to register DOCSETS (one string or list of strings) for MODES
(one major mode symbol or a list of them). It is used by ~+lookup/in-docsets~
and ~+lookup/documentation~.
e.g.
#+BEGIN_SRC emacs-lisp
E.g.
#+begin_src emacs-lisp
(set-docsets! 'js2-mode "JavaScript" "JQuery")
;; Add docsets to minor modes by starting DOCSETS with :add
(set-docsets! 'rjsx-mode :add "React")
;; Or remove docsets from minor modes
(set-docsets! 'nodejs-mode :remove "JQuery")
#+END_SRC
#+end_src
This determines what docsets to implicitly search for when you use
~+lookup/documentation~ in a mode with no ~:documentation~ handler. Those
@ -211,14 +215,13 @@ docsets must be installed with ~dash-docset-install-docset~.
~+lookup/online~ opens the search results with in ~+lookup-open-url-fn~
(default: ~#'browse-url~). Here is how to change this to EWW (so it opens inside
Emacs):
#+BEGIN_SRC emacs-lisp
#+begin_src emacs-lisp
(setq +lookup-open-url-fn #'eww)
#+END_SRC
#+end_src
#+begin_quote
~+lookup/in-docsets~ consults ~dash-docs-browser-func~ instead, which is already
set to ~#'eww~ by default.
📌 ~+lookup/in-docsets~ consults ~dash-docs-browser-func~ instead, which is
already set to ~#'eww~ by default.
#+end_quote
** Open in Xwidget WebKit instead of browser
@ -226,19 +229,28 @@ To open results from ~+lookup/online~ or ~+lookup/in-docsets~ in Xwidget WebKit
instead of your system browser, set ~+lookup-open-url-fn~ and/or
~dash-docs-browser-func~ to ~+lookup-xwidget-webkit-open-url-fn~ (needs Emacs
with Xwidgets support):
#+BEGIN_SRC emacs-lisp
#+begin_src emacs-lisp
(setq +lookup-open-url-fn #'+lookup-xwidget-webkit-open-url-fn)
(after! dash-docs
(setq dash-docs-browser-func #'+lookup-xwidget-webkit-open-url-fn))
#+END_SRC
#+end_src
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]]
#+end_quote
* Appendix
** Commands
+ ~+lookup/definition~
+ ~+lookup/references~
+ ~+lookup/documentation~
+ ~+lookup/online~
+ ~+lookup/online-select~
+ ~+lookup/in-devdocs~
+ ~+lookup/in-docsets~
- ~+lookup/definition~
- ~+lookup/references~
- ~+lookup/documentation~
- ~+lookup/online~
- ~+lookup/online-select~
- ~+lookup/in-devdocs~
- ~+lookup/in-docsets~

View file

@ -1,81 +1,77 @@
#+TITLE: tools/lsp
#+DATE: March 05, 2019
#+SINCE: v2.1
#+STARTUP: inlineimages
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools lsp][Issues]] ↖ [[doom-module-source:tools/lsp][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools lsp
#+SUBTITLE: M-x vscode
#+CREATED: March 05, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#lsp-powered-project-search][LSP-powered project search]]
- [[#differences-between-eglot-and-lsp-mode][Differences between eglot and lsp-mode]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
- [[#my-language-server-is-not-found][My language server is not found]]
- [[#lspeglot-is-not-started-automatically-in-my-buffer][LSP/Eglot is not started automatically in my buffer]]
* Description
* Description :unfold:
This module integrates [[https://langserver.org/][language servers]] into Doom Emacs. They provide features
you'd expect from IDEs, like code completion, realtime linting, language-aware
imenu/xref integration, jump-to-definition/references support, and more.
To get LSP working, you'll need to do three things:
1. Enable this module,
2. Install a language server appropriate for your targeted language(s) (you'll
find a table mapping languages to available servers [[https://github.com/emacs-lsp/lsp-mode#supported-languages][in the lsp-mode project
README]]).
3. Enable the =+lsp= flag on the =:lang= modules you want to enable LSP support
for. If your language's module doesn't have LSP support, and you know it can
(or should), please let us know! In the meantime, you must configure it
yourself (described in the Configuration section).
[[doom-package:][imenu]]/[[doom-package:][xref]] integration, jump-to-definition/references support, and more.
As of this writing, this is the state of LSP support in Doom Emacs:
| Module | Major modes | Default language server |
|------------------+---------------------------------------------------------+---------------------------------------------------------------|
| [[../../lang/cc/README.org][:lang cc]] | c-mode, c++-mode, objc-mode | ccls |
| [[../../lang/clojure/README.org][:lang clojure]] | clojure-mode | clojure-lsp |
| [[../../lang/csharp/README.org][:lang csharp]] | csharp-mode | omnisharp |
| [[../../lang/elixir/README.org][:lang elixir]] | elixir-mode | elixir-ls |
| [[../../lang/fsharp/README.org][:lang fsharp]] | fsharp-mode | Mono, .NET core |
| [[../../lang/go/README.org][:lang go]] | go-mode | go-langserver |
| [[../../lang/haskell/README.org][:lang haskell]] | haskell-mode | haskell-language-server |
| [[../../lang/java/README.org][:lang java]] | java-mode | lsp-java |
| [[../../lang/javascript/README.org][:lang javascript]] | js2-mode, rjsx-mode, typescript-mode | typescript-language-server |
| [[../../lang/julia/README.org][:lang julia]] | julia-mode | LanguageServer.jl |
| [[../../lang/ocaml/README.org][:lang ocaml]] | tuareg-mode | ocaml-language-server |
| [[../../lang/php/README.org][:lang php]] | php-mode | php-language-server |
| [[../../lang/python/README.org][:lang python]] | python-mode | lsp-python-ms |
| [[../../lang/ruby/README.org][:lang ruby]] | ruby-mode | solargraph |
| [[../../lang/rust/README.org][:lang rust]] | rust-mode | rls |
| [[../../lang/scala/README.org][:lang scala]] | scala-mode | metals |
| [[../../lang/sh/README.org][:lang sh]] | sh-mode | bash-language-server |
| [[../../lang/swift/README.org][:lang swift]] | swift-mode | sourcekit |
| [[../../lang/web/README.org][:lang web]] | web-mode, css-mode, scss-mode, sass-mode, less-css-mode | vscode-css-languageserver-bin, vscode-html-languageserver-bin |
| [[../../lang/purescript/README.org][:lang purescript]] | purescript-mode | purescript-language-server |
| [[../../lang/zig/README.org][:lang zig]] | zig-mode | zls |
| [[doom-module:][:lang cc]] | c-mode, c++-mode, objc-mode | ccls, clangd |
| [[doom-module:][:lang clojure]] | clojure-mode | clojure-lsp |
| [[doom-module:][:lang csharp]] | csharp-mode | omnisharp |
| [[doom-module:][:lang elixir]] | elixir-mode | elixir-ls |
| [[doom-module:][:lang fsharp]] | fsharp-mode | Mono, .NET core |
| [[doom-module:][:lang go]] | go-mode | go-langserver |
| [[doom-module:][:lang haskell]] | haskell-mode | haskell-language-server |
| [[doom-module:][:lang java]] | java-mode | lsp-java |
| [[doom-module:][:lang javascript]] | js2-mode, rjsx-mode, typescript-mode | ts-ls, deno-ls |
| [[doom-module:][:lang julia]] | julia-mode | LanguageServer.jl |
| [[doom-module:][:lang ocaml]] | tuareg-mode | ocaml-language-server |
| [[doom-module:][:lang php]] | php-mode | php-language-server |
| [[doom-module:][:lang purescript]] | purescript-mode | purescript-language-server |
| [[doom-module:][:lang python]] | python-mode | lsp-python-ms |
| [[doom-module:][:lang ruby]] | ruby-mode | solargraph |
| [[doom-module:][:lang rust]] | rust-mode | rls |
| [[doom-module:][:lang scala]] | scala-mode | metals |
| [[doom-module:][:lang sh]] | sh-mode | bash-language-server |
| [[doom-module:][:lang swift]] | swift-mode | sourcekit |
| [[doom-module:][:lang web]] | web-mode, css-mode, scss-mode, sass-mode, less-css-mode | vscode-css-languageserver-bin, vscode-html-languageserver-bin |
| [[doom-module:][:lang zig]] | zig-mode | zls |
** Module Flags
+ =+peek= Use =lsp-ui-peek= when looking up definitions and references with
functionality from the =:tools lookup= module.
+ =+eglot= Use [[https://elpa.gnu.org/packages/eglot.html][Eglot]] instead of [[https://github.com/emacs-lsp/lsp-mode][LSP-mode]] to implement the LSP client in
Emacs.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/emacs-lsp/lsp-mode][lsp-mode]]
+ [[https://github.com/emacs-lsp/lsp-ui][lsp-ui]]
+ [[https://github.com/emacs-lsp/lsp-ivy][lsp-ivy]] (=:completion ivy=)
+ [[https://github.com/emacs-lsp/helm-lsp][helm-lsp]] (=:completion helm=)
+ [[https://github.com/gagbo/consult-lsp][consult-lsp]] (=:completion vertico=)
+ [[https://github.com/joaotavora/eglot][eglot]]
** Module flags
- +eglot ::
Use [[https://elpa.gnu.org/packages/eglot.html][Eglot]] instead of [[https://github.com/emacs-lsp/lsp-mode][LSP-mode]] to implement the LSP client in Emacs.
- +peek ::
Use ~lsp-ui-peek~ when looking up definitions and references with
functionality from the [[doom-module:][:tools lookup]] module.
* Prerequisites
This module has no direct prerequisites, but different languages will need
different language servers, which =lsp-mode= will prompt you to auto-install.
=eglot= will not.
** Packages
- [[doom-package:][lsp-mode]]
- [[doom-package:][lsp-ui]]
- [[doom-package:][lsp-ivy]] ([[doom-module:][:completion ivy]])
- [[doom-package:][helm-lsp]] ([[doom-module:][:completion helm]])
- [[doom-package:][consult-lsp]] ([[doom-module:][:completion vertico]])
- [[doom-package:][eglot]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
To get LSP working, you'll need to do three things:
1. Enable this module,
2. Install a language server appropriate for your targeted language(s).
3. Enable the [[doom-module:][+lsp]] flag on the [[doom-module:][:lang]] modules you want to enable LSP support for.
Different languages will need different language servers, some of which [[doom-package:][lsp-mode]]
will prompt you to auto-install, but [[doom-package:][eglot]] will not.
A table that lists available language servers and how to install them can be
found [[https://emacs-lsp.github.io/lsp-mode/page/languages/][on the lsp-mode project README]]. The documentation of the module for your
@ -84,15 +80,19 @@ targeted language will contain brief instructions as well.
For eglot users, a list of [[https://github.com/joaotavora/eglot/blob/master/README.md#connecting-to-a-server][default servers supported is on Eglot's README]],
including instructions to register your own.
* TODO Features
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** LSP-powered project search
Without the =+eglot= flag, and when =:completion ivy=, =:completion helm= or
=:completion vertico= is active, LSP is used to search a symbol indexed by the
LSP server :
| Keybind | Description |
|-----------+-------------------------------------|
| =SPC c j= | Jump to symbol in current workspace |
| =SPC c J= | Jump to symbol in any workspace |
Without the [[doom-module:][+eglot]] flag, and when [[doom-module:][:completion ivy]], [[doom-module:][:completion helm]] or
[[doom-module:][:completion vertico]] is active, LSP is used to search a symbol indexed by the LSP
server:
| Keybind | Description |
|---------+-------------------------------------|
| [[kbd:][SPC c j]] | Jump to symbol in current workspace |
| [[kbd:][SPC c J]] | Jump to symbol in any workspace |
** Differences between eglot and lsp-mode
Entering the debate about which one to use would be useless. Doom provides an
@ -100,21 +100,39 @@ easy way to switch out lsp client implementations so you can test for yourself
which one you prefer.
Mainly, from a code point of view, lsp-mode has a lot of custom code for UI
(=lsp-ui-peek=, =lsp-ui-sideline=, ...), while eglot is more barebones with a
closer integration with "more basic" emacs packages (=eldoc=, =xref=, ...).
(~lsp-ui-peek~, ~lsp-ui-sideline~, ...), while eglot is more barebones with a
closer integration with "more basic" emacs packages ([[doom-package:][eldoc]], [[doom-package:][xref]], ...).
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** Turn off lsp-mode's intrusive features
Many users may not like how many UI elements that lsp-mode adds. They have [[https://emacs-lsp.github.io/lsp-mode/tutorials/how-to-turn-off/][some
excellent documentation]] outlining what these features are called and how to turn
them off.
* Troubleshooting
[[doom-report:][Report an issue?]]
* TODO Troubleshooting
** My language server is not found
Check the entry in the [[../../../docs/faq.org][FAQ]] about "Doom can't find my executables/doesn't inherit
the correct ~PATH~"
** LSP/Eglot is not started automatically in my buffer
Make sure that you added the =+lsp= flag to the language you're using too in
your init.el :
#+BEGIN_SRC diff
Make sure that you have enabled the [[doom-module:][+lsp]] flag on the appropriate module(s) (in
your ~doom!~ block in =$DOOMDIR/init.el=):
#+begin_src diff
:lang
-python
+(python +lsp)
#+END_SRC
#+end_src
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,78 +1,90 @@
#+TITLE: tools/magit
#+DATE: March 14, 2018
#+SINCE: v2.0.0
#+STARTUP: inlineimages nofold
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools magit][Issues]] ↖ [[doom-module-source:tools/magit][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools magit
#+SUBTITLE: Wield git like a wizard
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#enable-gravatars][Enable Gravatars]]
- [[#enable-granular-diff-highlights-for-all-hunks][Enable granular diff-highlights for all hunks]]
- [[#troubleshooting][Troubleshooting]]
* Description
* Description :unfold:
This module provides Magit, an interface to the Git version control system.
** Maintainers
- [[doom-user:][@hlissner]]
[[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +forge ::
Enable Forge; a porcelain for managing Github issues and PRs from within
Emacs. Will take a while on first run to build =emacsql-sqlite=.
** Packages
- [[doom-package:][evil-magit]] if [[doom-module:][:editor evil +everywhere]]
- [[doom-package:][forge]] if [[doom-module:][+forge]]
- [[doom-package:][github-review]]
- [[doom-package:][magit]]
- [[doom-package:][magit-gitflow]]
- [[doom-package:][magit-todos]]
** Hacks
- [[doom-package:][magit]] has been modified to recognize =$XDG_CACHE_HOME/git/credential/socket=.
- [[doom-package:][magit]] has been modified to invalidate the projectile cache when you check out
a new branch or commit.
- [[doom-package:][magit]] has been modified to revert repo buffers (e.g. after changing branches)
when you later switch to them, rather than all at once.
- [[doom-package:][forge]] was modified to defer compilation of emacsql-sqlite until you try to use
forge, rather than when magit first loads (which could be as soon as startup).
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires:
- [[https://git-scm.com/][Git]]
- [[doom-module:][+forge]] requires [[https://magit.vc/manual/forge/Token-Creation.html#Token-Creation][a Github API token]]
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
Start magit with [[kbd:][<leader> g g]] (~M-x magit-status~).
If you are new to Magit, see the [[https://github.com/magit/magit#getting-started][Getting Started]] section of its project readme.
** Maintainers
This module has no dedicated maintainers.
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** Module Flags
+ =+forge= Enable Forge; a porcelain for managing issues and PRs from within
Emacs. Will take a while on first run to build emacsql-sqlite.
** Plugins
+ [[https://github.com/magit/magit][magit]]
+ [[https://github.com/magit/forge][forge]]* (=+forge=)
+ [[https://github.com/jtatarik/magit-gitflow][magit-gitflow]]
+ [[https://github.com/alphapapa/magit-todos][magit-todos]]
+ [[https://github.com/charignon/github-review][github-review]]
+ [[https://github.com/emacs-evil/evil-magit][evil-magit]]* (=:editor evil +everywhere=)
** Hacks
+ =forge= was modified to defer compilation of emacsql-sqlite until you try to
use forge, rather than when magit first loads (which could be as soon as
startup).
+ =magit= has been modified to recognize
=$XDG_CACHE_HOME/git/credential/socket=.
+ =magit= has been modified to invalidate the projectile cache when you check
out a new branch or commit.
+ =magit= has been modified to revert repo buffers (e.g. after changing
branches) when you later switch to them, rather than all at once.
* Prerequisites
This module requires ~git~.
Forge will require [[https://magit.vc/manual/forge/Token-Creation.html#Token-Creation][a Github API token]] the first time you run =forge-pull=.
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
* Configuration
Add these to =$DOOMDIR/config.el=.
** Enable Gravatars
This will enable gravatars when viewing commits. The service used by default is [[https://www.libravatar.org/][Libravatar]].
#+BEGIN_SRC emacs-lisp
(setq magit-revision-show-gravatars '("^Author: " . "^Commit: "))
#+END_SRC
To enable gravatars when viewing commits:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! magit
(setq magit-revision-show-gravatars '("^Author: " . "^Commit: ")))
#+end_src
** Enable granular diff-highlights for all hunks
By default, changes are highlighted *linewise* for all but the selected hunk. This
has [[https://magit.vc/manual/magit/Performance.html][performance reasons]]. You can enable character-wise highlights for all
visible hunks with:
#+BEGIN_SRC emacs-lisp
By default, changes are highlighted *linewise* for all but the selected hunk.
This is so for [[https://magit.vc/manual/magit/Performance.html][performance reasons]]. You can enable character-wise highlights for
/all/ visible hunks with:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! magit
(setq magit-diff-refine-hunk 'all))
#+END_SRC
#+end_src
* TODO Troubleshooting
# Common issues and their solution, or places to look for help.
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -0,0 +1,55 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools make][Issues]] ↖ [[doom-module-source:tools/make][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools make
#+SUBTITLE: The discount build system
#+CREATED: September 25, 2017
#+SINCE: 2.0.6
* Description :unfold:
This module adds commands for executing Makefile targets.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][makefile-executor]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires ~make~.
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
To invoke a make command: ~M-x +make/run~
To rerun the last make command: ~M-x +make/run-last~
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,55 +1,66 @@
#+TITLE: tools/pass
#+DATE: May 4, 2020
#+SINCE: V2.0.9
#+STARTUP: inlineimages nofold
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools pass][Issues]] ↖ [[doom-module-source:tools/pass][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools pass
#+SUBTITLE: A password manager for nerds
#+CREATED: May 04, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
+ Manage passwords on ~pass~ with power of ~doom~.
+ You can open ~pass~ by =M-x pass=
* Description :unfold:
This module provides an Emacs interface to [[https://www.passwordstore.org/][Pass]].
** Maintainers
This module has no dedicated maintainers.
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ ~+auth~ to enable ~auth-source-pass~
** Module flags
- +auth ::
Allow Emacs to use pass for authentication (via ~auth-source-pass~).
** Plugins
# A list of linked plugins
+ [[https://github.com/NicolasPetton/pass][pass]]
+ [[https://github.com/zx2c4/password-store][password-store]]
+ [[https://github.com/volrath/password-store-otp.el][password-store-otp]]
+ [[https://github.com/DamienCassou/auth-password-store][auth-source-pass (auth-password-store)]]
+ =:completion ivy=
+ [[https://github.com/ecraven/ivy-pass][ivy-pass]]
+ =:completion helm=
+ [[https://github.com/emacs-helm/helm-pass][helm-pass]]
** Packages
- [[doom-package:][helm-pass]] if [[doom-module:][:completion helm]]
- [[doom-package:][ivy-pass]] if [[doom-module:][:completion ivy]]
- [[doom-package:][pass]]
- [[doom-package:][password-store]]
- [[doom-package:][password-store-otp]]
** Hacks
In ~pass-mode~ ~evil~ is put into ~emacs~ state so shown keybindings works correctly, but some keybindings is more ~evil~.
| keybinding | action |
|------------+-------------------------|
| j | pass-next-entry |
| k | pass-previous-entry |
| d | pass-kill |
| C-j | pass-next-directory |
| C-k | pass-previous-directory |
* Prerequisites
+ This module requires that [[https://www.passwordstore.org/][pass]] is installed and setup correctly.
/No hacks documented for this module./
* TODO Features
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires [[https://www.passwordstore.org/][pass]], [[https://gnupg.org/][GnuPG]], and a password library.
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
Start using this module with ~M-x pass~.
| keybinding | command |
|------------+---------------------------|
| =j= | ~pass-next-entry~ |
| =k= | ~pass-previous-entry~ |
| =d= | ~pass-kill~ |
| =C-j= | ~pass-next-directory~ |
| =C-k= | ~pass-previous-directory~ |
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
No known issues.
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,55 +1,56 @@
#+TITLE: tools/pdf
#+DATE: February 6, 2018
#+SINCE: v2.0
#+STARTUP: inlineimages nofold
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools pdf][Issues]] ↖ [[doom-module-source:tools/pdf][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools pdf
#+SUBTITLE: Emacs, your next PDF reader
#+CREATED: February 06, 2018
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#building-epdfinfo-on-windows][Building =epdfinfo= on Windows]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description :unfold:
This module improves support for reading and interacting with PDF files in
Emacs.
* Description
This module improves support for reading and interacting with PDF files in Emacs.
It uses =pdf-tools=, which is a replacement for the built-in ~doc-view-mode~ for
It uses [[doom-package:][pdf-tools]], which is a replacement for the built-in ~doc-view-mode~ for
PDF files. The key difference being pages are not pre-rendered, but instead
rendered on-demand and stored in memory; a much faster approach, especially for
larger PDFs.
Displaying PDF files is just one function of =pdf-tools=. See [[https://github.com/politza/pdf-tools][its project
website]] for details and videos.
Displaying PDF files is just one function of [[doom-package:][pdf-tools]]. See [[https://github.com/politza/pdf-tools][its project website]]
for details and videos.
** Maintainers
This module has no dedicated maintainers.
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** Plugins
+ [[https://github.com/politza/pdf-tools][pdf-tools]]
** Packages
- [[doom-package:][pdf-tools]]
- [[doom-package:][saveplace-pdf-view]]
** Hacks
+ Added out-of-the-box support for HiDPI or Retina displays.
** TODO Hacks
#+begin_quote
🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]]
#+end_quote
* Prerequisites
This module requires =epdfinfo=, a program the the =pdf-tools= plugin will build
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires =epdfinfo=, a program the the [[doom-package:][pdf-tools]] plugin will build
automatically when you open your first pdf file, unless you're on Windows.
Windows users must build it themselves.
You can (re)build =epdfinfo= yourself with ~M-x pdf-tools-install~.
** Building =epdfinfo= on Windows
1. [[https://www.msys2.org/][Install MSYS2]] and update the package database and core packages using the
instructions provided.
2. Update and install dependencies, skipping any you already have
#+BEGIN_SRC sh
2. Update and install dependencies, skipping any you already have:
#+begin_src sh
pacman -Syu
pacman -S base-devel
pacman -S mingw-w64-x86_64-toolchain
@ -57,18 +58,18 @@ Windows users must build it themselves.
pacman -S mingw-w64-x86_64-libpng
pacman -S mingw-w64-x86_64-poppler
pacman -S mingw-w64-x86_64-imagemagick
#+END_SRC
#+end_src
3. Install PDF tools in Emacs, but do not try to compile the server. Instead, get a separate copy of the source somewhere else.
#+BEGIN_SRC sh
3. Install PDF tools in Emacs, but do not try to compile the server. Instead,
get a separate copy of the source somewhere else:
#+begin_src sh
git clone https://github.com/politza/pdf-tools
#+END_SRC
#+end_src
4. Open mingw64 shell (Note: You must use mingw64.exe and not msys2.exe)
5. Compile pdf-tools:
#+BEGIN_SRC sh
#+begin_src sh
# Cask requires python2 (important: not 3!)
pacman -S python2
@ -88,10 +89,10 @@ Windows users must build it themselves.
cd /path/to/pdf-tools
make -s
#+END_SRC
#+end_src
6. This should produce a file =server/epdfinfo.exe=. Copy this file into the
=~/.emacs.d/.local/straight/build/pdf-tools/=.
=$HOME/.emacs.d/.local/straight/build/pdf-tools/=.
7. Start Emacs.
@ -99,11 +100,23 @@ Windows users must build it themselves.
9. Test it out: ~M-x pdf-info-check-epdfinfo~
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
# How to configure this module, including common problems and how to address them.
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Troubleshooting
# Common issues and their solution, or places to look for help.
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -0,0 +1,52 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools prodigy][Issues]] ↖ [[doom-module-source:tools/prodigy][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools prodigy
#+SUBTITLE: No sweatshop is complete without child processes
#+CREATED: May 16, 2018
#+SINCE: 21.12.0
* Description :unfold:
This module provides an interface for managing external services from within
Emacs.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][prodigy]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
/This module has no external requirements./
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,35 +1,37 @@
#+TITLE: tools/rgb
#+DATE: May 6, 2020
#+SINCE: 3.0.0
#+STARTUP: inlineimages nofold
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools rgb][Issues]] ↖ [[doom-module-source:tools/rgb][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools rgb
#+SUBTITLE: Creating color strings
#+CREATED: May 06, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
#+begin_quote
🚧 *This module is deprecated.* The module is too trivial to warrant a module.
#+end_quote
* Description
* Description :unfold:
Highlights color hex values and names with the color itself, and provides tools
to easily modify color values or formats.
** Maintainers
This module has no dedicated maintainers.
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** Plugins
+ [[https://elpa.gnu.org/packages/rainbow-mode.html][rainbow-mode]]
+ [[https://github.com/alphapapa/kurecolor][kurecolor]]
** Packages
- [[doom-package:][kurecolor]]
- [[doom-package:][rainbow-mode]]
* Prerequisites
This module has no prerequisites.
** Hacks
/No hacks documented for this module./
* Features
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
/This module has no external requirements./
* Usage
=rainbow-mode= provides automatic highlighting to hex color codes, and in
relevant modes, color names (e.g. html color names in =css-mode= or LaTeX color
names in =latex-mode=)
@ -39,13 +41,23 @@ hue of hex colors (and a useful hydra for this, if =:ui hydra= is enabled), as
well as conversion between hex and css colors
* Configuration
=hl-line-mode= overrides the color highlighting of =rainbow-mode=, limiting
the use of that plugin and on-site color changes using =kurecolor=. To
automatically disable it only when =rainbow-mode= is active, you can add the
following hook:
=hl-line-mode= overrides the color highlighting of =rainbow-mode=, limiting the
use of that plugin and on-site color changes using =kurecolor=. To automatically
disable it only when =rainbow-mode= is active, you can add the following hook:
#+BEGIN_SRC elisp
;; ~/.doom.d/config.el
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(add-hook! 'rainbow-mode-hook
(hl-line-mode (if rainbow-mode -1 +1)))
#+END_SRC
#+end_src
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,38 +1,63 @@
#+TITLE: tools/taskrunner
#+DATE: November 9, 2019
#+SINCE: {replace with next tagged release version}
#+STARTUP: inlineimages
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools taskrunner][Issues]] ↖ [[doom-module-source:tools/taskrunner][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools taskrunner
#+SUBTITLE: Taskrunner for all your projects
#+CREATED: November 09, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
#+begin_quote
🚧 *This module is deprecated.* The module is too trivial and taskrunner is no
longer maintained.
#+end_quote
* Description
This module integrates [[https://github.com/emacs-taskrunner/emacs-taskrunner][Taskrunner]] into Doom Emacs, which scraps runnable tasks
* Description :unfold:
This module integrates [[doom-package:][taskrunner]] into Doom Emacs, which scraps runnable tasks
from build systems like make, gradle, npm and the like.
** Module Flags
This module provides no flags.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/emacs-taskrunner/emacs-taskrunner][emacs-taskrunner]]
+ [[https://github.com/emacs-taskrunner/ivy-taskrunner][ivy-taskrunner]]
+ [[https://github.com/emacs-taskrunner/helm-taskrunner][helm-taskrunner]]
** Module flags
/This module has no flags./
* Prerequisites
This module has no prerequisites.
** Packages
- [[doom-package:][emacs-taskrunner]]
- [[doom-package:][helm-taskrunner]] if [[doom-module:][:completion helm]]
- [[doom-package:][ivy-taskrunner]] if [[doom-module:][:completion ivy]]
* Features
Keybindings
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
/This module has no external requirements./
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
Keybindings:
| Binding | Description |
| ~p z~ | ~List project tasks~ |
* Configuration
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,69 +1,81 @@
#+TITLE: tools/terraform
#+DATE: November 21, 2019
#+SINCE: v2.1.0
#+STARTUP: inlineimages
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools terraform][Issues]] ↖ [[doom-module-source:tools/terraform][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools terraform
#+SUBTITLE: Infrastructure as code
#+CREATED: November 21, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#syntax-highlighting][Syntax highlighting]]
- [[#code-formatting][Code formatting]]
- [[#code-navigation][Code navigation]]
- [[#code-completion][Code completion]]
- [[#documentation][Documentation]]
- [[#executing-terraform-commands][Executing Terraform commands]]
- [[#appendix][Appendix]]
- [[#keybindings][Keybindings]]
- [[#localleader][:localleader]]
* Description :unfold:
This module adds support for working with [[https://www.terraform.io][Terraform]] files within Emacs. This
includes syntax highlighting, intelligent code completion, and the ability to
run Terraform commands directly from Emacs.
* Description
This module adds support for working with [[https://www.terraform.io][Terraform]] files in Doom Emacs. This
includes syntax highlighting, intelligent code completion, and the ability to run
Terraform commands directly from Emacs.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** Plugins
+ [[https://github.com/syohex/emacs-terraform-mode][terraform-mode]]
+ [[https://github.com/rafalcieslak/emacs-company-terraform][company-terraform*]]
** Packages
- [[doom-package:][company-terraform]] if [[doom-package:][:completion company]]
- [[doom-package:][terraform-mode]]
* Prerequisites
The =terraform= executable must be installed and accessible from your PATH.
** Hacks
/No hacks documented for this module./
* Features
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires the ~terraform~ executable to be installed and in your
=$PATH=.
* Usage
** Syntax highlighting
Syntax highlighting is provided from =terraform-mode= and =hcl-mode=.
Syntax highlighting is provided from ~terraform-mode~ and ~hcl-mode~.
** Code formatting
=:tools terraform= does not provide code formatting directly, but =:editor
format= works with Terraform files.
[[doom-module:][:tools terraform]] does not provide code formatting directly, but [[doom-module:][:editor format]]
works with Terraform files.
** Code navigation
Code navigation is supported through =imenu= from =terraform-mode=.
Code navigation is supported through [[doom-package:][imenu]] from [[doom-package:][terraform-mode]].
** Code completion
Code completion of Terraform builtins is provided from =company-terraform= and
Code completion of Terraform builtins is provided from [[doom-package:][company-terraform]] and
generally works well despite being generated through a [[https://github.com/rafalcieslak/emacs-company-terraform/blob/master/company-terraform-data.el][static (outdated) file]].
=company-terraform= also provides code completion of resources within your project.
[[doom-package:][company-terraform]] also provides code completion of resources within your
project.
** Documentation
Documentation is accessible through the normal =company-mode= show documentation
functionality, thanks to =company-terraform=.
Documentation is accessible through the normal [[doom-package:][company]] show documentation
functionality, thanks to [[doom-package:][company-terraform]].
** Executing Terraform commands
=:tools terraform= provides commands under the =localleader= to run the most
common Terraform operations (see Keybindings below).
[[doom-module:][:tools terraform]] provides commands under [[kbd:][<localleader>]] to run the most common
Terraform operations:
| key | description |
|-----------------+--------------------------|
| [[kbd:][<localleader> i]] | Runs ~$ terraform init~ |
| [[kbd:][<localleader> p]] | Runs ~$ terraform plan~ |
| [[kbd:][<localleader> a]] | Runs ~$ terraform apply~ |
* Appendix
** Keybindings
*** :localleader
| key | description |
|-----+-----------------------|
| =i= | Run =terraform init= |
| =p= | Run =terraform plan= |
| =a= | Run =terraform apply= |
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -0,0 +1,51 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools tmux][Issues]] ↖ [[doom-module-source:tools/tmux][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools tmux
#+SUBTITLE: From one multiplexer to another
#+CREATED: October 15, 2021
#+SINCE: 21.12.0
* Description :unfold:
This module provides an API for talking to Tmux sessions.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
/This module doesn't install any packages./
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
/This module has no external requirements./
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,64 +1,81 @@
#+TITLE: tools/upload
#+DATE: Feb 19, 2020
#+SINCE: 2.0.9
#+STARTUP: inlineimages nofold
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::tools upload][Issues]] ↖ [[doom-module-source:tools/upload][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :tools upload
#+SUBTITLE: Map local directories to remotes via ssh/ftp
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
- [[#root-local-and-root-remote-must-match][~root-local~ and ~root-remote~ must match]]
* Description
* Description :unfold:
Uses ~ssh-deploy~ to map a local folder to a remote one.
From the [[https://github.com/cjohansson/emacs-ssh-deploy/blob/master/README.md][ssh-deploy README]]:
#+BEGIN_QUOTE
#+begin_quote
The ssh-deploy plug-in for Emacs makes it possible to effortlessly deploy local files and directories to remote hosts via Tramp (including but not limited to SSH, SFTP, FTP). It tries to provide functions that can be easily used by custom scripts.
The idea for this plug-in was to mimic the behavior of PhpStorm deployment functionality.
#+END_QUOTE
#+end_quote
** Maintainers
This module has no dedicated maintainers.
- [[doom-user:][@hlissner]]
** Module Flags
This module provides no flags.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/cjohansson/emacs-ssh-deploy][ssh-deploy]]
** Module flags
/This module has no flags./
* Prerequisites
This module has no prerequisites.
** Packages
- [[doom-package:][ssh-deploy]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
/This module has no external requirements./
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features
Uses ~ssh-deploy~ to map a local folder to a remote one. Set
~ssh-deploy-root-remote~ and ~ssh-deploy-root-local~ in a .dir-locals.el file
to establish this mapping.
Example:
#+BEGIN_SRC emacs-lisp
~ssh-deploy-root-remote~ and ~ssh-deploy-root-local~ in a =.dir-locals.el= file
to establish this mapping. E.g.
#+begin_src emacs-lisp
((nil . ((ssh-deploy-root-local . "/local/path/to/project")
(ssh-deploy-root-remote . "/ssh:user@server:/remote/project/")
(ssh-deploy-on-explicit-save . t))))
#+END_SRC
#+end_src
Note: ~ssh-deploy-root-local~ is optional, and will resort to
~doom-project-root~ if unspecified.
#+begin_quote
📌 ~ssh-deploy-root-local~ is optional, and will resort to ~doom-project-root~
if unspecified.
#+end_quote
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
Check out [[https://github.com/cjohansson/emacs-ssh-deploy#deployment-configuration-examples][Deployment configuration examples]] for some ideas of what's possible.
* Troubleshooting
** ~root-local~ and ~root-remote~ must match
The final directory names much match
#+BEGIN_SRC emacs-lisp
The final directory names much match:
#+begin_src emacs-lisp
((nil . ((ssh-deploy-root-local . "/local/path/to/example-project")
(ssh-deploy-root-remote . "/ssh:user@server:/remote/example-project/")
#+END_SRC
#+end_src
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote