docs(:lang): update READMEs to new format

This commit is contained in:
Henrik Lissner 2021-10-16 01:28:32 +02:00 committed by Henrik Lissner
parent ca7579a1e9
commit 20cac97c08
61 changed files with 4261 additions and 2634 deletions

View file

@ -1,9 +1,9 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-changelog-search:::lang nil][Changelog]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]] ← [[doom-module-index:][Back to module index]] ↖ [[doom-module-source:lang][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
#+TITLE: :lang #+TITLE: :lang
#+CREATED: August 3, 2021 #+CREATED: August 03, 2021
#+SINCE: v21.12.0 #+SINCE: 21.12.0
#+SETUPFILE: ../../docs/.setupfile.org
* Description * Description
These modules specialize in adding language support to Emacs. These modules specialize in integration particular languages and their
ecosystems into (Doom) Emacs.

View file

@ -1,4 +1,54 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang agda][Issues]] ↖ [[doom-module-source:lang/agda][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang agda #+TITLE: :lang agda
#+SUBTITLE: Types of types of types of types...
#+CREATED: August 21, 2018
#+SINCE: 21.12.0 (#821)
* Description :unfold:
This module adds support for the [[http://wiki.portal.chalmers.se/agda/pmwiki.php][agda]] programming language. The Emacs support This module adds support for the [[http://wiki.portal.chalmers.se/agda/pmwiki.php][agda]] programming language. The Emacs support
exists directly in the agda repository but not in melpa. exists directly in the agda repository, but not in melpa.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- unless [[doom-module:][+local]]
- [[doom-package:][agda-input]]
- [[doom-package:][agda2-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 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,53 +1,59 @@
#+TITLE: lang/beancount ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang beancount][Issues]] ↖ [[doom-module-source:lang/beancount][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: April 13, 2021 --------------------------------------------------------------------------------
#+SINCE: v3.0.0 #+TITLE: :lang beancount
#+STARTUP: inlineimages nofold #+SUBTITLE: Mind the GAAP
#+CREATED: April 13, 2021
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module adds support for [[https://beancount.github.io/][Beancount]] to Emacs. Beancount, like ledger, lets This module adds support for [[https://beancount.github.io/][Beancount]] to Emacs. Beancount, like ledger, lets
you [[https://plaintextaccounting.org/][manage your money in plain text]]. you [[https://plaintextaccounting.org/][manage your money in plain text]].
+ Supports [[https://github.com/polarmutex/beancount-language-server][beancount-language-server]] (if module is enabled with the =+lsp=
flag).
** Maintainers ** Maintainers
This module has no dedicated maintainers. - @hlissner
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
+ =+lsp= Enable support for [beancount-language-server]. Requires Doom's =:tools
lsp= module.
** Plugins ** Module flags
+ [[https://github.com/beancount/beancount-mode][beancount]] - +lsp ::
Enable LSP support for ~beancount-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/polarmutex/beancount-language-server][beancount-language-server]]).
** Packages
- [[doom-package:][beancount]]
** Hacks ** Hacks
+ Associates the material =attach_money= icon with *.beancount files in the - Associates the material =attach_money= icon with =*.beancount= files in the
=all-the-icons= package. [[doom-package:][all-the-icons]] package.
* Prerequisites ** TODO Changelog
This module has no hard prerequisites, but assumes you have [[https://github.com/beancount/beancount][beancount]] installed # This section will be machine generated. Don't edit it by hand.
in order to generate reports with ~bean-report~. /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://github.com/beancount/beancount][beancount]], for generating reports
- [[https://beancount.github.io/fava/][fava]], for a web interface for your ledgers
* TODO Usage
#+begin_quote #+begin_quote
Also: the ~beancount-fava~ command requires [[https://beancount.github.io/fava/][fava]]. 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote #+end_quote
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
* TODO Configuration * 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 * Troubleshooting
# Common issues and their solution, or places to look for help. /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,71 @@
#+TITLE: lang/cc ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang cc][Issues]] ↖ [[doom-module-source:lang/cc][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2017 --------------------------------------------------------------------------------
#+SINCE: v2.0 #+TITLE: :lang cc
#+STARTUP: inlineimages #+SUBTITLE: C > C++ == 1
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#lsp-servers][LSP servers]]
- [[#irony-server][irony-server]]
- [[#macos][macOS]]
- [[#rtags][rtags]]
- [[#configure][Configure]]
- [[#project-compile-settings][Project compile settings]]
- [[#known-issues-with-bear-on-macos][Known issues with bear on macOS]]
- [[#configure-lsp-servers][Configure LSP servers]]
- [[#lsp-mode-with-clangd][LSP-mode with clangd]]
- [[#lsp-mode-with-ccls][LSP-mode with ccls]]
- [[#eglot-with-clangd][Eglot with clangd]]
- [[#eglot-with-ccls][Eglot with ccls]]
- [[#appendix][Appendix]]
- [[#eglot-specific-bindings][Eglot specific bindings]]
* Description
This module adds support for the C-family of languages: C, C++, and Objective-C. This module adds support for the C-family of languages: C, C++, and Objective-C.
+ Code completion (~company-irony~) - Code completion (~company-irony~)
+ eldoc support (~irony-eldoc~) - eldoc support (~irony-eldoc~)
+ Syntax-checking (~flycheck-irony~) - Syntax-checking (~flycheck-irony~)
+ Code navigation (~rtags~) - Code navigation (~rtags~)
+ File Templates ([[../../editor/file-templates/templates/c-mode][c-mode]], [[../../editor/file-templates/templates/c++-mode][c++-mode]]) - File Templates ([[../../editor/file-templates/templates/c-mode][c-mode]], [[../../editor/file-templates/templates/c++-mode][c++-mode]])
+ Snippets ([[https://github.com/hlissner/doom-snippets/tree/master/cc-mode][cc-mode]], [[https://github.com/hlissner/doom-snippets/tree/master/c-mode][c-mode]], [[https://github.com/hlissner/doom-snippets/tree/master/c++-mode][c++-mode]]) - Snippets ([[https://github.com/hlissner/doom-snippets/tree/master/cc-mode][cc-mode]], [[https://github.com/hlissner/doom-snippets/tree/master/c-mode][c-mode]], [[https://github.com/hlissner/doom-snippets/tree/master/c++-mode][c++-mode]])
+ Several improvements to C++11 indentation and syntax highlighting. - Several improvements to C++11 indentation and syntax highlighting.
** Module Flags ** Maintainers
+ ~+lsp~ Disables irony+rtags and replaces them with LSP (ccls by default). This - [[doom-user:][@hlissner]]
requires the =:tools lsp= module.
** Plugins [[doom-contrib-maintainer:][Become a maintainer?]]
+ [[https://github.com/Kitware/CMake][cmake-mode]]
+ [[https://github.com/chachi/cuda-mode][cuda-mode]] ** Module flags
+ [[https://github.com/liblit/demangle-mode][demangle-mode]] - +lsp ::
+ [[https://github.com/jart/disaster][disaster]] Enable LSP support for ~c-mode~, ~c++-mode~, and ~objc-mode~. Requires [[doom-module:][:tools
+ [[https://github.com/ludwigpacifici/modern-cpp-font-lock][modern-cpp-font-lock]] lsp]] and a langserver (supports ccls, clangd, and cquery). Replaces irony &
+ [[https://github.com/salmanebah/opencl-mode][opencl-mode]] rtags.
+ [[https://github.com/jimhourihan/glsl-mode][glsl-mode]]*
+ [[https://github.com/guidoschmidt/company-glsl][company-glsl]]* ** Packages
+ =+lsp= - [[doom-package:][cmake-mode]]
+ [[https://github.com/MaskRay/emacs-ccls][ccls]] if =:tools lsp= has *no* =+eglot= flag - [[doom-package:][company-glsl]]
+ =-lsp= - [[doom-package:][cuda-mode]]
+ [[https://github.com/Sarcasm/irony-mode][irony]] - [[doom-package:][demangle-mode]]
+ [[https://github.com/ikirill/irony-eldoc][irony-eldoc]] - [[doom-package:][disaster]]
+ [[https://github.com/Sarcasm/flycheck-irony][flycheck-irony]] - [[doom-package:][glsl-mode]]
+ [[https://github.com/Sarcasm/company-irony][company-irony]] - [[doom-package:][modern-cpp-font-lock]]
+ [[https://github.com/hotpxl/company-irony-c-headers][company-irony-c-headers]] - [[doom-package:][opencl-mode]]
+ [[https://github.com/Andersbakken/rtags][rtags]] - if [[doom-module:][+lsp]]
+ [[https://github.com/Andersbakken/rtags][ivy-rtags]] - [[doom-package:][ccls]] if [[doom-module:][:tools lsp -eglot]]
+ [[https://github.com/Andersbakken/rtags][helm-rtags]] - else
- [[doom-package:][company-irony]]
- [[doom-package:][company-irony-c-headers]]
- [[doom-package:][flycheck-irony]]
- [[doom-package:][helm-rtags]] if [[doom-module:][:completion helm]]
- [[doom-package:][irony]]
- [[doom-package:][irony-eldoc]]
- [[doom-package:][ivy-rtags]] if [[doom-module:][:completion ivy]]
- [[doom-package:][rtags]]
** 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.]]
* Prerequisites
This module's requirements change depending on how you use it. This module's requirements change depending on how you use it.
+ If =+lsp= is enabled, you need one of *clangd v9+* or *ccls*. - If [[doom-module:][+lsp]] is enabled, you need one of *clangd v9+* or *ccls*.
+ If =+lsp= is *not* enabled, you need *irony-server* and *rtags*. - If [[doom-module:][+lsp]] is *not* enabled, you need *irony-server* and *rtags*.
+ Other features in this module depend on: - Other features in this module depend on:
+ (optional) glslangValidator, for GLSL completion in ~glsl-mode~ - (optional) glslangValidator, for GLSL completion in ~glsl-mode~
+ (optional) cmake, for code completion in ~cmake-mode~ - (optional) cmake, for code completion in ~cmake-mode~
+ You will need a C/C++ compiler, like =gcc= or =clang=. - You will need a C/C++ compiler, like =gcc= or =clang=.
** LSP servers ** LSP servers
=lsp-mode= and =eglot= support a few LSP servers, but =clangd= and =ccls= are =lsp-mode= and =eglot= support a few LSP servers, but =clangd= and =ccls= are
@ -76,13 +74,13 @@ recommended.
+ clangd (must be v9 or newer) :: clangd is included with =llvm= which should be + clangd (must be v9 or newer) :: clangd is included with =llvm= which should be
available through your OS' package manager. available through your OS' package manager.
- Linux: - Linux:
- Debian 11 & Ubuntu 20.10: ~# apt-get install clangd-11~ - Debian 11 & Ubuntu 20.10: ~$ apt-get install clangd-11~
- 20.04 LTS: [[https://pkgs.org/search/?q=clangd][clangd-10]] - 20.04 LTS: [[https://pkgs.org/search/?q=clangd][clangd-10]]
- Fedora & CentOS/RHEL 8+: ~# dnf install clang-tools-extra~ - Fedora & CentOS/RHEL 8+: ~$ dnf install clang-tools-extra~
- openSUSE: ~# zypper install clang~ - openSUSE: ~$ zypper install clang~
- Arch: ~# pacman -S clang~ - Arch: ~$ pacman -S clang~
- BSDs: - BSDs:
- NetBSD & OpenBSD: ~# pkg_add clang-tools-extra~ - NetBSD & OpenBSD: ~$ pkg_add clang-tools-extra~
- macOS: ~$ brew install llvm~ // 1GB+ installation! May take a while! - macOS: ~$ brew install llvm~ // 1GB+ installation! May take a while!
- Windows: use the win64 installer from [[https://releases.llvm.org/download.html][LLVM's GitHub release page]]. - Windows: use the win64 installer from [[https://releases.llvm.org/download.html][LLVM's GitHub release page]].
+ ccls :: Available in many OS' package managers as =ccls=. Otherwise, there are + ccls :: Available in many OS' package managers as =ccls=. Otherwise, there are
@ -97,14 +95,13 @@ irony-install-server~ in Emacs.
*** macOS *** macOS
Due to linking issues, macOS users must compile irony-server manually: Due to linking issues, macOS users must compile irony-server manually:
#+begin_src sh
#+BEGIN_SRC sh
brew install cmake brew install cmake
brew install llvm brew install llvm
git clone https://github.com/Sarcasm/irony-mode irony-mode git clone https://github.com/Sarcasm/irony-mode irony-mode
#+END_SRC #+end_src
#+BEGIN_SRC bash #+begin_src sh
mkdir irony-mode/server/build mkdir irony-mode/server/build
pushd irony-mode/server/build pushd irony-mode/server/build
@ -121,7 +118,7 @@ install_name_tool -change @rpath/libclang.dylib \
# Cleanup # Cleanup
popd popd
rm -rf irony-mode rm -rf irony-mode
#+END_SRC #+end_src
** rtags ** rtags
Code navigation requires an [[https://github.com/Andersbakken/rtags][rtags]] server (~rdm~) installed. This should be Code navigation requires an [[https://github.com/Andersbakken/rtags][rtags]] server (~rdm~) installed. This should be
@ -130,12 +127,36 @@ available through your OS's package manager.
This module will auto-start ~rdm~ when you open C/C++ buffers (so long as one This module will auto-start ~rdm~ when you open C/C++ buffers (so long as one
isn't already running). If you prefer to run it yourself: isn't already running). If you prefer to run it yourself:
#+BEGIN_SRC sh #+begin_src sh
rdm & rdm &
rc -J $PROJECT_ROOT # loads PROJECT_ROOT's compile_commands.json rc -J $PROJECT_ROOT # loads PROJECT_ROOT's compile_commands.json
#+END_SRC #+end_src
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
1. Enable this module.
2. Enable the ~+lsp~ flag for the appropriate modules you want LSP support for
(e.g. ~:lang (python +lsp)~ or ~:lang (rust +lsp)~),
3. Install the prerequisite LSP servers through your package manager or other
means. You can find a list of supported servers on [[https://github.com/emacs-lsp/lsp-mode#supported-languages][the lsp-mode project page]].
4. Run ~$ doom sync~ on the command line and restart Emacs.
** Eglot-specific bindings
When using [[doom-module:][+lsp]] and [[doom-module:][:tools lsp +eglot]], [[doom-package:][lsp-mode]] is replaced with [[doom-package:][eglot]], and an
additional function to get inheritance type hierarchy is added:
| Binding | Description |
|----------------------------+------------------------------------------------|
| [[kbd:][<localleader> c t]] | Display inheritance type hierarchy (upwards) |
| [[kbd:][<prefix> <localleader> c t]] | Display inheritance type hierarchy (downwards) |
* TODO Configure
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configure
** Project compile settings ** Project compile settings
By default, a set of default compile settings are defined in By default, a set of default compile settings are defined in
~+cc-default-compiler-options~ for C, C++ and Objective C. Irony, rtags and ~+cc-default-compiler-options~ for C, C++ and Objective C. Irony, rtags and
@ -145,16 +166,16 @@ For a more universal solution: both LSP servers and irony will recognize a
[[https://sarcasm.github.io/notes/dev/compilation-database.html#ninja][compilation database]] (a ~compile_commands.json~ file). There are [[https://sarcasm.github.io/notes/dev/compilation-database.html][many ways to [[https://sarcasm.github.io/notes/dev/compilation-database.html#ninja][compilation database]] (a ~compile_commands.json~ file). There are [[https://sarcasm.github.io/notes/dev/compilation-database.html][many ways to
generate one]]. Here is an example using [[http://www.cmake.org/][CMake]] and [[https://github.com/rizsotto/Bear][bear]]: generate one]]. Here is an example using [[http://www.cmake.org/][CMake]] and [[https://github.com/rizsotto/Bear][bear]]:
#+BEGIN_SRC sh #+begin_src sh
# For CMake projects # For CMake projects
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON . cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
#+END_SRC #+end_src
#+BEGIN_SRC sh #+begin_src sh
# For non-CMake projects # For non-CMake projects
make clean make clean
bear make bear make
#+END_SRC #+end_src
Use ~M-x +cc/reload-compile-db~ to reload your compile db in an already-open Use ~M-x +cc/reload-compile-db~ to reload your compile db in an already-open
C/C++/ObjC buffer. C/C++/ObjC buffer.
@ -164,7 +185,6 @@ MacOS' [[https://support.apple.com/en-us/HT204899][System Integrity Protection (
under ~/usr/bin/~ which results in an empty compilation database. under ~/usr/bin/~ which results in an empty compilation database.
From the bear [[https://github.com/rizsotto/Bear#empty-compilation-database-on-os-x-captain-or-fedora][readme]]: From the bear [[https://github.com/rizsotto/Bear#empty-compilation-database-on-os-x-captain-or-fedora][readme]]:
#+begin_quote #+begin_quote
Security extension/modes on different operating systems might disable library Security extension/modes on different operating systems might disable library
preloads. This case Bear behaves normally, but the result compilation database preloads. This case Bear behaves normally, but the result compilation database
@ -182,77 +202,76 @@ such tool might be scan-build. The build system shall respect CC and CXX
environment variables. environment variables.
#+end_quote #+end_quote
A workaround might be to install ~make~ via Homebrew which puts ~gmake~ A workaround might be to install ~make~ via Homebrew which puts ~gmake~ under
under ~/usr/local/~. =/usr/local/=:
#+begin_src sh
#+BEGIN_SRC sh
brew install make brew install make
#+END_SRC #+end_src
#+begin_src sh
#+BEGIN_SRC sh
make clean make clean
bear gmake bear gmake
#+END_SRC #+end_src
Additional info: Additional info:
+ [[https://github.com/rizsotto/Bear/issues/158][Empty compilation database with compiler in /usr/local]] - [[https://github.com/rizsotto/Bear/issues/158][Empty compilation database with compiler in /usr/local]]
+ [[https://github.com/rizsotto/Bear/issues/152][Workaround for 'Empty compilation database on OS X Captain]] - [[https://github.com/rizsotto/Bear/issues/152][Workaround for 'Empty compilation database on OS X Captain]]
** Configure LSP servers ** Configure LSP servers
Search for your combination of =(LSP client package, LSP server)=. You are using Search for your combination of =(LSP client package, LSP server)=. You are using
=LSP-mode= by default, =eglot= if you have =:tools (lsp +eglot)= active in your [[doom-package:][lsp-mode]] by default, [[doom-package:][eglot]] if you have [[doom-module:][:tools lsp +eglot]] active in
=init.el= file. =$DOOMDIR/init.el= file.
*** LSP-mode with clangd *** LSP-mode with clangd
#+begin_src emacs-lisp
#+BEGIN_SRC elisp (after! lsp-clangd
(setq lsp-clients-clangd-args '("-j=3" (setq lsp-clients-clangd-args
'("-j=3"
"--background-index" "--background-index"
"--clang-tidy" "--clang-tidy"
"--completion-style=detailed" "--completion-style=detailed"
"--header-insertion=never" "--header-insertion=never"
"--header-insertion-decorators=0")) "--header-insertion-decorators=0"))
(after! lsp-clangd (set-lsp-priority! 'clangd 2)) (set-lsp-priority! 'clangd 2))
#+END_SRC #+end_src
This will both set your clangd flags and choose =clangd= as the default LSP server everywhere clangd can be used. This will both set your clangd flags and choose =clangd= as the default LSP
server everywhere clangd can be used.
*** LSP-mode with ccls *** LSP-mode with ccls
#+begin_src emacs-lisp
#+BEGIN_SRC elisp
(after! ccls (after! ccls
(setq ccls-initialization-options '(:index (:comments 2) :completion (:detailedLabel t))) (setq ccls-initialization-options '(:index (:comments 2) :completion (:detailedLabel t)))
(set-lsp-priority! 'ccls 2)) ; optional as ccls is the default in Doom (set-lsp-priority! 'ccls 2)) ; optional as ccls is the default in Doom
#+END_SRC #+end_src
This will both set your ccls flags and choose ccls as the default server. [[https://github.com/MaskRay/ccls/wiki/Customization#--initjson][CCLS This will both set your ccls flags and choose ccls as the default server. [[https://github.com/MaskRay/ccls/wiki/Customization#--initjson][CCLS
documentation]] lists available options, use =t= for ~true~, =:json-false= for documentation]] lists available options, use =t= for ~true~, =:json-false= for
~false~, and =:json-null= for ~null~. ~false~, and =:json-null= for ~null~.
*** Eglot with clangd *** Eglot with clangd
#+begin_src emacs-lisp
#+BEGIN_SRC elisp
(set-eglot-client! 'cc-mode '("clangd" "-j=3" "--clang-tidy")) (set-eglot-client! 'cc-mode '("clangd" "-j=3" "--clang-tidy"))
#+END_SRC #+end_src
This will both set your clangd flags and choose clangd as the default server (if This will both set your clangd flags and choose clangd as the default server (if
it is the last =set-eglot-client! 'cc-mode= in your config). it is the last =set-eglot-client! 'cc-mode= in your config).
*** Eglot with ccls *** Eglot with ccls
#+begin_src emacs-lisp
#+BEGIN_SRC elisp
(set-eglot-client! 'cc-mode '("ccls" "--init={\"index\": {\"threads\": 3}}")) (set-eglot-client! 'cc-mode '("ccls" "--init={\"index\": {\"threads\": 3}}"))
#+END_SRC #+end_src
This will both set your ccls flags and choose ccls as the default server (if it This will both set your ccls flags and choose ccls as the default server (if it
is the last =set-eglot-client! 'cc-mode= in your config). [[https://github.com/MaskRay/ccls/wiki/Customization#--initjson][CCLS documentation]] is the last =set-eglot-client! 'cc-mode= in your config). [[https://github.com/MaskRay/ccls/wiki/Customization#--initjson][CCLS documentation]]
lists available options lists available options
* Appendix * Troubleshooting
** Eglot specific bindings /There are no known problems with this module./ [[doom-report:][Report one?]]
When using =+lsp= and =:tools (lsp +eglot)=, lsp-mode is replaced with eglot,
and an additional function to get inheritance type hierarchy is added * Frequently asked questions
| Binding | Description | /This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
|------------------------------+--------------------------------------------------|
| ~<localleader> c t~ | ~Display inheritance type hierarchy (upwards)~ | * TODO Appendix
| ~<prefix> <localleader> c t~ | ~Display inheritance type hierarchy (downwards)~ | #+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,115 +1,122 @@
#+TITLE: lang/clojure ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang clojure][Issues]] ↖ [[doom-module-source:lang/clojure][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: May 30, 2017 --------------------------------------------------------------------------------
#+SINCE: v2.0 #+TITLE: :lang clojure
#+STARTUP: inlineimages nofold #+SUBTITLE: Java with a lisp
#+CREATED: May 30, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#keybindings][Keybindings]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module adds support for the Clojure(Script) language. This module adds support for the Clojure(Script) language.
+ Interactive development environment (~cider~): REPL, compilation, debugging, - Interactive development environment (~cider~): REPL, compilation, debugging,
running tests, definitions & documentation lookup, code completion, and much running tests, definitions & documentation lookup, code completion, and much
more more
+ Refactoring (~clj-refactor~) - Refactoring (~clj-refactor~)
+ Linting (~clj-kondo~), requires ~:checkers syntax~ - Linting (~clj-kondo~), requires ~:checkers syntax~
+ LSP support (~clojure-lsp~) - LSP support (~clojure-lsp~)
** Maintainers ** Maintainers
This module has no dedicated maintainers. /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
+ =+lsp= Enables LSP support, alongside Cider. - +lsp ::
Enable LSP support for ~clojure-mode~ (alongside Cider). Requires [[doom-module:][:tools lsp]]
and a langserver (supports [[https://clojure-lsp.io/][clojure-lsp]]).
** Plugins ** Packages
+ [[https://github.com/clojure-emacs/cider][cider]] - [[doom-package:][cider]]
+ [[https://github.com/clojure-emacs/clj-refactor.el][clj-refactor]] - [[doom-package:][clj-refactor]]
+ [[https://github.com/borkdude/flycheck-clj-kondo][flycheck-clj-kondo]] - [[doom-package:][flycheck-clj-kondo]] if [[doom-module:][:checkers syntax]]
** Hacks ** Hacks
+ Error messages emitted from CIDER are piped into the REPL buffer when it is - Error messages emitted from CIDER are piped into the REPL buffer when it is
first opened, to make them easier to notice. first opened, to make them easier to notice.
+ Disabled the help banner when opening the cider REPL. - Disabled the help banner when opening the cider REPL.
** 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.]]
* Prerequisites
This module requires: This module requires:
- [[https://clojure.org/][clojure]]
- [[https://leiningen.org/][leiningen]], for the REPL
- [[https://github.com/borkdude/clj-kondo][clj-kondo]], for linting code
- [[https://clojure-lsp.github.io/clojure-lsp/][clojure-lsp]], for LSP support (if [[doom-module:][+lsp]])
+ [[https://clojure.org/][clojure]] * TODO Usage
+ [[https://leiningen.org/][leiningen]] (REPL) #+begin_quote
+ [[https://github.com/borkdude/clj-kondo][clj-kondo]] (linter) 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
+ With =+lsp= #+end_quote
+ [[https://clojure-lsp.github.io/clojure-lsp/][clojure-lsp]]
| Keybind | Command |
* TODO Features |-------------------+------------------------------------------------------|
# An in-depth list of features, how to use them, and their dependencies. | [[kbd:][<localleader> ']] | ~cider-jack-in-clj~ |
** Keybindings | [[kbd:][<localleader> C]] | ~cider-connect-cljs~ |
| Binding | Description | | [[kbd:][<localleader> M]] | ~cider-macroexpand-all~ |
|---------------------+------------------------------------------------------| | [[kbd:][<localleader> R]] | ~hydra-cljr-help-menu/body~ |
| =<localleader> '= | =cider-jack-in-clj= | | [[kbd:][<localleader> c]] | ~cider-connect-clj~ |
| =<localleader> C= | =cider-connect-cljs= | | [[kbd:][<localleader> e D]] | ~cider-insert-defun-in-repl~ |
| =<localleader> M= | =cider-macroexpand-all= | | [[kbd:][<localleader> e E]] | ~cider-insert-last-sexp-in-repl~ |
| =<localleader> R= | =hydra-cljr-help-menu/body= | | [[kbd:][<localleader> e R]] | ~cider-insert-region-in-repl~ |
| =<localleader> c= | =cider-connect-clj= | | [[kbd:][<localleader> e b]] | ~cider-eval-buffer~ |
| =<localleader> e D= | =cider-insert-defun-in-repl= | | [[kbd:][<localleader> e d]] | ~cider-eval-defun-at-point~ |
| =<localleader> e E= | =cider-insert-last-sexp-in-repl= | | [[kbd:][<localleader> e e]] | ~cider-eval-last-sexp~ |
| =<localleader> e R= | =cider-insert-region-in-repl= | | [[kbd:][<localleader> e r]] | ~cider-eval-region~ |
| =<localleader> e b= | =cider-eval-buffer= | | [[kbd:][<localleader> e u]] | ~cider-undef~ |
| =<localleader> e d= | =cider-eval-defun-at-point= | | [[kbd:][<localleader> g b]] | ~cider-pop-back~ |
| =<localleader> e e= | =cider-eval-last-sexp= | | [[kbd:][<localleader> g g]] | ~cider-find-var~ |
| =<localleader> e r= | =cider-eval-region= | | [[kbd:][<localleader> g n]] | ~cider-find-ns~ |
| =<localleader> e u= | =cider-undef= | | [[kbd:][<localleader> h a]] | ~cider-apropos~ |
| =<localleader> g b= | =cider-pop-back= | | [[kbd:][<localleader> h c]] | ~cider-clojuredocs~ |
| =<localleader> g g= | =cider-find-var= | | [[kbd:][<localleader> h d]] | ~cider-doc~ |
| =<localleader> g n= | =cider-find-ns= | | [[kbd:][<localleader> h j]] | ~cider-javadoc~ |
| =<localleader> h a= | =cider-apropos= | | [[kbd:][<localleader> h n]] | ~cider-find-ns~ |
| =<localleader> h c= | =cider-clojuredocs= | | [[kbd:][<localleader> h w]] | ~cider-clojuredocs-web~ |
| =<localleader> h d= | =cider-doc= | | [[kbd:][<localleader> i e]] | ~cider-enlighten-mode~ |
| =<localleader> h j= | =cider-javadoc= | | [[kbd:][<localleader> i i]] | ~cider-inspect~ |
| =<localleader> h n= | =cider-find-ns= | | [[kbd:][<localleader> i r]] | ~cider-inspect-last-result~ |
| =<localleader> h w= | =cider-clojuredocs-web= | | [[kbd:][<localleader> m "]] | ~cider-jack-in-cljs~ |
| =<localleader> i e= | =cider-enlighten-mode= | | [[kbd:][<localleader> m]] | ~cider-macroexpand-1~ |
| =<localleader> i i= | =cider-inspect= | | [[kbd:][<localleader> n N]] | ~cider-browse-ns-all~ |
| =<localleader> i r= | =cider-inspect-last-result= | | [[kbd:][<localleader> n n]] | ~cider-browse-ns~ |
| =<localleader> m "= | =cider-jack-in-cljs= | | [[kbd:][<localleader> n r]] | ~cider-ns-refresh~ |
| =<localleader> m= | =cider-macroexpand-1= | | [[kbd:][<localleader> p d]] | ~cider-pprint-eval-defun-at-point~ |
| =<localleader> n N= | =cider-browse-ns-all= | | [[kbd:][<localleader> p D]] | ~cider-pprint-eval-defun-to-comment~ |
| =<localleader> n n= | =cider-browse-ns= | | [[kbd:][<localleader> p p]] | ~cider-pprint-eval-last-sexp~ |
| =<localleader> n r= | =cider-ns-refresh= | | [[kbd:][<localleader> p P]] | ~cider-pprint-eval-last-sexp-to-comment~ |
| =<localleader> p d= | =cider-pprint-eval-defun-at-point= | | [[kbd:][<localleader> p r]] | ~cider-pprint-eval-last-sexp-to-repl~ |
| =<localleader> p D= | =cider-pprint-eval-defun-to-comment= | | [[kbd:][<localleader> r B]] | ~+clojure/cider-switch-to-repl-buffer-and-switch-ns~ |
| =<localleader> p p= | =cider-pprint-eval-last-sexp= | | [[kbd:][<localleader> r L]] | ~cider-load-buffer-and-switch-to-repl-buffer~ |
| =<localleader> p P= | =cider-pprint-eval-last-sexp-to-comment= | | [[kbd:][<localleader> r R]] | ~cider-restart~ |
| =<localleader> p r= | =cider-pprint-eval-last-sexp-to-repl= | | [[kbd:][<localleader> r b]] | ~cider-switch-to-repl-buffer~ |
| =<localleader> r B= | =+clojure/cider-switch-to-repl-buffer-and-switch-ns= | | [[kbd:][<localleader> r c]] | ~cider-find-and-clear-repl-output~ |
| =<localleader> r L= | =cider-load-buffer-and-switch-to-repl-buffer= | | [[kbd:][<localleader> r l]] | ~cider-load-buffer~ |
| =<localleader> r R= | =cider-restart= | | [[kbd:][<localleader> r n]] | ~cider-repl-set-ns~ |
| =<localleader> r b= | =cider-switch-to-repl-buffer= | | [[kbd:][<localleader> r q]] | ~cider-quit~ |
| =<localleader> r c= | =cider-find-and-clear-repl-output= | | [[kbd:][<localleader> r r]] | ~cider-ns-refresh~ |
| =<localleader> r l= | =cider-load-buffer= | | [[kbd:][<localleader> t a]] | ~cider-test-rerun-test~ |
| =<localleader> r n= | =cider-repl-set-ns= | | [[kbd:][<localleader> t l]] | ~cider-test-run-loaded-tests~ |
| =<localleader> r q= | =cider-quit= | | [[kbd:][<localleader> t n]] | ~cider-test-run-ns-tests~ |
| =<localleader> r r= | =cider-ns-refresh= | | [[kbd:][<localleader> t p]] | ~cider-test-run-project-tests~ |
| =<localleader> t a= | =cider-test-rerun-test= | | [[kbd:][<localleader> t r]] | ~cider-test-rerun-failed-tests~ |
| =<localleader> t l= | =cider-test-run-loaded-tests= | | [[kbd:][<localleader> t s]] | ~cider-test-run-ns-tests-with-filters~ |
| =<localleader> t n= | =cider-test-run-ns-tests= | | [[kbd:][<localleader> t t]] | ~cider-test-run-test~ |
| =<localleader> t p= | =cider-test-run-project-tests= |
| =<localleader> t r= | =cider-test-rerun-failed-tests= |
| =<localleader> t s= | =cider-test-run-ns-tests-with-filters= |
| =<localleader> t t= | =cider-test-run-test= |
* TODO Configuration * 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 * Troubleshooting
# Common issues and their solution, or places to look for help. /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,22 +1,12 @@
#+TITLE: lang/common-lisp ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang common-lisp][Issues]] ↖ [[doom-module-source:lang/common-lisp][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: June 13, 2018 --------------------------------------------------------------------------------
#+SINCE: v2.0 #+TITLE: :lang common-lisp
#+STARTUP: inlineimages nofold #+SUBTITLE: If you've seen one lisp, you've seen them all
#+CREATED: June 13, 2018
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module provides support for [[https://lisp-lang.org/][Common Lisp]] and the [[doom-package:][Sly]] development
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#sly][Sly]]
- [[#org-mode][org-mode]]
- [[#configuration][Configuration]]
* Description
This module provides support for [[https://lisp-lang.org/][Common Lisp]] and the [[https://github.com/joaotavora/sly][Sly]] development
environment. Common Lisp is not a single language but a specification, with many environment. Common Lisp is not a single language but a specification, with many
competing compiler implementations. By default, [[http://www.sbcl.org/][Steel Bank Common Lisp]] (SBCL) is competing compiler implementations. By default, [[http://www.sbcl.org/][Steel Bank Common Lisp]] (SBCL) is
assumed to be installed, but this can be configured. assumed to be installed, but this can be configured.
@ -27,45 +17,65 @@ style often unseen in other languages. Compiled Common Lisp programs are trusted
to run unmodified for a long time. to run unmodified for a long time.
** Maintainers ** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
This module has no dedicated maintainers. ** Module flags
/This module has no flags./
** Module Flags ** Packages
- [[doom-package:][sly]]
- [[doom-package:][sly-macrostep]]
- [[doom-package:][sly-repl-ansi-color]]
This module provides no flags. ** Hacks
/No hacks documented for this module./
** Plugins ** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
+ [[https://github.com/joaotavora/sly][sly]] * Installation
+ [[https://github.com/joaotavora/sly-macrostep][sly-macrostep]] [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
+ [[https://github.com/PuercoPop/sly-repl-ansi-color][sly-repl-ansi-color]]
* Prerequisites This module requires [[http://www.sbcl.org/][SBCL]].
This module requires the [[http://www.sbcl.org/][SBCL]] compiler to be installed. * TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features This module does not integrate with [[doom-module:][:tools lsp]]. Sly (and SLIME before it) is
This module does not integrate with the =lsp= module. Sly (and SLIME before it) is
considered the defacto development environment for Common Lisp and provides much considered the defacto development environment for Common Lisp and provides much
of what is normally expected of an LSP, plus tight integration with the REPL and of what is normally expected of an LSP, plus tight integration with the REPL and
Emacs. Emacs.
** Sly ** Sly
Using this module is mostly a matter of using Sly. Please consider reading Using this module is mostly a matter of using Sly. Please consider reading
through [[http://joaotavora.github.io/sly/#A-SLY-tour-for-SLIME-users][the Sly Tour]]. through [[http://joaotavora.github.io/sly/#A-SLY-tour-for-SLIME-users][the Sly Tour]].
A Sly session will be started when you open a =.lisp= file. Use =SPC m '= to switch A Sly session will be started when you open a =.lisp= file. Use [[kbd:][<localleader> ']]
to the REPL minibuffer. to switch to the REPL minibuffer.
** org-mode ** org-mode
This module also enables the evaluation of =lisp= source blocks in Org Mode. This module also enables the evaluation of =lisp= source blocks in Org Mode.
However, you will need a running Sly session for this to work. =M-x sly= starts However, you will need a running Sly session for this to work. ~M-x sly~ starts
such a session if you didn't have one open already. such a session if you didn't have one open already.
* Configuration * TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
If you don't want Sly to use SBCL, you can configure the variable If you don't want Sly to use SBCL, you can configure the variable
~inferior-lisp-program~ to some other binary on your PATH. ~inferior-lisp-program~ to some other binary on your PATH.
* 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,6 +1,57 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang coq][Issues]] ↖ [[doom-module-source:lang/coq][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang coq #+TITLE: :lang coq
#+SUBTITLE: Proofs as programs
#+CREATED: August 27, 2018
#+SINCE: 21.12.0
* Description :unfold:
This module adds [[https://coq.inria.fr][coq]] support, powered by [[https://proofgeneral.github.io][Proof General]]. This module adds [[https://coq.inria.fr][coq]] support, powered by [[https://proofgeneral.github.io][Proof General]].
+ Code completion ([[https://github.com/cpitclaudel/company-coq][company-coq]]) - Code completion ([[https://github.com/cpitclaudel/company-coq][company-coq]])
+ [[https://github.com/hlissner/doom-snippets/tree/master/coq-mode][Snippets]] - [[https://github.com/hlissner/doom-snippets/tree/master/coq-mode][Snippets]]
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][proof-general]]
- [[doom-package:][company-coq]]
** 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./
* 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 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,62 +1,67 @@
#+TITLE: lang/crystal ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang crystal][Issues]] ↖ [[doom-module-source:lang/crystal][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2017 --------------------------------------------------------------------------------
#+SINCE: v1.3 #+TITLE: :lang crystal
#+STARTUP: inlineimages nofold #+SUBTITLE: Ruby at the speed of c
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#crystal][Crystal]]
- [[#macos][MacOS]]
- [[#arch][Arch]]
- [[#icr-repl][ICR (REPL)]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This modules adds [[https://crystal-lang.org/][crystal]] support. This modules adds [[https://crystal-lang.org/][crystal]] support.
+ Syntax-checking (~flycheck~) - Syntax-checking (~flycheck~)
+ REPL (~inf-crystal~) - REPL (~inf-crystal~)
** Maintainers ** Maintainers
This module has no dedicated maintainers. This module has no dedicated maintainers.
** Module Flags ** Module flags
This module provides no flags. /This module has no flags./
** Plugins ** Packages
+ [[https://github.com/crystal-lang-tools/emacs-crystal-mode/][crystal-mode]] - [[doom-package:][crystal-mode]]
+ [[https://github.com/brantou/inf-crystal.el/][inf-crystal]] - [[doom-package:][inf-crystal]]
+ if ~:checkers syntax~ is enabled - if [[doom-module:][:checkers syntax]]
- [[https://github.com/crystal-lang-tools/emacs-crystal-mode/][flycheck-crystal]] - [[doom-package:][flycheck-ameba]]
- [[https://github.com/crystal-ameba/ameba.el/][flycheck-ameba]] - [[doom-package:][flycheck-crystal]]
** 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://crystal-lang.org/install/][The crystal compiler]]
- [[https://github.com/crystal-community/icr][ICR]], for the REPL
* Prerequisites
** Crystal ** Crystal
you need to install [[https://crystal-lang.org/install/][the crystal compiler]]. - MacOS: ~$ brew install crystal~
- Arch Linux: ~$ pacman -S crystal shards~
*** MacOS
#+begin_src shell
brew install crystal
#+end_src
*** Arch
#+begin_src shell
sudo pacman -S crystal shards
#+end_src
** ICR (REPL) ** ICR (REPL)
you need to install [[https://github.com/crystal-community/icr][ICR]]. [[https://github.com/crystal-community/icr#installation][Installation instructions]].
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
* TODO Configuration * 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 * Troubleshooting
# Common issues and their solution, or places to look for help. /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,43 +1,76 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang csharp][Issues]] ↖ [[doom-module-source:lang/csharp][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang csharp #+TITLE: :lang csharp
#+SUBTITLE: Unity, .NET, and mono shenanigans
#+CREATED: February 19, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC: * Description :unfold:
- [[#description][Description]] This module adds C# support to Emacs, powered by Omnisharp (directly or through
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#macos][MacOS]]
- [[#arch-linux][Arch Linux]]
- [[#nixos][NixOS]]
* Description
This module adds C# support to Emacs. Powered by omnisharp (directly or through
LSP). LSP).
** Module Flags ** Maintainers
+ =+lsp= Enables omnisharp through LSP support (requires omnisharp). /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
+ =+unity= Enables special support for the [[https://unity.com/][Unity game engine]] (particularly,
support for HLSL shaders).
+ =+dotnet= Enables Dotnet transient interface with Sharper
** Plugins ** Module flags
+ [[https://github.com/josteink/csharp-mode][csharp-mode]] - +dotnet ::
+ [[https://github.com/omajid/csproj-mode][csproj-mode]] Enable Dotnet transient interface with Sharper
+ [[https://github.com/OmniSharp/omnisharp-emacs][omnisharp]]* (not =+lsp=) - +lsp ::
+ [[https://github.com/midnightSuyama/shader-mode][shader-mode]]* (=+unity=) Enable LSP support for ~csharp-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
+ [[https://github.com/sebasmonia/sharper][sharper]] (=+dotnet=) (supports =omnisharp-roslyn=).
- +unity ::
Enable special support for the [[https://unity.com/][Unity game engine]] (particularly, support for
HLSL shaders).
* Prerequisites ** Packages
This module needs: - [[doom-package:][csharp-mode]]
- [[doom-package:][csproj-mode]]
- [[doom-package:][shader-mode]] if [[doom-module:][+unity]]
- [[doom-package:][sharper]] if [[doom-module:][+dotnet]]
- [[doom-package:][sln-mode]]
+ omnisharp (with the ~+lsp~ flag, this must be installed externally. Without ** Hacks
it, use ~M-x omnisharp-install-server~) /No hacks documented for this module./
+ .NET SDKs (on Windows)
+ Mono (on UNIX platforms) ** TODO Changelog
+ .NET Core 1.X - 3.X or .NET 5 for cross platform # 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.]]
This module requires:
- Mono (on UNIX platforms)
- .NET SDKs (on Windows)
- .NET Core 1.X - 3.X or .NET 5 for cross platform
- omnisharp-rosyln (if [[doom-module:][+lsp]])
** TODO MacOS ** TODO MacOS
** Arch Linux ** Arch Linux
#+BEGIN_SRC sh #+begin_src sh
sudo pacman --needed --noconfirm -S mono pacman --needed --noconfirm -S mono
#+END_SRC #+end_src
** TODO NixOS ** TODO NixOS
* 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,47 +1,48 @@
#+TITLE: lang/dart ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang dart][Issues]] ↖ [[doom-module-source:lang/dart][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: February 16, 2020 --------------------------------------------------------------------------------
#+SINCE: v3.0.0 #+TITLE: :lang dart
#+STARTUP: inlineimages nofold #+SUBTITLE: Paint ui and not much else
#+CREATED: February 16, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] [[https://dart.dev/][Dart]] is a client-optimized language by Google for fast apps on any platform. It
- [[#maintainers][Maintainers]] is fast and optimized for UI, famous for the [[https://flutter.io/][Flutter]] framework, also made by
- [[#module-flags][Module Flags]] Google. Both Flutter and Dart are free and open-source.
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#installing-dart-sdk][Installing Dart SDK]]
- [[#installing-flutter-sdk][Installing Flutter SDK]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#dart--flutter][Dart & Flutter]]
- [[#android][Android]]
- [[#flutter-mobile-development-on-desktop][Flutter mobile development on desktop]]
- [[#troubleshooting][Troubleshooting]]
* Description This module wraps ~dart-mode~, with [[https://microsoft.github.io/language-server-protocol/][LSP]] features like code completion for
[[https://dart.dev/][Dart]] is a client-optimized language by Google for fast apps on any platform. =.dart= files, syntax highlighting, debugging, closing labels, etc.
It is fast and optimized for UI, famous for the [[https://flutter.io/][Flutter]] framework, also
made by Google. Both Flutter and Dart are free and open-source.
This module wraps ~dart-mode~, with [[https://microsoft.github.io/language-server-protocol/][LSP]] features like code completion for =.dart= files,
syntax highlighting, debugging, closing labels, etc.
** Maintainers ** Maintainers
+ [[https://github.com/ericdallo][@ericdallo]] - [[doom-user:][@ericdallo]]
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
+ =+lsp= Enable LSP server integration.
+ =+flutter= Adds ~flutter~ integration and some sane defaults for Flutter
development along with ~hover~ for desktop development.
** Plugins ** Module flags
+ [[https://github.com/bradyt/dart-mode][dart-mode]] - +flutter ::
+ [[https://github.com/amake/flutter.el][flutter.el]] Enable ~flutter~ integration and some sane defaults for Flutter development
+ [[https://github.com/ericdallo/hover.el][hover.el]] along with ~hover~ for desktop development.
- +lsp ::
Enable LSP support for ~dart-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports flutter).
* Prerequisites ** Packages
Make sure that the Dart SDK is on your ~PATH~, and if using Flutter, make sure - [[doom-package:][dart-mode]]
the Flutter binary is on your ~PATH~ as well. - [[doom-package:][flutter.el]]
- [[doom-package:][hover.el]]
** 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.]]
Make sure that the Dart SDK is on your =$PATH=, and if using Flutter, make sure
the Flutter binary is on your =$PATH= as well.
** Installing Dart SDK ** Installing Dart SDK
Before starting note that Flutter SDK will have a version of Dart. Therefore, Before starting note that Flutter SDK will have a version of Dart. Therefore,
@ -52,23 +53,23 @@ The stable version of the SDK is in most major distributions repositories.
If you find it necessary to install any other version or build from source, If you find it necessary to install any other version or build from source,
please refer to the official website at: https://dart.dev/get-dart please refer to the official website at: https://dart.dev/get-dart
+ *On Debian (also Ubuntu and its derivations):* - *On Debian (also Ubuntu and its derivations):*
#+BEGIN_SRC shell #+begin_src sh
sudo apt-get install dart apt-get install dart
#+END_SRC #+end_src
+ *On Arch Linux (and derivations like Manjaro):* - *On Arch Linux (and derivations like Manjaro):*
#+BEGIN_SRC shell #+begin_src sh
sudo pacman -S dart pacman -S dart
#+END_SRC #+end_src
+ *On macOS*: - *On macOS*:
#+BEGIN_SRC shell #+begin_src sh
brew tap dart-lang/dart brew tap dart-lang/dart
brew install dart brew install dart
#+END_SRC #+end_src
+ *On NixOS*: - *On NixOS*:
#+BEGIN_SRC shell #+begin_src sh
nix-env -iA nixpkgs.dart nix-env -iA nixpkgs.dart
#+END_SRC #+end_src
** Installing Flutter SDK ** Installing Flutter SDK
Due to complications with permissions, it is suggested not to use AUR or any Due to complications with permissions, it is suggested not to use AUR or any
@ -77,22 +78,30 @@ automatic installation tools for Flutter SDK.
On any system just run the following commands to install Flutter, once you have On any system just run the following commands to install Flutter, once you have
met dependencies named on [[https://flutter.dev/docs/get-started/install/][the site]]: met dependencies named on [[https://flutter.dev/docs/get-started/install/][the site]]:
#+BEGIN_SRC shell #+begin_src sh
git clone https://github.com/flutter/flutter --branch stable # to download Flutter git clone https://github.com/flutter/flutter --branch stable # to download Flutter
export PATH="$PATH:$(pwd)/flutter/bin" # to add it to PATH export PATH="$PATH:$(pwd)/flutter/bin" # to add it to PATH
flutter doctor # for Dependency check and further instructions flutter doctor # for Dependency check and further instructions
#+END_SRC #+end_src
* Features * TODO Usage
+ Syntax highlighting and formatting for ~.dart~ files provided by LSP #+begin_quote
+ Auto import 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
+ Widget guide lines for Flutter #+end_quote
+ Closing labels for constructors
+ Run tests interactively - Syntax highlighting and formatting for ~.dart~ files provided by LSP.
+ Outline support via ~lsp-treemacs~ - Auto import.
+ Emacs functions for running and debugging Flutter projects - Widget guide lines for Flutter.
- Closing labels for constructors.
- Run tests interactively.
- Outline support via [[doom-package:][lsp-treemacs]].
- Emacs functions for running and debugging Flutter projects.
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
** Dart & Flutter ** Dart & Flutter
On Linux, the installers for Dart and Flutter use the ~/opt~ directory, and this On Linux, the installers for Dart and Flutter use the ~/opt~ directory, and this
module assumes that. However, you may set ~lsp-dart-sdk-dir~ to your Dart module assumes that. However, you may set ~lsp-dart-sdk-dir~ to your Dart
@ -101,18 +110,31 @@ LSP can find the language server included with the Dart SDK.
Alternatively, these variables shouldn't be necessary if you just include Dart Alternatively, these variables shouldn't be necessary if you just include Dart
and Flutter on your ~PATH~ variable. and Flutter on your ~PATH~ variable.
** Android ** Android
You will also need to setup your system for Android development if you intend to You will also need to setup your system for Android development if you intend to
use Flutter to develop mobile applications. Refer to your distributions package use Flutter to develop mobile applications. Refer to your distributions package
manager for details. In most distributions the ~/opt/android-sdk~ directory is manager for details. In most distributions the ~/opt/android-sdk~ directory is
used, and you might have to change some permissions in this directory since it's used, and you might have to change some permissions in this directory since it's
owned by root. The [[https://wiki.archlinux.org/index.php/Android][Arch Linux wiki has a great guide on this here.]] owned by root. The [[https://wiki.archlinux.org/index.php/Android][Arch Linux wiki has a great guide on this here.]]
** Flutter mobile development on desktop ** Flutter mobile development on desktop
[[https://github.com/go-flutter-desktop/go-flutter][Hover]] is an application that can run Flutter mobile apps on your desktop, this [[https://github.com/go-flutter-desktop/go-flutter][Hover]] is an application that can run Flutter mobile apps on your desktop, this
makes the mobile development a lot easier without the need to setup an Android emulator. makes the mobile development a lot easier without the need to setup an Android
emulator.
* Troubleshooting * Troubleshooting
[[doom-report:][Report an issue?]]
See the configuration section for information on the binaries for Dart and See the configuration section for information on the binaries for Dart and
Flutter. On new installs to the ~/opt~ directory, you will likely need to edit Flutter. On new installs to the =/opt= directory, you will likely need to edit
the permissions of the ~/opt/dart-sdk~ and ~/opt/flutter~ directories (not to the permissions of the =/opt/dart-sdk= and =/opt/flutter= directories (not to
mention the Android SDK, as discussed above). mention the Android SDK, as discussed above).
* 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:::lang data][Issues]] ↖ [[doom-module-source:lang/data][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang data
#+SUBTITLE: A dumping ground for data formats
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Description :unfold:
This module adds Emacs support for CSV and XML files.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][csv-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 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

@ -0,0 +1,55 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang dhall][Issues]] ↖ [[doom-module-source:lang/dhall][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang dhall
#+SUBTITLE: Config as code
#+CREATED: August 03, 2021
#+SINCE: 21.12.0
* Description :unfold:
This module adds [[https://dhall-lang.org/][Dhall]] language support to Emacs.
Dhall is a programmable configuration language that you can think of as: JSON +
functions + types + imports.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][dhall-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 the =dhall-json= package, which provides both the
=dhall-to-json=, =dhall-to-yaml=, and =dhall-format= executables.
* 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-issue:][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,79 +1,104 @@
#+TITLE: lang/elixir ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang elixir][Issues]] ↖ [[doom-module-source:lang/elixir][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: June 24, 2019 --------------------------------------------------------------------------------
#+SINCE: v2.0.9 #+TITLE: :lang elixir
#+SUBTITLE: Erlang done right
#+CREATED: June 24, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module provides support for [[https://elixir-lang.org/][Elixir programming language]] via [[doom-package:][alchemist]] or
- [[#module-flags][Module flags]] [[https://github.com/elixir-lsp/elixir-ls/][elixir-ls]].
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#install-elixir][Install Elixir]]
- [[#with-asdf][With ~asdf~]]
- [[#arch-linux][Arch Linux]]
- [[#gentoo-linux][Gentoo Linux]]
- [[#opensuse][openSUSE]]
- [[#features][Features]]
- [[#appendix][Appendix]]
- [[#commands][Commands]]
* Description ** Maintainers
This module provides support for [[https://elixir-lang.org/][Elixir programming language]] via [[https://github.com/tonini/alchemist.el][alchemist.el]] /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
or [[https://github.com/elixir-lsp/elixir-ls/][elixir-ls]].
** Module flags ** Module flags
+ ~+lsp~ Enable LSP support. Requires [[https://github.com/elixir-lsp/elixir-ls/][elixir-ls]]. - +lsp ::
Enable LSP support for ~elixir-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/elixir-lsp/elixir-ls/][elixir-ls]]).
** Plugins ** Packages
+ [[https://github.com/elixir-editors/emacs-elixir][elixir-mode]] - [[doom-package:][alchemist]]
+ [[https://github.com/tonini/alchemist.el][alchemist.el]] - [[doom-package:][elixir-mode]]
+ [[https://github.com/aaronjensen/flycheck-credo][flycheck-credo]] - [[doom-package:][exunit]]
+ [[https://github.com/ananthakumaran/exunit.el][exunit]] - [[doom-package:][flycheck-credo]] if [[doom-module:][:checkers syntax]]
* Prerequisites ** Hacks
You should have Elixir installed, for example, via your distribution's package /No hacks documented for this module./
manager or a version management tool such as [[https://github.com/asdf-vm/asdf-elixir][asdf]].
If you want to add support for LSP ([[modules/tools/lsp][:tools lsp]]), be sure to install [[https://github.com/JakeBecker/elixir-ls/][elixir-ls]] ** TODO Changelog
and enable ~:tools lsp~ in your ~init.el~. # 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 Elixir. Install it via your distribution's package manager
or a version management tool such as [[https://github.com/asdf-vm/asdf-elixir][asdf]].
To add LSP support, install [[https://github.com/JakeBecker/elixir-ls/][elixir-ls]] and enable [[doom-module:][:tools lsp]].
To support linting with [[https://github.com/rrrene/credo][credo]], add ~:checkers syntax~ to ~$DOOMDIR/init.el~.
To support linting with [[https://github.com/rrrene/credo][credo]], add ~:checkers syntax~ to your ~init.el~
** Install Elixir ** Install Elixir
(See [[https://elixir-lang.org/install.html]] for other operating systems)
*** With ~asdf~ *** With ~asdf~
#+BEGIN_SRC sh #+begin_src sh
asdf plugin-add elixir asdf plugin-add elixir
asdf install elixir 1.9.1 asdf install elixir 1.9.1
#+END_SRC #+end_src
*** Arch Linux *** Arch Linux
#+BEGIN_SRC sh :dir /sudo:: #+begin_src sh
sudo pacman -S elixir pacman -S elixir
#+END_SRC #+end_src
*** Gentoo Linux *** Gentoo Linux
#+BEGIN_SRC sh :dir /sudo:: #+begin_src sh
sudo emerge -v dev-lang/elixir emerge -v dev-lang/elixir
#+END_SRC #+end_src
*** openSUSE *** openSUSE
#+BEGIN_SRC sh :dir /sudo:: #+begin_src sh
sudo zypper install elixir zypper install elixir
#+END_SRC #+end_src
See [[https://elixir-lang.org/install.html]] for other operating systems
* Features * TODO Usage
- Code completion (~:completion company~) #+begin_quote
- Documentation lookup (~:tools lookup~) 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
- Code completion ([[doom-module:][:completion company]])
- Documentation lookup ([[doom-module:][:tools lookup]])
- Mix integration - Mix integration
- Phoenix support - Phoenix support
- ~iex~ integration (~:tools eval~) - ~iex~ integration ([[doom-module:][:tools eval]])
- Syntax checking (~:checkers syntax~, using [[https://github.com/aaronjensen/flycheck-credo][flycheck-credo]]~) - Syntax checking ([[doom-module:][:checkers syntax]], using [[doom-package:][flycheck-credo]])
* Appendix
** Commands ** exunit-mode
*** exunit-mode The exunit-mode prefix is [[kbd:][<localleader> t]]. Here is some examples:
The exunit-mode prefix is =SPC m t=. Here is some examples:
| | | |
| command | key / ex command | description | | command | key / ex command | description |
|------------------------------------------+------------------+--------------------------------------------------------| |--------------------------------------------+-------------------+--------------------------------------------------------|
| ~exunit-verify-all~ | =SPC m t a= | Runs exunit on all files | | ~exunit-verify-all~ | [[kbd:][<localleader> t a]] | Runs exunit on all files |
| ~exunit-rerun~ | =SPC m t r= | Re-runs last exunit command | | ~exunit-rerun~ | [[kbd:][<localleader> t r]] | Re-runs last exunit command |
| ~exunit-verify~ | =SPC m t v= | Runs exunit on current file | | ~exunit-verify~ | [[kbd:][<localleader> t v]] | Runs exunit on current file |
| ~exunit-verify-single~ | =SPC m t s= | Runs exunit for the item on cursor | | ~exunit-verify-single~ | [[kbd:][<localleader> t s]] | Runs exunit for the item on cursor |
| ~exunit-toggle-file-and-test~ | =SPC m t t= | Switch between implementation and test | | ~exunit-toggle-file-and-test~ | [[kbd:][<localleader> t t]] | Switch between implementation and test |
| ~exunit-toggle-file-and-test-other-window~ | =SPC m t T= | Switch between implementation and test in other window | | ~exunit-toggle-file-and-test-other-window~ | [[kbd:][<localleader> t T]] | Switch between implementation and test in other window |
* 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,59 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang elm][Issues]] ↖ [[doom-module-source:lang/elm][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang elm
#+SUBTITLE: Care for a cup of TEA?
#+CREATED: May 21, 2017
#+SINCE: 2.0.3 (#74)
* Description :unfold:
This module adds [[https://elm-lang.org/][Elm]] support to Doom Emacs.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +lsp ::
Enable LSP support for ~elm-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/elm-tooling/elm-language-server][elm-language-server]]).
** Packages
- [[doom-package:][elm-mode]]
- [[doom-package:][flycheck-elm]] if [[doom-module:][:checkers syntax]]
** 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./
* TODO Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
#+begin_quote
🔨 /This module's prerequisites are not all documented./ [[doom-contrib-module:][Document them?]]
#+end_quote
- If [[doom-module:][+lsp]] is enabled, [[https://github.com/elm-tooling/elm-language-server][elm-language-server]] is required to be installed and in
your =$PATH=.
* 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,60 +1,75 @@
#+TITLE: lang/emacs-lisp ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang emacs-lisp][Issues]] ↖ [[doom-module-source:lang/emacs-lisp][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2017 --------------------------------------------------------------------------------
#+SINCE: v1.3 #+TITLE: :lang emacs-lisp
#+STARTUP: inlineimages nofold #+SUBTITLE: A parsel-tongue for the oldest serpent
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module extends support for Emacs Lisp in Doom Emacs. This module extends support for Emacs Lisp in Doom Emacs.
+ Macro expansion - Macro expansion
+ Go-to-definitions or references functionality - Go-to-definitions or references functionality
- Syntax highlighting for defined and quoted symbols
- Replaces the built-in help with the more powerful [[doom-package:][helpful]]
- Adds function example uses to documentation
** Maintainers ** Maintainers
+ @hlissner (author) - [[doom-user:][@hlissner]]
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
This module provides no flags.
** Plugins ** Module flags
+ [[https://github.com/jorgenschaefer/emacs-buttercup][buttercup]] /This module has no flags./
+ [[https://github.com/Wilfred/elisp-def][elisp-def]]
+ [[https://github.com/xuchunyang/elisp-demos][elisp-demos]] ** Packages
+ [[https://github.com/flycheck/flycheck-cask][flycheck-cask]] (=:checkers syntax=) - [[doom-package:][buttercup]]
+ [[https://github.com/Fanael/highlight-quoted][highlight-quoted]] - [[doom-package:][elisp-def]]
+ [[https://github.com/joddie/macrostep][macrostep]] - [[doom-package:][elisp-demos]]
+ [[https://github.com/tonini/overseer.el][overseer]] - [[doom-package:][flycheck-cask]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][flycheck-package]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][highlight-quoted]]
- [[doom-package:][macrostep]]
- [[doom-package:][overseer]]
** Hacks ** Hacks
+ Symbols that are defined in the current session are highlighted with - Symbols that are defined in the current session are highlighted with
~font-lock-variable-face~. ~font-lock-variable-face~.
+ Eldoc will display the values of variables next to its documentation. - Eldoc will display the values of variables next to its documentation.
+ ~elisp-demos~ was modified to display API demos for Doom's standard library - ~elisp-demos~ was modified to display API demos for Doom's standard library
(in [[file:../../../docs/api.org][docs/api.org]]). (in [[file:../../../docs/api.org][docs/api.org]]).
+ This module extends imenu support for Doom's API (e.g. ~package!~, - This module extends imenu support for Doom's API (e.g. ~package!~,
~use-package~, ~after!~) ~use-package~, ~after!~)
+ Flycheck has been configured to tone down the false positives when you are - Flycheck has been configured to tone down the false positives when you are
editing your Emacs or Doom config. editing your Emacs or Doom config.
* 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's sole dependency is Emacs. It's very obscure, you wouldn't know This module's sole dependency is Emacs. It's very obscure, you wouldn't know
about it. about it.
* TODO Features * TODO Usage
# An in-depth list of features, how to use them, and their dependencies. #+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration * 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 * Troubleshooting
# Common issues and their solution, or places to look for help. /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,39 +1,62 @@
#+TITLE: lang/erlang ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang erlang][Issues]] ↖ [[doom-module-source:lang/erlang][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 14, 2020 --------------------------------------------------------------------------------
#+SINCE: {replace with next tagged release version} #+TITLE: :lang erlang
#+STARTUP: inlineimages nofold #+SUBTITLE: An elegant language for a more civilized age
#+CREATED: January 15, 2020
* Table of Contents :TOC_3:noexport: #+SINCE: 21.12.0
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
* Description
* Description :unfold:
This module provides support [[https://www.erlang.org/][Erlang programming language]]. Support for the This module provides support [[https://www.erlang.org/][Erlang programming language]]. Support for the
[[https://github.com/erlang/sourcer][sourcer]] language server is optional. [[https://github.com/erlang/sourcer][sourcer]] language server is optional.
Includes:
- Code completion ([[doom-module:][+lsp]], [[doom-module:][:completion company]], & [[doom-module:][:completion ivy]])
- Syntax checking ([[doom-module:][:checkers syntax]])
** Maintainers ** Maintainers
This module has no dedicated maintainers. /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
+ ~+lsp~ Enable LSP Support. Requires [[https://github.com/erlang/sourcer][sourcer]]. - +lsp ::
Enable LSP support for ~erlang-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/erlang/sourcer][sourcer]]).
** Packages
- [[doom-package:][flycheck-rebar3]]
- [[doom-package:][ivy-erlang-complete]]
** Plugins ** Hacks
+ Erlang Mode (bundled with Erlang installations) /No hacks documented for this module./
+ [[https://github.com/joedevivo/flycheck-rebar3][flycheck-rebar3]]
+ [[https://github.com/s-kostyaev/ivy-erlang-complete][ivy-erlang-complete]]
* Prerequisites ** TODO Changelog
You should have Erlang installed. Check your distribution's package manager or a # This section will be machine generated. Don't edit it by hand.
version management tool such as [[https://github.com/kerl/kerl][kerl]]. /This module does not have a changelog yet./
If you want LSP support, install [[https://github.com/erlang/sourcer][sourcer]]. * Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
* Features This module requires Erlang be installed (which includes ~erlang-mode~). Check
- Code completion (~+lsp~, ~:completion company~, and ~:completion ivy~) your distribution's package manager or a version management tool such as [[https://github.com/kerl/kerl][kerl]].
- Syntax checking (~:checkers syntax~)
For LSP support, install [[https://github.com/erlang/sourcer][sourcer]].
* 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,34 +1,67 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang ess][Issues]] ↖ [[doom-module-source:lang/ess][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang ess #+TITLE: :lang ess
#+SUBTITLE: 73.6% of all statistics are made up
#+CREATED: February 05, 2018
#+SINCE: 21.12.0
* Description :unfold:
This module adds support for various statistics languages, including R, S-Plus, This module adds support for various statistics languages, including R, S-Plus,
SAS, Julia and Stata. SAS, Julia and Stata.
* Table of Contents :TOC: ** Maintainers
- [[#prequisites][Prequisites]] /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
- [[#appendix][Appendix]]
- [[#keybindings][Keybindings]] ** Module flags
- +stan ::
Enable support for ~stan-mode~, including code completion and syntax checking.
** Packages
- [[doom-package:][ess]]
- [[doom-package:][ess-R-data-view]]
- [[doom-package:][polymode]]
- [[doom-package:][poly-R]]
- if [[doom-module:][+stan]]
- [[doom-package:][company-stan]] if [[doom-module:][:completion company]]
- [[doom-package:][eldoc-stan]]
- [[doom-package:][flycheck-stan]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][stan-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.]]
* Prequisites
This module has several optional dependencies: This module has several optional dependencies:
+ [[https://github.com/jimhester/lintr][lintr]]: Enables R linting. - [[https://github.com/jimhester/lintr][lintr]]: for R linting.
+ [[https://github.com/REditorSupport/languageserver][languageserver]]: Enables LSP support in an R buffer (with =+lsp= flag). - [[https://github.com/REditorSupport/languageserver][languageserver]]: for LSP support in an R buffer (with [[doom-module:][+lsp]] flag).
* Appendix * TODO Usage
** Keybindings #+begin_quote
*** :map ess-doc-map 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** :map ess-doc-map
| key | command | | key | command |
|-----+----------------------------| |-----+----------------------------|
| "h" | ess-display-help-on-object | | "h" | ess-display-help-on-object |
| "p" | ess-R-dv-pprint | | "p" | ess-R-dv-pprint |
| "t" | ess-R-dv-ctable | | "t" | ess-R-dv-ctable |
*** :map ess-mode-map
** :map ess-mode-map
| key | command | | key | command |
|--------------+-----------------------| |--------------+-----------------------|
| "<s-return>" | ess-eval-line | | "<s-return>" | ess-eval-line |
| "<up>" | comint-next-input | | "<up>" | comint-next-input |
| "<down>" | comint-previous-input | | "<down>" | comint-previous-input |
**** :localleader
** :localleader
| state | key | command | | state | key | command |
|-------+-------------+---------------------------------------------------| |-------+-------------+---------------------------------------------------|
| :nv | "," | ess-eval-region-or-function-or-paragraph-and-step | | :nv | "," | ess-eval-region-or-function-or-paragraph-and-step |
@ -55,3 +88,19 @@ This module has several optional dependencies:
| :n | "cm" | ess-noweb-mark-chunk | | :n | "cm" | ess-noweb-mark-chunk |
| :n | "cp" | ess-noweb-previous-chunk | | :n | "cp" | ess-noweb-previous-chunk |
| :n | "cn" | ess-noweb-next-chunk | | :n | "cn" | ess-noweb-next-chunk |
* 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,43 +1,59 @@
#+TITLE: lang/factor ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang factor][Issues]] ↖ [[doom-module-source:lang/factor][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: December 3, 2019 --------------------------------------------------------------------------------
#+SINCE: v3.0.0 #+TITLE: :lang factor
#+STARTUP: inlineimages #+SUBTITLE: ...
#+CREATED: December 03, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module adds support to the [[https://github.com/factor/factor][factor]] programming language and its associated This module adds support to the [[https://github.com/factor/factor][factor]] programming language and its associated
_fuel_ emacs plugin. [[doom-package:][fuel]] emacs plugin.
+ If possible, include a brief list of feature highlights here ** Maintainers
+ Like code completion, syntax checking or available snippets /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
+ Include links to packages & external things where possible
** Module Flags ** Module flags
This module provides no flags. /This module has no flags./
** Plugins ** Packages
{A list of linked plugins} /This module doesn't install any packages./
** Hacks ** Hacks
{A list of internal modifications to included packages} /No hacks documented for this module./
* Prerequisites ** TODO Changelog
You must install [[https://github.com/factor/factor][factor]] to use the advanced functionality of this module. # 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://github.com/factor/factor][factor]] for its advanced functionality.
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
This module requires the installation of factor to be available at This module requires the installation of factor to be available at
=fuel-factor-root-dir=. Here's an example of how to set it: ~fuel-factor-root-dir~. E.g.
#+BEGIN_SRC emacs-lisp #+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq fuel-factor-root-dir "/Applications/factor") (setq fuel-factor-root-dir "/Applications/factor")
#+END_SRC #+end_src
* Troubleshooting * Troubleshooting
Common issues and their solution, or places to look for help. /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,46 +1,71 @@
#+TITLE: lang/faust ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang faust][Issues]] ↖ [[doom-module-source:lang/faust][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: July 23, 2019 --------------------------------------------------------------------------------
#+SINCE: v2.1.0 #+TITLE: :lang faust
#+STARTUP: inlineimages #+SUBTITLE: DSP, but you can keep your soul
#+CREATED: October 14, 2019
#+SINCE: 21.12.0 (#1898)
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] Add support to [[https://faust.grame.fr/][Faust language]] inside emacs.
- [[#plugins][Plugins]]
- [[#features][Features]]
* Description - Faust code syntax highlighting and indentation
Add support to Faust language inside emacs. - Project-based (inter-linked Faust files)
- Build/compile with output window
- Graphic diagrams generation and visualization in the (default) browser
- Browse generated C++ code inside Emacs
- Inter-linked files/buffers :
- From "component" to Faust file
- From "include" to Faust library file
- From error to file:line number
- From function name to online documentation
- Fully configurable (build type/target/architecture/toolkit, keyboard
shortcuts, etc.)
- Automatic keyword completion (if Auto-Complete is installed)
- Automatic objets (functions, operators, etc.) template insertion with default
sensible values (if [[doom-module:][:editor snippets]] is enabled)
- Modeline indicator of the state of the code
+ Faust code syntax hightlighting and indentation ** Maintainers
+ Project-based (inter-linked Faust files) *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
+ Build/compile with output window
+ Graphic diagrams generation and vizualisation in the (default) browser
+ Browse generated C++ code inside Emacs
+ Inter-linked files/buffers :
+ From "component" to Faust file
+ From "include" to Faust library file
+ From error to file:line number
+ From function name to online documentation
+ Fully configurable (build type/target/architecture/toolkit, keyboard shortcuts, etc.)
+ Automatic keyword completion (if Auto-Complete is installed)
+ Automatic objets (functions, operators, etc.) template insertion with default sensible values (if Yasnippet is installed)
+ Modeline indicator of the state of the code
** Plugins ** Packages
+ [[https://bitbucket.org/yphil/faustine][faustine]] - [[doom-package:][faustine]]
* Features ** Hacks
Keybindings - Both ~faust-mode~ and ~faustine-mode~ are hardcoded to use [[doom-package:][auto-complete]],
which Doom does not use. Its obnoxious 'You really should install and use
auto-complete' warnings have been silenced.
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
| Binding | Description | | Binding | Description |
|-------------------+----------------------| |-------------------+----------------------|
| ~<localleader> b~ | ~build~ | | [[kbd:][<localleader> b]] | build |
| ~<localleader> c~ | ~syntax check~ | | [[kbd:][<localleader> c]] | syntax check |
| ~<localleader> d~ | ~diagram~ | | [[kbd:][<localleader> d]] | diagram |
| ~<localleader> h~ | ~online dock~ | | [[kbd:][<localleader> h]] | online dock |
| ~<localleader> RET~ | ~mdoc~ | | [[kbd:][<localleader> RET]] | mdoc |
| ~<localleader> o~ | ~toggle output buffer~ | | [[kbd:][<localleader> o]] | toggle output buffer |
| ~<localleader> s~ | ~source code~ | | [[kbd:][<localleader> s]] | source code |
| ~<localleader> r~ | ~run~ | | [[kbd:][<localleader> r]] | run |
| ~<localleader> S-b~ | ~build all~ | | [[kbd:][<localleader> S-b]] | build all |
| ~<localleader> S-d~ | ~diagram all~ | | [[kbd:][<localleader> S-d]] | diagram all |
* 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,58 +1,72 @@
#+TITLE: lang/fsharp ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang fsharp][Issues]] ↖ [[doom-module-source:lang/fsharp][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: May 22, 2019 --------------------------------------------------------------------------------
#+SINCE: {replace with next tagged release version} #+TITLE: :lang fsharp
#+STARTUP: inlineimages #+SUBTITLE: ML stands for Microsoft's Language
#+CREATED: May 22, 2019
#+SINCE: 21.12.0 (#1327)
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds [[https://fsharp.org/][F#]] support to Doom Emacs.
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#mono][Mono]]
- [[#osx][OSX]]
- [[#arch-linux][Arch Linux]]
- [[#lsp][LSP]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description *Includes:*
# A summary of what this module does. - Code completion
- eldoc support
- Syntax checking
# + If possible, include a brief list of feature highlights here ** Maintainers
# + Like code completion, syntax checking or available snippets /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
# + Include links to packages & external things where possible
This module adds [[https://fsharp.org/][F#]] support. ** Module flags
+ Code completion - +lsp ::
+ eldoc support Enable LSP support for ~fsharp-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
+ Syntax checking (supports [[https://github.com/emacs-lsp/lsp-mode/blob/master/clients/lsp-fsharp.el][lsp-fsharp]].).
** Packages
- [[doom-package:][fsharp-mode]]
- [[doom-package:][lsp-fsharp]] if [[doom-package:][+lsp]]
** Module Flags
+ =+lsp= Enables lsp-fsharp (this requires ~:tools lsp~ to be enabled).
** Plugins
+ [[https://github.com/fsharp/emacs-fsharp-mode][fsharp-mode]]
+ =+lsp=
+ [[https://github.com/emacs-lsp/lsp-mode/blob/master/clients/lsp-fsharp.el][lsp-fsharp]]
** Hacks ** Hacks
None so far. /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 code completion/syntax checking when not using lsp, you will need to
install [[https://www.mono-project.com/][mono]].
* Prerequisites
** Mono ** Mono
To get code completion/syntax checking when not using lsp, you will need to install [[https://www.mono-project.com/][mono]].
*** OSX *** OSX
Do *NOT* install mono via brew. See this [[https://github.com/fsharp/FsAutoComplete/issues/331][issue]]. *Do NOT install mono via brew.* See this [[https://github.com/fsharp/FsAutoComplete/issues/331][issue]].
*** Arch Linux *** Arch Linux
#+BEGIN_SRC sh #+begin_src sh
sudo pacman -S mono pacman -S mono
#+END_SRC #+end_src
** LSP ** LSP
The language server is automatically installed by [[https://github.com/emacs-lsp/lsp-mode/blob/master/clients/lsp-fsharp.el][lsp-fsharp]]. The language server is automatically installed by [[https://github.com/emacs-lsp/lsp-mode/blob/master/clients/lsp-fsharp.el][lsp-fsharp]].
* Features
An in-depth list of features, how to use them, and their dependencies.
* Configuration * TODO Usage
How to configure this module, including common problems and how to address them. #+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 * Troubleshooting
Common issues and their solution, or places to look for help. /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,56 +1,75 @@
#+TITLE: lang/fstar ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang fstar][Issues]] ↖ [[doom-module-source:lang/fstar][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: February 2, 2020 --------------------------------------------------------------------------------
#+SINCE: 2.0.10 #+TITLE: :lang fstar
#+STARTUP: inlineimages nofold #+SUBTITLE: (Dependent) types and (monadic) effects and Z3
#+CREATED: February 02, 2020
#+SINCE: 21.12.0 (#2473)
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#f][F*]]
- [[#macos][macOS]]
- [[#arch-linux][Arch Linux]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module adds [[https://fstar-lang.org/][F*]] support, powered by [[https://github.com/FStarLang/fstar-mode.el][fstar-mode.el]]. This module adds [[https://fstar-lang.org/][F*]] support, powered by [[https://github.com/FStarLang/fstar-mode.el][fstar-mode.el]].
+ Syntax highlighting - Syntax highlighting
+ Interactively process F* files one definition at a time - Interactively process F* files one definition at a time
+ Query the running F* process to look up definitions, documentation, and - Query the running F* process to look up definitions, documentation, and
theorems theorems
** Maintainers ** Maintainers
+ [[https://github.com/tchajed][@tchajed]] (Author) - [[doom-user:][@tchajed]]
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
This module provides no flags.
** Plugins ** Module flags
+ [[https://github.com/FStarLang/fstar-mode.el][fstar-mode]] /This module has no flags./
* Prerequisites ** Packages
** F* - [[doom-package:][fstar-mode]]
While fstar-mode supports the latest release of F*, you may have a better
experience installing a more recent version from source. See F*'s [[https://github.com/FStarLang/FStar/blob/master/INSTALL.md][INSTALL.md]]. ** Hacks
*** macOS /No hacks documented for this module./
#+BEGIN_SRC sh
** 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://github.com/FStarLang/FStar/blob/master/INSTALL.md][F*]].
While ~fstar-mode~ supports the latest release of F*, you may have a better
experience installing a more recent version from source.
** macOS
#+begin_src sh
brew install fstar brew install fstar
#+END_SRC #+end_src
*** Arch Linux
Install ~fstar~ from the AUR: ** Arch Linux
#+BEGIN_SRC sh ~fstar~ is available in the AUR:
#+begin_src sh
yaourt -S fstar yaourt -S fstar
#+END_SRC #+end_src
* Features * TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Configuration * TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting * Troubleshooting
If you're having trouble getting F* to start correctly, you may need to [[doom-report:][Report an issue?]]
configure a few variables in fstar-mode; see its [[https://github.com/FStarLang/fstar-mode.el][README]] for more details.
- If you're having trouble getting F* to start correctly, you may need to
configure a few variables in ~fstar-mode~; see its [[https://github.com/FStarLang/fstar-mode.el][README]] for more details.
* 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,80 @@
#+TITLE: lang/gdscript ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang gdscript][Issues]] ↖ [[doom-module-source:lang/gdscript][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: May 27, 2020 --------------------------------------------------------------------------------
#+SINCE: v2.0.9 #+TITLE: :lang gdscript
#+SUBTITLE: the language you waited for
#+CREATED: June 01, 2020
#+SINCE: 21.12.0 (#3239)
* Table of Contents :TOC: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#appendix][Appendix]]
- [[#commands][Commands]]
* Description
This module adds support for GDScript, the scripting language of the [[http://godotengine.org/][Godot]] game This module adds support for GDScript, the scripting language of the [[http://godotengine.org/][Godot]] game
engine, to Doom Emacs, powered by [[https://github.com/GDQuest/emacs-gdscript-mode][gdscript-mode]]. engine, to Doom Emacs, powered by [[https://github.com/GDQuest/emacs-gdscript-mode][gdscript-mode]].
** Module Flags ** Maintainers
+ =+lsp= Enables LSP support for gdscript-mode. This requires the =:tools lsp= *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
module to be enabled and you need to open your project in Godot ~3.2.1~ or
above to run the language server.
** Plugins ** Module flags
This module provides no plugins. - +lsp ::
Enable LSP support for ~gdscript-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(Godot ~3.2.1~ or newer).
* Prerequisites ** Packages
To format your GDScript code, you need to install [[https://github.com/Scony/godot-gdscript-toolkit/][gdtoolkit]]: - [[doom-package:][gdscript-mode]]
#+BEGIN_SRC shell ** 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 Godot 3.2.1+ to be installed to make use of any of its
features (beyond syntax highlighting).
To format your GDScript code, you will need [[https://github.com/Scony/godot-gdscript-toolkit/][gdtoolkit]]:
#+begin_src sh
# On Windows # On Windows
pip install gdtoolkit pip install gdtoolkit
# On MacOS and Linux # On MacOS and Linux
pip3 install gdtoolkit pip3 install gdtoolkit
#+END_SRC #+end_src
* Features * TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** LSP support
The language server support for GDScript is built into by lsp-mode. As long as The language server support for GDScript is built into by lsp-mode. As long as
you have the ~lsp~ module installed, you should be able to use the language you have [[doom-module:][+lsp]] and [[doom-module:][:tools lsp]] enabled, and Godot 3.2.1+ installed, it should work
server. out of the box.
Godot's language server is built into the game engine, so you need to open your Godot's language server is built into the game engine, so you need to open your
project in Godot ~3.2.1~ or above for the GDScript language server to be project in Godot ~3.2.1~ or above for the GDScript language server to be
available. available.
/Note that the GDScript language server has known issues causing some errors
with lsp-mode. They should be addressed in future releases./
* Configuration
This module provides no configuration.
* Appendix
** Commands ** Commands
Press ~SPC m~ (local leader key) to explore available commands. Press the localleader key ([[kbd:][SPC m]] for evil users, [[kbd:][C-c l]] otherwise) to explore
available commands.
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
[[doom-report:][Report an issue?]]
- The GDScript language server has known issues causing some errors with
[[doom-package:][lsp-mode]]. They should be addressed in future releases.
* 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,81 +1,74 @@
#+TITLE: lang/go ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang go][Issues]] ↖ [[doom-module-source:lang/go][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2017 --------------------------------------------------------------------------------
#+SINCE: v2.0 #+TITLE: :lang go
#+STARTUP: inlineimages #+SUBTITLE: The hipster dialect
#+CREATED: June 15, 2015
#+SINCE: 0.7
* Table of Contents :TOC: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#go][Go]]
- [[#dependencies][Dependencies]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module adds [[https://golang.org][Go]] support, with optional (but recommended) LSP support via This module adds [[https://golang.org][Go]] support, with optional (but recommended) LSP support via
[[https://github.com/golang/tools/blob/master/gopls/README.md][gopls]]. [[https://github.com/golang/tools/blob/master/gopls/README.md][gopls]].
+ Code completion (~gocode~) - Code completion (~gocode~)
+ Documentation lookup (~godoc~) - Documentation lookup (~godoc~)
+ Eldoc support (~go-eldoc~) - Eldoc support (~go-eldoc~)
+ REPL (~gore~) - REPL (~gore~)
+ Syntax-checking (~flycheck~) - Syntax-checking (~flycheck~)
+ Auto-formatting on save (~gofmt~) (requires =:editor (format +onsave)=) - Auto-formatting on save (~gofmt~) (requires [[doom-module:][:editor format +onsave]])
+ Code navigation & refactoring (~go-guru~) - Code navigation & refactoring (~go-guru~)
+ [[../../editor/file-templates/templates/go-mode][File templates]] - [[../../editor/file-templates/templates/go-mode][File templates]]
+ [[https://github.com/hlissner/doom-snippets/tree/master/go-mode][Snippets]] - [[https://github.com/hlissner/doom-snippets/tree/master/go-mode][Snippets]]
+ Generate testing code (~go-gen-test~) - Generate testing code (~go-gen-test~)
+ Code checking (~flycheck-golangci-lint~) - Code checking (~flycheck-golangci-lint~)
** Module Flags ** Maintainers
+ =+lsp= Enables integration for the gopls LSP server. It is highly recommended *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
you use this, as the non-LSP experience is deprecated (and poor).
** Plugins ** Module flags
+ [[https://github.com/dominikh/go-mode.el][go-mode]] - +lsp ::
+ [[https://github.com/syohex/emacs-go-eldoc][go-eldoc]] Enable LSP support for ~go-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
+ [[https://github.com/dominikh/go-mode.el][go-guru]] (supports gopls). Highly recommended, as the non-LSP experience is deprecated
+ [[https://github.com/manute/gorepl-mode][gorepl-mode]] (and poor).
+ [[https://github.com/brantou/emacs-go-tag][go-tag]]
+ [[https://github.com/mdempsky/gocode][company-go]]* =DEPRECATED= ** Packages
+ [[https://github.com/s-kostyaev/go-gen-test][go-gen-test]] - [[doom-package:][company-go]] if [[doom-module:][:completion company]] (DEPRECATED)
+ [[https://github.com/weijiangan/flycheck-golangci-lint][flycheck-golangci-lint]] (if =:checkers syntax= is enabled) - [[doom-package:][flycheck-golangci-lint]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][go-eldoc]]
- [[doom-package:][go-gen-test]]
- [[doom-package:][go-guru]]
- [[doom-package:][go-mode]]
- [[doom-package:][gorepl-mode]]
- [[doom-package:][go-tag]]
** 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 Go, a valid =$GOPATH=, and a number of go packages, listed
below.
* Prerequisites
** Go ** Go
To get started with Go, you need the ~go~ tool: - macOS: ~$ brew install go~
- Arch Linux: ~$ pacman -S go~
*** MacOS - openSUSE: ~$ zypper install go~
#+BEGIN_SRC bash
brew install go
#+END_SRC
*** Arch Linux
#+BEGIN_SRC bash
sudo pacman -S go
#+END_SRC
*** openSUSE
#+BEGIN_SRC sh :dir /sudo::
sudo zypper install go
#+END_SRC
** Dependencies ** Dependencies
This module requires a valid ~GOPATH~, and the following Go packages: - ~gocode~ (for code completion & eldoc support)
- ~godoc~ (for documentation lookup)
- ~gorename~ (for extra refactoring commands)
- ~gore~ (for the REPL)
- ~guru~ (for code navigation & refactoring commands)
- ~goimports~ (/optional/: for auto-formatting code on save & fixing imports)
- ~gotests~ (for generate test code)
- ~gomodifytags~ (for manipulating tags)
+ ~gocode~ (for code completion & eldoc support) #+begin_src sh
+ ~godoc~ (for documentation lookup)
+ ~gorename~ (for extra refactoring commands)
+ ~gore~ (for the REPL)
+ ~guru~ (for code navigation & refactoring commands)
+ ~goimports~ (optional: for auto-formatting code on save & fixing imports)
+ ~gotests~ (for generate test code)
+ ~gomodifytags~ (for manipulating tags)
#+BEGIN_SRC sh
export GOPATH=~/work/go export GOPATH=~/work/go
go install github.com/x-motemen/gore/cmd/gore@latest go install github.com/x-motemen/gore/cmd/gore@latest
@ -86,14 +79,29 @@ go install golang.org/x/tools/cmd/gorename@latest
go install golang.org/x/tools/cmd/guru@latest go install golang.org/x/tools/cmd/guru@latest
go install github.com/cweill/gotests/gotests@latest go install github.com/cweill/gotests/gotests@latest
go install github.com/fatih/gomodifytags@latest go install github.com/fatih/gomodifytags@latest
#+END_SRC #+end_src
+ ~golangci-lint~ (optional: for flycheck to integrate golangci-lint results) - ~golangci-lint~ (optional: for flycheck to integrate golangci-lint results) it
it is recommended to *not* use ~go get~ to install this one, check the is recommended to *not* use ~$ go get~ to install this one, check the
[[https://github.com/golangci/golangci-lint#binary-release][documentation]]. [[https://github.com/golangci/golangci-lint#binary-release][documentation]].
* TODO Features * TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration * TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* 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,43 +1,43 @@
#+TITLE: lang/haskell ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang haskell][Issues]] ↖ [[doom-module-source:lang/haskell][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2017 --------------------------------------------------------------------------------
#+SINCE: v0.7 #+TITLE: :lang haskell
#+STARTUP: inlineimages #+SUBTITLE: A language that's lazier than I am
#+CREATED: March 29, 2016
#+SINCE: 0.9
* Table of Contents :TOC: * Description :unfold:
- [[#description][Description]] This module adds Haskell support to Doom Emacs.
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
* Description
Adds Haskell support to Doom Emacs.
** Maintainers ** Maintainers
This module has no dedicated maintainers. *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
+ =+lsp= Enable LSP support with for [[https://github.com/haskell/haskell-language-server][haskell-language-server]] (requires the =:tools lsp= module). - +lsp ::
Enable LSP support for ~haskell-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/haskell/haskell-language-server][haskell-language-server]]).
** Plugins ** Packages
+ [[https://github.com/haskell/haskell-mode][haskell-mode]] - [[doom-package:][haskell-mode]]
+ [[https://github.com/emacs-lsp/lsp-haskell][lsp-haskell]] (=+lsp=, =:tools lsp=) - [[doom-package:][lsp-haskell]] if [[doom-module:][+lsp]]
** Hacks
/No hacks documented for this module./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
* Prerequisites
It is recommended to install the haskell tooling using [[https://www.haskell.org/ghcup/][ghcup]]. Only ghc is needed It is recommended to install the haskell tooling using [[https://www.haskell.org/ghcup/][ghcup]]. Only ghc is needed
for basic functionality: for basic functionality:
#+BEGIN_SRC bash #+begin_src sh
ghcup install ghc ghcup install ghc
#+END_SRC #+end_src
but =+lsp= users should also install the language server: but =+lsp= users should also install the language server:
#+BEGIN_SRC bash #+begin_src sh
ghcup install hls ghcup install hls
#+END_SRC #+end_src
Installing [[https://www.haskell.org/cabal/][cabal]] or [[https://docs.haskellstack.org/en/stable/README/][stack]] as well is recommended, and can be done through Installing [[https://www.haskell.org/cabal/][cabal]] or [[https://docs.haskellstack.org/en/stable/README/][stack]] as well is recommended, and can be done through
=ghcup=. =ghcup=.
@ -49,25 +49,44 @@ system package manager, cabal, or stack.
formatters such as [[https://github.com/lspitzner/brittany][brittany]], [[https://github.com/ennocramer/floskell][floskell]], [[https://github.com/tweag/ormolu][ormolu]], [[https://github.com/fourmolu/fourmolu][fourmolu]], and [[https://github.com/haskell/stylish-haskell][stylish-haskell]], formatters such as [[https://github.com/lspitzner/brittany][brittany]], [[https://github.com/ennocramer/floskell][floskell]], [[https://github.com/tweag/ormolu][ormolu]], [[https://github.com/fourmolu/fourmolu][fourmolu]], and [[https://github.com/haskell/stylish-haskell][stylish-haskell]],
which can be installed through system package manager, cabal, or stack. which can be installed through system package manager, cabal, or stack.
* Features * TODO Usage
This module intergrates the haskell packages into Doom by providing things such #+begin_quote
as repl support, project root recognition, etc. It also provide the following 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
This module integrates the haskell packages into Doom by providing things such
as REPL support, project root recognition, etc. It also provide the following
keybindings: keybindings:
| Keybinding | Description | | Keybinding | Description |
|-------------------+-----------------------------------------------| |-----------------+-----------------------------------------------|
| =<localleader> b= | Build the current cabal project | | [[kbd:][<localleader> b]] | Build the current cabal project |
| =<localleader> c= | Visit the =.cabal= file of the current buffer | | [[kbd:][<localleader> c]] | Visit the =.cabal= file of the current buffer |
| =<localleader> h= | Toggle visibility of the form at point | | [[kbd:][<localleader> h]] | Toggle visibility of the form at point |
| =<localleader> H= | hides all top level functions | | [[kbd:][<localleader> H]] | hides all top level functions |
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
After installing your preferred formatter, make sure to set After installing your preferred formatter, make sure to set
=lsp-haskell-formatting-provider= to it. =lsp-haskell-formatting-provider= to it.
Make sure to configure the lsp to use your perfered formatter, e.g.: Make sure to configure the lsp to use your perfered formatter, e.g.:
#+BEGIN_SRC elisp #+begin_src emacs-lisp
;; ~/.doom.d/config.el ;; ~/.doom.d/config.el
(after! (after!
(setq lsp-haskell-formatting-provider "brittany")) (setq lsp-haskell-formatting-provider "brittany"))
#+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

@ -0,0 +1,51 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang hy][Issues]] ↖ [[doom-module-source:lang/hy][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang hy
#+SUBTITLE: Lisp is better than ugly
#+CREATED: June 25, 2017
#+SINCE: 2.0.4 (#122)
* Description :unfold:
/(No description yet)/
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][hy-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://docs.hylang.org/en/alpha/][Hy]].
* 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,30 +1,56 @@
#+TITLE: lang/idris ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang idris][Issues]] ↖ [[doom-module-source:lang/idris][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: October 6, 2020 --------------------------------------------------------------------------------
#+SINCE: v2.0.9 #+TITLE: :lang idris
#+STARTUP: inlineimages nofold #+SUBTITLE: A language you can depend on
#+CREATED: August 21, 2018
#+SINCE: 21.12.0 (#822)
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds rudimentary [[https://www.idris-lang.org/][Idris]] support to Doom Emacs.
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
* Description
This module adds rudimentary Idris support.
** Maintainers ** Maintainers
This module has no dedicated maintainers. *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
This module provides no flags. /This module has no flags./
** Plugins ** Packages
# A list of linked plugins - [[doom-package:][idris-mode]]
+ [[https://github.com/idris-hackers/idris-mode/][idris-mode]]
* Prerequisites ** Hacks
This module has no prerequisites. /No hacks documented for this module./
* Features ** TODO Changelog
In addition to =idris-mode= goodness, adds frequently used functions under the localleader key. # 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
🔨 /No installation steps have been 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
In addition to ~idris-mode~ goodness, adds frequently used functions under the
[[kbd:][<localleader>]] key.
* 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,148 +1,169 @@
#+TITLE: lang/java ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang java][Issues]] ↖ [[doom-module-source:lang/java][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2017 --------------------------------------------------------------------------------
#+SINCE: v1.3 #+TITLE: :lang java
#+STARTUP: inlineimages #+SUBTITLE: The poster child for carpal tunnel syndrome
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds [[https://www.java.com][Java]] support to Doom Emacs, including ~android-mode~ and
- [[#module-flags][Module Flags]] ~groovy-mode~.
- [[#prerequisites][Prerequisites]]
- [[#openjdk-11][OpenJDK 11]]
- [[#ubuntu][Ubuntu]]
- [[#fedora][Fedora]]
- [[#oracle-jdk-11][Oracle JDK 11]]
- [[#ubuntu-1][Ubuntu]]
- [[#fedora-1][Fedora]]
- [[#multiple-java-versions][Multiple Java Versions]]
- [[#features][Features]]
- [[#lsp-features][=+lsp= features]]
- [[#meghanada-features][=+meghanada= features]]
- [[#configuration][Configuration]]
- [[#lsp][=+lsp=]]
* Description ** Maintainers
This module adds [[https://www.java.com][java]] support to Doom Emacs, including =android-mode= and /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
=groovy-mode=.
** Module Flags ** Module flags
+ =+lsp= Enables integration for the eclipse.jdt.ls LSP server. - +lsp ::
+ =+meghanada= Enables the [[https://github.com/mopemope/meghanada-emacs/tree/master][meghanada-mode]] Enable LSP support for ~java-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports eclipse.jdt.ls). *Incompatible with [[doom-module:][+meghanada]].*
- +meghanada ::
Enable [[doom-package:][meghanada-mode]]. *Incompatible with [[doom-module:][+lsp]].*
The =+lsp= and =+meghanada= packages are mutually exclusive and do not work ** Packages
together. At the time of writing the =+meghanada= is already configured whereas - [[doom-package:][android-mode]]
=+lsp= needs to manual configuring. - [[doom-package:][groovy-mode]]
- [[doom-package:][meghanada]] if [[doom-module:][+meghanada]]
- if [[doom-module:][+eclim]]
- [[doom-package:][eclim]]
- [[doom-package:][company-emacs-eclim]] if [[doom-module:][:completion company]]
- if [[doom-module:][+lsp]] and not [[doom-module:][:tools lsp +eglot]]
- [[doom-package:][lsp-java]]
The =lsp= test runner requires that =:tools (debugger +lsp)= is enabled, as this ** Hacks
provides =dap-mode= which contains the Java test runner. /No hacks documented for this module./
* Prerequisites ** TODO Changelog
This module requires the Java SDK. # 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.oracle.com/java/technologies/downloads/][Java SDK]]
- The LSP test runner requires [[doom-module:][:tools debugger +lsp]] (requires [[doom-package:][dap-mode]])
** OpenJDK 11 ** OpenJDK 11
*** Ubuntu *** Ubuntu
#+BEGIN_SRC sh #+begin-src sh
sudo apt-get install openjdk-11-jdk-headless apt-get install openjdk-11-jdk-headless
#+END_SRC #+end_src
*** Fedora *** Fedora
#+BEGIN_SRC sh #+begin_src sh
sudo dnf install java-11-openjdk dnf install java-11-openjdk
#+END_SRC #+end_src
** Oracle JDK 11 ** Oracle JDK 11
*** Ubuntu *** Ubuntu
#+BEGIN_SRC sh #+begin_src sh
sudo add-apt-repository ppa:linuxuprising/java add-apt-repository ppa:linuxuprising/java
sudo apt update apt update
sudo apt install oracle-java11-installer apt install oracle-java11-installer
sudo apt install oracle-java11-set-default apt install oracle-java11-set-default
#+END_SRC #+end_src
*** Fedora *** Fedora
#+BEGIN_SRC sh #+begin_src sh
curl -O https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz curl -O https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
tar zxvf openjdk-11.0.2_linux-x64_bin.tar.gz tar zxvf openjdk-11.0.2_linux-x64_bin.tar.gz
sudo mv jdk-11.0.2/ /usr/local/ sudo mv jdk-11.0.2/ /usr/local/
#+END_SRC #+end_src
Open =/etc/profile.d/jdk11.sh= as root and add Open =/etc/profile.d/jdk11.sh= as root and add:
#+begin_src sh
#+BEGIN_SRC sh
export JAVA_HOME=/usr/local/jdk-11.0.2 export JAVA_HOME=/usr/local/jdk-11.0.2
export PATH=$PATH:$JAVA_HOME/bin export PATH=$PATH:$JAVA_HOME/bin
#+END_SRC #+end_src
Save the file and source the file Save the file and source it:
#+begin_src sh
#+BEGIN_SRC sh
source /etc/profile.d/jdk11.sh source /etc/profile.d/jdk11.sh
java -version java -version
#+END_SRC #+end_src
** Multiple Java Versions ** Multiple Java Versions
It is common to need support for multiple Java versions. You can use a generic It is common to need support for multiple Java versions. You can use a generic
tool like [[https://github.com/shyiko/jabba][jabba]] to install and manage multiple Java versions on any OS. tool like [[https://github.com/shyiko/jabba][jabba]] to install and manage multiple Java versions on any OS.
To switch between Java versions in Doom, you can use [[https://github.com/direnv/direnv][direnv]] and the [[file:~/.emacs.d/modules/tools/direnv/README.org::+TITLE: tools/direnv][direnv module]]. To set a To have a different version of Java per-project, it is recommended you use
Java version for a particular project, create a =.envrc= pointing to the Java [[https://github.com/direnv/direnv][direnv]] and [[doom-module:][:tools direnv]]; create a =.envrc= in the root of the project pointing
installation in the root of the project: to the Java installation:
#+begin_src sh
#+BEGIN_SRC conf-unix
PATH_add ~/.jabba/jdk/adopt@1.11.0-3 PATH_add ~/.jabba/jdk/adopt@1.11.0-3
JAVA_HOME=~/.jabba/jdk/adopt@1.11.0-3 JAVA_HOME=~/.jabba/jdk/adopt@1.11.0-3
#+END_SRC #+end_src
And then run =direnv allow .= in the project directory. If the =direnv= module And then run ~$ direnv allow .~ in the project directory. The [[doom-module:][:tools direnv]]
is enabled, then Doom will automatically source this environment before module will automatically source this environment before activating LSP servers.
executing the LSP server.
* Features * TODO Usage
** =+lsp= features #+begin_quote
According to [[https://github.com/emacs-lsp/lsp-java]] it adds 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
+ As you type reporting of parsing and compilation errors (via flycheck/[[https://github.com/emacs-lsp/lsp-ui][lsp-ui]]) ** [[doom-module:][+lsp]] features
+ Code completion - using [[https://github.com/tigersoldier/company-lsp][company-lsp]] or builtin complete-at-point According to [[https://github.com/emacs-lsp/lsp-java]], you get:
+ Javadoc hovers - using [[https://github.com/emacs-lsp/lsp-ui][lsp-ui]] - As you type reporting of parsing and compilation errors (via [[doom-package:][flycheck]] or
+ Code actions - using [[https://github.com/emacs-lsp/lsp-ui][lsp-ui]] [[doom-package:][lsp-ui]])
+ Code outline - using builtin [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Imenu.html][imenu]] - Code completion ([[doom-package:][company-lsp]] or complete-at-point)
+ Code navigation - using builtin [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Xref.html][xref]] - Javadoc hovers ([[doom-package:][lsp-ui]])
+ Code lens (references/implementations) - using builtin [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Xref.html][xref]] - Code actions ([[doom-package:][lsp-ui]])
+ Highlights - Code outline ([[doom-package:][imenu]])
+ Code formatting - Code navigation ([[doom-package:][xref]])
+ Maven pom.xml project support - Code lens for references/implementations ([[doom-package:][xref]])
+ Limited Gradle support - Highlights
+ Visual debugger - [[https://github.com/yyoncho/dap-mode/][dap-mode]] - Code formatting
+ Test runner - [[https://github.com/yyoncho/dap-mode/][dap-mode]] - Maven pom.xml project support
+ Project explorer integration - [[https://github.com/Alexander-Miller/treemacs][treemacs]] - Limited Gradle support
+ Integration with [[https://start.spring.io/][Spring Initializr]] - Visual debugger ([[doom-package:][dap-mode]])
- Test runner ([[doom-package:][dap-mode]])
- Project explorer integration ([[doom-package:][treemacs]])
- Integration with [[https://start.spring.io/][Spring Initializr]]
** =+meghanada= features ** =+meghanada= features
According to [[https://github.com/mopemope/meghanada-emacs/]] it adds According to [[https://github.com/mopemope/meghanada-emacs/]], you get:
- Auto-update server module
- [[https://gradle.org/][Gradle]] and [[http://maven.apache.org/][Maven]] and Eclipse project support
- No need build tool's plugin
- Run build tool task
- Compile your project
- Syntax check and analyze java source ([[doom-package:][flycheck-meghanada]])
- Support =Generic Types=
- Code completion with [[doom-package:][company-mode]] ([[doom-package:][company-meghanada]])
- Optimize import and sort
- Jump declaration
- Run [[http://www.junit.org/][JUnit]] test (include test runner)
- Diagnostic reporting with [[doom-package:][flycheck]] ([[doom-package:][flycheck-meghanada]])
- Show symbol's type info with [[doom-package:][eldoc]]
- Search references
- Full-featured text search
+ Auto-update server module * TODO Configuration
+ [[https://gradle.org/][Gradle]] and [[http://maven.apache.org/][Maven]] and Eclipse project support #+begin_quote
+ No need build tool's plugin 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
+ Run build tool task #+end_quote
+ Compile your project
+ Syntax check and analyze java source (=flycheck-meghanada=)
+ Support =Generic Types=
+ Code completion with [[http://company-mode.github.io/][company-mode]] (=company-meghanada=)
+ Optimize import and sort
+ Jump declaration
+ Run [[http://www.junit.org/][JUnit]] test (include test runner)
+ Diagnostic reporting with [[http://flycheck.org/][flycheck]] (=flycheck-meghanada=)
+ Show symbol's type info with =el-doc=
+ Search references
+ Full-featured text search
* Configuration ** [[doom-module:][+lsp]]
** =+lsp= Install the eclipse server by executing ~M-x lsp-install-server~ and selecting
Install the eclipse server by executing =M-x lsp-install-server= and selecting
=jdtls=. After that any newly opened =java= files should start the LSP server =jdtls=. After that any newly opened =java= files should start the LSP server
automatically. automatically.
To update the server, perform =SPC u M-x lsp-install-server=. To update the server, perform ~SPC u M-x lsp-install-server~.
Note that if you change Java version you may need to remove the LSP server and Note that if you change Java version you may need to remove the LSP server and
install it again. You can do this with =M-x +lsp/uninstall-server= followed by install it again. You can do this with ~M-x +lsp/uninstall-server~ followed by
=M-x lsp-install-server=. ~M-x lsp-install-server~.
Enable the =:tools (debugger +lsp)= module to get test runner support. Enable the [[doom-module:][:tools debugger +lsp]] module to get test runner support.
* 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,146 +1,160 @@
#+TITLE: lang/javascript ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang javascript][Issues]] ↖ [[doom-module-source:lang/javascript][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2017 --------------------------------------------------------------------------------
#+SINCE: v2.0 #+TITLE: :lang javascript
#+STARTUP: inlineimages #+SUBTITLE: all(hope(abandon(ye(who(enter(here))))))
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC: * Description :unfold:
- [[#description][Description]] This module adds [[https://www.javascript.com/][JavaScript]] and [[https://www.typescriptlang.org/][TypeScript]] support to Doom Emacs.
- [[#module-flags][Module Flags]]
- [[#packages][Packages]]
- [[#prerequisites][Prerequisites]]
- [[#macos][MacOS]]
- [[#arch-linux][Arch Linux]]
- [[#opensuse][openSUSE]]
- [[#troubleshooting][Troubleshooting]]
- [[#tide-sort-completions-by-kind-isnt-respected][~tide-sort-completions-by-kind~ isn't respected]]
- [[#appendix][Appendix]]
- [[#commands][Commands]]
* Description - Code completion ([[doom-package:][tide]])
This module adds JavaScript and TypeScript support. - REPL support ([[doom-package:][nodejs-repl]])
- Refactoring commands ([[doom-package:][js2-refactor]])
- Syntax checking ([[doom-package:][flycheck]])
- Browser code injection with [[doom-package:][skewer-mode]]
- Coffeescript & JSX support
- Jump-to-definitions and references support ([[doom-package:][xref]])
+ Code completion (tide) ** Maintainers
+ REPL support (nodejs-repl) - [[doom-user:][@hlissner]]
+ Refactoring commands (js2-refactor)
+ Syntax checking (flycheck)
+ Browser code injection with skewer-mode
+ Coffeescript & JSX support
+ Jump-to-definitions and references support (xref)
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
+ =+lsp= Enables LangServer support for this module. You must have =:tools lsp=
enabled for this to work, as well as the langserver (e.g. ** Module flags
typescript-language-server) installed on your system. - +lsp ::
Enable LSP support for ~js2-mode~, ~rjsx-mode~, JS in ~web-mode~, and
~typescript-mode~. Requires [[doom-module:][:tools lsp]] and a langserver (supports ts-ls and
deno-ls).
** Packages ** Packages
+ [[https://github.com/defunkt/coffee-mode][coffee-mode]] - [[doom-package:][js2-refactor]]
+ [[https://github.com/mooz/js2-mode][js2-mode]] - [[doom-package:][nodejs-repl]]
+ [[https://github.com/felipeochoa/rjsx-mode][rjsx-mode]] - [[doom-package:][npm-mode]]
+ [[https://github.com/emacs-typescript/typescript.el][typescript-mode]] - [[doom-package:][rjsx-mode]]
+ [[https://github.com/magnars/js2-refactor.el][js2-refactor]] - [[doom-package:][skewer-mode]] (DEPRECATED)
+ [[https://github.com/mojochao/npm-mode][npm-mode]] - [[doom-package:][tide]]
+ [[https://github.com/abicky/nodejs-repl.el][nodejs-repl]] - [[doom-package:][typescript-mode]]
+ [[https://github.com/skeeto/skewer-mode][skewer-mode]] - [[doom-package:][xref-js2]] if [[doom-module:][:tools lookup]]
+ [[https://github.com/ananthakumaran/tide][tide]]
+ [[https://github.com/NicolasPetton/xref-js2][xref-js2]]*
* Prerequisites ** TODO Hacks
Many of this modules' plugins require ~node~ and either ~npm~ or ~yarn~ #+begin_quote
installed. 🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]]
#+end_quote
** MacOS ** TODO Changelog
#+BEGIN_SRC sh :tangle (if (doom-system-os 'macos) "yes") # This section will be machine generated. Don't edit it by hand.
brew install node /This module does not have a changelog yet./
#+END_SRC
** Arch Linux * Installation
#+BEGIN_SRC sh :dir /sudo:: :tangle (if (doom-system-os 'arch) "yes") [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
sudo pacman --needed --noconfirm -S nodejs npm
#+END_SRC
** openSUSE This module requires [[https://nodejs.org/en/][NodeJS]] and one of [[https://www.npmjs.com/][NPM]] or [[https://yarnpkg.com/][Yarn]] in your =$PATH=.
#+BEGIN_SRC sh :dir /sudo::
sudo zypper install nodejs npm
#+END_SRC
* Troubleshooting - MacOS: ~$ brew install node~
** ~tide-sort-completions-by-kind~ isn't respected - Arch Linux: ~$ pacman --needed --noconfirm -S nodejs npm~
The =:completion company= module uses =company-prescient= to sort completion by - openSUSE: ~$ zypper install nodejs npm~
[[https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Places/Frecency_algorithm][frecency]], which overrules specialized sorting provided by some company backends
(like ~company-tide~). * TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
~rjsx-mode~ is used for all javascript buffers.
* Appendix
** Commands ** Commands
*** JS2-mode *** rjsx-mode
| command | key / ex command | description | | command | key / ex command | description |
|----------------------------------+------------------+------------------------------------------------------------| |----------------------------------+------------------+------------------------------------------------------------|
| ~+javascript/open-repl~ | =:repl= | Open the NodeJS REPL (or send the current selection to it) | | ~+javascript/open-repl~ | ~:repl~ | Open the NodeJS REPL (or send the current selection to it) |
| ~+javascript/skewer-this-buffer~ | =SPC m S= | Attaches a browser to the current buffer | | ~+javascript/skewer-this-buffer~ | [[kbd:][<localleader> S]] | Attaches a browser to the current buffer |
*** Tide *** Tide
| command | key / ex command | description | | command | key / ex command | description |
|-------------------------+------------------+------------------------| |-------------------------+---------------------+------------------------|
| ~tide-restart-server~ | =SPC m R= | Restart tide server | | ~tide-restart-server~ | [[kbd:][<localleader> R]] | Restart tide server |
| ~tide-reformat~ | =SPC m f= | Reformat region | | ~tide-reformat~ | [[kbd:][<localleader> f]] | Reformat region |
| ~tide-rename-symbol~ | =SPC m r r s= | Rename symbol at point | | ~tide-rename-symbol~ | [[kbd:][<localleader> r r s]] | Rename symbol at point |
| ~tide-organize-imports~ | =SPC m r o i= | Organize imports | | ~tide-organize-imports~ | [[kbd:][<localleader> r o i]] | Organize imports |
*** Refactoring (js2-refactor-mode) *** Refactoring (js2-refactor-mode)
| command | key / ex command | description | | command | key / ex command | description |
|---------------------------------------------------+------------------+--------------------------------------------------------------------------------------------------------------------| |---------------------------------------------------+---------------------+--------------------------------------------------------------------------------------------------------------------|
| ~js2r-expand-node-at-point~ | =SPC m r e e= | Expand bracketed list according to node type at point | | ~js2r-expand-node-at-point~ | [[kbd:][<localleader> r e e]] | Expand bracketed list according to node type at point |
| ~js2r-contract-node-at-point~ | =SPC m r c c= | Contract bracketed list according to node type at point | | ~js2r-contract-node-at-point~ | [[kbd:][<localleader> r c c]] | Contract bracketed list according to node type at point |
| ~js2r-extract-function~ | =SPC m r e f= | Extracts the marked expressions out into a new named function. | | ~js2r-extract-function~ | [[kbd:][<localleader> r e f]] | Extracts the marked expressions out into a new named function. |
| ~js2r-extract-method~ | =SPC m r e m= | Extracts the marked expressions out into a new named method in an object literal. | | ~js2r-extract-method~ | [[kbd:][<localleader> r e m]] | Extracts the marked expressions out into a new named method in an object literal. |
| ~js2r-toggle-function-expression-and-declaration~ | =SPC m r t f= | Toggle between function name() {} and var name = function (); | | ~js2r-toggle-function-expression-and-declaration~ | [[kbd:][<localleader> r t f]] | Toggle between function name() {} and var name = function (); |
| ~js2r-toggle-arrow-function-and-expression~ | =SPC m r t a= | Toggle between function expression to arrow function. | | ~js2r-toggle-arrow-function-and-expression~ | [[kbd:][<localleader> r t a]] | Toggle between function expression to arrow function. |
| ~js2r-toggle-function-async~ | =SPC m r t s= | Toggle between an async and a regular function. | | ~js2r-toggle-function-async~ | [[kbd:][<localleader> r t s]] | Toggle between an async and a regular function. |
| ~js2r-introduce-parameter~ | =SPC m r i p= | Changes the marked expression to a parameter in a local function. | | ~js2r-introduce-parameter~ | [[kbd:][<localleader> r i p]] | Changes the marked expression to a parameter in a local function. |
| ~js2r-localize-parameter~ | =SPC m r l p= | Changes a parameter to a local var in a local function. | | ~js2r-localize-parameter~ | [[kbd:][<localleader> r l p]] | Changes a parameter to a local var in a local function. |
| ~js2r-wrap-buffer-in-iife~ | =SPC m r w i= | Wraps the entire buffer in an immediately invoked function expression | | ~js2r-wrap-buffer-in-iife~ | [[kbd:][<localleader> r w i]] | Wraps the entire buffer in an immediately invoked function expression |
| ~js2r-inject-global-in-iife~ | =SPC m r i g= | Creates a shortcut for a marked global by injecting it in the wrapping immediately invoked function expression | | ~js2r-inject-global-in-iife~ | [[kbd:][<localleader> r i g]] | Creates a shortcut for a marked global by injecting it in the wrapping immediately invoked function expression |
| ~js2r-add-to-globals-annotation~ | =SPC m r a g= | Creates a /*global */ annotation if it is missing, and adds the var at point to it. | | ~js2r-add-to-globals-annotation~ | [[kbd:][<localleader> r a g]] | Creates a /*global */ annotation if it is missing, and adds the var at point to it. |
| ~js2r-extract-var~ | =SPC m r e v= | Takes a marked expression and replaces it with a var. | | ~js2r-extract-var~ | [[kbd:][<localleader> r e v]] | Takes a marked expression and replaces it with a var. |
| ~js2r-extract-let~ | =SPC m r e l= | Similar to extract-var but uses a let-statement. | | ~js2r-extract-let~ | [[kbd:][<localleader> r e l]] | Similar to extract-var but uses a let-statement. |
| ~js2r-extract-const~ | =SPC m r e c= | Similar to extract-var but uses a const-statement. | | ~js2r-extract-const~ | [[kbd:][<localleader> r e c]] | Similar to extract-var but uses a const-statement. |
| ~js2r-inline-var~ | =SPC m r i v= | Replaces all instances of a variable with its initial value. | | ~js2r-inline-var~ | [[kbd:][<localleader> r i v]] | Replaces all instances of a variable with its initial value. |
| ~js2r-rename-var~ | =SPC m r r v= | Renames the variable on point and all occurrences in its lexical scope. | | ~js2r-rename-var~ | [[kbd:][<localleader> r r v]] | Renames the variable on point and all occurrences in its lexical scope. |
| ~js2r-var-to-this~ | =SPC m r v t= | Changes local var a to be this.a instead. | | ~js2r-var-to-this~ | [[kbd:][<localleader> r v t]] | Changes local var a to be this.a instead. |
| ~js2r-arguments-to-object~ | =SPC m r a o= | Replaces arguments to a function call with an object literal of named arguments. | | ~js2r-arguments-to-object~ | [[kbd:][<localleader> r a o]] | Replaces arguments to a function call with an object literal of named arguments. |
| ~js2r-ternary-to-if~ | =SPC m r 3 i= | Converts ternary operator to if-statement. | | ~js2r-ternary-to-if~ | [[kbd:][<localleader> r 3 i]] | Converts ternary operator to if-statement. |
| ~js2r-split-var-declaration~ | =SPC m r s v= | Splits a var with multiple vars declared, into several var statements. | | ~js2r-split-var-declaration~ | [[kbd:][<localleader> r s v]] | Splits a var with multiple vars declared, into several var statements. |
| ~js2r-split-string~ | =SPC m r s s= | Splits a string. | | ~js2r-split-string~ | [[kbd:][<localleader> r s s]] | Splits a string. |
| ~js2r-string-to-template~ | =SPC m r s t= | Converts a string into a template string. | | ~js2r-string-to-template~ | [[kbd:][<localleader> r s t]] | Converts a string into a template string. |
| ~js2r-unwrap~ | =SPC m r u w= | Replaces the parent statement with the selected region. | | ~js2r-unwrap~ | [[kbd:][<localleader> r u w]] | Replaces the parent statement with the selected region. |
| ~js2r-log-this~ | =SPC m r l t= | Adds a console.log() statement for what is at point (or region). With a prefix argument, use JSON pretty-printing. | | ~js2r-log-this~ | [[kbd:][<localleader> r l t]] | Adds a console.log() statement for what is at point (or region). With a prefix argument, use JSON pretty-printing. |
| ~js2r-debug-this~ | =SPC m r d t= | Adds a debug() statement for what is at point (or region). | | ~js2r-debug-this~ | [[kbd:][<localleader> r d t]] | Adds a debug() statement for what is at point (or region). |
| ~js2r-forward-slurp~ | =SPC m r s l= | Moves the next statement into current function, if-statement, for-loop or while-loop. | | ~js2r-forward-slurp~ | [[kbd:][<localleader> r s l]] | Moves the next statement into current function, if-statement, for-loop or while-loop. |
| ~js2r-forward-barf~ | =SPC m r b a= | Moves the last child out of current function, if-statement, for-loop or while-loop. | | ~js2r-forward-barf~ | [[kbd:][<localleader> r b a]] | Moves the last child out of current function, if-statement, for-loop or while-loop. |
| ~js2r-kill~ | =SPC m r k= | Kills to the end of the line, but does not cross semantic boundaries. | | ~js2r-kill~ | [[kbd:][<localleader> r k]] | Kills to the end of the line, but does not cross semantic boundaries. |
*** skewer-mode *** skewer-mode
**** general **** general
| command | key / ex command | description | | command | key / ex command | description |
|-------------------------------+------------------+---------------------------------------| |-------------------------------+-------------------+---------------------------------------|
| ~skewer-eval-last-expression~ | =SPC m s E= | Evaluate last expression | | ~skewer-eval-last-expression~ | [[kbd:][<localleader> s E]] | Evaluate last expression |
| ~skewer-eval-defun~ | =SPC m s e= | Evaluate function definition at point | | ~skewer-eval-defun~ | [[kbd:][<localleader> s e]] | Evaluate function definition at point |
| ~skewer-load-buffer~ | =SPC m s f= | Load buffer into REPL | | ~skewer-load-buffer~ | [[kbd:][<localleader> s f]] | Load buffer into REPL |
**** css **** css
| command | key / ex command | description | | command | key / ex command | description |
|---------------------------------------+------------------+-------------------------------| |---------------------------------------+-------------------+-------------------------------|
| ~skewer-css-eval-current-declaration~ | =SPC m s e= | Evaluate declaration at point | | ~skewer-css-eval-current-declaration~ | [[kbd:][<localleader> s e]] | Evaluate declaration at point |
| ~skewer-css-eval-current-rule~ | =SPC m s r= | Evaluate rule at point | | ~skewer-css-eval-current-rule~ | [[kbd:][<localleader> s r]] | Evaluate rule at point |
| ~skewer-css-eval-buffer~ | =SPC m s b= | Evaluate buffer | | ~skewer-css-eval-buffer~ | [[kbd:][<localleader> s b]] | Evaluate buffer |
| ~skewer-css-clear-all~ | =SPC m s c= | Clear all rules | | ~skewer-css-clear-all~ | [[kbd:][<localleader> s c]] | Clear all rules |
**** html **** html
| command | key / ex command | description | | command | key / ex command | description |
|------------------------+------------------+-----------------------| |------------------------+-------------------+-----------------------|
| ~skewer-html-eval-tag~ | =SPC m s e= | Evaluate tag at point | | ~skewer-html-eval-tag~ | [[kbd:][<localleader> s e]] | Evaluate tag at point |
*** npm-mode *** npm-mode
| command | key / ex command | description | | command | key / ex command | description |
|---------------------------------+------------------+------------------------------------------------------------------| |---------------------------------+-------------------+------------------------------------------------------------------|
| ~npm-mode-npm-init~ | =SPC m n n= | Initialize npm project | | ~npm-mode-npm-init~ | [[kbd:][<localleader> n n]] | Initialize npm project |
| ~npm-mode-npm-install~ | =SPC m n i= | Install npm package | | ~npm-mode-npm-install~ | [[kbd:][<localleader> n i]] | Install npm package |
| ~npm-mode-npm-install-save~ | =SPC m n s= | Install npm package and save to package.json | | ~npm-mode-npm-install-save~ | [[kbd:][<localleader> n s]] | Install npm package and save to package.json |
| ~npm-mode-npm-install-save-dev~ | =SPC m n d= | Install npm package and save to package.json as a dev dependency | | ~npm-mode-npm-install-save-dev~ | [[kbd:][<localleader> n d]] | Install npm package and save to package.json as a dev dependency |
| ~npm-mode-npm-uninstall~ | =SPC m n u= | Uninstall npm package | | ~npm-mode-npm-uninstall~ | [[kbd:][<localleader> n u]] | Uninstall npm package |
| ~npm-mode-npm-list~ | =SPC m n l= | List npm packages | | ~npm-mode-npm-list~ | [[kbd:][<localleader> n l]] | List npm packages |
| ~npm-mode-npm-run~ | =SPC m n r= | Run npm task | | ~npm-mode-npm-run~ | [[kbd:][<localleader> n r]] | Run npm task |
| ~npm-mode-visit-project-file~ | =SPC m n v= | Find file in npm project | | ~npm-mode-visit-project-file~ | [[kbd:][<localleader> n v]] | Find file in npm project |
* 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,40 +1,55 @@
#+TITLE: lang/json ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang json][Issues]] ↖ [[doom-module-source:lang/json][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: April 23, 2020 --------------------------------------------------------------------------------
#+SINCE: v3.0.0 #+TITLE: :lang json
#+STARTUP: inlineimages nofold #+SUBTITLE: At least it ain't XML
#+CREATED: April 23, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds [[https://www.json.org/json-en.html][JSON]] support to Doom Emacs.
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module provides JSON support.
** Maintainers ** Maintainers
This module has no dedicated maintainers. /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
+ =+lsp= Enable integration with LSP servers, if one is available. Requires the - +lsp ::
=:tools lsp= module to be enabled. Enable LSP support for ~json-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/vscode-langservers/vscode-json-languageserver][vscode-json-languageserver]]).
** Plugins ** Packages
+ [[https://github.com/joshwnj/json-mode][json-mode]] - [[doom-package:][counsel-jq]] if [[doom-module:][:completion ivy]]
+ [[https://github.com/Sterlingg/json-snatcher][json-snatcher]] - [[doom-package:][json-mode]]
- [[doom-package:][json-snatcher]]
* Prerequisites ** Hacks
This module has no prerequisites. /No hacks documented for this module./
* TODO Features ** TODO Changelog
# An in-depth list of features, how to use them, and their dependencies. # 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 * 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 * Troubleshooting
# Common issues and their solution, or places to look for help. /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,109 +1,129 @@
#+TITLE: lang/julia ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang julia][Issues]] ↖ [[doom-module-source:lang/julia][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: April 8, 2020 --------------------------------------------------------------------------------
#+SINCE: v1.3 #+TITLE: :lang julia
#+STARTUP: inlineimages nofold #+SUBTITLE: A better, faster MATLAB
#+CREATED: April 08, 2020
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#language-server][Language Server]]
- [[#lsp-julia][~lsp-julia~]]
- [[#eglot-jl][~eglot-jl~]]
- [[#features][Features]]
- [[#language-server-1][Language Server]]
- [[#configuration][Configuration]]
- [[#change-the-default-environment-for-the-julia-language-server][Change the default environment for the Julia language server]]
* Description
This module adds support for [[https://julialang.org/][the Julia language]] to Doom Emacs. This module adds support for [[https://julialang.org/][the Julia language]] to Doom Emacs.
+ Syntax highlighting and latex symbols from ~julia-mode~ - Syntax highlighting and latex symbols from [[doom-package:][julia-mode]]
+ REPL integration from ~julia-repl~ - REPL integration from [[doom-package:][julia-repl]]
+ Code completion and syntax checking, requires ~:tools lsp~ and ~+lsp~ - Code completion and syntax checking, requires [[doom-module:][:tools lsp]] and [[doom-module:][+lsp]]
** Module Flags ** Maintainers
+ =+lsp= Enable LSP server support. /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins ** Module flags
+ [[https://github.com/JuliaEditorSupport/julia-emacs/][julia-mode]] - +lsp ::
+ [[https://github.com/tpapp/julia-repl][julia-repl]] Enable LSP support for ~julia-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
+ =+lsp= and =:tools lsp= (supports LanguageServer.jl).
+ [[https://github.com/non-jedi/lsp-julia][lsp-julia]]
+ [[https://github.com/emacs-lsp/lsp-mode][lsp]]
+ =+lsp= and =:tools lsp +eglot=
+ [[https://github.com/non-jedi/eglot-jl][eglot-jl]]
+ [[https://github.com/joaotavora/eglot][eglot]]
* Prerequisites ** Packages
This module requires =julia= and an language server if =+lsp= is enabled. - [[doom-package:][julia-mode]]
- [[doom-package:][julia-repl]]
- if [[doom-package:][+lsp]]
- if [[doom-module:][:tools lsp]]
- [[doom-package:][lsp-julia]]
- [[doom-package:][lsp]]
- if [[doom-module:][:tools lsp +eglot]]
- [[doom-package:][eglot-jl]]
- [[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.]]
This module requires [[https://julialang.org/][Julia]] and an language server if [[doom-module:][+lsp]] is enabled.
** Language Server ** Language Server
~+lsp~ requires ~LanguageServer.jl~ and ~SymbolServer.jl~. The =lsp-julia= and [[doom-module:][+lsp]] requires ~LanguageServer.jl~ and ~SymbolServer.jl~. The [[doom-package:][lsp-julia]] and
=eglot-jl= packages both come bundled with their own versions of these servers, [[doom-package:][eglot-jl]] packages both come bundled with their own versions of these servers,
which is used by default. If you're happy with that, no further configuration is which is used by default. If you're happy with that, no further configuration is
necessary. necessary.
However, to use your own installation you will need to install then configure However, to use your own installation you will need to install then configure
them. To install them, execute these commands in a Julia REPL: them. To install them, execute these commands in a Julia REPL:
#+begin_src julia
#+BEGIN_SRC julia
using Pkg using Pkg
Pkg.add("LanguageServer") Pkg.add("LanguageServer")
Pkg.add("SymbolServer") Pkg.add("SymbolServer")
#+END_SRC #+end_src
Then configure =lsp-julia= or =eglot-jl= depending on whether you have enabled Then configure [[doom-package:][lsp-julia]] or [[doom-package:][eglot-jl]] depending on whether you have enabled
=:tools lsp= or =:tools (lsp +eglot)=, respectively: [[doom-module:][:tools lsp]] or [[doom-module:][:tools lsp +eglot]], respectively:
*** ~lsp-julia~ *** =lsp-julia=
To instruct =lsp-julia= not to use the built-in package: To instruct [[doom-package:][lsp-julia]] not to use the built-in package:
#+begin_src emacs-lisp
#+BEGIN_SRC elisp ;; in $DOOMDIR/config.el
;; ~/.doom.d/config.el
(setq lsp-julia-package-dir nil) (setq lsp-julia-package-dir nil)
#+END_SRC #+end_src
To find your installation of ~LanguageServer.jl~, ~eglot-jl~ needs to know the To find your installation of ~LanguageServer.jl~, [[doom-package:][lsp-julia]] needs to know the
environment in which it is installed. This is set to v1.0 by default as it is environment in which it is installed. This is set to v1.0 by default as it is
the current LTS: the current LTS:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! lsp-julia
(setq lsp-julia-default-environment "~/.julia/environments/v1.0"))
#+end_src
#+BEGIN_SRC elisp *** =eglot-jl=
(setq lsp-julia-default-environment "~/.julia/environments/v1.0") To find your installation of ~LanguageServer.jl~, [[doom-package:][eglot-jl]] must know the
#+END_SRC
*** ~eglot-jl~
To find your installation of ~LanguageServer.jl~, ~eglot-jl~ must know the
environment in which it is installed. This is set to v1.0 by default as it is environment in which it is installed. This is set to v1.0 by default as it is
the current LTS: the current LTS:
#+begin_src emacs-lisp
#+BEGIN_SRC elisp ;; in $DOOMDIR/config.el
;; ~/.doom.d/config.el
(setq eglot-jl-language-server-project "~/.julia/environments/v1.0") (setq eglot-jl-language-server-project "~/.julia/environments/v1.0")
#+END_SRC #+end_src
But to let ~eglot-jl~ use the environment bundled with it, set it to But to let [[doom-package:][eglot-jl]] use the environment bundled with it, set it to
~eglot-jl-base~ instead: ~eglot-jl-base~ instead:
#+begin_src emacs-lisp
#+BEGIN_SRC elisp ;; in $DOOMDIR/config.el
;; ~/.doom.d/config.el
(after! eglot-jl (after! eglot-jl
(setq eglot-jl-language-server-project eglot-jl-base)) (setq eglot-jl-language-server-project eglot-jl-base))
#+END_SRC #+end_src
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features
** Language Server ** Language Server
~+lsp~ adds code completion, syntax checking, formatting and other ~lsp-mode~ or [[doom-module:][+lsp]] adds code completion, syntax checking, formatting and other [[doom-package:][lsp-mode]] or
~eglot~ features. It requires ~LanguageServer.jl~, the installation of which is [[doom-package:][eglot]] features. It requires ~LanguageServer.jl~, the installation of which is
described above. described above.
* Configuration * TODO Configuration
** Change the default environment for the Julia language server #+begin_quote
~lsp-julia~ requires a variable be set for the Julia environment. This is set to 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
v1.0 by default as it is the current LTS. #+end_quote
#+BEGIN_SRC elisp ** Change the default environment for the Julia language server
;; ~/.doom.d/config.el [[doom-package:][lsp-julia]] requires a variable be set for the Julia environment. This is set to
(setq lsp-julia-default-environment "~/.julia/environments/v1.0") v1.0 by default as it is the current LTS:
#+END_SRC #+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! lsp-julia
(setq lsp-julia-default-environment "~/.julia/environments/v1.0"))
#+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,36 +1,56 @@
#+TITLE: lang/kotlin ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang kotlin][Issues]] ↖ [[doom-module-source:lang/kotlin][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: March 28, 2019 --------------------------------------------------------------------------------
#+SINCE: v3.0.0 #+TITLE: :lang kotlin
#+STARTUP: inlineimages #+SUBTITLE: A Java(Script) that won't depress you
#+CREATED: March 28, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds [[https://kotlinlang.org/][Kotlin]] support to Doom Emacs.
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description ** Maintainers
This module adds Kotlin support to Emacs. *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
+ =+lsp= Enables integration with [[https://github.com/emacs-lsp/lsp-mode][kotlin-language-server]]. This requires the - +lsp ::
=:tools lsp= module. Enable LSP support for ~kotlin-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/emacs-lsp/lsp-mode][kotlin-language-server]]).
** Plugins ** Packages
+ kotlin-mode - [[doom-package:][flycheck-kotlin]] if [[doom-module:][:checkers syntax]]
+ flycheck-kotlin - [[doom-package:][kotlin-mode]]
* Prerequisites ** Hacks
TODO /No hacks documented for this module./
* Features ** TODO Changelog
TODO # This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Configuration * TODO Installation
TODO [[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 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 * Troubleshooting
TODO /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,98 +1,113 @@
#+TITLE: lang/latex ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang latex][Issues]] ↖ [[doom-module-source:lang/latex][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2017 --------------------------------------------------------------------------------
#+SINCE: v1.3 #+TITLE: :lang latex
#+STARTUP: inlineimages #+SUBTITLE: Writing papers in Emacs has never been so fun
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#ubuntu][Ubuntu]]
- [[#arch-linux][Arch Linux]]
- [[#macos][macOS]]
- [[#nixos][NixOS]]
- [[#features][Features]]
- [[#customization][Customization]]
- [[#specifying-the-location-of-a-bibtex-file--corresponding-pdfs][Specifying the location of a bibtex file & corresponding PDFs]]
- [[#changing-the-pdfs-viewer][Changing the PDFs viewer]]
- [[#using-cdlatexs-snippets-despite-having-yasnippet][Using cdlatex's snippets despite having yasnippet]]
* Description
Provide a helping hand when working with LaTeX documents. Provide a helping hand when working with LaTeX documents.
+ Sane defaults - Sane defaults
+ Fontification of many popular commands - Fontification of many popular commands
+ Pretty indentation of wrapped lines using the ~adaptive-wrap~ package - Pretty indentation of wrapped lines using the [[doom-package:][adaptive-wrap]] package
+ Spell checking with ~flycheck~ - Spell checking with [[doom-package:][flycheck]]
+ Change PDF viewer to Okular or ~latex-preview-pane~ - Change PDF viewer to Okular or [[doom-package:][latex-preview-pane]]
+ Bibtex editor - Bibtex editor
+ Autocompletion using ~company-mode~ - Autocompletion using [[doom-package:][company-mode]]
+ Compile your .tex code only once using LatexMk - Compile your =.tex= code only once using LatexMk
** Module Flags ** Maintainers
+ =+latexmk= Use LatexMk instead of LaTeX to compile documents. - [[doom-user:][@tecosaur]]
+ =+cdlatex= Enable [[https://github.com/cdominik/cdlatex][cdlatex]] for fast math insertion. - [[doom-user:][@ymarco]]
+ =+lsp= Start LSP automatically in `tex-mode-hook`. This requires the =:tools
lsp= module. Supported servers are `digestif` and `TexLab`.
+ =+fold= Use TeX-fold (from auctex) to fold LaTeX macros to unicode, and make
folding hook-based and less manual.
** Plugins [[doom-contrib-maintainer:][Become a maintainer?]]
+ [[http://www.gnu.org/software/auctex/][auctex]]
+ [[http://elpa.gnu.org/packages/adaptive-wrap.html][adaptive-wrap]]
+ [[https://github.com/iyefrat/evil-tex][evil-tex]] (when =:editor evil +everywhere=)
+ [[https://github.com/jsinglet/latex-preview-pane][latex-preview-pane]]
+ [[https://github.com/tom-tan/auctex-latexmk][auctex-latexmk]]*
+ [[https://github.com/alexeyr/company-auctex][company-auctex]]*
+ [[https://github.com/TheBB/company-reftex][company-reftex]]*
+ [[https://github.com/vspinu/company-math][company-math]]*
+ [[https://github.com/cdominik/cdlatex][cdlatex]] (=+cdlatex=)
* Prerequisites ** Module flags
You will need ghostscript and a latex compiler. All this is provided by - +cdlatex ::
the =texlive= bundle, available through many OS package managers. Enable [[doom-package:][cdlatex]] for fast math insertion.
- +fold ::
Use TeX-fold (from [[doom-package:][auctex]]) to fold LaTeX macros to unicode, and make folding
hook-based and less manual.
- +latexmk ::
Use LatexMk instead of LaTeX to compile documents.
- +lsp ::
Enable LSP support in latex buffers. Requires [[doom-module:][:tools lsp]] and a langserver
(supports digestif and TexLab).
** Packages
- [[doom-package:][adaptive-wrap]]
- [[doom-package:][auctex]]
- [[doom-package:][auctex-latexmk]] if [[doom-module:][+latexmk]]
- [[doom-package:][cdlatex]] if [[doom-module:][+cdlatex]]
- [[doom-package:][evil-tex]] if [[doom-module:][:editor evil +everywhere]]
- [[doom-package:][latex-preview-pane]]
- if [[doom-module:][:completion company]]
- [[doom-package:][company-auctex]]
- [[doom-package:][company-math]]
- [[doom-package:][company-reftex]]
** 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./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires ghostscript and a latex compiler. These are provided by the
=texlive= bundle, available through many OS package managers.
#+begin_quote
🚧 Ghostscript <= 9.27 is [[/auctex/manual/preview-latex/No-images-are-displayed-with-gs-9_002e27-and-earlier.html][reportedly buggy]] and doesn't work with auctex's math
previews. (You can check you ghostscript version with ~$ gs --version~.)
Most package managers already have newer versions, but if not you might have
to build gs from source.
#+end_quote
Ghostscript <= 9.27 is [[https://www.gnu.org/software/auctex/manual/preview-latex/No-images-are-displayed-with-gs-9_002e27-and-earlier.html][reported buggy]] and doesn't work with auctex's math
previews. (You can check you ghostscript version with ~gs --version~.) Most
package managers already have newer versions, but if not you might have to build
gs from source.
** Ubuntu ** Ubuntu
#+BEGIN_SRC sh #+begin_src sh
apt-get install texlive apt-get install texlive
#+END_SRC #+end_src
** Arch Linux ** Arch Linux
#+BEGIN_SRC sh #+begin_src sh
pacman -S texlive-core pacman -S texlive-core
#+END_SRC #+end_src
** TODO macOS ** TODO macOS
#+BEGIN_SRC sh #+begin_src sh
brew install --cask basictex brew install --cask basictex
# If the above doesn't work, then # If the above doesn't work, then
brew install --cask mactex # WARNING: large 4gb download! brew install --cask mactex # WARNING: large 4gb download!
#+END_SRC #+end_src
#+begin_quote #+begin_quote
This has not been verified. 🔨 This has not been verified.
#+end_quote #+end_quote
** NixOS ** NixOS
#+BEGIN_SRC nix #+begin_src nix
environment.systemPackages = [ pkgs.texlive.combined.scheme-medium ]; environment.systemPackages = [ pkgs.texlive.combined.scheme-medium ];
#+END_SRC #+end_src
* TODO Features * TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Customization * Configuration
** Specifying the location of a bibtex file & corresponding PDFs ** Specifying the location of a bibtex file & corresponding PDFs
Reftex has a variable that allow you to Reftex has a variable that allow you to specify where it should find your
specify where it should find your bibliography file(s): bibliography file(s):
#+begin_src emacs-lisp
#+BEGIN_SRC emacs-lisp ;; in $DOOMDIR/config.el
(setq reftex-default-bibliography "/your/bib/file.bib") (setq reftex-default-bibliography "/your/bib/file.bib")
#+END_SRC #+end_src
** Changing the PDFs viewer ** Changing the PDFs viewer
This module provides integration for four supported pdf viewers. They are This module provides integration for four supported pdf viewers. They are
@ -102,30 +117,41 @@ This module provides integration for four supported pdf viewers. They are
+ Sumatra PDF + Sumatra PDF
+ Zathura + Zathura
+ Okular + Okular
+ pdf-tools (requires =:tools pdf= module) + pdf-tools (requires [[doom-module:][:tools pdf]] module)
They are searched for in this order. See ~+latex-viewers~ to change the order, They are searched for in this order. See ~+latex-viewers~ to change the order,
or remove tools from the search altogether. If you want to exclusively use one or remove tools from the search altogether. If you want to exclusively use one
tool, for instance: tool, for instance:
#+begin_src emacs-lisp
#+BEGIN_SRC emacs-lisp ;; in $DOOMDIR/config.el
(setq +latex-viewers '(zathura)) (setq +latex-viewers '(zathura))
#+END_SRC #+end_src
If none of these tools are found, ~latex-preview-pane~ (uses ~DocView~ in Emacs) If none of these tools are found, ~latex-preview-pane~ (uses ~DocView~ in Emacs)
is used as a fallback. You can use this exclusively by setting ~+latex-viewers~ is used as a fallback. You can use this exclusively by setting ~+latex-viewers~
to ~nil~. to ~nil~.
** Using cdlatex's snippets despite having yasnippet ** Using cdlatex's snippets despite having yasnippet
cdlatex has a snippet insertion capability which is disabled in favor of [[doom-package:][cdlatex]] has a snippet insertion capability which is disabled in favor of
yasnippet when using ~:editor snippets~. If you still wanna use it, simply rebind [[doom-package:][yasnippet]] when using [[doom-module:][:editor snippets]]. If you still wanna use it, simply rebind
the ~TAB~ key for cdlatex, which takes care of snippet-related stuff: the [[kbd:][TAB]] key for cdlatex, which takes care of snippet-related stuff:
#+begin_src emacs-lisp
#+BEGIN_SRC emacs-lisp ;; in $DOOMDIR/config.el
(map! :map cdlatex-mode-map (map! :map cdlatex-mode-map
:i "TAB" #'cdlatex-tab) :i "TAB" #'cdlatex-tab)
#+END_SRC #+end_src
This would favor yasnippet's expansion and cursor movement over cdlatex's This would favor yasnippet's expansion and cursor movement over cdlatex's
expansion and movement, but that shouldn't matter if you're not using yasnippet expansion and movement, but that shouldn't matter if you're not using yasnippet
in latex buffers. in latex buffers.
* 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,56 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang lean][Issues]] ↖ [[doom-module-source:lang/lean][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang lean
#+SUBTITLE: For folks with too much to prove
#+CREATED: September 10, 2019
#+SINCE: 21.12.0 (#1759)
* Description :unfold:
This module adds support for the [[https://leanprover.github.io/about/][Lean programming language]] to Doom Emacs.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][lean-mode]]
- [[doom-package:][company-lean]] if [[doom-module:][:completion company]]
** 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
[[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 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,56 +1,75 @@
#+TITLE: lang/ledger ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang ledger][Issues]] ↖ [[doom-module-source:lang/ledger][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: October 13, 2019 --------------------------------------------------------------------------------
#+SINCE: v2.0.4 #+TITLE: :lang ledger
#+STARTUP: inlineimages #+SUBTITLE: Be audit you can be
#+CREATED: September 09, 2017
#+SINCE: 2.0.6 (#194)
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
* Description
This module adds support for [[https://www.ledger-cli.org/][ledger]] files. Ledger is a command line double-entry This module adds support for [[https://www.ledger-cli.org/][ledger]] files. Ledger is a command line double-entry
accounting system that works with simple text files holding transactions in the accounting system that works with simple text files holding transactions in the
following format: following format:
#+begin_src ledger
#+BEGIN_SRC ledger
2015/10/12 Exxon 2015/10/12 Exxon
Expenses:Auto:Gas $10.00 Expenses:Auto:Gas $10.00
Liabilities:MasterCard $-10.00 Liabilities:MasterCard $-10.00
#+END_SRC #+end_src
This modules enables the following features: This modules enables the following features:
+ Syntax and indentation support for ledger files - Syntax and indentation support for ledger files
+ Add, edit, and delete transactions - Add, edit, and delete transactions
+ Generate reports - Generate reports
+ Schedule transactions - Schedule transactions
+ Sort transactions - Sort transactions
+ Display statistics about transactions - Display statistics about transactions
+ Display balance up to a point - Display balance up to a point
** Module Flags ** Maintainers
This module provides no flags. /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins ** Module flags
+ [[https://github.com/purcell/flycheck-ledger][flycheck-ledger]] /This module has no flags./
+ [[https://github.com/atheriel/evil-ledger][evil-ledger]]
** Packages
- [[doom-package:][evil-ledger]] if [[doom-module:][:editor evil +everywhere]]
- [[doom-package:][flycheck-ledger]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][ledger-mode]]
** Hacks ** Hacks
This module sets ~ledger-clear-whole-transactions~ to ~t~ (default value is - This module sets ~ledger-clear-whole-transactions~ to ~t~ (default value is
~nil~). This results in ~ledger-toggle-current~ toggling the clear status of the ~nil~). This results in ~ledger-toggle-current~ toggling the clear status of
whole transaction instead of toggling just the current posting. the whole transaction instead of toggling just the current posting.
* Prerequisites ** TODO Changelog
In order for ~flycheck-ledger~ to work and to be able to generate reports you # This section will be machine generated. Don't edit it by hand.
will need to install [[https://www.ledger-cli.org/][ledger]]. /This module does not have a changelog yet./
* TODO Features * Installation
An in-depth list of features, how to use them, and their dependencies. [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires [[https://www.ledger-cli.org/][ledger]] to syntax check and generate reports from your
ledgers.
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
Please refer to ~ledger-mode~'s documentation for information on how to Please refer to ~ledger-mode~'s documentation for information on how to
configure it. You can do so within emacs with =C-h i= configure it. You can do so within emacs with [[kbd:][C-h i]]
* 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,57 +1,67 @@
#+TITLE: lang/lua ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang lua][Issues]] ↖ [[doom-module-source:lang/lua][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: Jun 3, 2020 --------------------------------------------------------------------------------
#+SINCE: v3.0 #+TITLE: :lang lua
#+STARTUP: inlineimages nofold #+SUBTITLE: One-based indices? one-based indices
#+CREATED: Jun 03, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds Lua support to Doom Emacs.
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#language-server-protocol-servers][Language Server Protocol servers]]
- [[#lsp-mode][LSP-mode]]
- [[#eglot][Eglot]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
- [[#install-lua-language-server][Install lua-language-server]]
* Description - REPL
Adds Lua support to Doom Emacs - Love2D specific functions
# A summary of what this module does. - Moonscript support
- Fennel support
+ REPL
+ Love2D specific functions
+ Moonscript support
** Maintainers ** Maintainers
This module has no dedicated maintainers. - [[doom-user:][@hlissner]]
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
+ =+moonscript= Moonscript language support
+ =+fennel= Fennel language support
+ =+lsp= Language Server Protocol support
** Plugins ** Module flags
# A list of linked plugins - +fennel ::
+ [[https://github.com/immerrr/lua-mode][lua-mode]] Enable support for the Fennel language.
+ [[https://github.com/k2052/moonscript-mode][moonscript-mode]] (=+moonscript=) - +lsp ::
+ [[https://gitlab.com/technomancy/fennel-mode][fennel-mode]] (=+fennel=) Enable LSP support for ~lua-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports EmmyLua, lua-language-server, and lua-lsp).
- +moonscript ::
Enable support for the Moonscript language.
** Packages
- [[doom-package:][company-lua]] if [[doom-module:][:completion company]]
- [[doom-package:][fennel-mode]] if [[doom-module:][+fennel]]
- [[doom-package:][lua-mode]]
- if [[doom-module:][+moonscript]]
- [[doom-package:][flycheck-moonscript]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][moonscript-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 Lua 5.1+ for most of its capabilities and, optionally, the
fennel and moonscript transpilers. An LSP server is also required for LSP
support.
* Prerequisites
** Language Server Protocol servers ** Language Server Protocol servers
LSP server support depends on which flavor of the =:tools lsp= module you have LSP server support depends on which flavor of the [[doom-module:][:tools lsp]] module you have
installed (Eglot or LSP-mode). installed ([[doom-package:][eglot]] or [[doom-package:][lsp-mode]]).
*** LSP-mode *** LSP-mode
Three servers are supported, ordered from highest to lowest priority: Three servers are supported, ordered from highest to lowest priority:
- [[https://github.com/EmmyLua/EmmyLua-LanguageServer][EmmyLua-LanguageServer]] :: Must be in
+ [[https://github.com/EmmyLua/EmmyLua-LanguageServer][EmmyLua-LanguageServer]] :: Must be in =~/.emacs.d/.local/etc/lsp/EmmyLua-LS-all.jar=. See ~lsp-clients-emmy-lua-jar-path~ variable to change this. =$EMACSDIR/.local/etc/lsp/EmmyLua-LS-all.jar=. See
+ [[https://github.com/sumneko/lua-language-server][Sumneko language server]] (lua-language-server) :: Must be in ~lsp-clients-emmy-lua-jar-path~ variable to change this.
=~/.config/emacs/.local/etc/lsp/lua-language-server/=. See - [[https://github.com/sumneko/lua-language-server][Sumneko language server]] (lua-language-server) :: Must be in
=$EMACSDIR/.local/etc/lsp/lua-language-server/=. See
~lsp-clients-lua-language-server-bin~ variable to change this. ~lsp-clients-lua-language-server-bin~ variable to change this.
+ [[https://github.com/Alloyed/lua-lsp][lua-lsp]] :: Must be available in =~/.luarocks/bin/lua-lsp=. See - [[https://github.com/Alloyed/lua-lsp][lua-lsp]] :: Must be available in =~/.luarocks/bin/lua-lsp=. See
~lsp-clients-lua-lsp-server-install-dir~ variable to change this. ~lsp-clients-lua-lsp-server-install-dir~ variable to change this.
[[https://emacs-lsp.github.io/lsp-mode/page/lsp-emmy-lua/][LSP-mode documentation]] has more information about setting up the server and the [[https://emacs-lsp.github.io/lsp-mode/page/lsp-emmy-lua/][LSP-mode documentation]] has more information about setting up the server and the
@ -59,20 +69,35 @@ configuration variables correctly.
*** Eglot *** Eglot
Eglot currently only supports one of the above servers out of the box: Eglot currently only supports one of the above servers out of the box:
+ [[https://github.com/sumneko/lua-language-server][Sumneko language server]] (lua-language-server) :: Must be in + [[https://github.com/sumneko/lua-language-server][Sumneko language server]] (lua-language-server) :: Must be in
=~/.config/emacs/.local/etc/lsp/lua-language-server/=. See =$EMACSDIR/.local/etc/lsp/lua-language-server/=. See ~+lua-lsp-dir~ variable
~+lua-lsp-dir~ variable to change this. to change this.
* TODO Features * TODO Usage
# An in-depth list of features, how to use them, and their dependencies. #+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Configuration * TODO Configuration
- lua-lsp-dir :: This must be set when using =+lsp= and using #+begin_quote
[[https://github.com/sumneko/lua-language-server][lua-language-server]]. This controls where the repository has been cloned and 🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
built to finish the configuration of the server. #+end_quote
- lua-lsp-dir :: This must be set when using [[doom-module:][+lsp]] and using [[https://github.com/sumneko/lua-language-server][lua-language-server]].
This controls where the repository has been cloned and built to finish the
configuration of the server.
* Troubleshooting * Troubleshooting
[[doom-report:][Report an issue?]]
** Install lua-language-server ** Install lua-language-server
A [[https://github.com/sumneko/lua-language-server/issues/60][catch-all issue]] has been created to gather help for installing A [[https://github.com/sumneko/lua-language-server/issues/60][catch-all issue]] has been created to gather help for installing
lua-language-server on non-VSCode platforms. lua-language-server on non-VSCode platforms.
* 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,11 @@
#+TITLE: lang/markdown ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang markdown][Issues]] ↖ [[doom-module-source:lang/markdown][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: February 19, 2017 --------------------------------------------------------------------------------
#+SINCE: 2.0 #+TITLE: :lang markdown
#+STARTUP: inlineimages #+SUBTITLE: Write docs for people to ignore
#+CREATED: February 19, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#linters][Linters]]
- [[#markdown-preview][Markdown preview]]
- [[#markedjs][MarkedJS]]
- [[#pandoc][Pandoc]]
- [[#markdown][Markdown]]
- [[#multimarkdown][MultiMarkdown]]
- [[#features][Features]]
- [[#markdown-preview-1][Markdown preview]]
- [[#configuration][Configuration]]
- [[#changing-how-markdown-is-compiled][Changing how markdown is compiled]]
* Description
This module provides Markdown support for Emacs. This module provides Markdown support for Emacs.
#+begin_quote #+begin_quote
@ -30,82 +15,97 @@ to structurally valid XHTML (or HTML).
Thus, “Markdown” is two things: (1) a plain text formatting syntax; and (2) a Thus, “Markdown” is two things: (1) a plain text formatting syntax; and (2) a
software tool, written in Perl, that converts the plain text formatting to HTML. software tool, written in Perl, that converts the plain text formatting to HTML.
See the Syntax page for details pertaining to Markdowns formatting syntax. You See the Syntax page for details pertaining to Markdown's formatting syntax. You
can try it out, right now, using the online Dingus. can try it out, right now, using the online Dingus.
The overriding design goal for Markdowns formatting syntax is to make it as The overriding design goal for Markdown's formatting syntax is to make it as
readable as possible. The idea is that a Markdown-formatted document should be readable as possible. The idea is that a Markdown-formatted document should be
publishable as-is, as plain text, without looking like its been marked up with publishable as-is, as plain text, without looking like it's been marked up with
tags or formatting instructions. While Markdowns syntax has been influenced by tags or formatting instructions. While Markdown's syntax has been influenced by
several existing text-to-HTML filters, the single biggest source of inspiration several existing text-to-HTML filters, the single biggest source of inspiration
for Markdowns syntax is the format of plain text email. -- John Gruber for Markdown's syntax is the format of plain text email. -- John Gruber
#+end_quote #+end_quote
** Module Flags ** Maintainers
+ =+grip= Enables [[https://github.com/seagle0128/grip-mode][grip support]] (on =<localleader> p=), to provide live - [[doom-user:][@hlissner]]
github-style previews of your markdown (or org) files.
** Plugins [[doom-contrib-maintainer:][Become a maintainer?]]
+ markdown-mode
+ markdown-toc ** Module flags
- +grip ::
Enable [[https://github.com/seagle0128/grip-mode][grip support]] (on [[kbd:][<localleader> p]]), to provide live github-style
previews of your markdown (or org) files.
** Packages
- [[doom-package:][edit-indirect]]
- [[doom-package:][evil-markdown]] if [[doom-module:][:editor evil +everywhere]]
- [[doom-package:][grip-mode]] if [[doom-module:][+grip]]
- [[doom-package:][markdown-mode]]
- [[doom-package:][markdown-toc]]
** Hacks ** Hacks
+ Flyspell has been configured not to spell check in code blocks, links, HTML - [[doom-package:][flyspell]] has been configured not to spell check in code blocks, links, HTML
tags or references. tags or references.
* Prerequisites ** TODO Changelog
This module has two soft dependencies: a linter and a compiler (for previewing # This section will be machine generated. Don't edit it by hand.
markdown). /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:
- A linter (requires [[doom-module:][:checkers syntax]])
- A markdown compiler, for previewing Markdown
** Linters ** Linters
Out of the box, flycheck recognizes these checkers for markdown-mode and Out of the box, flycheck recognizes these checkers for markdown-mode and
gfm-mode: gfm-mode:
+ Markdown-specific - Markdown-specific
+ [[https://github.com/DavidAnson/markdownlint][markdownlint]] (~npm install markdownlint~) - [[https://github.com/DavidAnson/markdownlint][markdownlint]] (~$ npm install markdownlint~)
+ [[https://github.com/markdownlint/markdownlint][mdl]] (~gem install mdl~) - [[https://github.com/markdownlint/markdownlint][mdl]] (~$ gem install mdl~)
+ General (natural language) - General (natural language)
+ [[http://proselint.com/][proselint]] - [[http://proselint.com/][proselint]]
- ~pip install proselint~ - ~$ pip install proselint~
- Or through your OS package manager - Or through your OS package manager
- MacOS: ~brew install proselint~ - MacOS: ~$ brew install proselint~
- Arch Linux: ~pacman -S proselint~ - Arch Linux: ~$ pacman -S proselint~
+ [[https://github.com/textlint/textlint][textlint]] (~npm install textlint~) - [[https://github.com/textlint/textlint][textlint]] (~$ npm install textlint~)
** Markdown preview ** Markdown compiler
This module requires a markdown compiler in order for ~markdown-preview~ to This module requires a markdown compiler in order for ~markdown-preview~ to
work. It will recognize and use one of the following executables, in this order work. It will recognize and use one of the following executables, in this order
(you only need one): (you only need one):
+ [[https://github.com/markedjs/marked][markedjs]]: a markdown compiler "built for speed" - [[https://github.com/markedjs/marked][markedjs]]: a markdown compiler "built for speed"
+ [[https://github.com/jgm/pandoc][pandoc]]: the universal markup transpiler - [[https://github.com/jgm/pandoc][pandoc]]: the universal markup transpiler
+ [[http://pell.portland.or.us/~orc/Code/discount/][markdown]]: there are various flavors of this compiler. This module will look - [[http://pell.portland.or.us/~orc/Code/discount/][markdown]]: there are various flavors of this compiler. This module will look
for these two: for these two:
+ John Gruber's [[https://daringfireball.net/projects/markdown/][original perl script]] - John Gruber's [[https://daringfireball.net/projects/markdown/][original perl script]]
+ The C implementation called [[http://pell.portland.or.us/~orc/Code/discount/][discount]], by David Parsons - The C implementation called [[http://pell.portland.or.us/~orc/Code/discount/][discount]], by David Parsons
+ [[https://fletcher.github.io/MultiMarkdown-6/][multimarkdown]]: a compiler for a language that is a superset of Markdown, with - [[https://fletcher.github.io/MultiMarkdown-6/][multimarkdown]]: a compiler for a language that is a superset of Markdown, with
additional output formats and features. additional output formats and features.
*** MarkedJS *** MarkedJS
Not to be confused with [[https://marked2app.com/][the Marked 2 app]], marked is an npm package: Not to be confused with [[https://marked2app.com/][the Marked 2 app]], marked is an npm package:
#+begin_src sh
#+BEGIN_SRC sh
npm install -g marked npm install -g marked
#+END_SRC #+end_src
*** Pandoc *** Pandoc
Pandoc is the universal markup transpiler. It should be available through your Pandoc is the universal markup transpiler. It should be available through your
system package manager. For example: system package manager. For example:
+ MacOS: ~brew install pandoc~ + MacOS: ~$ brew install pandoc~
+ Arch Linux: ~pacman -S pandoc~ + Arch Linux: ~$ pacman -S pandoc~
*** Markdown *** Markdown
The C implementation of Markdown.pl, called =discount=, is available through The C implementation of Markdown.pl, called =discount=, is available through
your OS's package manager: your OS's package manager:
+ MacOS: ~brew install discount~ + MacOS: ~$ brew install discount~
+ Arch Linux: ~pacman -S discount~ + Arch Linux: ~$ pacman -S discount~
The original perl script that discount is inspired from can be found on [[https://daringfireball.net/projects/markdown/][John The original perl script that discount is inspired from can be found on [[https://daringfireball.net/projects/markdown/][John
Gruber's website]]. Gruber's website]].
@ -114,46 +114,62 @@ Gruber's website]].
See [[https://fletcher.github.io/MultiMarkdown-6/introduction.html][its documentation]] for details on what MultiMarkdown is. The compiler can be See [[https://fletcher.github.io/MultiMarkdown-6/introduction.html][its documentation]] for details on what MultiMarkdown is. The compiler can be
installed through your OS's package manager: installed through your OS's package manager:
+ MacOS: ~brew install multimarkdown~ + MacOS: ~$ brew install multimarkdown~
+ Arch Linux: [[https://aur.archlinux.org/packages/multimarkdown/][multimarkdown]] is available on the AUR + Arch Linux: [[https://aur.archlinux.org/packages/multimarkdown/][multimarkdown]] is available on the AUR
* Features * TODO Usage
** Markdown preview #+begin_quote
~markdown-preview~ is bound to =<localleader> p=. This will open a preview of 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
your compiled markdown document in your browser. #+end_quote
Alternatively, you can use ~grip-mode~ through =+grip=. ** Markdown preview
~markdown-preview~ is bound to [[kbd:][<localleader> p]]. This will open a preview of your
compiled markdown document in your browser.
Alternatively, you can use ~grip-mode~ through [[doom-module:][+grip]].
* Configuration * Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** Changing how markdown is compiled ** Changing how markdown is compiled
When ~markdown-preview~ is invoked (=<localleader> p=) it consults When ~markdown-preview~ is invoked ([[kbd:][<localleader> p]]) it consults
~markdown-command~. Its default value (~#'+markdown-compile~) will consult ~markdown-command~. Its default value (~#'+markdown-compile~) will consult
~+markdown-compile-functions~: a list of functions that take three arguments: the ~+markdown-compile-functions~: a list of functions that take three arguments:
start and end point in the current buffer to use as input, and an output buffer the start and end point in the current buffer to use as input, and an output
to insert the result in. buffer to insert the result in.
By default, the value of ~+markdown-compile-functions~ is: By default, the value of ~+markdown-compile-functions~ is:
#+begin_src lisp
#+BEGIN_SRC lisp
'(+markdown-compile-marked '(+markdown-compile-marked
+markdown-compile-pandoc +markdown-compile-pandoc
+markdown-compile-markdown +markdown-compile-markdown
+markdown-compile-multimarkdown) +markdown-compile-multimarkdown)
#+END_SRC #+end_src
These functions will attempt to use the marked, pandoc and markdown executables, These functions will attempt to use the marked, pandoc and markdown executables,
if available. Changing this variable will control how markdown is compiled. if available. Changing this variable will control how markdown is compiled:
#+begin_src emacs-lisp
#+BEGIN_SRC elisp
;; Add a new one ;; Add a new one
(add-hook '+markdown-compile-functions #'my-compile-function) (add-hook '+markdown-compile-functions #'my-compile-function)
;; Or remove an existing one ;; Or remove an existing one
(remove-hook '+markdown-compile-functions #'+markdown-compile-markdown) (remove-hook '+markdown-compile-functions #'+markdown-compile-markdown)
#+END_SRC #+end_src
Otherwise, you can change ~markdown-command~ directly: Otherwise, you can change ~markdown-command~ directly:
#+begin_src emacs-lisp
#+BEGIN_SRC elisp
(setq markdown-command "markdown | smartypants") (setq markdown-command "markdown | smartypants")
#+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,52 +1,75 @@
#+TITLE: :lang Nim ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang nim][Issues]] ↖ [[doom-module-source:lang/nim][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang nim
#+SUBTITLE: Python + lisp at the speed of C
#+CREATED: May 08, 2018
#+SINCE: 21.12.0 (#568)
#+begin_quote * Description :unfold:
This module is a work in progress. This module adds [[https://nim-lang.org][Nim]] support to Doom Emacs.
#+end_quote
This module adds [[https://nim-lang.org][Nim]] support to Emacs. - Code completion ([[doom-package:][nimsuggest]] + [[doom-package:][company]])
- Syntax checking ([[doom-package:][nimsuggest]] + [[doom-package:][flycheck]])
- Org babel support ([[doom-package:][ob-nim]])
+ Code completion (nimsuggest + company) ** Maintainers
+ Syntax checking (nimsuggest + flycheck) *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
+ Babel support (~ob-nim~)
* Table of Contents :TOC: ** Module flags
- [[#module-flags][Module Flags]] /This module has no flags./
- [[#prerequisites][Prerequisites]]
- [[#nim][Nim]]
- [[#configuration][Configuration]]
* Module Flags ** Packages
This module provides no flags. - [[doom-package:][flycheck-nim]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][nim-mode]]
* Prerequisites ** Hacks
+ ~nim~ (for building & evaluation) - [[doom-package:][nimsuggest]] was modified to strip invalid characters from its temp file paths
+ ~nimsuggest~ (for code completion, syntax checking & jump-to-definition functionality) (which would break nimsuggest on Windows systems).
- [[doom-package:][nim-mode]] was modified to fail gracefully if =nimsuggest= (the executable)
isn't available.
** 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:
- ~nim~, for building & evaluation.
- ~nimsuggest~, for code completion, syntax checking, and jump-to-definition
functionality.
** Nim ** Nim
=choosenim= is an installer and version manager for the Nim programming =choosenim= is an installer and version manager for the Nim programming
language. You can install the latest stable release of Nim by running the language. You can install the latest stable release of Nim by running the
following in your terminal and following the onscreen instructions: following in your terminal and following the onscreen instructions:
#+begin_src sh
#+BEGIN_SRC bash
curl https://nim-lang.org/choosenim/init.sh -sSf | sh curl https://nim-lang.org/choosenim/init.sh -sSf | sh
#+END_SRC #+end_src
Alternatively, nim is usually available through your OS's package manager: Alternatively, nim is usually available through your OS's package manager:
- MacOS: ~$ brew install nim~
- Arch Linux: ~$ pacman --needed --noconfirm -S nim nimble~
- openSUSE: ~$ zypper install nim~
*** MacOS * TODO Usage
#+BEGIN_SRC sh :tangle (if (doom-system-os 'macos) "yes") #+begin_quote
brew install nim 🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+END_SRC #+end_quote
*** Arch Linux * TODO Configuration
#+BEGIN_SRC sh :dir /sudo:: :tangle (if (doom-system-os 'arch) "yes") #+begin_quote
sudo pacman --needed --noconfirm -S nim nimble 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+END_SRC #+end_quote
*** openSUSE * Troubleshooting
#+BEGIN_SRC sh :dir /sudo:: /There are no known problems with this module./ [[doom-report:][Report one?]]
sudo zypper install nim
#+END_SRC
* Configuration * 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,57 +1,81 @@
#+TITLE: lang/nix ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang nix][Issues]] ↖ [[doom-module-source:lang/nix][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: May 4, 2020 --------------------------------------------------------------------------------
#+SINCE: v2.0.7 #+TITLE: :lang nix
#+STARTUP: inlineimages nofold #+SUBTITLE: I hereby declare "nix geht mehr!"
#+CREATED: December 02, 2017
#+SINCE: 2.0.8 (#280)
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds support for the Nix language to Doom Emacs, along with tools
- [[#maintainers][Maintainers]] for managing [[https://nixos.org/][Nix(OS)]].
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#keybindings][Keybindings]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description Includes:
Adds many tools for [[https://nixos.org/][Nix(OS)]] users in nice package for Doom users. - Syntax highlighting
- Completion through [[doom-package:][company]] and/or [[doom-package:][helm]]
+ Syntax highlighting - Nix option lookup
+ Completion through ~company~ / ~helm~ - Formatting (~nixfmt~)
+ Nix option lookup
+ Formatting (~nixfmt~)
** Maintainers ** Maintainers
This module has no dedicated maintainers. - [[doom-user:][@hlissner]]
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
This module provides no flags.
** Plugins ** Module flags
+ [[https://github.com/NixOS/nix-mode][nix-mode]] /This module has no flags./
+ [[https://github.com/jwiegley/nix-update-el][nix-update]]
* Prerequisites ** Packages
+ ~nixfmt~ is required to use formatting - [[doom-package:][company-nixos-options]] if [[doom-module:][:completion company]]
+ If you have Nix(OS) installed it can be installed through Nix configuration ~environment.systemPackages = with pkgs; [ nixfmt ];~ (recommended) - [[doom-package:][helm-nixos-options]] if [[doom-module:][:completion helm]]
+ Or through nix-env ~nix-env -iA nixpkgs.nixfmt~ - [[doom-package:][nix-mode]]
+ Or through nix-shell ~nix-shell -f https://github.com/serokell/nixfmt/archive/master.tar.gz -i~ - [[doom-package:][nix-update]]
+ ~:editor format~ ~format-all~ also supports ~nixfmt~ so you can use that also to format Nix code, default binding is ~SPC c f~ in evil.
** 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./
* TODO Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires:
- [[https://nixos.org/guides/install-nix.html][The Nix package manager]], for a variety of its features (besides syntax
highlighting).
- =nixfmt=, for automatic formatting (requires [[doom-module:][:editor format]]).
- *MacOS:* TODO
- *Arch Linux:* TODO
- *NixOS:* in ~pkgs.nixfmt~
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features
** Keybindings ** Keybindings
| Binding | Description | | Binding | Description |
|-------------------+----------------------| |-----------------+----------------------|
| ~<localleader> b~ | ~nix-build~ | | [[kbd:][<localleader> b]] | ~nix-build~ |
| ~<localleader> f~ | ~nix-update-fetch~ | | [[kbd:][<localleader> f]] | ~nix-update-fetch~ |
| ~<localleader> o~ | ~+nix/lookup-option~ | | [[kbd:][<localleader> o]] | ~+nix/lookup-option~ |
| ~<localleader> p~ | ~nix-format-buffer~ | | [[kbd:][<localleader> p]] | ~nix-format-buffer~ |
| ~<localleader> r~ | ~nix-repl-show~ | | [[kbd:][<localleader> r]] | ~nix-repl-show~ |
| ~<localleader> s~ | ~nix-repl-shell~ | | [[kbd:][<localleader> s]] | ~nix-repl-shell~ |
| ~<localleader> u~ | ~nix-unpack~ | | [[kbd:][<localleader> u]] | ~nix-unpack~ |
* Configuration * TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting * Troubleshooting
+ There aren't any known problems. /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,93 +1,113 @@
#+TITLE: lang/ocaml ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang ocaml][Issues]] ↖ [[doom-module-source:lang/ocaml][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: June 27, 2017 --------------------------------------------------------------------------------
#+SINCE: v2.0.3 #+TITLE: :lang ocaml
#+SUBTITLE: An objective camel
#+CREATED: June 27, 2017
#+SINCE: 2.0.4 (#128)
* Table of Contents :TOC: * Description :unfold:
- [[#description][Description]] This module adds [[https://ocaml.org/][OCaml]] support to Doom Emacs, powered by [[doom-package:][tuareg-mode]].
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#appendix][Appendix]]
- [[#commands][Commands]]
- [[#hacks][Hacks]]
* Description - Code completion, documentation look-up, code navigation and refactoring
This module adds [[https://ocaml.org/][OCaml]] support to Doom Emacs, powered by [[https://github.com/ocaml/tuareg][tuareg-mode]]. ([[doom-package:][merlin]])
- Type, documentation and function argument display on idle ([[doom-package:][merlin-eldoc]])
- REPL ([[doom-package:][utop]])
- Syntax-checking ([[doom-package:][merlin]] with [[doom-package:][flycheck-ocaml]])
- Auto-indentation ([[doom-package:][ocp-indent]])
- Code formatting ([[doom-package:][ocamlformat]])
- Dune file format ([[doom-package:][dune]])
+ Code completion, documentation look-up, code navigation and refactoring ** Maintainers
([[https://github.com/ocaml/merlin/wiki/emacs-from-scratch][merlin]]) *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
+ Type, documentation and function argument display on idle ([[https://github.com/Khady/merlin-eldoc][merlin-eldoc]])
+ REPL ([[https://github.com/ocaml-community/utop][utop]])
+ Syntax-checking (~merlin~ with [[https://github.com/flycheck/flycheck-ocaml][flycheck-ocaml]])
+ Auto-indentation ([[https://github.com/OCamlPro/ocp-indent][ocp-indent]])
+ Code formatting ([[https://github.com/ocaml-ppx/ocamlformat][ocamlformat]])
+ Dune file format ([[http://dune.build/][dune]])
** Module Flags ** Module flags
This module provides no flags. - +lsp ::
Enable LSP support for ~tuareg-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/freebroccolo/ocaml-language-server][ocaml-language-server]]).
** Plugins ** Packages
+ [[https://github.com/ocaml/tuareg][tuareg]] - [[doom-package:][dune]]
+ [[https://github.com/ocaml/merlin][merlin]] - [[doom-package:][ocamlformat]] if [[doom-module:][:editor format]]
+ [[https://github.com/Khady/merlin-eldoc][merlin-eldoc]] - [[doom-package:][ocp-indent]]
+ [[https://github.com/OCamlPro/ocp-indent][ocp-indent]] - [[doom-package:][tuareg]]
+ [[https://github.com/flycheck/flycheck-ocaml][flycheck-ocaml]]* - [[doom-package:][utop]] if [[doom-module:][:tools eval]]
+ [[https://github.com/ocaml-community/utop][utop]]* - unless [[doom-module:][+lsp]]
+ [[https://github.com/ocaml-ppx/ocamlformat][ocamlformat]]* - [[doom-package:][flycheck-ocaml]] if [[doom-module:][:checkers syntax]]
+ [[https://github.com/ocaml/dune][dune]] - [[doom-package:][merlin]]
- [[doom-package:][merlin-company]]
* Prerequisites - [[doom-package:][merlin-eldoc]]
This module has no hard dependencies, but it is recommanded that you install
[[http://opam.ocaml.org/][opam]] and the following opam (optional) packages:
#+BEGIN_SRC shell
opam install merlin utop ocp-indent dune ocamlformat
#+END_SRC
* Features
+ The following files should have syntax highlighting support: ~.ml{i,p,y,}~,
~.eliom{i,}~, ~jbuild~, ~dune~, ~opam~
+ =merlin-mode= is activated whenever a =.merlin= file is found (including in a
parent directory) and =ocamlmerlin= executable is present
+ Line-based auto-indentation is provided by =ocp-indent=, if it is available.
* Configuration
+ If =:completion company= is enabled then autocomplete is provided by =merlin=
+ When =:checkers syntax= is enabled then =flycheck-ocaml= is activated to do
on-the-fly syntax/type checking via =merlin=, otherwise this is only done when
the file is saved.
+ Spell checking is activated in comments if =:checkers spell= is active
+ A REPL is provided if =utop= is installed and =:tools eval= is active
+ If =:editor format= is enabled, the =ocamlformat= executable is available and
there is an =.ocamlformat= file present then =format-all-buffer= is bound to
=ocamlformat=, otherwise to =ocp-indent=
+ If =:editor multiple-cursors= is enabled then identifiers can be refactored
with =v R= and multiple cursors (this correctly matches identifier occurrences
according to scope, it is not purely a textual match)
+ If =:emacs imenu= is enabled then top level symbols (modules, type, functions,
etc.) can be looked up using =SPC / i=
Run =doom sync= to install all packages and =doom doctor= to diagnose missing
tools.
* Appendix
** Commands
| Command | Key | Description |
|------------------------------+-------------------+-----------------------------------------------------------|
| =merlin-type-enclosing= | =<localleader> t= | display type under point |
| =tuareg-find-alternate-file= | =<localleader> a= | switch between =.ml= and =.mli= |
| =merlin-locate= | =g d= | lookup definition |
| =merlin-occurences= | =SPC c D= | lookup references |
| =merlin-document= | =K= | lookup documentation |
| =merlin-imenu= | =SPC s i= | symbol lookup in file |
| =merlin-iedit-occurrences= | =v R= | visual refactor identifier under point (multiple cursors) |
| =utop= | =SPC o r= | open =utop= as REPL |
| =utop-eval-region= | =SPC c e= | evaluate selected region in =utop= |
** Hacks ** Hacks
+ =set-ligatures!= is called with the full tuareg prettify symbol list, this - ~set-ligatures!~ is called with the full tuareg prettify symbol list, this can
can cause columns to change as certain keywords are shortened (e.g. =fun= cause columns to change as certain keywords are shortened (e.g. =fun= becomes
becomes \lambda. \lambda).
+ =tuareg-opam-update-env= is called the first time =tuareg= is loaded - ~tuareg-opam-update-env~ is called the first time [[doom-package:][tuareg]] is loaded
** 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 following packages available through [[http://opam.ocaml.org/][opam]]:
- merlin
- utop
- ocp-indent
- dune
- ocamlformat
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
- The following files should have syntax highlighting support: ~.ml{i,p,y,}~,
~.eliom{i,}~, ~jbuild~, ~dune~, ~opam~
- ~merlin-mode~ is activated whenever a =.merlin= file is found (including in a
parent directory) and =ocamlmerlin= executable is present
- Line-based auto-indentation is provided by =ocp-indent=, if it is available.
| Command | Key | Description |
|------------------------------+-----------------+-----------------------------------------------------------|
| ~merlin-type-enclosing~ | [[kbd:][<localleader> t]] | display type under point |
| ~tuareg-find-alternate-file~ | [[kbd:][<localleader> a]] | switch between =.ml= and =.mli= |
| ~merlin-locate~ | [[kbd:][g d]] | lookup definition |
| ~merlin-occurences~ | [[kbd:][SPC c D]] | lookup references |
| ~merlin-document~ | [[kbd:][K]] | lookup documentation |
| ~merlin-imenu~ | [[kbd:][SPC s i]] | symbol lookup in file |
| ~merlin-iedit-occurrences~ | [[kbd:][v R]] | visual refactor identifier under point (multiple cursors) |
| ~utop~ | [[kbd:][SPC o r]] | open =utop= as REPL |
| ~utop-eval-region~ | [[kbd:][SPC c e]] | evaluate selected region in =utop= |
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
- If [[doom-module:][:completion company]] is enabled then autocomplete is provided by [[doom-package:][merlin]]
- When [[doom-module:][:checkers syntax]] is enabled then [[doom-package:][flycheck-ocaml]] is activated to do
on-the-fly syntax/type checking via [[doom-package:][merlin]], otherwise this is only done when
the file is saved.
- Spell checking is activated in comments if [[doom-module:][:checkers spell]] is active
- A REPL is provided if [[doom-package:][utop]] is installed and [[doom-module:][:tools eval]] is active
- If [[doom-module:][:editor format]] is enabled, the =ocamlformat= executable is available and
there is an =.ocamlformat= file present then ~format-all-buffer~ is bound to
=ocamlformat=, otherwise to =ocp-indent=
- If [[doom-module:][:editor multiple-cursors]] is enabled then identifiers can be refactored with
[[kbd:][v R]] and multiple cursors (this correctly matches identifier occurrences
according to scope, it is not purely a textual match)
Run ~$ doom sync~ to install all packages and ~$ doom doctor~ to diagnose
missing tools.
* 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,48 +1,29 @@
#+TITLE: lang/org ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang org][Issues]] ↖ [[doom-module-source:lang/org][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: February 19, 2017 --------------------------------------------------------------------------------
#+SINCE: 2.0 #+TITLE: :lang org
#+STARTUP: inlineimages #+SUBTITLE: Organize your plain life in plain text
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#macos][MacOS]]
- [[#arch-linux][Arch Linux]]
- [[#nixos][NixOS]]
- [[#windows][Windows]]
- [[#features][Features]]
- [[#invoking-the-org-capture-frame-from-outside-emacs][Invoking the org-capture frame from outside Emacs]]
- [[#built-in-custom-link-types][Built-in custom link types]]
- [[#configuration][Configuration]]
- [[#changing-org-directory][Changing ~org-directory~]]
- [[#changing-org-noter-notes-search-path][Changing ~org-noter-notes-search-path~]]
- [[#troubleshooting][Troubleshooting]]
- [[#org-roam][=org-roam=]]
- [[#should-i-go-with-roam-v1-or-roam2-v2][Should I go with =+roam= (v1) or =+roam2= (v2)?]]
- [[#migrating-your-existing-files-from-v1-roam-to-v2-roam2][Migrating your existing files from v1 (=+roam=) to v2 (=+roam2=)]]
* Description
This module adds org-mode support to Doom Emacs, along with a number of This module adds org-mode support to Doom Emacs, along with a number of
adjustments, extensions and reasonable defaults to make it more performant and adjustments, extensions and reasonable defaults to make it more performant and
intuitive out of the box: intuitive out of the box:
+ A custom, centralized attachment system that stores files in one place, rather - A custom, centralized attachment system that stores files in one place, rather
than in the same directory as the input file(s) (only applies to attachments than in the same directory as the input file(s) (only applies to attachments
from files in/under =org-directory=). from files in/under ~org-directory~).
+ Executable code blocks with support for a variety of languages and tools - Executable code blocks with support for a variety of languages and tools
(depending on what :lang modules are enabled). (depending on what :lang modules are enabled).
+ Supports an external org-capture workflow through the =bin/org-capture= shell - Supports an external org-capture workflow through the =bin/org-capture= shell
script and ~+org-capture/open-frame~. script and ~+org-capture/open-frame~.
+ A configuration for using org-mode for slide-show presentations or exporting - A configuration for using org-mode for slide-show presentations or exporting
org files to reveal.js slideshows. org files to reveal.js slideshows.
+ Drag-and-drop support for images (with inline preview) and media files (drops - Drag-and-drop support for images (with inline preview) and media files (drops
a file icon and a short link) (requires =+dragndrop= flag). a file icon and a short link) (requires [[doom-module:][+dragndrop]] flag).
+ Integration with pandoc, ipython, jupyter, reveal.js, beamer, and others - Integration with pandoc, ipython, jupyter, reveal.js, beamer, and others
(requires flags). (requires flags).
+ Export-to-clipboard functionality, for copying text into formatted html, - Export-to-clipboard functionality, for copying text into formatted html,
markdown or rich text to the clipboard (see ~+org/export-to-clipboard~ and markdown or rich text to the clipboard (see ~+org/export-to-clipboard~ and
~+org/export-to-clipboard-as-rich-text~). ~+org/export-to-clipboard-as-rich-text~).
@ -56,218 +37,228 @@ executed.
https://www.mfoot.com/blog/2015/11/22/literate-emacs-configuration-with-org-mode/ https://www.mfoot.com/blog/2015/11/22/literate-emacs-configuration-with-org-mode/
#+end_quote #+end_quote
** Module Flags ** Maintainers
+ =+brain= Enables [[https://github.com/Kungsgeten/org-brain][org-brain]] integration. - [[doom-user:][@hlissner]]
+ =+dragndrop= Enables drag-and-drop support for images and files; inserts
inline previews for images and an icon+link for other media types.
+ =+gnuplot= Installs gnuplot & gnuplot-mode, which enables rendering images
from gnuplot src blocks or plotting tables with ~org-plot/gnuplot~ (bound to
=SPC m b p=, by default).
+ =+hugo= Enables integration with [[https://gohugo.io][hugo]] to export from Emacs well-formed
([[https://github.com/russross/blackfriday][blackfriday]]) markdown.
+ =+ipython= (**DEPRECATED**) Enables ipython integration for babel.
+ =+journal= Enables [[https://github.com/bastibe/org-journal][org-journal]] integration.
+ =+jupyter= Enables Jupyter integration for babel.
+ =+noter= Enables org-noter integration. Keeps notes in sync with a document.
Requires [[https://github.com/politza/pdf-tools][pdf-tools]] (=:tools pdf=) or [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Document-View.html][DocView]] or [[https://github.com/wasamasa/nov.el][nov.el]] to be enabled.
+ =+pandoc= Enables pandoc integration into the Org exporter.
+ =+pomodoro= Enables a pomodoro timer for clocking time on tasks.
+ =+present= Enables integration with reveal.js, beamer and org-tree-slide, so
Emacs can be used for presentations. It automatically downloads [[https://github.com/hakimel/reveal.js][reveal.js]].
+ =+pretty= Enables pretty unicode symbols for bullets and priorities, and
better syntax highlighting for latex. Keep in mind: this can be expensive. If
org becomes too slow, it'd be wise to disable this flag.
+ =+roam= Enables integration with [[https://github.com/org-roam/org-roam-v1][org-roam v1]]. This requires ~sqlite3~ to be
installed on your system. Incompatible with =+roam2=.
+ =+roam2= Enables integration with [[https://github.com/org-roam/org-roam][org-roam v2]]. This requires ~sqlite3~ to be
installed on your system. Incompatible with =+roam=.
** Plugins [[doom-contrib-maintainer:][Become a maintainer?]]
+ [[https://github.com/hniksic/emacs-htmlize][htmlize]]
+ [[https://github.com/astahlman/ob-async][ob-async]]
+ [[https://github.com/rexim/org-cliplink][org-cliplink]]
+ [[https://github.com/magit/orgit][orgit]]
+ [[https://orgmode.org/][org-plus-contrib]]
+ [[https://github.com/TobiasZawada/org-yt][org-yt]]
+ [[https://github.com/jkitchin/ox-clip][ox-clip]]
+ [[https://github.com/snosov1/toc-org][toc-org]]
+ =:lang crystal=
+ [[https://github.com/brantou/ob-crystal][ob-crystal]]
+ =:lang go=
+ [[https://github.com/pope/ob-go][ob-go]]
+ =:lang nim=
+ [[https://github.com/Lompik/ob-nim][ob-nim]]
+ =:lang racket=
+ [[https://github.com/DEADB17/ob-racket][ob-racket]]
+ =:lang rest=
+ [[https://github.com/alf/ob-restclient.el][ob-restclient]]
+ =:lang rst=
+ [[https://github.com/msnoigrs/ox-rst][ox-rst]]
+ =:lang rust=
+ [[https://github.com/micanzhang/ob-rust][ob-rust]]
+ =:lang scala=
+ [[https://github.com/zwild/ob-ammonite][ob-ammonite]]
+ =:editor evil=
+ [[https://github.com/Somelauw/evil-org-mode][evil-org]]
+ =:tools pdf=
+ [[https://github.com/fuxialexander/org-pdftools][org-pdftools]]
+ =+dragndrop=
+ [[https://github.com/abo-abo/org-download][org-download]]
+ =+gnuplot=
+ [[https://github.com/mkmcc/gnuplot-mode][gnuplot]]
+ [[https://github.com/bruceravel/gnuplot-mode][gnuplot-mode]]
+ =+hugo=
+ [[https://github.com/kaushalmodi/ox-hugo][ox-hugo]]
+ =+ipython=
+ [[https://github.com/gregsexton/ob-ipython][ob-ipython]]
+ =+jupyter=
+ [[https://github.com/dzop/emacs-jupyter][jupyter]]
+ =+pandoc=
+ [[https://github.com/kawabata/ox-pandoc][ox-pandoc]]
+ =+pomodoro=
+ [[https://github.com/marcinkoziej/org-pomodoro][org-pomodoro]]
+ =+present=
+ [[https://github.com/anler/centered-window-mode][centered-window]]
+ [[https://github.com/takaxp/org-tree-slide][org-tree-slide]]
+ [[https://gitlab.com/oer/org-re-reveal][org-re-reveal]]
+ =+pretty=
+ [[https://github.com/integral-dw/org-superstar-mode][org-superstar]]
+ [[https://github.com/harrybournis/org-fancy-priorities][org-fancy-priorities]]
+ =+roam=
+ [[https://github.com/org-roam/org-roam-v1][org-roam]] (v1)
+ =+roam2=
- [[https://github.com/org-roam/org-roam][org-roam]] (v2)
+ =+noter=
+ [[https://github.com/weirdNox/org-noter][org-noter]]
** Module flags
- +brain ::
Enable [[https://github.com/Kungsgeten/org-brain][org-brain]] integration.
- +dragndrop ::
Enable drag-and-drop support for images and files; inserts inline previews
for images and an icon+link for other media types.
- +gnuplot ::
Install gnuplot & gnuplot-mode, which enables rendering images from gnuplot
src blocks or plotting tables with ~org-plot/gnuplot~ (bound to =SPC m b p=,
by default).
- +hugo ::
Enable integration with [[https://gohugo.io][hugo]] to export from Emacs well-formed ([[https://github.com/russross/blackfriday][blackfriday]])
markdown.
- +ipython ::
(**DEPRECATED**) Enable ipython integration for babel.
- +journal ::
Enable [[doom-package:][org-journal]] integration.
- +jupyter ::
Enable Jupyter integration for babel.
- +noter ::
Enable [[doom-package:][org-noter]] integration. Keeps notes in sync with a document. Requires
[[doom-module:][:tools pdf]], [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Document-View.html][DocView]], or [[https://github.com/wasamasa/nov.el][nov.el]] to be enabled.
- +pandoc ::
Enable pandoc integration into the Org exporter.
- +pomodoro ::
Enable a pomodoro timer for clocking time on tasks.
- +present ::
Enable integration with reveal.js, beamer and org-tree-slide, so Emacs can be
used for presentations. It automatically downloads [[https://github.com/hakimel/reveal.js][reveal.js]].
- +pretty ::
Enable pretty unicode symbols for bullets and priorities, and better syntax
highlighting for latex. Keep in mind: this can be expensive. If org becomes
too slow, it'd be wise to disable this flag.
- +roam ::
Enable integration with [[https://github.com/org-roam/org-roam-v1][org-roam v1]]. This requires ~sqlite3~ to be installed
on your system. /Incompatible with [[doom-module:][+roam2]]./
- +roam2 ::
Enable integration with [[https://github.com/org-roam/org-roam][org-roam v2]]. This requires ~sqlite3~ to be installed
on your system. /Incompatible with [[doom-module:][+roam]]./
** Packages
- [[doom-package:][evil-org]] if [[doom-package:][:editor evil]]
- [[doom-package:][htmlize]]
- [[doom-package:][jupyter]] if [[doom-package:][+jupyter]]
- [[doom-package:][ob-ammonite]] if [[doom-package:][:lang scala]]
- [[doom-package:][ob-async]]
- [[doom-package:][ob-crystal]] if [[doom-package:][:lang crystal]]
- [[doom-package:][ob-go]] if [[doom-package:][:lang go]]
- [[doom-package:][ob-ipython]] if [[doom-package:][+ipython]]
- [[doom-package:][ob-nim]] if [[doom-package:][:lang nim]]
- [[doom-package:][ob-racket]] if [[doom-package:][:lang racket]]
- [[doom-package:][ob-restclient]] if [[doom-package:][:lang rest]]
- [[doom-package:][ob-rust]] if [[doom-package:][:lang rust]]
- [[doom-package:][org-cliplink]]
- [[doom-package:][org-download]] if [[doom-package:][+dragndrop]]
- [[doom-package:][orgit]]
- [[doom-package:][org-noter]] if [[doom-package:][+noter]]
- [[doom-package:][org-pdftools]] if [[doom-package:][:tools pdf]]
- [[doom-package:][org-plus-contrib]]
- [[doom-package:][org-pomodoro]] if [[doom-package:][+pomodoro]]
- [[doom-package:][org-roam]] (v1) if [[doom-package:][+roam]]
- [[doom-package:][org-roam]] (v2) if [[doom-package:][+roam2]]
- [[doom-package:][org-yt]]
- [[doom-package:][ox-clip]]
- [[doom-package:][ox-hugo]] if [[doom-package:][+hugo]]
- [[doom-package:][ox-pandoc]] if [[doom-package:][+pandoc]]
- [[doom-package:][ox-rst]] if [[doom-package:][:lang rst]]
- [[doom-package:][toc-org]]
- if [[doom-package:][+gnuplot]]
- [[doom-package:][gnuplot]]
- [[doom-package:][gnuplot-mode]]
- if [[doom-package:][+present]]
- [[doom-package:][centered-window]]
- [[doom-package:][org-tree-slide]]
- [[doom-package:][org-re-reveal]]
- if [[doom-package:][+pretty]]
- [[doom-package:][org-superstar]]
- [[doom-package:][org-fancy-priorities]]
** Hacks ** Hacks
+ Adds support for a ~:sync~ parameter for org src blocks. This overrides - Adds support for a ~:sync~ parameter for org src blocks. This overrides
~:async~. ~:async~.
+ Gracefully degrades ~:async~ babel blocks to ~:sync~ when =ob-async= would - Gracefully degrades ~:async~ babel blocks to ~:sync~ when [[doom-package:][ob-async]] would cause
cause errors or issues (such as with a ~:session~ parameter, which =ob-async= errors or issues (such as with a ~:session~ parameter, which [[doom-package:][ob-async]] does not
does not support, or when exporting org documents). support, or when exporting org documents).
+ The window is recentered when following links. - The window is recentered when following links.
+ The breadcrumbs displayed in eldoc when hovering over an org headline has been - The breadcrumbs displayed in eldoc when hovering over an org headline has been
reworked to strip out link syntax and normalize font-size disparities. reworked to strip out link syntax and normalize font-size disparities.
+ If =:ui workspaces= is enabled, persp-mode won't register org agenda buffers that - If [[doom-module:][:ui workspaces]] is enabled, persp-mode won't register org agenda buffers
are temporarily opened in the background. that are temporarily opened in the background.
+ Temporary org agenda files aren't added to recentf. - Temporary org agenda files aren't added to recentf.
+ =file:= links are highlighted with the ~error~ face if they are broken. - =file:= links are highlighted with the ~error~ face if they are broken.
+ TAB was changed to toggle only the visibility state of the current subtree, - TAB was changed to toggle only the visibility state of the current subtree,
rather than cycle through it recursively. This can be reversed with: rather than cycle through it recursively. This can be reversed with:
#+BEGIN_SRC emacs-lisp #+begin_src emacs-lisp
(after! evil-org (after! evil-org
(remove-hook 'org-tab-first-hook #'+org-cycle-only-current-subtree-h)) (remove-hook 'org-tab-first-hook #'+org-cycle-only-current-subtree-h))
#+END_SRC #+end_src
+ (Evil users) Nearby tables are formatted when exiting insert or replace mode - (Evil users) Nearby tables are formatted when exiting insert or replace mode
(see ~+org-enable-auto-reformat-tables-h~). (see ~+org-enable-auto-reformat-tables-h~).
+ Statistics cookies are updated when saving the buffer of exiting insert mode - Statistics cookies are updated when saving the buffer of exiting insert mode
(see ~+org-enable-auto-update-cookies-h~). (see ~+org-enable-auto-update-cookies-h~).
+ Org-protocol has been lazy loaded (see ~+org-init-protocol-lazy-loader-h~); - Org-protocol has been lazy loaded (see ~+org-init-protocol-lazy-loader-h~);
loaded when the server receives a request for an org-protocol:// url. loaded when the server receives a request for an org-protocol:// url.
+ Babel and babel plugins are now lazy loaded (see - Babel and babel plugins are now lazy loaded (see
~+org-init-babel-lazy-loader-h~); loaded when a src block is executed. No need ~+org-init-babel-lazy-loader-h~); loaded when a src block is executed. No need
to use ~org-babel-do-load-languages~ in your config, just install your babel to use ~org-babel-do-load-languages~ in your config, just install your babel
packages to extend language support (and ensure its ~org-babel-execute:*~ packages to extend language support (and ensure its ~org-babel-execute:*~
function is autoloaded). function is autoloaded).
+ If a variable is used as a file path in ~org-capture-template~, it will be - If a variable is used as a file path in ~org-capture-template~, it will be
resolved relative to ~org-directory~, instead of ~default-directory~ (see resolved relative to ~org-directory~, instead of ~default-directory~ (see
~+org-capture-expand-variable-file-a~). ~+org-capture-expand-variable-file-a~).
* Prerequisites ** TODO Changelog
Org has a few soft dependencies that you will need to make use of Org's more # This section will be machine generated. Don't edit it by hand.
esoteric features: /This module does not have a changelog yet./
+ For inline LaTeX previews, ~latex~ and ~dvipng~ is needed. * Installation
+ To render GNUPlot images (with =+gnuplot= flag) the ~gnuplot~ program is [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
needed.
+ To execute babel code blocks, you need whatever dependencies those languages This module has no hard requirements, but these soft requirements are needed to
need. It is recommended you enable the associated =:lang= module and ensure use Org's more esoteric features:
its dependencies are met, e.g. install the =ruby= executable for ruby support. - For inline LaTeX previews, ~latex~ and ~dvipng~ is needed.
To use ~jupyter kernels~ you need the =+jupyter= flag, the associated kernel as - To render GNUPlot images (with [[doom-module:][+gnuplot]] flag) the ~gnuplot~ program is needed.
- To execute babel code blocks, you need whatever dependencies those languages
need. It is recommended you enable the associated [[doom-module:][:lang]] module and ensure its
dependencies are met, e.g. install the =ruby= executable for ruby support. To
use ~jupyter kernels~ you need the [[doom-module:][+jupyter]] flag, the associated kernel as
well as the ~jupyter~ program. well as the ~jupyter~ program.
+ =org-roam= (with =+roam= or =+roam2= flag) requires =sqlite3= to be installed. - [[doom-package:][org-roam]] (with [[doom-module:][+roam]] or [[doom-module:][+roam2]] flag) requires =sqlite3= to be installed.
** MacOS ** MacOS
#+BEGIN_SRC sh #+begin_src sh
brew install --cask mactex brew install --cask mactex
brew install gnuplot brew install gnuplot
#+END_SRC #+end_src
** Arch Linux ** Arch Linux
#+BEGIN_SRC sh #+begin_src sh
pacman -S texlive-core texlive-bin texlive-science pacman -S texlive-core texlive-bin texlive-science
pacman -S gnuplot pacman -S gnuplot
pacman -S jupyter # required by +jupyter pacman -S jupyter # required by +jupyter
#+END_SRC #+end_src
** NixOS ** NixOS
#+BEGIN_SRC nix #+begin_src nix
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# any less than medium isn't guaranteed to work # any less than medium isn't guaranteed to work
texlive.combined.scheme-medium texlive.combined.scheme-medium
# required by +jupyter # required by +jupyter
(python38.withPackages(ps: with ps; [jupyter])) (python38.withPackages(ps: with ps; [jupyter]))
]; ];
#+END_SRC #+end_src
** TODO Windows ** TODO Windows
* Features * TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** Invoking the org-capture frame from outside Emacs ** Invoking the org-capture frame from outside Emacs
The simplest way to use the org-capture frame is through the ~bin/org-capture~ The simplest way to use the org-capture frame is through the ~bin/org-capture~
script. I'd recommend binding a shortcut key to it. If Emacs isn't running, it script. I'd recommend binding a shortcut key to it. If Emacs isn't running, it
will spawn a temporary daemon for you. will spawn a temporary daemon for you.
Alternatively, you can call ~+org-capture/open-frame~ directly, e.g. Alternatively, you can call ~+org-capture/open-frame~ directly, e.g.
#+begin_src sh
#+BEGIN_SRC sh
emacsclient --eval '(+org-capture/open-frame INTIAL-INPUT KEY)' emacsclient --eval '(+org-capture/open-frame INTIAL-INPUT KEY)'
#+END_SRC #+end_src
** Built-in custom link types ** Built-in custom link types
This module defines a number of custom link types in ~+org-init-custom-links-h~. This module defines a number of custom link types in ~+org-init-custom-links-h~.
They are (with examples): They are (with examples):
+ ~doom-docs:news/2.1.0~ (=~/.emacs.d/docs/%s=) - ~doom-docs:index.org~ -> =~/.emacs.d/docs/%s=
+ ~doom-modules:editor/evil/README.org~ (=~/.emacs.d/modules/%s=) - ~doom-modules:editor/evil/README.org~ -> =~/.emacs.d/modules/%s=
+ ~doom-repo:issues~ (=https://github.com/hlissner/doom-emacs/%s=) - ~doom-repo:issues~ -> =https://github.com/hlissner/doom-emacs/%s=
+ ~doom:core/core.el~ (=~/.emacs.d/%s=) - ~doom:core/core.el~ -> =~/.emacs.d/%s=
+ ~duckduckgo:search terms~ - ~duckduckgo:search terms~
+ ~gimages:search terms~ (Google Images) - ~gimages:search terms~ (Google Images)
+ ~github:hlissner/doom-emacs~ - ~github:hlissner/doom-emacs~
+ ~gmap:Toronto, Ontario~ (Google Maps) - ~gmap:Toronto, Ontario~ (Google Maps)
+ ~google:search terms~ - ~google:search terms~
+ ~org:todo.org~ (={org-directory}/%s=) - ~org:todo.org~ -> ={org-directory}/%s=
+ ~wolfram:sin(x^3)~ - ~wolfram:sin(x^3)~
+ ~wikipedia:Emacs~ - ~wikipedia:Emacs~
+ ~youtube:P196hEuA_Xc~ (link only) - ~youtube:P196hEuA_Xc~ (link only)
+ ~yt:P196hEuA_Xc~ (like =youtube=, but includes an inline preview of the video) - ~yt:P196hEuA_Xc~ (like =youtube=, but includes an inline preview of the video)
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
** Changing ~org-directory~ ** Changing ~org-directory~
To modify ~org-directory~ it must be set /before/ =org= has loaded: ~org-directory~ must be set /before/ [[doom-package:][org]] has loaded:
#+begin_src emacs-lisp
#+BEGIN_SRC emacs-lisp ;; in $DOOMDIR/config.el
;; ~/.doom.d/config.el
(setq org-directory "~/new/org/location/") (setq org-directory "~/new/org/location/")
#+END_SRC #+end_src
** Changing ~org-noter-notes-search-path~
To modify ~org-noter-notes-search-path~ set:
#+BEGIN_SRC emacs-lisp ** Changing ~org-noter-notes-search-path~
;; ~/.doom.d/config.el #+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq org-noter-notes-search-path '("~/notes/path/")) (setq org-noter-notes-search-path '("~/notes/path/"))
#+END_SRC #+end_src
* Troubleshooting * Troubleshooting
[[doom-report:][Report an issue?]]
** =org-roam= ** =org-roam=
*** Should I go with =+roam= (v1) or =+roam2= (v2)? *** Should I go with =+roam= (v1) or =+roam2= (v2)?
Long story short: if you're new to =org-roam= and haven't used it, then you Long story short: if you're new to [[doom-package:][org-roam]] and haven't used it, then you should
should go with =+roam2=; if you already have an ~org-roam-directory~ with the v1 go with [[doom-module:][+roam2]]; if you already have an ~org-roam-directory~ with the v1 files in
files in it, then you can keep use =+roam= for a time being. it, then you can keep use [[doom-module:][+roam]] for a time being.
V1 isn't actively maintained anymore and is now basically EOL. This means that V1 isn't actively maintained anymore and is now basically EOL. This means that
the feature disparity between the both will continue to grow, while its existing the feature disparity between the both will continue to grow, while its existing
@ -291,14 +282,22 @@ appear during the migration process. Because of that, *don't forget to backup*
your ~org-roam-directory~ before attempting to migrate. your ~org-roam-directory~ before attempting to migrate.
In order to migrate from v1 to v2 using Doom follow the next steps: In order to migrate from v1 to v2 using Doom follow the next steps:
1. Enable =+roam2= flag (and disable =+roam= if it was previously enabled) in 1. Enable [[doom-module:][+roam2]] flag (and disable [[doom-module:][+roam]] if it was previously enabled) in your
your =init.el=. =init.el=.
2. Ensure your ~org-roam-directory~ points to a directory with your v1 files. 2. Ensure your ~org-roam-directory~ points to a directory with your v1 files.
3. Run =doom sync -u= in your shell. 3. Run ~$ doom sync -u~ in your shell.
4. Restart Emacs (if it was previously opened) and run ~org-roam-migrate-wizard~ 4. Restart Emacs (if it was previously opened) and run ~org-roam-migrate-wizard~
command (=M-x org-roam-migrate-wizard RET=). The wizard will automatically command (~M-x org-roam-migrate-wizard RET~). The wizard will automatically
attempt to backup your previous ~org-roam-directory~ to =org-roam.bak=, but attempt to backup your previous ~org-roam-directory~ to =org-roam.bak=, but
just in case backup it yourself too. just in case backup it yourself too.
4. After the wizard is done you should be good to go. Verify the integrity of 4. After the wizard is done you should be good to go. Verify the integrity of
your data and whether it did everything as expected. In case of failure your data and whether it did everything as expected. In case of failure
[[https://github.com/org-roam/org-roam/issues][report]] your issue. [[https://github.com/org-roam/org-roam/issues][report]] your issue.
* 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,87 +1,77 @@
#+TITLE: lang/php ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang php][Issues]] ↖ [[doom-module-source:lang/php][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2017 --------------------------------------------------------------------------------
#+SINCE: v1.3 #+TITLE: :lang php
#+STARTUP: inlineimages nofold #+SUBTITLE: Perl's insecure younger brother
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds support for PHP 5.3+ (including PHP7) to Doom Emacs.
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#php][PHP]]
- [[#macos][MacOS]]
- [[#arch-linux][Arch Linux]]
- [[#opensuse][openSUSE]]
- [[#dependencies][Dependencies]]
- [[#features][Features]]
- [[#lsp-support][LSP Support]]
- [[#phpunit][PHPUnit]]
- [[#composer][Composer]]
- [[#configuration][Configuration]]
- [[#docker-compose][Docker Compose]]
- [[#troubleshooting][Troubleshooting]]
- [[#im-missing-functionality-on-lsp-mode]["I'm missing functionality on lsp-mode"]]
* Description - ctags-based code completion (~company-php~ and ~phpctags~)
This module adds support for PHP 5.3+ (including PHP7). - eldoc support (~ac-php~ and ~php-extras~)
- REPL (~php-boris~)
+ ctags-based code completion (~company-php~ and ~phpctags~) - Code refactoring commands (~php-refactor-mode~)
+ eldoc support (~ac-php~ and ~php-extras~) - Unit-test commands (~phpunit~)
+ REPL (~php-boris~) - Support for ~laravel~ and ~composer~ projects (with project-specific snippets)
+ Code refactoring commands (~php-refactor-mode~) - [[../../editor/file-templates/templates/php-mode][File templates]]
+ Unit-test commands (~phpunit~) - [[https://github.com/hlissner/doom-snippets/tree/master/php-mode][Snippets]]
+ Support for ~laravel~ and ~composer~ projects (with project-specific snippets)
+ Shortcuts for composer commands
+ [[../../editor/file-templates/templates/php-mode][File templates]]
+ [[https://github.com/hlissner/doom-snippets/tree/master/php-mode][Snippets]]
#+begin_quote #+begin_quote
PHP was the first programming language I got paid to code in, back in the 💡 PHP was the first programming language I got paid to code in, back in the
Cretaceous period (2003). My sincerest apologies go out to all the programmers Cretaceous period (2003). My sincerest apologies go out to all the
who inherited my earliest PHP work. I know you're out there, writhing in your programmers who inherited my earliest PHP work. I know you're out there,
straitjackets. writhing in your straitjackets.
Save a programmer today. Stop a friend from choosing PHP as their first Save a programmer today. Stop a friend from choosing PHP as their first
language. language.
#+end_quote #+end_quote
** Maintainers ** Maintainers
This module has no dedicated maintainers. *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
+ =+hack= Add support for the [[https://hacklang.org/][Hack dialect of PHP]] by Facebook. - +hack ::
+ =+lsp= Enable LSP support through phpactor or intelephense. Requires the ~:tools Add support for the [[https://hacklang.org/][Hack dialect of PHP]] by Facebook.
lsp~ module and the [[https://phpactor.readthedocs.io/en/develop/usage/standalone.html][phpactor server]] to be installed on your system. - +lsp ::
** Plugins Enable LSP support for ~php-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
+ [[https://github.com/tomterl/php-boris][async]] (supports [[https://phpactor.readthedocs.io/en/develop/usage/standalone.html][phpactor]] and intelephense).
+ [[https://github.com/tomterl/php-boris][php-boris]]
+ [[https://github.com/arnested/php-extras][php-extras]] ** Packages
+ [[https://github.com/emacs-php/php-mode][php-mode]] - [[doom-package:][async]]
+ [[https://github.com/keelerm84/php-refactor-mode.el][php-refactor-mode]] - [[doom-package:][hack-mode]] if [[doom-module:][+hack]]
+ [[https://github.com/nlamirault/phpunit.el][phpunit]] - [[doom-package:][php-boris]]
+ [[https://github.com/emacs-php/composer.el][composer.el]] - [[doom-package:][php-cs-fixer]] if [[doom-package:][:editor format]]
+ =+hack= - [[doom-package:][php-extras]]
+ [[https://github.com/hhvm/hack-mode][hack-mode]] - [[doom-package:][php-mode]]
+ =+lsp= - [[doom-package:][php-refactor-mode]]
+ [[https://github.com/emacs-php/phpactor.el][phpactor]] - [[doom-package:][phpunit]]
+ [[https://github.com/emacs-php/phpactor.el][company-phpactor]] - if [[doom-module:][+lsp]]
+ =:editor format= - [[doom-package:][phpactor]]
+ [[https://github.com/OVYA/php-cs-fixer][php-cs-fixer]] - [[doom-package:][company-phpactor]]
** 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 ~php~ (5.3+) and ~composer~.
If [[doom-module:][+lsp]] is enabled, you'll also need one of these LSP servers:
- Phpactor requires ~php~ 7.3+.
- Intelephense requires ~node~ and ~npm~.
* Prerequisites
** PHP ** PHP
To get started with PHP, you'll need ~php~ (5.3+) and ~composer~.
Note for =+lsp=:
1. In order to make full use of phpactor server, ~php~ (7.3+) is recommended.
2. If you use intelephense, ~node~ and ~npm~ are needed.
*** MacOS *** MacOS
PHP 5.5 comes prepackaged with newer versions of MacOS. These instructions are PHP 5.5 comes prepackaged with newer versions of MacOS. These instructions are
provided for reference: provided for reference:
#+begin_src sh :tangle (if (doom-system-os 'macos) "yes") #+begin_src sh
brew tap homebrew/homebrew-php brew tap homebrew/homebrew-php
brew install php71 # or php53, php54, php55 brew install php71 # or php53, php54, php55
brew install composer brew install composer
@ -92,7 +82,7 @@ brew install npm
#+end_src #+end_src
*** Arch Linux *** Arch Linux
#+begin_src sh :dir /sudo:: :tangle (if (doom-system-os 'arch) "yes") #+begin_src sh
sudo pacman --needed --noconfirm -S php composer # or php53, php54, php55 sudo pacman --needed --noconfirm -S php composer # or php53, php54, php55
# If you use intelephense: # If you use intelephense:
@ -100,20 +90,32 @@ sudo pacman -S nodejs npm
#+end_src #+end_src
*** openSUSE *** openSUSE
#+begin_src sh :dir /sudo:: #+begin_src sh
sudo zypper install php-composer sudo zypper install php-composer
# If you use intelephense: # If you use intelephense:
sudo zypper install nodejs npm sudo zypper install nodejs npm
#+end_src #+end_src
** Dependencies ** LSP Support
This module has no required dependencies, but it has a couple optional ones. There are a number of currently supported LSP servers:
+ ~boris~ (REPL) - [[https://emacs-lsp.github.io/lsp-mode/page/lsp-intelephense/][Intelephense]] (_Recommended_)
+ ~phpctags~ (better code completion) - [[https://emacs-lsp.github.io/lsp-mode/page/lsp-phpactor/][phpactor]]
+ ~phpunit~ (unit test commands) - [[https://emacs-lsp.github.io/lsp-mode/page/lsp-serenata/][Serenata]]
+ ~php-cs-fixer~ and ~@prettier/plugin-php~ (for code formatting) - [[https://emacs-lsp.github.io/lsp-mode/page/lsp-php/][felixbecker]] (Considered unsupported)
Intelephense is currently the only server that supports automatic installation,
which will trigger either when you open a PHP project or manually invoke
~lsp-install-server~ through [[kbd:][M-x]].
The others have to be installed manually and added to your =$PATH=.
** Dependencies
- ~boris~ (REPL)
- ~phpctags~ (better code completion)
- ~phpunit~ (unit test commands)
- ~php-cs-fixer~ and ~@prettier/plugin-php~ (for code formatting)
+ ~phpactor~ (for LSP if intelephense isn't desired) + ~phpactor~ (for LSP if intelephense isn't desired)
#+begin_src sh #+begin_src sh
@ -129,34 +131,23 @@ composer global require \
npm install -g @prettier/plugin-php npm install -g @prettier/plugin-php
#+end_src #+end_src
You must ensure that ~~/.composer/vendor/bin~ is in ~PATH~, so these executables are You must ensure that =$HOME/.composer/vendor/bin= is in =$PATH=, so these
visible to Emacs: executables are visible to Emacs:
#+begin_src sh #+begin_src sh
# place this in your profile file, like ~/.bash_profile or ~/.zshenv # place this in your profile file, like ~/.bash_profile or ~/.zshenv
export PATH="~/.composer/vendor/bin:$PATH" export PATH="~/.composer/vendor/bin:$PATH"
#+end_src #+end_src
You may also need to regenerate your envvar file by running ~doom env~ on the You may also need to regenerate your envvar file by running ~$ doom env~ on the
command line. command line.
*NOTE* phpactor doesn't have to be installed via =composer=, just has to exist in *NOTE* phpactor doesn't have to be installed via =composer=, just has to exist in
your =$PATH=. your =$PATH=.
* Features * TODO Usage
** LSP Support #+begin_quote
There are a number of currently supported LSP servers: 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
+ [[https://emacs-lsp.github.io/lsp-mode/page/lsp-intelephense/][Intelephense]] (_Recommended_)
+ [[https://emacs-lsp.github.io/lsp-mode/page/lsp-phpactor/][phpactor]]
+ [[https://emacs-lsp.github.io/lsp-mode/page/lsp-serenata/][Serenata]]
+ [[https://emacs-lsp.github.io/lsp-mode/page/lsp-php/][felixbecker]] (Considered unsupported)
Intelephense is currently the only server that supports automatic installation,
which will trigger either when you open a PHP project or manually invoke
=lsp-install-server= through =M-x=.
The others have to be installed manually and added to your =$PATH=.
** PHPUnit ** PHPUnit
This module provides an interface to PHPUnit through a number of commands as This module provides an interface to PHPUnit through a number of commands as
@ -179,20 +170,24 @@ This module provides several convenience methods for triggering composer
commands: commands:
| Binding | Function | | Binding | Function |
|---------------------+---------------------------------| |---------------------+-----------------------------------|
| ~<localleader> m c c~ | ~composer~ | | [[kbd:][<localleader> m c c]] | ~composer~ |
| ~<localleader> m c i~ | ~composer-install~ | | [[kbd:][<localleader> m c i]] | ~composer-install~ |
| ~<localleader> m c r~ | ~composer-require~ | | [[kbd:][<localleader> m c r]] | ~composer-require~ |
| ~<localleader> m c u~ | ~composer-update~ | | [[kbd:][<localleader> m c u]] | ~composer-update~ |
| ~<localleader> m c d~ | ~composer-dump-autoload~ | | [[kbd:][<localleader> m c d]] | ~composer-dump-autoload~ |
| ~<localleader> m c s~ | ~composer-run-scripts~ | | [[kbd:][<localleader> m c s]] | ~composer-run-scripts~ |
| ~<localleader> m c v~ | ~composer-run-vendor-bin-command~ | | [[kbd:][<localleader> m c v]] | ~composer-run-vendor-bin-command~ |
| ~<localleader> m c o~ | ~composer-find-json-file~ | | [[kbd:][<localleader> m c o]] | ~composer-find-json-file~ |
| ~<localleader> m c l~ | ~composer-view-lock-file~ | | [[kbd:][<localleader> m c l]] | ~composer-view-lock-file~ |
These are all invokable via =M-x= too. These are all invokable via [[kbd:][M-x]] too.
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
** Docker Compose ** Docker Compose
A lot of projects rely on running inside docker compose (ie Laravel), and as A lot of projects rely on running inside docker compose (ie Laravel), and as
such a minor mode has been configured to attempt to run tests inside the =php-fpm= such a minor mode has been configured to attempt to run tests inside the =php-fpm=
@ -210,11 +205,12 @@ If you wish to specify a different container, modify the
#+end_src #+end_src
* Troubleshooting * Troubleshooting
[[doom-report:][Report an issue?]]
** "I'm missing functionality on lsp-mode" ** "I'm missing functionality on lsp-mode"
Unfortunately, [[https://intelephense.com/][intelephense]] currently operates under a "freemium" model, and as Unfortunately, [[https://intelephense.com/][intelephense]] currently operates under a "freemium" model, and as
such requires a license for extended features. Once purchased, this can be such requires a license for extended features. Once purchased, this can be
(insecurely) added directly to your config: (insecurely) added directly to your config:
#+begin_src emacs-lisp #+begin_src emacs-lisp
(setq lsp-intelephense-licence-key "<key>") (setq lsp-intelephense-licence-key "<key>")
#+end_src #+end_src
@ -223,14 +219,12 @@ A more recommended approach would be to utilise Emacs' own ~auth-sources~ for
storing authentication info, which can also be encrypted. storing authentication info, which can also be encrypted.
Create a file in your home directory (which can optionally be encrypted, verify Create a file in your home directory (which can optionally be encrypted, verify
your ~auth-sources~ has the correct values) called ~~/.authinfo~ your ~auth-sources~ has the correct values) called ~~/.authinfo~:
#+begin_src #+begin_src
machine * login intelephense password <key> machine * login intelephense password <key>
#+end_src #+end_src
And add the following to your config And add the following to your config:
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun my-fetch-password (&rest params) (defun my-fetch-password (&rest params)
(require 'auth-source) (require 'auth-source)
@ -244,3 +238,11 @@ And add the following to your config
(setq lsp-intelephense-license-key (my-fetch-password :user intelephense)) (setq lsp-intelephense-license-key (my-fetch-password :user intelephense))
#+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

@ -0,0 +1,53 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang plantuml][Issues]] ↖ [[doom-module-source:lang/plantuml][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang plantuml
#+SUBTITLE: Diagrams to confuse people more
#+CREATED: July 08, 2017
#+SINCE: 2.0.4
* Description :unfold:
This module adds plantuml support to Emacs; allowing you to generate diagrams
from plain text.
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][plantuml-mode]]
- [[doom-package:][flycheck-plantuml]] if [[doom-module:][:checkers syntax]]
** 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 =plantuml= to build diagrams with.
* 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-issue:][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:::lang purescript][Issues]] ↖ [[doom-module-source:lang/purescript][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang purescript
#+SUBTITLE: Javascript, but functional
#+CREATED: May 21, 2017
#+SINCE: 2.0.3 (#75)
* Description :unfold:
This module adds [[https://www.purescript.org/][Purescript]] support to Doom Emacs.
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +lsp ::
Enable LSP support for ~purescript-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/nwolverson/purescript-language-server][purescript-language-server]]).
** Packages
- [[doom-package:][psci]]
- [[doom-package:][psc-ide]]
- [[doom-package:][purescript-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./
* 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 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,130 +1,154 @@
#+TITLE: lang/python ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang python][Issues]] ↖ [[doom-module-source:lang/python][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: Oct, 2019 --------------------------------------------------------------------------------
#+SINCE: v2.0.9 #+TITLE: :lang python
#+STARTUP: inlineimages #+SUBTITLE: Beautiful is better than ugly
#+CREATED: June 15, 2015
#+SINCE: 0.7
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds [[https://www.python.org/][Python]] support to Doom Emacs.
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#language-server-protocol-support][Language Server Protocol Support]]
- [[#features][Features]]
- [[#keybindings][Keybindings]]
- [[#configuration][Configuration]]
* Description - Syntax checking ([[doom-package:][flycheck]])
Adds Python support to Doom Emacs. - Snippets
- Run tests ([[doom-package:][nose]], [[doom-package:][pytest]])
- Auto-format (with ~black~, requires [[doom-module:][:editor format]])
- LSP integration (=mspyls=, =pyls=, or =pyright=)
+ Syntax checking (~flycheck~) ** Maintainers
+ Snippets - [[doom-user:][@hlissner]]
+ Run tests (~nose~, ~pytest~)
+ Auto-format (~black~), requires ~:editor format~
+ LSP integration (mspyls, pyls, or pyright)
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
+ ~+lsp~ Language Server Protocol support
+ ~+pyright~ Use the pyright LSP server instead of mspyls or pyls (requires
~+lsp~).
+ ~+pyenv~ Python virtual environment support via [[https://github.com/pyenv/pyenv][pyenv]]
+ ~+conda~ Python virtual environment support via [[https://conda.io/en/latest/][Conda]]
+ ~+poetry~ Python packaging, dependency management, and virtual environment
support via [[https://python-poetry.org/][Poetry]]
+ ~+cython~ Cython files support via [[https://github.com/cython/cython/blob/master/Tools/cython-mode.el][cython-mode]]
** Plugins ** Module flags
+ [[https://github.com/pythonic-emacs/anaconda-mode][anaconda-mode]]* - +conda ::
+ [[https://github.com/Wilfred/pyimport][pyimport]]* Enable python virtual environment support via [[https://conda.io/en/latest/][Conda]].
+ [[https://github.com/paetzke/py-isort.el][py-isort]]* - +cython ::
+ [[https://github.com/emacsattic/nose/][nose]]* Enable support for Cython files support.
+ [[https://github.com/wbolster/emacs-python-pytest][python-pytest]]* - +lsp ::
+ [[https://github.com/Wilfred/pip-requirements.el][pip-requirements]]* Enable LSP support for ~python-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
+ [[https://github.com/pwalsh/pipenv.el][pipenv]]* (supports mspyls, pyls, and pyright).
+ if ~+conda~ - +poetry ::
+ [[https://github.com/necaris/conda.el][conda]]* Enable Python packaging, dependency management, and virtual environment
+ if ~+pyenv~ support via [[https://python-poetry.org/][Poetry]].
+ [[https://github.com/pythonic-emacs/pyenv-mode][pyenv]]* - +pyenv ::
+ if ~+poetry~ Enable Python virtual environment support via [[https://github.com/pyenv/pyenv][pyenv]]
+ [[https://github.com/galaunay/poetry.el][poetry]]* - +pyright ::
+ if ~+lsp~ and ~:tools lsp~ Use the pyright LSP server instead of mspyls or pyls (requires [[doom-module:][+lsp]]).
+ [[https://github.com/emacs-lsp/lsp-mode][lsp]]
+ if ~+pyright~
+ [[https://github.com/emacs-lsp/lsp-pyright][lsp-pyright]]
+ else
+ [[https://github.com/emacs-lsp/lsp-python-ms][lsp-python-ms]]
+ if ~+cython~
+ [[https://github.com/cython/cython/blob/master/Tools/cython-mode.el][cython-mode]]
+ if ~:checkers syntax~: [[https://github.com/lbolla/emacs-flycheck-cython/tree/master][flycheck-cython]]
* Prerequisites ** Packages
This module has no hard prerequisites, but a few soft ones: - [[doom-package:][anaconda-mode]]
- [[doom-package:][conda]]
- [[doom-package:][nose]]
- [[doom-package:][pipenv]]
- [[doom-package:][pip-requirements]]
- [[doom-package:][poetry]] if [[doom-module:][+poetry]]
- [[doom-package:][pyenv]]
- [[doom-package:][pyimport]]
- [[doom-package:][py-isort]]
- [[doom-package:][python-pytest]]
- if [[doom-module:][+cython]]
- [[doom-package:][cython-mode]]
- [[doom-package:][flycheck-cython]] if [[doom-module:][:checkers syntax]]
- if [[doom-module:][+lsp]]
- if [[doom-module:][+pyright]]
- [[doom-package:][lsp-pyright]]
- else
- [[doom-package:][lsp-python-ms]]
+ For this module's supported test runners: ** Hacks
+ ~pip install pytest~ - [[doom-package:][anaconda-mode]] is configured to activate when [[doom-package:][lsp-mode]] (or [[doom-package:][eglot]]) don't -- or
+ ~pip install nose~ fail to.
+ The ~:editor format~ module uses [[https://github.com/psf/black][Black]] for python files :: ~pip install black~
+ ~pyimport~ requires Python's module ~pyflakes~ :: ~pip install pyflakes~ ** TODO Changelog
+ ~py-isort~ requires [[https://github.com/timothycrosley/isort][isort]] to be installed :: ~pip install isort~ # This section will be machine generated. Don't edit it by hand.
+ Python virtual environments install instructions at: /This module does not have a changelog yet./
+ [[https://github.com/pyenv/pyenv][pyenv]]
+ [[https://conda.io/en/latest/][Conda]] * Installation
+ [[https://python-poetry.org/][Poetry]] [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
+ [[https://pipenv.readthedocs.io/en/latest/][pipenv]]
+ ~cython~ requires [[https://cython.org/][Cython]] This module has no hard requirements, but softly depends on:
- For this module's supported test runners:
- ~$ pip install pytest~
- ~$ pip install nose~
- The [[doom-module:][:editor format]] module uses Black for python files: ~$ pip install black~
- [[doom-package:][pyimport]] requires Python's module ~pyflakes~: ~$ pip install pyflakes~
- [[doom-package:][py-isort]] requires [[https://github.com/timothycrosley/isort][isort]] to be installed: ~pip install isort~
- Python virtual environments install instructions at:
- [[https://github.com/pyenv/pyenv][pyenv]]
- [[https://conda.io/en/latest/][Conda]]
- [[https://python-poetry.org/][Poetry]]
- [[https://pipenv.readthedocs.io/en/latest/][pipenv]]
- ~cython~ requires [[https://cython.org/][Cython]]
** Language Server Protocol Support ** Language Server Protocol Support
For LSP support the =:tools lsp= module must be enabled, along with this For LSP support the [[doom-module:][:tools lsp]] module must be enabled, along with this module's
module's =+lsp= flag. By default, it supports =mspyls= and =pyls=, in that [[doom-module:][+lsp]] flag. By default, it supports [[doom-package:][mspyls]] and [[doom-package:][pyls]], in that order. With the
order. With the =+pyright= flag, it will try Pyright first. [[doom-module:][+pyright]] flag, it will try Pyright first.
Each of these servers must be installed on your system via your OS package Each of these servers must be installed on your system via your OS package
manager or manually: manager or manually:
- [[https://pypi.org/project/python-language-server/][*pyls*]] can be installed with ~$ pip install python-language-server[all]~.
- *mspyls* can be installed by typing ~M-x lsp-install-server RET mspyls~.
- *pyright* can be installed with ~$ pip install pyright~ or ~$ npm i -g
pyright~.
+ [[https://pypi.org/project/python-language-server/][*pyls*]] can be installed with ~pip install python-language-server[all]~. * TODO Usage
+ *mspyls* can be installed by typing =M-x lsp-install-server RET mspyls=. #+begin_quote
+ *pyright* can be installed with ~pip install pyright~ or ~npm i -g pyright~. 🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features This module supports LSP. It requires installation of [[https://pypi.org/project/python-language-server/][Python Language Server]],
This module supports LSP. It requires installation of [[https://pypi.org/project/python-language-server/][Python Language [[https://github.com/Microsoft/python-language-server][Microsoft Language Server]], or [[https://github.com/microsoft/pyright][pyright]], see [[Language Server Protocol Support][LSP Support]].
Server]], [[https://github.com/Microsoft/python-language-server][Microsoft Language Server]], or [[https://github.com/microsoft/pyright][pyright]], see [[Language Server Protocol Support][LSP Support]].
To enable support for auto-formatting with black enable ~:editor format~ in To enable support for auto-formatting with black enable [[doom-module:][:editor format]].
~init.el~ file.
** Keybindings ** Keybindings
| Binding | Description | | Binding | Description |
|---------------------+----------------------------------| |-------------------+----------------------------------|
| ~<localleader> c c~ | ~Compile Cython buffer~ | | [[kbd:][<localleader> c c]] | ~Compile Cython buffer~ |
| ~<localleader> i i~ | ~Insert mising imports~ | | [[kbd:][<localleader> i i]] | ~Insert mising imports~ |
| ~<localleader> i r~ | ~Remove unused imports~ | | [[kbd:][<localleader> i r]] | ~Remove unused imports~ |
| ~<localleader> i s~ | ~Sort imports~ | | [[kbd:][<localleader> i s]] | ~Sort imports~ |
| ~<localleader> i o~ | ~Optimize imports~ | | [[kbd:][<localleader> i o]] | ~Optimize imports~ |
| ~<localleader> t r~ | ~nosetests-again~ | | [[kbd:][<localleader> t r]] | ~nosetests-again~ |
| ~<localleader> t a~ | ~nosetests-all~ | | [[kbd:][<localleader> t a]] | ~nosetests-all~ |
| ~<localleader> t s~ | ~nosetests-one~ | | [[kbd:][<localleader> t s]] | ~nosetests-one~ |
| ~<localleader> t v~ | ~nosetests-module~ | | [[kbd:][<localleader> t v]] | ~nosetests-module~ |
| ~<localleader> t A~ | ~nosetests-pdb-all~ | | [[kbd:][<localleader> t A]] | ~nosetests-pdb-all~ |
| ~<localleader> t O~ | ~nosetests-pdb-one~ | | [[kbd:][<localleader> t O]] | ~nosetests-pdb-one~ |
| ~<localleader> t V~ | ~nosetests-pdb-module~ | | [[kbd:][<localleader> t V]] | ~nosetests-pdb-module~ |
| ~<localleader> t f~ | ~python-pytest-file~ | | [[kbd:][<localleader> t f]] | ~python-pytest-file~ |
| ~<localleader> t k~ | ~python-pytest-file-dwim~ | | [[kbd:][<localleader> t k]] | ~python-pytest-file-dwim~ |
| ~<localleader> t t~ | ~python-pytest-function~ | | [[kbd:][<localleader> t t]] | ~python-pytest-function~ |
| ~<localleader> t m~ | ~python-pytest-function-dwim~ | | [[kbd:][<localleader> t m]] | ~python-pytest-function-dwim~ |
| ~<localleader> t r~ | ~python-pytest-repeat~ | | [[kbd:][<localleader> t r]] | ~python-pytest-repeat~ |
| ~<localleader> t p~ | ~python-pytest-popup~ | | [[kbd:][<localleader> t p]] | ~python-pytest-popup~ |
| ~<localleader> g d~ | ~anaconda-mode-find-definitions~ | | [[kbd:][<localleader> g d]] | ~anaconda-mode-find-definitions~ |
| ~<localleader> g h~ | ~anaconda-mode-show-doc~ | | [[kbd:][<localleader> g h]] | ~anaconda-mode-show-doc~ |
| ~<localleader> g a~ | ~anaconda-mode-find-assignments~ | | [[kbd:][<localleader> g a]] | ~anaconda-mode-find-assignments~ |
| ~<localleader> g f~ | ~anaconda-mode-find-file~ | | [[kbd:][<localleader> g f]] | ~anaconda-mode-find-file~ |
| ~<localleader> g u~ | ~anaconda-mode-find-references~ | | [[kbd:][<localleader> g u]] | ~anaconda-mode-find-references~ |
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
This module has the following variables to set extra arguments to [[https://ipython.org/][ipython]] and This module has the following variables to set extra arguments to [[https://ipython.org/][ipython]] and
[[https://jupyter.org/][jupyter]] shells: [[https://jupyter.org/][jupyter]] shells:
#+begin_src emacs-lisp
#+BEGIN_SRC elisp ;; in $DOOMDIR/config.el
;; ~/.doom.d/config.el
(setq +python-ipython-repl-args '("-i" "--simple-prompt" "--no-color-info")) (setq +python-ipython-repl-args '("-i" "--simple-prompt" "--no-color-info"))
(setq +python-jupyter-repl-args '("--simple-prompt")) (setq +python-jupyter-repl-args '("--simple-prompt"))
#+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,31 +1,55 @@
#+TITLE: lang/qt ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang qt][Issues]] ↖ [[doom-module-source:lang/qt][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: May 22, 2021 --------------------------------------------------------------------------------
#+SINCE: v2.0.9 #+TITLE: :lang qt
#+STARTUP: inlineimages nofold #+SUBTITLE: The cutest GUI framework ever
#+CREATED: June 02, 2018
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
* Description
# A summary of what this module does.
This module provides language functionality for [[https://qt.io][Qt]] specific files. This module provides language functionality for [[https://qt.io][Qt]] specific files.
+ Syntax highlighting for [[https:://en.wikipedia.org/wiki/QML][qml]] files - Syntax highlighting for [[https:://en.wikipedia.org/wiki/QML][qml]] files
+ Syntax highlighting for .pro and .pri files used by [[https://doc.qt.io/qt-5/qmake-project-files.html][qmake]] - Syntax highlighting for =.pro= and =.pri= files used by [[https://doc.qt.io/qt-5/qmake-project-files.html][qmake]]
** Maintainers ** Maintainers
This module has no dedicated maintainers. *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
This module provides no flags. /This module has no flags./
** Plugins ** Packages
+ [[https://github.com/coldnew/qml-mode/tree/master][qml-mode]] - [[doom-package:][qml-mode]]
+ [[https://github.com/EricCrosson/qt-pro-mode][qt-pro-mode]] - [[doom-package:][qt-pro-mode]]
* Prerequisites ** Hacks
This module has no prerequisites. /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,70 +1,90 @@
#+TITLE: lang/racket ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang racket][Issues]] ↖ [[doom-module-source:lang/racket][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: July 29, 2018 --------------------------------------------------------------------------------
#+SINCE: v2.0.9 #+TITLE: :lang racket
#+STARTUP: inlineimages nofold #+SUBTITLE: The DSL for DSLs
#+CREATED: July 29, 2018
#+SINCE: 2.0.9 (#772)
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module adds support for the [[https://www.racket-lang.org/][Racket programming language]] to Doom Emacs.
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#arch-linux][Arch Linux]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#racket-smart-open-bracket-mode][racket-smart-open-bracket-mode]]
- [[#unicode-input][Unicode Input]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module provides integration for [[https://github.com/greghendershott/racket-mode][racket-mode]].
** Maintainers ** Maintainers
This module has no dedicated maintainers. *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
+ =+lsp= Enables LSP support. Requires jeapostrophe/racket-langserver. - +lsp ::
+ =+xp= Enables the explore mode, which "analyzes expanded code to explain and explore." Enable support for ~racket-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/jeapostrophe/racket-langserver][racket-langserver]]).
- +xp ::
Enable the explore mode (~racket-xp-mode~), which "analyzes expanded code to
explain and explore."
** Plugins ** Packages
+ [[https://github.com/greghendershott/racket-mode][racket-mode]] - [[doom-package:][racket-mode]]
* Prerequisites ** Hacks
This module only requires ~racket~. Install it directly from the [[https://download.racket-lang.org/][racket website]], /No hacks documented for this module./
or check your package manger.
** 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 ~racket~. Install it from the [[https://download.racket-lang.org/][racket website]] or through
your OS package manger.
** Arch Linux ** Arch Linux
#+begin_src sh
#+begin_src bash
pacman -S racket pacman -S racket
#+end_src #+end_src
Or, for fewer dependencies: Or, for fewer dependencies:
#+begin_src sh
#+begin_src bash
pacman -S racket-minimal pacman -S racket-minimal
#+end_src #+end_src
* TODO Features * TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
** racket-smart-open-bracket-mode ** racket-smart-open-bracket-mode
~racket-smart-open-bracket-mode~ gets turned off automatically if you use ~parinfer~, ~racket-smart-open-bracket-mode~ gets turned off automatically if you use
~lispy~. If you wish to enable it, add the following to your ~config.el~: ~parinfer~, ~lispy~. If you wish to enable it:
#+BEGIN_SRC elisp #+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! racket-mode (after! racket-mode
(add-hook! racket-mode (add-hook 'racket-mode-hook #'racket-smart-open-bracket-mode))
#'racket-smart-open-bracket-mode)) #+end_src
#+END_SRC
** Unicode Input ** Unicode Input
The optional ~racket-unicode~ input method lets you type unicode characters such as λ or π. The optional ~racket-unicode~ input method lets you type unicode characters such
To enable unicode input for a single buffer, run ~racket-unicode-input-method-enable~. as λ or π. To enable unicode input for a single buffer, run
To enable unicode input by default on all racket buffers, add the following hooks ~racket-unicode-input-method-enable~. To enable unicode input by default on all
to your ~config.el~: racket buffers:
#+BEGIN_SRC elisp #+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(add-hook 'racket-mode-hook #'racket-unicode-input-method-enable) (add-hook 'racket-mode-hook #'racket-unicode-input-method-enable)
(add-hook 'racket-repl-mode-hook #'racket-unicode-input-method-enable) (add-hook 'racket-repl-mode-hook #'racket-unicode-input-method-enable)
#+END_SRC #+end_src
Once enabled, unicode input can be toggled by pressing C-\ or running ~toggle-input-method~.
* TODO Troubleshooting Once enabled, unicode input can be toggled by pressing C-\ or running
~toggle-input-method~.
* 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,11 +1,52 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang raku][Issues]] ↖ [[doom-module-source:lang/raku][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang raku #+TITLE: :lang raku
#+SUBTITLE: The artist formerly known as perl6
#+CREATED: June 05, 2020
#+SINCE: 21.12.0 (#3308)
This module adds a major mode and flycheck for Raku. * Description :unfold:
This module adds support for the [[https://www.raku.org/][Raku programming language]] to Doom Emacs.
* Table of Contents :TOC: ** Maintainers
- [[#install][Install]] /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
* Install ** Module flags
This module depends on raku itself. /This module has no flags./
There are no other dependencies. ** Packages
- [[doom-package:][raku-mode]]
- [[doom-package:][flycheck-raku]] if [[doom-module:][:checkers syntax]]
** 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.raku.org/][Raku]] for linting and evaluating code.
* 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,58 +1,68 @@
#+TITLE: lang/rest ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang rest][Issues]] ↖ [[doom-module-source:lang/rest][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: March 17, 2017 --------------------------------------------------------------------------------
#+SINCE: v1.3 #+TITLE: :lang rest
#+STARTUP: inlineimages nofold #+SUBTITLE: Emacs as a REST client
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module turns Emacs into a [[https://en.wikipedia.org/wiki/Representational_state_transfer][REST]] client.
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description - Code-completion (~company-restclient~)
This module adds [[https://en.wikipedia.org/wiki/Representational_state_transfer][REST]] support. - Code evaluation
- Imenu support for ~restclient-mode~
+ Code-completion (~company-restclient~) - org-mode: babel support (~ob-restclient~)
+ Code evaluation
+ Imenu support for ~restclient-mode~
+ org-mode: babel support (~ob-restclient~)
#+begin_quote #+begin_quote
~restclient-mode~ is tremendously useful for automated or quick testing REST 💡 ~restclient-mode~ is tremendously useful for automated or quick testing REST
APIs. My workflow is to open an ~org-mode~ buffer, create a restclient source APIs. My workflow is to open an ~org-mode~ buffer, create a restclient
block and hack away. ~restclient-mode~ and ~company-restclient~ power this source block and hack away. ~restclient-mode~ and ~company-restclient~ power
arcane wizardry. this arcane wizardry.
#+end_quote #+end_quote
** Maintainers ** Maintainers
This module has no dedicated maintainers. - [[doom-user:][@hlissner]]
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
This module provides no flags.
** Plugins ** Module flags
+ [[https://github.com/pashky/restclient.el][restclient]] /This module has no flags./
+ =:completion company=
+ [[https://github.com/iquiw/company-restclient][company-restclient]] ** Packages
- [[doom-package:][company-restclient]] if [[doom-module:][:completion company]]
- [[doom-package:][restclient]]
** Hacks ** Hacks
+ restclient has been modified not to silently reject self-signed or invalid - Adds imenu support to ~restclient-mode~.
- [[doom-package:][restclient]] has been modified not to silently reject self-signed or invalid
certificates. certificates.
+ Adds imenu support to ~restclient-mode~.
* Prerequisites ** TODO Changelog
This module has no prerequisites. # This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Features * Installation
# An in-depth list of features, how to use them, and their dependencies. [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
* Configuration /This module has no external requirements./
# How to configure this module, including common problems and how to address them.
* 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 * Troubleshooting
# Common issues and their solution, or places to look for help. /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:::lang rst][Issues]] ↖ [[doom-module-source:lang/rst][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang rst
#+SUBTITLE: ReST in peace
#+CREATED: October 15, 2021
#+SINCE: 21.12.0
* Description :unfold:
This module adds [[https://docutils.sourceforge.io/rst.html][ReStructured Text]] support to Doom Emacs.
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][sphinx-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.sphinx-doc.org/en/master/usage/installation.html][sphinx]] to build RST documents.
* 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,91 +1,120 @@
#+TITLE: lang/ruby ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang ruby][Issues]] ↖ [[doom-module-source:lang/ruby][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: January 16, 2007 --------------------------------------------------------------------------------
#+SINCE: v1.3 #+TITLE: :lang ruby
#+STARTUP: inlineimages #+SUBTITLE: 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
#+CREATED: January 16, 2007
#+SINCE: 1.3
* Table of contents :TOC: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#packages][Packages]]
- [[#prerequisites][Prerequisites]]
- [[#ubuntu][Ubuntu]]
- [[#macos][MacOS]]
- [[#windows][Windows]]
- [[#appendix][Appendix]]
- [[#commands][Commands]]
* Description
This module add Ruby and optional Ruby on Rails support to Emacs. This module add Ruby and optional Ruby on Rails support to Emacs.
+ Code completion (robe) - Code completion ([[doom-package:][robe]])
+ Syntax checking (flycheck) - Syntax checking ([[doom-package:][flycheck]])
+ Jump-to-definitions (robe) - Jump-to-definitions ([[doom-package:][robe]])
+ Bundler - Bundler
+ Rubocop integration (flycheck) - Rubocop integration ([[doom-package:][flycheck]])
** Module Flags ** Maintainers
+ =+lsp= Enables LangServer support for ruby. You must have =:tools lsp= enabled - [[doom-user:][@hlissner]]
for this to work, as well as the langserver (solargraph) installed on your
system. [[doom-contrib-maintainer:][Become a maintainer?]]
+ =+rvm= Enables RVM (Ruby Version Manager) integration.
+ =+rbenv= Enables rbenv integration. ** Module flags
+ =+chruby= Enables chruby integration. - +chruby ::
+ =+rails= Enables rails navigational commands, plus server+console integration. Enable chruby integration.
- +lsp ::
Enable LSP support for ~ruby-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports solargraph).
- +rails ::
Enable rails navigational commands, plus server+console integration.
- +rbenv ::
Enable rbenv integration.
- +rvm ::
Enable RVM (Ruby Version Manager) integration.
** Packages ** Packages
+ [[https://github.com/endofunky/bundler.el][bundler]] - [[doom-package:][bundler]]
+ [[https://github.com/plexus/chruby.el][chruby]] (=+chruby=) - [[doom-package:][chruby]] if [[doom-module:][+chruby]]
+ [[https://github.com/company-mode/company-inf-ruby][company-inf-ruby]] - [[doom-package:][company-inf-ruby]] if :completion company
+ [[https://github.com/eschulte/jump.el][inflections]] - [[doom-package:][inf-ruby]]
+ [[https://github.com/nonsequitur/inf-ruby][inf-ruby]] - [[doom-package:][minitest]]
+ [[https://github.com/arthurnn/minitest-emacs][minitest]] - [[doom-package:][rake]]
+ [[https://github.com/asok/projectile-rails][projectile-rails]] (=+rails=) - [[doom-package:][rbenv]] if [[doom-module:][+rbenv]]
+ [[https://github.com/asok/rake][rake]] - [[doom-package:][robe]]
+ [[https://github.com/senny/rbenv.el][rbenv]] (=+rbenv=) - [[doom-package:][rspec-mode]]
+ [[https://github.com/dgutov/robe][robe]] - [[doom-package:][rubocop]]
+ [[https://github.com/pezra/rspec-mode][rspec-mode]] - [[doom-package:][rvm]] if [[doom-module:][+rvm]]
+ [[https://github.com/rubocop-hq/rubocop-emacs][rubocop]] - if [[doom-module:][+rails]]
+ [[https://github.com/senny/rvm.el][rvm]] (=+rvm=) - [[doom-package:][inflections]]
- [[doom-package:][projectile-rails]]
* Prerequisites ** Hacks
Many of this modules plugins require ruby with some version manager (RVM or /No hacks documented for this module./
Rbenv) and the rubocop gem.
** Ubuntu ** TODO Changelog
You can follow [[https://gorails.com/setup/ubuntu/18.04][this guide]]. After ruby installation, run ~gem install rubocop~. # This section will be machine generated. Don't edit it by hand.
** MacOS /This module does not have a changelog yet./
You can follow [[https://gorails.com/setup/osx/10.15-catalina][this guide]]. After ruby installation, run ~gem install rubocop~.
** Windows * Installation
You can follow [[https://gorails.com/setup/windows/10][this guide]]. After ruby installation, run ~gem install rubocop~. [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires Ruby and the Rubocop gem. It is recommended you install
both with some version manager (RVM or Rbenv).
These guides will help you install Ruby:
- [[https://gorails.com/setup/ubuntu/18.04][Ubuntu]]
- [[https://gorails.com/setup/osx/10.15-catalina][MacOS]]
- [[https://gorails.com/setup/windows/10][Windows]]
Then run ~$ gem install rubocop~ to install rubocop.
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Appendix
** Commands ** Commands
*** robe *** robe
| command | key / ex command | description | | command | key / ex command | description |
|----------------------+------------------+--------------------------------------------------------------------| |----------------------+--------------------+--------------------------------------------------------------------|
| ~robe-start~ | =SPC m \'= | Open ruby lang server for auto-completions and jump to definitions | | ~robe-start~ | [[kbd:][<localleader> ']] | Open ruby lang server for auto-completions and jump to definitions |
| ~robe-rails-refresh~ | =SPC m R= | Refresh the lang server. | | ~robe-rails-refresh~ | [[kbd:][<localleader> R]] | Refresh the lang server. |
*** projectile-rails *** projectile-rails
The projectile-rails prefix is =SPC m r=. Here is some examples: The projectile-rails prefix is [[kbd:][<localleader> r]]:
| command | key / ex command | description | | command | key / ex command | description |
|-------------------------------+------------------+---------------------------------------------------| |-------------------------------+-------------------+---------------------------------------------------|
| ~projectile-rails-console~ | =SPC m r r= | Open Rails console | | ~projectile-rails-console~ | [[kbd:][<localleader> r r]] | Open Rails console |
| ~projectile-rails-server~ | =SPC m r R= | Open Rails server | | ~projectile-rails-server~ | [[kbd:][<localleader> r R]] | Open Rails server |
| ~projectile-rails-find-model~ | =SPC m r m= | Find any model of the project | | ~projectile-rails-find-model~ | [[kbd:][<localleader> r m]] | Find any model of the project |
| ~projectile-rails-find-model~ | =SPC m r M= | Find the model related of currently open resource | | ~projectile-rails-find-model~ | [[kbd:][<localleader> r M]] | Find the model related of currently open resource |
*** bundler *** bundler
The bundler prefix is =SPC m b=. Here is some examples: The bundler prefix is [[kbd:][<localleader> b]]:
| command | key / ex command | description | | command | key / ex command | description |
|------------------+------------------+---------------------| |------------------+-------------------+---------------------|
| ~bundle-install~ | =SPC m b i= | Runs bundle install | | ~bundle-install~ | [[kbd:][<localleader> b i]] | Runs bundle install |
| ~bundle-update~ | =SPC m b u= | Runs bundle update | | ~bundle-update~ | [[kbd:][<localleader> b u]] | Runs bundle update |
*** rspec-mode *** rspec-mode
The rspec-mode prefix is =SPC m t=. Here is some examples: The rspec-mode prefix is [[kbd:][<localleader> t]]:
| | | |
| command | key / ex command | description | | command | key / ex command | description |
|-----------------------+------------------+-----------------------------------| |-----------------------+------------------+-----------------------------------|
| ~rspec-verify~ | =SPC m t v= | Runs rspec on current file | | ~rspec-verify~ | =SPC m t v= | Runs rspec on current file |
| ~rspec-verify-method~ | =SPC m t s= | Runs rspec for the item on cursor | | ~rspec-verify-method~ | =SPC m t s= | Runs rspec for the item on cursor |
* 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,139 +1,132 @@
#+TITLE: lang/rust ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang rust][Issues]] ↖ [[doom-module-source:lang/rust][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: June 5, 2019 --------------------------------------------------------------------------------
#+SINCE: v3.0.0 #+TITLE: :lang rust
#+STARTUP: inlineimages #+SUBTITLE: Fe2O3.unwrap().unwrap().unwrap().unwrap()
#+CREATED: September 30, 2015
#+SINCE: 0.7
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#install][Install]]
- [[#arch-linux][Arch Linux]]
- [[#general][General]]
- [[#other-requirements][Other Requirements]]
- [[#features][Features]]
- [[#lsp-support-rls-or-rust-analyzer][LSP support (rls or rust-analyzer)]]
- [[#format-on-save][Format on save]]
- [[#keybinds][Keybinds]]
- [[#configuration][Configuration]]
- [[#enable-rls-by-default][Enable RLS by default]]
- [[#enabling-eglot-support-for-rust][Enabling eglot support for Rust]]
- [[#troubleshooting][Troubleshooting]]
- [[#errore0670-async-fn-is-not-permitted-in-the-2015-edition][error[E0670]: `async fn` is not permitted in the 2015 edition]]
* Description
This module adds support for the Rust language and integration for its tools, This module adds support for the Rust language and integration for its tools,
e.g. ~cargo~. e.g. ~cargo~.
+ Code completion (=racer= or an LSP server) - Code completion ([[doom-package:][racer]] or an LSP server)
+ Syntax checking (=flycheck=) - Syntax checking ([[doom-package:][flycheck]])
+ LSP support (for rust-analyzer and rls) (=rustic=) - LSP support (for rust-analyzer and rls) ([[doom-package:][rustic]])
+ Snippets - Snippets
** Module Flags ** Maintainers
+ ~+lsp~ to add support Language server protocol. Will use the first of - @hlissner
=rust-analyzer= or =rls= (in that order).
** Plugins [[doom-contrib-maintainer:][Become a maintainer?]]
+ [[https://github.com/brotzeit/rustic][rustic]]
+ [[https://github.com/racer-rust/emacs-racer][racer]]* (unless =+lsp=) ** Module flags
- +lsp ::
Enable LSP support for ~rustic-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports rust-analyzer and rls).
** Packages
- [[doom-package:][rustic]]
- [[doom-package:][racer]] unless [[doom-module:][+lsp]]
** Hacks ** Hacks
+ rustic has been modified /not/ to automatically install lsp-mode or eglot if - rustic has been modified /not/ to automatically install lsp-mode or eglot if
they're missing. Doom expects you to have enabled the =:tools lsp= module they're missing. Doom expects you to have enabled the [[doom-module:][:tools lsp]] module
yourself. yourself.
* Prerequisites ** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
** Install * Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires ~rust~, which can be acquired through =rustup=.
*** Arch Linux
#+begin_src sh
sudo pacman -S rustup
#+end_src
See also the Rust article [[https://wiki.archlinux.org/title/Rust#Rustup][on the Arch Wiki]].
Note that when the Rust /language/ has updates, you are to run =rustup= such that
it doesn't upgrade itself:
#+begin_src sh
rustup update --no-self-update
#+end_src
*** General
This module requires ~rust~, which can be acquired through =rustup=:
#+begin_src sh #+begin_src sh
curl https://sh.rustup.rs -sSf | sh curl https://sh.rustup.rs -sSf | sh
#+end_src #+end_src
Note that when the Rust /language/ has updates, you are to run =rustup= such
that it doesn't upgrade itself:
#+begin_src sh
rustup update --no-self-update
#+end_src
** Other Requirements ** Other Requirements
- If [[doom-module:][:editor format]] is enabled, you'll need =rustfmt=: ~$ rustup component add
Additional requirements depend on the module's configuration:
+ If =:editor format= is enabled, you'll need =rustfmt=: ~rustup component add
rustfmt-preview~. rustfmt-preview~.
+ Users without =+lsp= enabled will need =racer=: ~cargo +nightly install racer~ - Users without [[doom-module:][+lsp]] enabled will need [[doom-package:][racer]]: ~$ cargo +nightly install racer~
(with requires rust nightly edition). (with requires rust nightly edition).
+ Users with =+lsp= enabled will need: - Users with [[doom-module:][+lsp]] enabled will need:
+ =rust-analyzer= or =rls= - =rust-analyzer= or =rls=
+ Using the following commands requires: - Using the following commands requires:
+ ~cargo-process-check~: ~cargo install cargo-check~ - ~cargo-process-check~: ~$ cargo install cargo-check~
+ ~cargo-process-clippy~: ~rustup component add clippy-preview~ - ~cargo-process-clippy~: ~$ rustup component add clippy-preview~
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features
** LSP support (rls or rust-analyzer) ** LSP support (rls or rust-analyzer)
This module supports LSP integration. For it to work you'll need: This module supports LSP integration. For it to work you'll need:
1. Either [[https://github.com/rust-analyzer/rust-analyzer][rust-analyzer]] or [[https://github.com/rust-lang/rls][the Rust Language Server]] installed (e.g. through your 1. Either [[https://github.com/rust-analyzer/rust-analyzer][rust-analyzer]] or [[https://github.com/rust-lang/rls][the Rust Language Server]] installed (e.g. through your
OS package manager). OS package manager).
2. The =:tools lsp= module enabled. 2. The [[doom-module:][:tools lsp]] module enabled.
3. The ~+lsp~ flag on this module enabled. 3. The [[doom-module:][+lsp]] flag on this module enabled.
** Format on save ** Format on save
Enable the [[file:../../../modules/editor/format/README.org][:editor format]] module's =+onsave= flag to get formatting on save with Enable [[doom-module:][:editor format +onsave]] to get formatting on save with =rustfmt=. No
rustfmt. No additional configuration is necessary. additional configuration is necessary.
** Keybinds ** Keybinds
| Binding | Description | | Binding | Description |
|---------------------+-----------------------------| |---------------------+-----------------------------|
| ~<localleader> b a~ | ~cargo audit~ | | =<localleader> b a= | ~cargo audit~ |
| ~<localleader> b b~ | ~cargo build~ | | =<localleader> b b= | ~cargo build~ |
| ~<localleader> b B~ | ~cargo bench~ | | =<localleader> b B= | ~cargo bench~ |
| ~<localleader> b c~ | ~cargo check~ | | =<localleader> b c= | ~cargo check~ |
| ~<localleader> b C~ | ~cargo clippy~ | | =<localleader> b C= | ~cargo clippy~ |
| ~<localleader> b d~ | ~cargo doc~ | | =<localleader> b d= | ~cargo doc~ |
| ~<localleader> b n~ | ~cargo update~ | | =<localleader> b n= | ~cargo update~ |
| ~<localleader> b o~ | ~cargo outdated~ | | =<localleader> b o= | ~cargo outdated~ |
| ~<localleader> b r~ | ~cargo run~ | | =<localleader> b r= | ~cargo run~ |
| ~<localleader> t a~ | ~cargo test~ | | =<localleader> t a= | ~cargo test~ |
| ~<localleader> t t~ | ~run current test~ | | =<localleader> t t= | ~run current test~ |
* TODO Configuration * TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** Enable RLS by default ** Enable RLS by default
If both =rls= and =rust-analyzer= are present on your system, =rust-analyzer= is If both =rls= and =rust-analyzer= are present on your system, =rust-analyzer= is
selected by default. Modify ~rustic-lsp-server~ to change the default: used by default. Modify ~rustic-lsp-server~ to change the default:
#+begin_src emacs-lisp
#+BEGIN_SRC elisp
;; in $DOOMDIR/config.el ;; in $DOOMDIR/config.el
(after! rustic (after! rustic
(setq rustic-lsp-server 'rls)) (setq rustic-lsp-server 'rls))
#+END_SRC #+end_src
** Enabling eglot support for Rust ** Enabling eglot support for Rust
Doom's =:tools lsp= module has an =+eglot= flag. Enable it and this module will Doom's [[doom-module:][:tools lsp]] module has an [[doom-module:][+eglot]] flag. Enable it and this module will use
use eglot instead. eglot instead.
* Troubleshooting * Troubleshooting
[[doom-report:][Report an issue?]]
** error[E0670]: `async fn` is not permitted in the 2015 edition ** error[E0670]: `async fn` is not permitted in the 2015 edition
You may be seeing this error, despite having ~edition = "2018"~ in your You may be seeing this error, despite having ~edition = "2018"~ in your
=Cargo.toml=. This error actually originates from ~rustfmt~, which the LSP =Cargo.toml=. This error actually originates from ~rustfmt~, which the LSP
server tries to invoke on save (if you have ~rustic-format-on-save~ or =:editor server tries to invoke on save (if you have ~rustic-format-on-save~ or
format= enabled). [[doom-module:][:editor format]] enabled).
To fix this your project needs a =rustfmt.toml= with ~edition = "2018"~ in it. To fix this your project needs a =rustfmt.toml= with ~edition = "2018"~ in it.
* 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,57 +1,82 @@
#+TITLE: lang/scala ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang scala][Issues]] ↖ [[doom-module-source:lang/scala][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: October 14, 2020 --------------------------------------------------------------------------------
#+SINCE: v1.3 #+TITLE: :lang scala
#+STARTUP: inlineimages #+SUBTITLE: Java, but good
#+CREATED: May 12, 2016
#+SINCE: 1.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#lsp-integration][=+lsp= Integration]]
- [[#prerequisites][Prerequisites]]
- [[#coursier][Coursier]]
- [[#metals][Metals]]
- [[#features][Features]]
- [[#notes][Notes]]
* Description
This module adds [[https://www.scala-lang.org][scala]] and [[https://www.scala-sbt.org/][sbt]] support to Doom Emacs. This module adds [[https://www.scala-lang.org][scala]] and [[https://www.scala-sbt.org/][sbt]] support to Doom Emacs.
** Module Flags Through the power of [[https://scalameta.org/metals/docs/editors/overview.html][Metals]] (LSP) this module offers:
+ =+lsp= Enables integration for the metals LSP server. - Goto Definition
- Completions
- Hover
- Paremeter Hints
- Find References
- Run/Debug
- Find Implementations
- Rename Symbol
- Code Actions
- Document Symbols
- Formatting
- Folding
- Organize Imports
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
* =+lsp= Integration ** Module flags
- +lsp ::
Enable LSP support for ~scala-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports metals).
** Prerequisites ** Packages
- [[doom-package:][sbt-mode]]
- [[doom-package:][scala-mode]]
- [[doom-package:][lsp-metals]] if [[doom-module:][+lsp]]
** 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.]]
** =+lsp= Integration
To set up LSP support for Scala you'll need the Metals LSP server. To install it
you need Coursier installed first:
*** Coursier *** Coursier
Note: Coursier is only required to install Metals. If system is running arch Coursier is only required to install Metals. If you're on Arch linux this step
linux this step can be safely skipped. can be skipped.
**** Ubuntu / Debian / Fedora **** Ubuntu / Debian / Fedora
#+BEGIN_SRC sh #+begin_src sh
curl -fLo cs https://git.io/coursier-cli-linux && curl -fLo cs https://git.io/coursier-cli-linux &&
chmod +x cs && chmod +x cs &&
./cs ./cs
#+END_SRC #+end_src
**** MacOS **** MacOS
#+BEGIN_SRC sh #+begin_src sh
curl -fLo cs https://git.io/coursier-cli-macos && curl -fLo cs https://git.io/coursier-cli-macos &&
chmod +x cs && chmod +x cs &&
(xattr -d com.apple.quarantine cs || true) && (xattr -d com.apple.quarantine cs || true) &&
./cs ./cs
#+END_SRC #+end_src
**** Arch **** Arch Linux
#+BEGIN_SRC sh #+begin_src sh
yay -S coursier yay -S coursier
#+END_SRC #+end_src
*** Metals *** Metals
**** Ubuntu / Debian / Fedora / MacOS **** Ubuntu / Debian / Fedora / MacOS
Note: Update following command to latest version of metals [[https://scalameta.org/metals/docs/editors/emacs.html][found here]]. Update following command to latest version of metals [[https://scalameta.org/metals/docs/editors/emacs.html][found here]].
#+begin_src sh #+begin_src sh
coursier bootstrap \ coursier bootstrap \
@ -64,31 +89,34 @@ coursier bootstrap \
-o /usr/local/bin/metals-emacs -f -o /usr/local/bin/metals-emacs -f
#+end_src #+end_src
**** Arch **** Arch Linux
#+BEGIN_SRC sh #+begin_src sh
yay -S metals yay -S metals
#+END_SRC #+end_src
** Features * TODO Usage
According to [[https://scalameta.org/metals/docs/editors/overview.html]] it adds #+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
+ Goto Definition * TODO Configuration
+ Completions #+begin_quote
+ Hover 🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
+ Paremeter Hints #+end_quote
+ Find References
+ Run/Debug
+ Find Implementations
+ Rename Symbol
+ Code Actions
+ Document Symbols
+ Formatting
+ Folding
+ Organize Imports
** Notes * Troubleshooting
[[doom-report:][Report an issue?]]
+ Projects are required to have scala version =2.11.12=, =2.12.8=, =2.13.0= or greater. - Projects are required to have scala version =2.11.12=, =2.12.8=, =2.13.0= or
+ Latest version of sbt is recommended. greater.
+ Running =M-x lsp-metals-doctor-run= helps diagnose problems. - Latest version of sbt is recommended.
+ Full reference here: https://scalameta.org/metals/docs/editors/emacs.html - Running ~M-x lsp-metals-doctor-run~ helps diagnose problems.
- Full reference here: https://scalameta.org/metals/docs/editors/emacs.html
* 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,60 +1,83 @@
#+TITLE: lang/scheme ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang scheme][Issues]] ↖ [[doom-module-source:lang/scheme][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: July 23, 2019 --------------------------------------------------------------------------------
#+SINCE: v2.0.9 #+TITLE: :lang scheme
#+STARTUP: inlineimages #+SUBTITLE: A fully conniving family of lisps
#+CREATED: July 23, 2019
#+SINCE: 21.12.0 (#1588)
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module provides support for the Scheme family of Lisp languages, powered by
- [[#module-flags][Module Flags]] [[https://www.nongnu.org/geiser/geiser_1.html#introduction][geiser]].
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#commands][Commands]]
- [[#geiser][Geiser]]
* Description ** Maintainers
This module provides an environment for hacking and having fun in scheme. It is /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
powered by [[https://www.nongnu.org/geiser/geiser_1.html#introduction][geiser]].
** Module Flags ** Module flags
+ =+chez= - +chez ::
+ =+chibi= - +chibi ::
+ =+chicken= - +chicken ::
+ =+gambit= - +gambit ::
+ =+gauche= - +gauche ::
+ =+guile= - +guile ::
+ =+kawa= - +kawa ::
+ =+mit= - +mit ::
+ =+racket= - +racket ::
** Plugins ** Packages
+ [[https://gitlab.com/jaor/geiser][geiser]] - [[doom-package:][flycheck-guile]] if [[doom-module:][+guile]] and [[doom-module:][:checkers syntax]]
+ [[https://github.com/nbfalcon/macrostep-geiser][macrostep-geiser]] - [[doom-package:][geiser]]
+ [[https://gitlab.com/emacs-geiser/chez][geiser-chez]] (if =+chez=) - [[doom-package:][geiser-chez]] if [[doom-module:][+chez]]
+ [[https://gitlab.com/emacs-geiser/chibi][geiser-chibi]] (if =+chibi=) - [[doom-package:][geiser-chibi]] if [[doom-module:][+chibi]]
+ [[https://gitlab.com/emacs-geiser/chicken][geiser-chicken]] (if =+chicken=) - [[doom-package:][geiser-chicken]] if [[doom-module:][+chicken]]
+ [[https://gitlab.com/emacs-geiser/gambit][geiser-gambit]] (if =+gambit=) - [[doom-package:][geiser-gambit]] if [[doom-module:][+gambit]]
+ [[https://gitlab.com/emacs-geiser/gauche][geiser-gauche]] (if =+gauche=) - [[doom-package:][geiser-gauche]] if [[doom-module:][+gauche]]
+ [[https://gitlab.com/emacs-geiser/guile][geiser-guile]] (if =+guile=) - [[doom-package:][geiser-guile]] if [[doom-module:][+guile]]
+ [[https://github.com/flatwhatson/flycheck-guile][flycheck-guile]] (if =+guile= and =:checkers syntax=) - [[doom-package:][geiser-kawa]] if [[doom-module:][+kawa]]
+ [[https://gitlab.com/emacs-geiser/kawa][geiser-kawa]] (if =+kawa=) - [[doom-package:][geiser-mit]] if [[doom-module:][+mit]]
+ [[https://gitlab.com/emacs-geiser/mit][geiser-mit]] (if =+mit=) - [[doom-package:][geiser-racket]] if [[doom-module:][+racket]]
+ [[https://gitlab.com/emacs-geiser/racket][geiser-racket]] (if =+racket=) - [[doom-package:][macrostep-geiser]]
* Prerequisites ** Hacks
This module requires you to have at least one of the supported schemes, namely: /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.]]
Depending on which flags you have enabled on this module, you'll need the
associated Schemes, namely:
- [[https://www.gnu.org/software/guile][Guile]] 2.2.0 or better - [[https://www.gnu.org/software/guile][Guile]] 2.2.0 or better
- [[https://call-cc.org][Chicken]] 4.8.0 or better - [[https://call-cc.org][Chicken]] 4.8.0 or better
- [[https://www.gnu.org/software/mit-scheme][MIT/GNU Scheme]] 9.1.1 or better - [[https://www.gnu.org/software/mit-scheme][MIT/GNU Scheme]] 9.1.1 or better
- [[https://synthcode.com/scheme/chibi][Chibi Scheme]] 0.7.3 or better - [[https://synthcode.com/scheme/chibi][Chibi Scheme]] 0.7.3 or better
- [[https://www.scheme.com][Chez Scheme]] 9.4 or better - [[https://www.scheme.com][Chez Scheme]] 9.4 or better
Their executables must be present in your path for geiser to work properly. Their executables must be present in your =$PATH= for [[doom-package:][geiser]] to work properly.
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features
** Commands
*** Geiser
| command | key / ex command | description | | command | key / ex command | description |
|---------------------+------------------+----------------------| |---------------------+-----------------------+----------------------|
| ~+scheme/open-repl~ | =:repl= | Open the Scheme Repl | | ~+scheme/open-repl~ | [[kbd:][<leader> o r]], =:repl= | Open the Scheme Repl |
| | | |
* 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,47 +1,71 @@
#+TITLE: lang/sh ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang sh][Issues]] ↖ [[doom-module-source:lang/sh][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: December 19, 2015 --------------------------------------------------------------------------------
#+SINCE: v0.7 #+TITLE: :lang sh
#+STARTUP: inlineimages #+SUBTITLE: She sells {ba,z,fi}sh shells on the C xor
#+CREATED: September 28, 2015
#+SINCE: 0.7
* Table of Contents :TOC: * Description :unfold:
- [[#description][Description]] This module adds support for shell scripting languages (including Powershell and
- [[#module-flags][Module Flags]] Fish script) to Doom Emacs.
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description - Code completion ([[doom-package:][company-shell]])
This module adds support for shell scripting languages. - Syntax Checking ([[doom-package:][flycheck]])
+ Code completion (company-shell) ** Maintainers
+ Syntax Checking (flycheck) - [[doom-user:][@hlissner]]
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
+ =+lsp= Enables LSP support for sh-mode. This requires the =:tools lsp= module
to be enabled and [[https://github.com/mads-hartmann/bash-language-server][bash-language-server]] to be installed on your system.
+ =+fish= Add syntax highlighting for fish script files.
+ =+powershell= Add syntax highlighting for Powershell script files .ps1 and .psm1
** Plugins ** Module flags
+ [[https://github.com/Alexander-Miller/company-shell][company-shell]]* (=:completion company=) - +fish ::
+ [[https://github.com/wwwjfy/emacs-fish][fish-mode]]* (=+fish=) Add syntax highlighting for fish script files.
+ [[https://github.com/jschaf/powershell.el][powershell-mode]]* (=+powershell=) - +lsp ::
Enable LSP support for ~sh-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports bash-language-server).
- +powershell ::
Add syntax highlighting for Powershell script files (=.ps1= and =.psm1=).
** Packages
- [[doom-package:][company-shell]] if [[doom-module:][:completion company]]
- [[doom-package:][fish-mode]] if [[doom-module:][+fish]]
- [[doom-package:][powershell-mode]] if [[doom-module:][+powershell]]
** Hacks ** Hacks
+ Interpolated variables are fontified. - Interpolated variables are fontified.
** 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.]]
* Prerequisites
This module has several optional dependencies: This module has several optional dependencies:
+ [[https://github.com/koalaman/shellcheck][shellcheck]]: Enables advanced shell script linting. - [[https://github.com/koalaman/shellcheck][shellcheck]]: Enables advanced shell script linting.
+ [[https://github.com/mads-hartmann/bash-language-server][bash-language-server]]: Enables LSP support (with =+lsp= flag). - [[https://github.com/mads-hartmann/bash-language-server][bash-language-server]]: Enables LSP support (with [[doom-module:][+lsp]] flag).
+ With the =:tools debugger= module - With the [[doom-module:][:tools debugger]] module
+ [[http://bashdb.sourceforge.net/][bashdb]]: Enables debugging for bash scripts - [[http://bashdb.sourceforge.net/][bashdb]]: Enables debugging for bash scripts
+ [[https://github.com/rocky/zshdb][zshdb]]: Enables debugging for zsh scripts - [[https://github.com/rocky/zshdb][zshdb]]: Enables debugging for zsh scripts
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Features
* TODO Configuration * TODO Configuration
* TODO Troubleshooting #+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,39 +1,52 @@
#+TITLE: lang/sml ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang sml][Issues]] ↖ [[doom-module-source:lang/sml][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: March 29, 2020 --------------------------------------------------------------------------------
#+SINCE: v3.0 #+TITLE: :lang sml
#+STARTUP: inlineimages nofold #+SUBTITLE: ...
#+CREATED: Mar 30, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] THis module adds [[https://smlfamily.github.io/][SML (Standard ML) programming language]] support to Doom Emacs.
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module has no description yet.
** Maintainers ** Maintainers
This module has no dedicated maintainers. *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
This module provides no flags. /This module has no flags./
** Plugins ** Packages
+ sml-mode - [[doom-package:][company-mlton]] if [[doom-module:][:completion company]]
+ company-mlton (=:completion company=) - [[doom-package:][sml-mode]]
* TODO Prerequisites ** Hacks
# Document how to install sml program and MLton /No hacks documented for this module./
* TODO Features ** TODO Changelog
# An in-depth list of features, how to use them, and their dependencies. # 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.]]
This module requires =sml= and =MLton=.
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration * 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 * Troubleshooting
# Common issues and their solution, or places to look for help. /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,47 +1,79 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang solidity][Issues]] ↖ [[doom-module-source:lang/solidity][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang solidity #+TITLE: :lang solidity
#+SUBTITLE: Do you need a blockchain? No.
#+CREATED: May 19, 2018
#+SINCE: 21.12.0 (#599)
This module adds [[https://github.com/ethereum/solidity][Solidity]] support through [[https://github.com/ethereum/emacs-solidity][solidity-mode]] * Description :unfold:
This module adds [[https://github.com/ethereum/solidity][Solidity]] support to Doom Emacs.
+ Syntax-checking (~flycheck~) - Syntax-checking ([[doom-package:][flycheck]])
+ Code completion ([[https://github.com/ssmolkin1/company-solidity][company-solidity]]) - Code completion ([[doom-package:][company-solidity]])
+ Gas estimation (~C-c C-g~) - Gas estimation (~C-c C-g~)
* Table of Contents :TOC: ** Maintainers
- [[#module-flags][Module Flags]] *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
- [[#prerequisites][Prerequisites]]
- [[#solc][Solc]]
- [[#solium][Solium]]
- [[#todo][TODO]]
* Module Flags ** Module flags
This module provides no flags. /This module has no flags./
** Packages
- [[doom-package:][company-solidity]] if [[doom-module:][:completion company]]
- [[doom-package:][solidity-flycheck]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][solidity-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.]]
* Prerequisites
This module requires one or both linters for syntax checking: This module requires one or both linters for syntax checking:
- [[https://github.com/ethereum/solc-js][Solc]]
+ [[https://github.com/ethereum/solc-js][Solc]] - [[http://solium.readthedocs.io/en/latest/user-guide.html#installation][Solium]]
+ [[http://solium.readthedocs.io/en/latest/user-guide.html#installation][Solium]]
If both are enabled *Solc* is run first, then *Solium* if *Solc* catches no If both are enabled *Solc* is run first, then *Solium* if *Solc* catches no
errors. errors.
** Solc ** Solc
#+BEGIN_SRC sh #+begin_src sh
npm install -g solc npm install -g solc
#+END_SRC #+end_src
** Solium ** Solium
#+BEGIN_SRC sh #+begin_src sh
npm install -g solium npm install -g solium
#+END_SRC #+end_src
By default *solium* looks for ~.soliumrc.json~ in the project directory, but you By default *solium* looks for =.soliumrc.json= in the project directory, but you
can set it to your own ~.soliumrc.json~ with this in your private doom can set it to your own =.soliumrc.json= with:
~config.el~ #+begin_src emacs-lisp
;; in $DOOMDIR/config.el
#+BEGIN_SRC emacs-lisp
(setq flycheck-solidity-solium-soliumrcfile "~/.soliumrc.json") (setq flycheck-solidity-solium-soliumrcfile "~/.soliumrc.json")
#+END_SRC #+end_src
* TODO * TODO Usage
+ Snippets #+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,60 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang swift][Issues]] ↖ [[doom-module-source:lang/swift][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang swift
#+SUBTITLE: We asked for emoji variables?
#+CREATED: June 15, 2015
#+SINCE: 0.7
* Description :unfold:
This module adds support for the [[https://developer.apple.com/swift/][Swift programming language]] to Doom Emacs.
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +lsp ::
Enable LSP support for ~swift-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports sourcekit).
** Packages
- [[doom-package:][swift-mode]]
- if [[doom-module:][+lsp]]
- [[doom-package:][lsp-sourcekit]]
- else
- [[doom-package:][company-sourcekit]] if [[doom-module:][:completion company]]
- [[doom-package:][flycheck-sourcekit]] if [[doom-module:][:checkers syntax]]
** 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./
* 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 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,54 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang terra][Issues]] ↖ [[doom-module-source:lang/terra][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang terra
#+SUBTITLE: Earth and Moon in alignment for performance.
#+CREATED: March 25, 2019
#+SINCE: 21.12.0 (#1283)
* TODO Description :unfold:
/(No description yet)/
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][company-lua]] if [[doom-module:][:completion company]]
- [[doom-package:][terra-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./
* TODO Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
#+begin_quote
🔨 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]]
#+end_quote
* 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,73 @@
← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang web][Issues]] ↖ [[doom-module-source:lang/web][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
--------------------------------------------------------------------------------
#+TITLE: :lang web
#+SUBTITLE: The tubes
#+CREATED: June 15, 2015
#+SINCE: 0.7
* Description :unfold:
This module adds support for various web languages, including HTML5, CSS,
SASS/SCSS, Pug/Jade/Slim, and HAML, as well as various web frameworks, like
ReactJS, Wordpress, Jekyll, Phaser, AngularJS, Djano, and more.
** Maintainers
- @hlissner
[[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +lsp ::
Enable LSP support for ~web-mode~ and ~css-mode~. Requires [[doom-module:][:tools lsp]] and a
langserver.
** Packages
- [[doom-package:][company-web]] if [[doom-module:][:completion company]]
- [[doom-package:][counsel-css]] if [[doom-module:][:completion ivy]]
- [[doom-package:][emmet-mode]]
- [[doom-package:][haml-mode]]
- [[doom-package:][helm-css-scss]] if [[doom-module:][:completion helm]]
- [[doom-package:][less-css-mode]]
- [[doom-package:][pug-mode]]
- [[doom-package:][rainbow-mode]]
- [[doom-package:][sass-mode]]
- [[doom-package:][slim-mode]]
- [[doom-package:][stylus-mode]]
- [[doom-package:][sws-mode]]
- [[doom-package:][web-mode]]
** 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
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
#+begin_quote
🔨 /No installation steps have been documented./ [[doom-contrib-module:][Document them?]]
#+end_quote
* 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,38 +1,53 @@
#+TITLE: lang/yaml ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang yaml][Issues]] ↖ [[doom-module-source:lang/yaml][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: April 23, 2020 --------------------------------------------------------------------------------
#+SINCE: v3.0.0 #+TITLE: :lang yaml
#+STARTUP: inlineimages nofold #+SUBTITLE: JSON, but readable
#+CREATED: April 24, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]] This module provides support for the [[https://yaml.org/][YAML file format]] to Doom Emacs.
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module provides support for the [[https://yaml.org/][YAML file format]].
** Maintainers ** Maintainers
This module has no dedicated maintainers. /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags ** Module flags
+ =+lsp= Enables integration with LSP servers. Requires the =:tools lsp= module to be enabled. - +lsp ::
Enable LSP support for ~yaml-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://github.com/redhat-developer/yaml-language-server][yaml-language-server]]).
** Plugins ** Packages
+ [[https://github.com/yoshiki/yaml-mode][yaml-mode]] - [[doom-package:][yaml-mode]]
* Prerequisites ** Hacks
This module has no prerequisites. /No hacks documented for this module./
* TODO Features ** TODO Changelog
# An in-depth list of features, how to use them, and their dependencies. # 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 * 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 * TODO Troubleshooting
# Common issues and their solution, or places to look for help. /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,66 +1,86 @@
#+TITLE: lang/zig ← [[doom-module-index:][Back to module index]] ↙ [[doom-module-issues:::lang zig][Issues]] ↖ [[doom-module-source:lang/zig][Source]] ± [[doom-suggest-edit:][Suggest edits]] ? [[doom-help-modules:][Help]]
#+DATE: March 18, 2021 --------------------------------------------------------------------------------
#+SINCE: v2.0.9 #+TITLE: :lang zig
#+STARTUP: inlineimages nofold #+SUBTITLE: C, but simpler
#+CREATED: April 05, 2021
#+SINCE: 21.12.0 (#4827)
* Table of Contents :TOC_3:noexport: * Description :unfold:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#lsp-support][LSP support]]
- [[#keybinds][Keybinds]]
- [[#configuration][Configuration]]
- [[#customize-zls-path][Customize zls path]]
* Description
This module adds [[https://ziglang.org/][Zig]] support, with optional (but recommended) LSP support via This module adds [[https://ziglang.org/][Zig]] support, with optional (but recommended) LSP support via
[[https://github.com/zigtools/zls][zls]]. [[https://github.com/zigtools/zls][zls]].
+ Syntax highlighting - Syntax highlighting
+ Syntax-checking (~flycheck~) - Syntax-checking ([[doom-package:][flycheck]])
+ Code completion and LSP integration (~zls~) - Code completion and LSP integration (~zls~)
** Maintainers ** Maintainers
+ [[https://github.com/bnjmnt4n][@bnjmnt4n]] (Author) - [[doom-user:][@bnjmnt4n]]
** Module Flags [[doom-contrib-maintainer:][Become a maintainer?]]
+ =+lsp= Enables integration for the zls LSP server. It is highly recommended
you use this.
** Plugins ** Module flags
+ [[https://github.com/ziglang/zig-mode][zig-mode]] - +lsp ::
Enables integration for the zls LSP server. It is highly recommended you use
this.
** Packages
- [[doom-package:][zig-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.]]
* Prerequisites
To get started with Zig, you need the ~zig~ tool. Pre-built binaries for most To get started with Zig, you need the ~zig~ tool. Pre-built binaries for most
systems are available for download from [[https://ziglang.org/download/]] or from systems are available for download from [[https://ziglang.org/download/]] or from
[[https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager][system package managers]]. [[https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager][system package managers]].
zls is a language server for Zig, which provides code completion, =zls= is a language server for Zig, which provides code completion,
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features
** LSP support ** LSP support
This module supports LSP integration. For it to work you'll need: This module supports LSP integration. For it to work you'll need:
1. zls installed. 1. zls installed,
2. The =:tools lsp= module enabled. Only =lsp-mode= is supported for now. 2. The [[doom-module:][:tools lsp]] module enabled. Only [[doom-package:][lsp-mode]] is supported for now,
3. The ~+lsp~ flag on this module enabled. 3. The [[doom-module:][+lsp]] flag on this module enabled.
** Keybinds ** Keybinds
| Binding | Description | | Binding | Description |
|-------------------+---------------------| |-------------------+---------------------|
| ~<localleader> b~ | ~zig-compile~ | | [[kbd:][<localleader> b]] | ~zig-compile~ |
| ~<localleader> f~ | ~zig-format-buffer~ | | [[kbd:][<localleader> f]] | ~zig-format-buffer~ |
| ~<localleader> r~ | ~zig-run~ | | [[kbd:][<localleader> r]] | ~zig-run~ |
| ~<localleader> t~ | ~zig-test-buffer~ | | [[kbd:][<localleader> t]] | ~zig-test-buffer~ |
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
** Customize zls path ** Customize zls path
To customize the path of the =zls= executable, modify ~lsp-zig-zls-executable~. To customize the path of the =zls= executable, modify ~lsp-zig-zls-executable~:
#+begin_src emacs-lisp
#+BEGIN_SRC elisp
;; in $DOOMDIR/config.el ;; in $DOOMDIR/config.el
(setq lsp-zig-zls-executable "~/path/to/zls") (setq lsp-zig-zls-executable "~/path/to/zls")
#+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