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
#+CREATED: August 3, 2021
#+SINCE: v21.12.0
#+SETUPFILE: ../../docs/.setupfile.org
#+TITLE: :lang
#+CREATED: August 03, 2021
#+SINCE: 21.12.0
* 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 @@
#+TITLE: :lang agda
← [[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
#+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
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
#+DATE: April 13, 2021
#+SINCE: v3.0.0
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang beancount
#+SUBTITLE: Mind the GAAP
#+CREATED: April 13, 2021
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
* Description :unfold:
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]].
+ Supports [[https://github.com/polarmutex/beancount-language-server][beancount-language-server]] (if module is enabled with the =+lsp=
flag).
** Maintainers
This module has no dedicated maintainers.
- @hlissner
** Module Flags
+ =+lsp= Enable support for [beancount-language-server]. Requires Doom's =:tools
lsp= module.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/beancount/beancount-mode][beancount]]
** Module flags
- +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
+ Associates the material =attach_money= icon with *.beancount files in the
=all-the-icons= package.
- Associates the material =attach_money= icon with =*.beancount= files in the
[[doom-package:][all-the-icons]] package.
* Prerequisites
This module has no hard prerequisites, but assumes you have [[https://github.com/beancount/beancount][beancount]] installed
in order to generate reports with ~bean-report~.
** 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/beancount/beancount][beancount]], for generating reports
- [[https://beancount.github.io/fava/][fava]], for a web interface for your ledgers
* TODO Usage
#+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
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
* TODO Configuration
# How to configure this module, including common problems and how to address them.
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Troubleshooting
# Common issues and their solution, or places to look for help.
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,73 +1,71 @@
#+TITLE: lang/cc
#+DATE: January 16, 2017
#+SINCE: v2.0
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang cc
#+SUBTITLE: C > C++ == 1
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport:
- [[#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
* Description :unfold:
This module adds support for the C-family of languages: C, C++, and Objective-C.
+ Code completion (~company-irony~)
+ eldoc support (~irony-eldoc~)
+ Syntax-checking (~flycheck-irony~)
+ Code navigation (~rtags~)
+ 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]])
+ Several improvements to C++11 indentation and syntax highlighting.
- Code completion (~company-irony~)
- eldoc support (~irony-eldoc~)
- Syntax-checking (~flycheck-irony~)
- Code navigation (~rtags~)
- 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]])
- Several improvements to C++11 indentation and syntax highlighting.
** Module Flags
+ ~+lsp~ Disables irony+rtags and replaces them with LSP (ccls by default). This
requires the =:tools lsp= module.
** Maintainers
- [[doom-user:][@hlissner]]
** Plugins
+ [[https://github.com/Kitware/CMake][cmake-mode]]
+ [[https://github.com/chachi/cuda-mode][cuda-mode]]
+ [[https://github.com/liblit/demangle-mode][demangle-mode]]
+ [[https://github.com/jart/disaster][disaster]]
+ [[https://github.com/ludwigpacifici/modern-cpp-font-lock][modern-cpp-font-lock]]
+ [[https://github.com/salmanebah/opencl-mode][opencl-mode]]
+ [[https://github.com/jimhourihan/glsl-mode][glsl-mode]]*
+ [[https://github.com/guidoschmidt/company-glsl][company-glsl]]*
+ =+lsp=
+ [[https://github.com/MaskRay/emacs-ccls][ccls]] if =:tools lsp= has *no* =+eglot= flag
+ =-lsp=
+ [[https://github.com/Sarcasm/irony-mode][irony]]
+ [[https://github.com/ikirill/irony-eldoc][irony-eldoc]]
+ [[https://github.com/Sarcasm/flycheck-irony][flycheck-irony]]
+ [[https://github.com/Sarcasm/company-irony][company-irony]]
+ [[https://github.com/hotpxl/company-irony-c-headers][company-irony-c-headers]]
+ [[https://github.com/Andersbakken/rtags][rtags]]
+ [[https://github.com/Andersbakken/rtags][ivy-rtags]]
+ [[https://github.com/Andersbakken/rtags][helm-rtags]]
[[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +lsp ::
Enable LSP support for ~c-mode~, ~c++-mode~, and ~objc-mode~. Requires [[doom-module:][:tools
lsp]] and a langserver (supports ccls, clangd, and cquery). Replaces irony &
rtags.
** Packages
- [[doom-package:][cmake-mode]]
- [[doom-package:][company-glsl]]
- [[doom-package:][cuda-mode]]
- [[doom-package:][demangle-mode]]
- [[doom-package:][disaster]]
- [[doom-package:][glsl-mode]]
- [[doom-package:][modern-cpp-font-lock]]
- [[doom-package:][opencl-mode]]
- if [[doom-module:][+lsp]]
- [[doom-package:][ccls]] if [[doom-module:][:tools lsp -eglot]]
- 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.
+ If =+lsp= is enabled, you need one of *clangd v9+* or *ccls*.
+ If =+lsp= is *not* enabled, you need *irony-server* and *rtags*.
+ Other features in this module depend on:
+ (optional) glslangValidator, for GLSL completion in ~glsl-mode~
+ (optional) cmake, for code completion in ~cmake-mode~
+ You will need a C/C++ compiler, like =gcc= or =clang=.
- If [[doom-module:][+lsp]] is enabled, you need one of *clangd v9+* or *ccls*.
- If [[doom-module:][+lsp]] is *not* enabled, you need *irony-server* and *rtags*.
- Other features in this module depend on:
- (optional) glslangValidator, for GLSL completion in ~glsl-mode~
- (optional) cmake, for code completion in ~cmake-mode~
- You will need a C/C++ compiler, like =gcc= or =clang=.
** LSP servers
=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
available through your OS' package manager.
- 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]]
- Fedora & CentOS/RHEL 8+: ~# dnf install clang-tools-extra~
- openSUSE: ~# zypper install clang~
- Arch: ~# pacman -S clang~
- Fedora & CentOS/RHEL 8+: ~$ dnf install clang-tools-extra~
- openSUSE: ~$ zypper install clang~
- Arch: ~$ pacman -S clang~
- 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!
- 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
@ -97,14 +95,13 @@ irony-install-server~ in Emacs.
*** macOS
Due to linking issues, macOS users must compile irony-server manually:
#+BEGIN_SRC sh
#+begin_src sh
brew install cmake
brew install llvm
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
pushd irony-mode/server/build
@ -121,7 +118,7 @@ install_name_tool -change @rpath/libclang.dylib \
# Cleanup
popd
rm -rf irony-mode
#+END_SRC
#+end_src
** rtags
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
isn't already running). If you prefer to run it yourself:
#+BEGIN_SRC sh
#+begin_src sh
rdm &
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
By default, a set of default compile settings are defined in
~+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
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
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
#+END_SRC
#+end_src
#+BEGIN_SRC sh
#+begin_src sh
# For non-CMake projects
make clean
bear make
#+END_SRC
#+end_src
Use ~M-x +cc/reload-compile-db~ to reload your compile db in an already-open
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.
From the bear [[https://github.com/rizsotto/Bear#empty-compilation-database-on-os-x-captain-or-fedora][readme]]:
#+begin_quote
Security extension/modes on different operating systems might disable library
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.
#+end_quote
A workaround might be to install ~make~ via Homebrew which puts ~gmake~
under ~/usr/local/~.
#+BEGIN_SRC sh
A workaround might be to install ~make~ via Homebrew which puts ~gmake~ under
=/usr/local/=:
#+begin_src sh
brew install make
#+END_SRC
#+BEGIN_SRC sh
#+end_src
#+begin_src sh
make clean
bear gmake
#+END_SRC
#+end_src
Additional info:
+ [[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/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]]
** Configure LSP servers
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
=init.el= file.
[[doom-package:][lsp-mode]] by default, [[doom-package:][eglot]] if you have [[doom-module:][:tools lsp +eglot]] active in
=$DOOMDIR/init.el= file.
*** LSP-mode with clangd
#+begin_src emacs-lisp
(after! lsp-clangd
(setq lsp-clients-clangd-args
'("-j=3"
"--background-index"
"--clang-tidy"
"--completion-style=detailed"
"--header-insertion=never"
"--header-insertion-decorators=0"))
(set-lsp-priority! 'clangd 2))
#+end_src
#+BEGIN_SRC elisp
(setq lsp-clients-clangd-args '("-j=3"
"--background-index"
"--clang-tidy"
"--completion-style=detailed"
"--header-insertion=never"
"--header-insertion-decorators=0"))
(after! lsp-clangd (set-lsp-priority! 'clangd 2))
#+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
#+BEGIN_SRC elisp
#+begin_src emacs-lisp
(after! ccls
(setq ccls-initialization-options '(:index (:comments 2) :completion (:detailedLabel t)))
(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
documentation]] lists available options, use =t= for ~true~, =:json-false= for
~false~, and =:json-null= for ~null~.
*** Eglot with clangd
#+BEGIN_SRC elisp
#+begin_src emacs-lisp
(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
it is the last =set-eglot-client! 'cc-mode= in your config).
*** Eglot with ccls
#+BEGIN_SRC elisp
#+begin_src emacs-lisp
(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
is the last =set-eglot-client! 'cc-mode= in your config). [[https://github.com/MaskRay/ccls/wiki/Customization#--initjson][CCLS documentation]]
lists available options
* Appendix
** Eglot specific bindings
When using =+lsp= and =:tools (lsp +eglot)=, lsp-mode is replaced with eglot,
and an additional function to get inheritance type hierarchy is added
| Binding | Description |
|------------------------------+--------------------------------------------------|
| ~<localleader> c t~ | ~Display inheritance type hierarchy (upwards)~ |
| ~<prefix> <localleader> c t~ | ~Display inheritance type hierarchy (downwards)~ |
* 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,115 +1,122 @@
#+TITLE: lang/clojure
#+DATE: May 30, 2017
#+SINCE: v2.0
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang clojure
#+SUBTITLE: Java with a lisp
#+CREATED: May 30, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#keybindings][Keybindings]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
* Description :unfold:
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
more
+ Refactoring (~clj-refactor~)
+ Linting (~clj-kondo~), requires ~:checkers syntax~
+ LSP support (~clojure-lsp~)
- Refactoring (~clj-refactor~)
- Linting (~clj-kondo~), requires ~:checkers syntax~
- LSP support (~clojure-lsp~)
** Maintainers
This module has no dedicated maintainers.
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ =+lsp= Enables LSP support, alongside Cider.
** Module flags
- +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
+ [[https://github.com/clojure-emacs/cider][cider]]
+ [[https://github.com/clojure-emacs/clj-refactor.el][clj-refactor]]
+ [[https://github.com/borkdude/flycheck-clj-kondo][flycheck-clj-kondo]]
** Packages
- [[doom-package:][cider]]
- [[doom-package:][clj-refactor]]
- [[doom-package:][flycheck-clj-kondo]] if [[doom-module:][:checkers syntax]]
** 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.
+ 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:
- [[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]]
+ [[https://leiningen.org/][leiningen]] (REPL)
+ [[https://github.com/borkdude/clj-kondo][clj-kondo]] (linter)
+ With =+lsp=
+ [[https://clojure-lsp.github.io/clojure-lsp/][clojure-lsp]]
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
** Keybindings
| Binding | Description |
|---------------------+------------------------------------------------------|
| =<localleader> '= | =cider-jack-in-clj= |
| =<localleader> C= | =cider-connect-cljs= |
| =<localleader> M= | =cider-macroexpand-all= |
| =<localleader> R= | =hydra-cljr-help-menu/body= |
| =<localleader> c= | =cider-connect-clj= |
| =<localleader> e D= | =cider-insert-defun-in-repl= |
| =<localleader> e E= | =cider-insert-last-sexp-in-repl= |
| =<localleader> e R= | =cider-insert-region-in-repl= |
| =<localleader> e b= | =cider-eval-buffer= |
| =<localleader> e d= | =cider-eval-defun-at-point= |
| =<localleader> e e= | =cider-eval-last-sexp= |
| =<localleader> e r= | =cider-eval-region= |
| =<localleader> e u= | =cider-undef= |
| =<localleader> g b= | =cider-pop-back= |
| =<localleader> g g= | =cider-find-var= |
| =<localleader> g n= | =cider-find-ns= |
| =<localleader> h a= | =cider-apropos= |
| =<localleader> h c= | =cider-clojuredocs= |
| =<localleader> h d= | =cider-doc= |
| =<localleader> h j= | =cider-javadoc= |
| =<localleader> h n= | =cider-find-ns= |
| =<localleader> h w= | =cider-clojuredocs-web= |
| =<localleader> i e= | =cider-enlighten-mode= |
| =<localleader> i i= | =cider-inspect= |
| =<localleader> i r= | =cider-inspect-last-result= |
| =<localleader> m "= | =cider-jack-in-cljs= |
| =<localleader> m= | =cider-macroexpand-1= |
| =<localleader> n N= | =cider-browse-ns-all= |
| =<localleader> n n= | =cider-browse-ns= |
| =<localleader> n r= | =cider-ns-refresh= |
| =<localleader> p d= | =cider-pprint-eval-defun-at-point= |
| =<localleader> p D= | =cider-pprint-eval-defun-to-comment= |
| =<localleader> p p= | =cider-pprint-eval-last-sexp= |
| =<localleader> p P= | =cider-pprint-eval-last-sexp-to-comment= |
| =<localleader> p r= | =cider-pprint-eval-last-sexp-to-repl= |
| =<localleader> r B= | =+clojure/cider-switch-to-repl-buffer-and-switch-ns= |
| =<localleader> r L= | =cider-load-buffer-and-switch-to-repl-buffer= |
| =<localleader> r R= | =cider-restart= |
| =<localleader> r b= | =cider-switch-to-repl-buffer= |
| =<localleader> r c= | =cider-find-and-clear-repl-output= |
| =<localleader> r l= | =cider-load-buffer= |
| =<localleader> r n= | =cider-repl-set-ns= |
| =<localleader> r q= | =cider-quit= |
| =<localleader> r r= | =cider-ns-refresh= |
| =<localleader> t a= | =cider-test-rerun-test= |
| =<localleader> t l= | =cider-test-run-loaded-tests= |
| =<localleader> t n= | =cider-test-run-ns-tests= |
| =<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= |
| Keybind | Command |
|-------------------+------------------------------------------------------|
| [[kbd:][<localleader> ']] | ~cider-jack-in-clj~ |
| [[kbd:][<localleader> C]] | ~cider-connect-cljs~ |
| [[kbd:][<localleader> M]] | ~cider-macroexpand-all~ |
| [[kbd:][<localleader> R]] | ~hydra-cljr-help-menu/body~ |
| [[kbd:][<localleader> c]] | ~cider-connect-clj~ |
| [[kbd:][<localleader> e D]] | ~cider-insert-defun-in-repl~ |
| [[kbd:][<localleader> e E]] | ~cider-insert-last-sexp-in-repl~ |
| [[kbd:][<localleader> e R]] | ~cider-insert-region-in-repl~ |
| [[kbd:][<localleader> e b]] | ~cider-eval-buffer~ |
| [[kbd:][<localleader> e d]] | ~cider-eval-defun-at-point~ |
| [[kbd:][<localleader> e e]] | ~cider-eval-last-sexp~ |
| [[kbd:][<localleader> e r]] | ~cider-eval-region~ |
| [[kbd:][<localleader> e u]] | ~cider-undef~ |
| [[kbd:][<localleader> g b]] | ~cider-pop-back~ |
| [[kbd:][<localleader> g g]] | ~cider-find-var~ |
| [[kbd:][<localleader> g n]] | ~cider-find-ns~ |
| [[kbd:][<localleader> h a]] | ~cider-apropos~ |
| [[kbd:][<localleader> h c]] | ~cider-clojuredocs~ |
| [[kbd:][<localleader> h d]] | ~cider-doc~ |
| [[kbd:][<localleader> h j]] | ~cider-javadoc~ |
| [[kbd:][<localleader> h n]] | ~cider-find-ns~ |
| [[kbd:][<localleader> h w]] | ~cider-clojuredocs-web~ |
| [[kbd:][<localleader> i e]] | ~cider-enlighten-mode~ |
| [[kbd:][<localleader> i i]] | ~cider-inspect~ |
| [[kbd:][<localleader> i r]] | ~cider-inspect-last-result~ |
| [[kbd:][<localleader> m "]] | ~cider-jack-in-cljs~ |
| [[kbd:][<localleader> m]] | ~cider-macroexpand-1~ |
| [[kbd:][<localleader> n N]] | ~cider-browse-ns-all~ |
| [[kbd:][<localleader> n n]] | ~cider-browse-ns~ |
| [[kbd:][<localleader> n r]] | ~cider-ns-refresh~ |
| [[kbd:][<localleader> p d]] | ~cider-pprint-eval-defun-at-point~ |
| [[kbd:][<localleader> p D]] | ~cider-pprint-eval-defun-to-comment~ |
| [[kbd:][<localleader> p p]] | ~cider-pprint-eval-last-sexp~ |
| [[kbd:][<localleader> p P]] | ~cider-pprint-eval-last-sexp-to-comment~ |
| [[kbd:][<localleader> p r]] | ~cider-pprint-eval-last-sexp-to-repl~ |
| [[kbd:][<localleader> r B]] | ~+clojure/cider-switch-to-repl-buffer-and-switch-ns~ |
| [[kbd:][<localleader> r L]] | ~cider-load-buffer-and-switch-to-repl-buffer~ |
| [[kbd:][<localleader> r R]] | ~cider-restart~ |
| [[kbd:][<localleader> r b]] | ~cider-switch-to-repl-buffer~ |
| [[kbd:][<localleader> r c]] | ~cider-find-and-clear-repl-output~ |
| [[kbd:][<localleader> r l]] | ~cider-load-buffer~ |
| [[kbd:][<localleader> r n]] | ~cider-repl-set-ns~ |
| [[kbd:][<localleader> r q]] | ~cider-quit~ |
| [[kbd:][<localleader> r r]] | ~cider-ns-refresh~ |
| [[kbd:][<localleader> t a]] | ~cider-test-rerun-test~ |
| [[kbd:][<localleader> t l]] | ~cider-test-run-loaded-tests~ |
| [[kbd:][<localleader> t n]] | ~cider-test-run-ns-tests~ |
| [[kbd:][<localleader> t p]] | ~cider-test-run-project-tests~ |
| [[kbd:][<localleader> t r]] | ~cider-test-rerun-failed-tests~ |
| [[kbd:][<localleader> t s]] | ~cider-test-run-ns-tests-with-filters~ |
| [[kbd:][<localleader> t t]] | ~cider-test-run-test~ |
* TODO Configuration
# How to configure this module, including common problems and how to address them.
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Troubleshooting
# Common issues and their solution, or places to look for help.
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,22 +1,12 @@
#+TITLE: lang/common-lisp
#+DATE: June 13, 2018
#+SINCE: v2.0
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang common-lisp
#+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][Description]]
- [[#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
* Description :unfold:
This module provides support for [[https://lisp-lang.org/][Common Lisp]] and the [[doom-package:][Sly]] development
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
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.
** 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]]
+ [[https://github.com/joaotavora/sly-macrostep][sly-macrostep]]
+ [[https://github.com/PuercoPop/sly-repl-ansi-color][sly-repl-ansi-color]]
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
* 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 the =lsp= module. Sly (and SLIME before it) is
This module does not integrate with [[doom-module:][:tools lsp]]. Sly (and SLIME before it) is
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
Emacs.
** Sly
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]].
A Sly session will be started when you open a =.lisp= file. Use =SPC m '= to switch
to the REPL minibuffer.
A Sly session will be started when you open a =.lisp= file. Use [[kbd:][<localleader> ']]
to switch to the REPL minibuffer.
** 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.
* 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
~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 @@
#+TITLE: :lang coq
← [[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
#+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]].
+ Code completion ([[https://github.com/cpitclaudel/company-coq][company-coq]])
+ [[https://github.com/hlissner/doom-snippets/tree/master/coq-mode][Snippets]]
- Code completion ([[https://github.com/cpitclaudel/company-coq][company-coq]])
- [[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
#+DATE: January 16, 2017
#+SINCE: v1.3
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang crystal
#+SUBTITLE: Ruby at the speed of c
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport:
- [[#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
* Description :unfold:
This modules adds [[https://crystal-lang.org/][crystal]] support.
+ Syntax-checking (~flycheck~)
+ REPL (~inf-crystal~)
- Syntax-checking (~flycheck~)
- REPL (~inf-crystal~)
** Maintainers
This module has no dedicated maintainers.
** Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** Plugins
+ [[https://github.com/crystal-lang-tools/emacs-crystal-mode/][crystal-mode]]
+ [[https://github.com/brantou/inf-crystal.el/][inf-crystal]]
+ if ~:checkers syntax~ is enabled
- [[https://github.com/crystal-lang-tools/emacs-crystal-mode/][flycheck-crystal]]
- [[https://github.com/crystal-ameba/ameba.el/][flycheck-ameba]]
** Packages
- [[doom-package:][crystal-mode]]
- [[doom-package:][inf-crystal]]
- if [[doom-module:][:checkers syntax]]
- [[doom-package:][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
you need to install [[https://crystal-lang.org/install/][the crystal compiler]].
*** MacOS
#+begin_src shell
brew install crystal
#+end_src
*** Arch
#+begin_src shell
sudo pacman -S crystal shards
#+end_src
- MacOS: ~$ brew install crystal~
- Arch Linux: ~$ pacman -S crystal shards~
** 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
# How to configure this module, including common problems and how to address them.
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Troubleshooting
# Common issues and their solution, or places to look for help.
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,43 +1,76 @@
#+TITLE: :lang csharp
← [[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
#+SUBTITLE: Unity, .NET, and mono shenanigans
#+CREATED: February 19, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC:
- [[#description][Description]]
- [[#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
* Description :unfold:
This module adds C# support to Emacs, powered by Omnisharp (directly or through
LSP).
** Module Flags
+ =+lsp= Enables omnisharp through LSP support (requires omnisharp).
+ =+unity= Enables special support for the [[https://unity.com/][Unity game engine]] (particularly,
support for HLSL shaders).
+ =+dotnet= Enables Dotnet transient interface with Sharper
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/josteink/csharp-mode][csharp-mode]]
+ [[https://github.com/omajid/csproj-mode][csproj-mode]]
+ [[https://github.com/OmniSharp/omnisharp-emacs][omnisharp]]* (not =+lsp=)
+ [[https://github.com/midnightSuyama/shader-mode][shader-mode]]* (=+unity=)
+ [[https://github.com/sebasmonia/sharper][sharper]] (=+dotnet=)
** Module flags
- +dotnet ::
Enable Dotnet transient interface with Sharper
- +lsp ::
Enable LSP support for ~csharp-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports =omnisharp-roslyn=).
- +unity ::
Enable special support for the [[https://unity.com/][Unity game engine]] (particularly, support for
HLSL shaders).
** Packages
- [[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]]
* Prerequisites
This module needs:
** Hacks
/No hacks documented for this module./
+ omnisharp (with the ~+lsp~ flag, this must be installed externally. Without
it, use ~M-x omnisharp-install-server~)
+ .NET SDKs (on Windows)
+ Mono (on UNIX platforms)
+ .NET Core 1.X - 3.X or .NET 5 for cross platform
** 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:
- 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
** Arch Linux
#+BEGIN_SRC sh
sudo pacman --needed --noconfirm -S mono
#+END_SRC
#+begin_src sh
pacman --needed --noconfirm -S mono
#+end_src
** 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
#+DATE: February 16, 2020
#+SINCE: v3.0.0
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang dart
#+SUBTITLE: Paint ui and not much else
#+CREATED: February 16, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#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 :unfold:
[[https://dart.dev/][Dart]] is a client-optimized language by Google for fast apps on any platform. 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.
* Description
[[https://dart.dev/][Dart]] is a client-optimized language by Google for fast apps on any platform.
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.
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
+ [[https://github.com/ericdallo][@ericdallo]]
- [[doom-user:][@ericdallo]]
** Module Flags
+ =+lsp= Enable LSP server integration.
+ =+flutter= Adds ~flutter~ integration and some sane defaults for Flutter
development along with ~hover~ for desktop development.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/bradyt/dart-mode][dart-mode]]
+ [[https://github.com/amake/flutter.el][flutter.el]]
+ [[https://github.com/ericdallo/hover.el][hover.el]]
** Module flags
- +flutter ::
Enable ~flutter~ integration and some sane defaults for Flutter development
along with ~hover~ for desktop development.
- +lsp ::
Enable LSP support for ~dart-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports flutter).
* Prerequisites
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.
** Packages
- [[doom-package:][dart-mode]]
- [[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
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,
please refer to the official website at: https://dart.dev/get-dart
+ *On Debian (also Ubuntu and its derivations):*
#+BEGIN_SRC shell
sudo apt-get install dart
#+END_SRC
+ *On Arch Linux (and derivations like Manjaro):*
#+BEGIN_SRC shell
sudo pacman -S dart
#+END_SRC
+ *On macOS*:
#+BEGIN_SRC shell
- *On Debian (also Ubuntu and its derivations):*
#+begin_src sh
apt-get install dart
#+end_src
- *On Arch Linux (and derivations like Manjaro):*
#+begin_src sh
pacman -S dart
#+end_src
- *On macOS*:
#+begin_src sh
brew tap dart-lang/dart
brew install dart
#+END_SRC
+ *On NixOS*:
#+BEGIN_SRC shell
#+end_src
- *On NixOS*:
#+begin_src sh
nix-env -iA nixpkgs.dart
#+END_SRC
#+end_src
** Installing Flutter SDK
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
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
export PATH="$PATH:$(pwd)/flutter/bin" # to add it to PATH
flutter doctor # for Dependency check and further instructions
#+END_SRC
#+end_src
* Features
+ Syntax highlighting and formatting for ~.dart~ files provided by LSP
+ Auto import
+ Widget guide lines for Flutter
+ Closing labels for constructors
+ Run tests interactively
+ Outline support via ~lsp-treemacs~
+ Emacs functions for running and debugging Flutter projects
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
- Syntax highlighting and formatting for ~.dart~ files provided by LSP.
- Auto import.
- 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
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
@ -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
and Flutter on your ~PATH~ variable.
** Android
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
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
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
[[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
[[doom-report:][Report an issue?]]
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
the permissions of the ~/opt/dart-sdk~ and ~/opt/flutter~ directories (not to
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
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
#+DATE: June 24, 2019
#+SINCE: v2.0.9
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang elixir
#+SUBTITLE: Erlang done right
#+CREATED: June 24, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module flags]]
- [[#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 :unfold:
This module provides support for [[https://elixir-lang.org/][Elixir programming language]] via [[doom-package:][alchemist]] or
[[https://github.com/elixir-lsp/elixir-ls/][elixir-ls]].
* Description
This module provides support for [[https://elixir-lang.org/][Elixir programming language]] via [[https://github.com/tonini/alchemist.el][alchemist.el]]
or [[https://github.com/elixir-lsp/elixir-ls/][elixir-ls]].
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** 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
+ [[https://github.com/elixir-editors/emacs-elixir][elixir-mode]]
+ [[https://github.com/tonini/alchemist.el][alchemist.el]]
+ [[https://github.com/aaronjensen/flycheck-credo][flycheck-credo]]
+ [[https://github.com/ananthakumaran/exunit.el][exunit]]
** Packages
- [[doom-package:][alchemist]]
- [[doom-package:][elixir-mode]]
- [[doom-package:][exunit]]
- [[doom-package:][flycheck-credo]] if [[doom-module:][:checkers syntax]]
* Prerequisites
You should have Elixir installed, for example, via your distribution's package
manager or a version management tool such as [[https://github.com/asdf-vm/asdf-elixir][asdf]].
** Hacks
/No hacks documented for this module./
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]]
and enable ~:tools lsp~ in your ~init.el~.
** 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 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
(See [[https://elixir-lang.org/install.html]] for other operating systems)
*** With ~asdf~
#+BEGIN_SRC sh
#+begin_src sh
asdf plugin-add elixir
asdf install elixir 1.9.1
#+END_SRC
#+end_src
*** Arch Linux
#+BEGIN_SRC sh :dir /sudo::
sudo pacman -S elixir
#+END_SRC
#+begin_src sh
pacman -S elixir
#+end_src
*** Gentoo Linux
#+BEGIN_SRC sh :dir /sudo::
sudo emerge -v dev-lang/elixir
#+END_SRC
#+begin_src sh
emerge -v dev-lang/elixir
#+end_src
*** openSUSE
#+BEGIN_SRC sh :dir /sudo::
sudo zypper install elixir
#+END_SRC
See [[https://elixir-lang.org/install.html]] for other operating systems
* Features
- Code completion (~:completion company~)
- Documentation lookup (~:tools lookup~)
#+begin_src sh
zypper install elixir
#+end_src
* TODO Usage
#+begin_quote
🔨 /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
- Phoenix support
- ~iex~ integration (~:tools eval~)
- Syntax checking (~:checkers syntax~, using [[https://github.com/aaronjensen/flycheck-credo][flycheck-credo]]~)
* Appendix
** Commands
*** exunit-mode
The exunit-mode prefix is =SPC m t=. Here is some examples:
| | | |
| command | key / ex command | description |
|------------------------------------------+------------------+--------------------------------------------------------|
| ~exunit-verify-all~ | =SPC m t a= | Runs exunit on all files |
| ~exunit-rerun~ | =SPC m t r= | Re-runs last exunit command |
| ~exunit-verify~ | =SPC m t v= | Runs exunit on current file |
| ~exunit-verify-single~ | =SPC m 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-other-window~ | =SPC m t T= | Switch between implementation and test in other window |
- ~iex~ integration ([[doom-module:][:tools eval]])
- Syntax checking ([[doom-module:][:checkers syntax]], using [[doom-package:][flycheck-credo]])
** exunit-mode
The exunit-mode prefix is [[kbd:][<localleader> t]]. Here is some examples:
| command | key / ex command | description |
|--------------------------------------------+-------------------+--------------------------------------------------------|
| ~exunit-verify-all~ | [[kbd:][<localleader> t a]] | Runs exunit on all files |
| ~exunit-rerun~ | [[kbd:][<localleader> t r]] | Re-runs last exunit command |
| ~exunit-verify~ | [[kbd:][<localleader> t v]] | Runs exunit on current file |
| ~exunit-verify-single~ | [[kbd:][<localleader> t s]] | Runs exunit for the item on cursor |
| ~exunit-toggle-file-and-test~ | [[kbd:][<localleader> t t]] | Switch between implementation and test |
| ~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
#+DATE: January 16, 2017
#+SINCE: v1.3
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang emacs-lisp
#+SUBTITLE: A parsel-tongue for the oldest serpent
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
* Description :unfold:
This module extends support for Emacs Lisp in Doom Emacs.
+ Macro expansion
+ Go-to-definitions or references functionality
- Macro expansion
- 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
+ @hlissner (author)
- [[doom-user:][@hlissner]]
** Module Flags
This module provides no flags.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/jorgenschaefer/emacs-buttercup][buttercup]]
+ [[https://github.com/Wilfred/elisp-def][elisp-def]]
+ [[https://github.com/xuchunyang/elisp-demos][elisp-demos]]
+ [[https://github.com/flycheck/flycheck-cask][flycheck-cask]] (=:checkers syntax=)
+ [[https://github.com/Fanael/highlight-quoted][highlight-quoted]]
+ [[https://github.com/joddie/macrostep][macrostep]]
+ [[https://github.com/tonini/overseer.el][overseer]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][buttercup]]
- [[doom-package:][elisp-def]]
- [[doom-package:][elisp-demos]]
- [[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
+ 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~.
+ Eldoc will display the values of variables next to its documentation.
+ ~elisp-demos~ was modified to display API demos for Doom's standard library
- Eldoc will display the values of variables next to its documentation.
- ~elisp-demos~ was modified to display API demos for Doom's standard library
(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!~)
+ 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.
* 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
about it.
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
# How to configure this module, including common problems and how to address them.
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Troubleshooting
# Common issues and their solution, or places to look for help.
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,39 +1,62 @@
#+TITLE: lang/erlang
#+DATE: January 14, 2020
#+SINCE: {replace with next tagged release version}
#+STARTUP: inlineimages nofold
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
* Description
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang erlang
#+SUBTITLE: An elegant language for a more civilized age
#+CREATED: January 15, 2020
#+SINCE: 21.12.0
* Description :unfold:
This module provides support [[https://www.erlang.org/][Erlang programming language]]. Support for the
[[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
This module has no dedicated maintainers.
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ ~+lsp~ Enable LSP Support. Requires [[https://github.com/erlang/sourcer][sourcer]].
** Module flags
- +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
+ Erlang Mode (bundled with Erlang installations)
+ [[https://github.com/joedevivo/flycheck-rebar3][flycheck-rebar3]]
+ [[https://github.com/s-kostyaev/ivy-erlang-complete][ivy-erlang-complete]]
** Hacks
/No hacks documented for this module./
* Prerequisites
You should have Erlang installed. Check your distribution's package manager or a
version management tool such as [[https://github.com/kerl/kerl][kerl]].
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/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
- Code completion (~+lsp~, ~:completion company~, and ~:completion ivy~)
- Syntax checking (~:checkers syntax~)
This module requires Erlang be installed (which includes ~erlang-mode~). Check
your distribution's package manager or a version management tool such as [[https://github.com/kerl/kerl][kerl]].
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 @@
#+TITLE: :lang ess
← [[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
#+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,
SAS, Julia and Stata.
* Table of Contents :TOC:
- [[#prequisites][Prequisites]]
- [[#appendix][Appendix]]
- [[#keybindings][Keybindings]]
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** 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:
+ [[https://github.com/jimhester/lintr][lintr]]: Enables R linting.
+ [[https://github.com/REditorSupport/languageserver][languageserver]]: Enables LSP support in an R buffer (with =+lsp= flag).
* Appendix
** Keybindings
*** :map ess-doc-map
- [[https://github.com/jimhester/lintr][lintr]]: for R linting.
- [[https://github.com/REditorSupport/languageserver][languageserver]]: for LSP support in an R buffer (with [[doom-module:][+lsp]] flag).
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** :map ess-doc-map
| key | command |
|-----+----------------------------|
| "h" | ess-display-help-on-object |
| "p" | ess-R-dv-pprint |
| "t" | ess-R-dv-ctable |
*** :map ess-mode-map
** :map ess-mode-map
| key | command |
|--------------+-----------------------|
| "<s-return>" | ess-eval-line |
| "<up>" | comint-next-input |
| "<down>" | comint-previous-input |
**** :localleader
** :localleader
| state | key | command |
|-------+-------------+---------------------------------------------------|
| :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 | "cp" | ess-noweb-previous-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
#+DATE: December 3, 2019
#+SINCE: v3.0.0
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang factor
#+SUBTITLE: ...
#+CREATED: December 03, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
* Description :unfold:
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
+ Like code completion, syntax checking or available snippets
+ Include links to packages & external things where possible
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** Plugins
{A list of linked plugins}
** Packages
/This module doesn't install any packages./
** Hacks
{A list of internal modifications to included packages}
/No hacks documented for this module./
* Prerequisites
You must install [[https://github.com/factor/factor][factor]] to use the advanced functionality of 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://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
=fuel-factor-root-dir=. Here's an example of how to set it:
#+BEGIN_SRC emacs-lisp
~fuel-factor-root-dir~. E.g.
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq fuel-factor-root-dir "/Applications/factor")
#+END_SRC
#+end_src
* 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
#+DATE: July 23, 2019
#+SINCE: v2.1.0
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang faust
#+SUBTITLE: DSP, but you can keep your soul
#+CREATED: October 14, 2019
#+SINCE: 21.12.0 (#1898)
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#plugins][Plugins]]
- [[#features][Features]]
* Description :unfold:
Add support to [[https://faust.grame.fr/][Faust language]] inside emacs.
* Description
Add support to Faust language inside emacs.
- Faust code syntax highlighting and indentation
- 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
+ Project-based (inter-linked Faust files)
+ 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
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://bitbucket.org/yphil/faustine][faustine]]
** Packages
- [[doom-package:][faustine]]
* Features
Keybindings
** Hacks
- 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 |
|-------------------+----------------------|
| ~<localleader> b~ | ~build~ |
| ~<localleader> c~ | ~syntax check~ |
| ~<localleader> d~ | ~diagram~ |
| ~<localleader> h~ | ~online dock~ |
| ~<localleader> RET~ | ~mdoc~ |
| ~<localleader> o~ | ~toggle output buffer~ |
| ~<localleader> s~ | ~source code~ |
| ~<localleader> r~ | ~run~ |
| ~<localleader> S-b~ | ~build all~ |
| ~<localleader> S-d~ | ~diagram all~ |
| [[kbd:][<localleader> b]] | build |
| [[kbd:][<localleader> c]] | syntax check |
| [[kbd:][<localleader> d]] | diagram |
| [[kbd:][<localleader> h]] | online dock |
| [[kbd:][<localleader> RET]] | mdoc |
| [[kbd:][<localleader> o]] | toggle output buffer |
| [[kbd:][<localleader> s]] | source code |
| [[kbd:][<localleader> r]] | run |
| [[kbd:][<localleader> S-b]] | build 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
#+DATE: May 22, 2019
#+SINCE: {replace with next tagged release version}
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang fsharp
#+SUBTITLE: ML stands for Microsoft's Language
#+CREATED: May 22, 2019
#+SINCE: 21.12.0 (#1327)
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#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 :unfold:
This module adds [[https://fsharp.org/][F#]] support to Doom Emacs.
* Description
# A summary of what this module does.
*Includes:*
- Code completion
- eldoc support
- Syntax checking
# + If possible, include a brief list of feature highlights here
# + Like code completion, syntax checking or available snippets
# + Include links to packages & external things where possible
This module adds [[https://fsharp.org/][F#]] support.
+ Code completion
+ eldoc support
+ Syntax checking
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +lsp ::
Enable LSP support for ~fsharp-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(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
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
To get code completion/syntax checking when not using lsp, you will need to install [[https://www.mono-project.com/][mono]].
*** 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
#+BEGIN_SRC sh
sudo pacman -S mono
#+END_SRC
#+begin_src sh
pacman -S mono
#+end_src
** LSP
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
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
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
#+DATE: February 2, 2020
#+SINCE: 2.0.10
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang fstar
#+SUBTITLE: (Dependent) types and (monadic) effects and Z3
#+CREATED: February 02, 2020
#+SINCE: 21.12.0 (#2473)
* Table of Contents :TOC_3:noexport:
- [[#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
* Description :unfold:
This module adds [[https://fstar-lang.org/][F*]] support, powered by [[https://github.com/FStarLang/fstar-mode.el][fstar-mode.el]].
+ Syntax highlighting
+ Interactively process F* files one definition at a time
+ Query the running F* process to look up definitions, documentation, and
- Syntax highlighting
- Interactively process F* files one definition at a time
- Query the running F* process to look up definitions, documentation, and
theorems
** Maintainers
+ [[https://github.com/tchajed][@tchajed]] (Author)
- [[doom-user:][@tchajed]]
** Module Flags
This module provides no flags.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/FStarLang/fstar-mode.el][fstar-mode]]
** Module flags
/This module has no flags./
* Prerequisites
** F*
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]].
*** macOS
#+BEGIN_SRC sh
** Packages
- [[doom-package:][fstar-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://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
#+END_SRC
*** Arch Linux
Install ~fstar~ from the AUR:
#+BEGIN_SRC sh
#+end_src
** Arch Linux
~fstar~ is available in the AUR:
#+begin_src sh
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
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.
[[doom-report:][Report an issue?]]
- 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
#+DATE: May 27, 2020
#+SINCE: v2.0.9
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang gdscript
#+SUBTITLE: the language you waited for
#+CREATED: June 01, 2020
#+SINCE: 21.12.0 (#3239)
* Table of Contents :TOC:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#appendix][Appendix]]
- [[#commands][Commands]]
* Description
* Description :unfold:
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]].
** Module Flags
+ =+lsp= Enables LSP support for gdscript-mode. This requires the =:tools lsp=
module to be enabled and you need to open your project in Godot ~3.2.1~ or
above to run the language server.
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
This module provides no plugins.
** Module flags
- +lsp ::
Enable LSP support for ~gdscript-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(Godot ~3.2.1~ or newer).
* Prerequisites
To format your GDScript code, you need to install [[https://github.com/Scony/godot-gdscript-toolkit/][gdtoolkit]]:
** Packages
- [[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
pip install gdtoolkit
# On MacOS and Linux
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
you have the ~lsp~ module installed, you should be able to use the language
server.
you have [[doom-module:][+lsp]] and [[doom-module:][:tools lsp]] enabled, and Godot 3.2.1+ installed, it should work
out of the box.
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
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
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
#+DATE: January 16, 2017
#+SINCE: v2.0
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang go
#+SUBTITLE: The hipster dialect
#+CREATED: June 15, 2015
#+SINCE: 0.7
* Table of Contents :TOC:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#go][Go]]
- [[#dependencies][Dependencies]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
* Description :unfold:
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]].
+ Code completion (~gocode~)
+ Documentation lookup (~godoc~)
+ Eldoc support (~go-eldoc~)
+ REPL (~gore~)
+ Syntax-checking (~flycheck~)
+ Auto-formatting on save (~gofmt~) (requires =:editor (format +onsave)=)
+ Code navigation & refactoring (~go-guru~)
+ [[../../editor/file-templates/templates/go-mode][File templates]]
+ [[https://github.com/hlissner/doom-snippets/tree/master/go-mode][Snippets]]
+ Generate testing code (~go-gen-test~)
+ Code checking (~flycheck-golangci-lint~)
- Code completion (~gocode~)
- Documentation lookup (~godoc~)
- Eldoc support (~go-eldoc~)
- REPL (~gore~)
- Syntax-checking (~flycheck~)
- Auto-formatting on save (~gofmt~) (requires [[doom-module:][:editor format +onsave]])
- Code navigation & refactoring (~go-guru~)
- [[../../editor/file-templates/templates/go-mode][File templates]]
- [[https://github.com/hlissner/doom-snippets/tree/master/go-mode][Snippets]]
- Generate testing code (~go-gen-test~)
- Code checking (~flycheck-golangci-lint~)
** Module Flags
+ =+lsp= Enables integration for the gopls LSP server. It is highly recommended
you use this, as the non-LSP experience is deprecated (and poor).
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/dominikh/go-mode.el][go-mode]]
+ [[https://github.com/syohex/emacs-go-eldoc][go-eldoc]]
+ [[https://github.com/dominikh/go-mode.el][go-guru]]
+ [[https://github.com/manute/gorepl-mode][gorepl-mode]]
+ [[https://github.com/brantou/emacs-go-tag][go-tag]]
+ [[https://github.com/mdempsky/gocode][company-go]]* =DEPRECATED=
+ [[https://github.com/s-kostyaev/go-gen-test][go-gen-test]]
+ [[https://github.com/weijiangan/flycheck-golangci-lint][flycheck-golangci-lint]] (if =:checkers syntax= is enabled)
** Module flags
- +lsp ::
Enable LSP support for ~go-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports gopls). Highly recommended, as the non-LSP experience is deprecated
(and poor).
** Packages
- [[doom-package:][company-go]] if [[doom-module:][:completion company]] (DEPRECATED)
- [[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
To get started with Go, you need the ~go~ tool:
*** MacOS
#+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
- macOS: ~$ brew install go~
- Arch Linux: ~$ pacman -S go~
- openSUSE: ~$ zypper install go~
** 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)
+ ~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
#+begin_src sh
export GOPATH=~/work/go
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 github.com/cweill/gotests/gotests@latest
go install github.com/fatih/gomodifytags@latest
#+END_SRC
#+end_src
+ ~golangci-lint~ (optional: for flycheck to integrate golangci-lint results)
it is recommended to *not* use ~go get~ to install this one, check the
- ~golangci-lint~ (optional: for flycheck to integrate golangci-lint results) it
is recommended to *not* use ~$ go get~ to install this one, check the
[[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
#+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
#+DATE: January 16, 2017
#+SINCE: v0.7
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang haskell
#+SUBTITLE: A language that's lazier than I am
#+CREATED: March 29, 2016
#+SINCE: 0.9
* Table of Contents :TOC:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
* Description
Adds Haskell support to Doom Emacs.
* Description :unfold:
This module adds Haskell support to Doom Emacs.
** Maintainers
This module has no dedicated maintainers.
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ =+lsp= Enable LSP support with for [[https://github.com/haskell/haskell-language-server][haskell-language-server]] (requires the =:tools lsp= module).
** Module flags
- +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
+ [[https://github.com/haskell/haskell-mode][haskell-mode]]
+ [[https://github.com/emacs-lsp/lsp-haskell][lsp-haskell]] (=+lsp=, =:tools lsp=)
** Packages
- [[doom-package:][haskell-mode]]
- [[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
for basic functionality:
#+BEGIN_SRC bash
#+begin_src sh
ghcup install ghc
#+END_SRC
#+end_src
but =+lsp= users should also install the language server:
#+BEGIN_SRC bash
#+begin_src sh
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
=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]],
which can be installed through system package manager, cabal, or stack.
* Features
This module intergrates the haskell packages into Doom by providing things such
as repl support, project root recognition, etc. It also provide the following
* TODO Usage
#+begin_quote
🔨 /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:
| Keybinding | Description |
|-------------------+-----------------------------------------------|
| =<localleader> b= | Build the current cabal project |
| =<localleader> c= | Visit the =.cabal= file of the current buffer |
| =<localleader> h= | Toggle visibility of the form at point |
| =<localleader> H= | hides all top level functions |
| Keybinding | Description |
|-----------------+-----------------------------------------------|
| [[kbd:][<localleader> b]] | Build the current cabal project |
| [[kbd:][<localleader> c]] | Visit the =.cabal= file of the current buffer |
| [[kbd:][<localleader> h]] | Toggle visibility of the form at point |
| [[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
=lsp-haskell-formatting-provider= to it.
Make sure to configure the lsp to use your perfered formatter, e.g.:
#+BEGIN_SRC elisp
#+begin_src emacs-lisp
;; ~/.doom.d/config.el
(after!
(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
#+DATE: October 6, 2020
#+SINCE: v2.0.9
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang idris
#+SUBTITLE: A language you can depend on
#+CREATED: August 21, 2018
#+SINCE: 21.12.0 (#822)
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
* Description :unfold:
This module adds rudimentary [[https://www.idris-lang.org/][Idris]] support to Doom Emacs.
* Description
This module adds rudimentary Idris support.
** Maintainers
This module has no dedicated maintainers.
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** Plugins
# A list of linked plugins
+ [[https://github.com/idris-hackers/idris-mode/][idris-mode]]
** Packages
- [[doom-package:][idris-mode]]
* Prerequisites
This module has no prerequisites.
** Hacks
/No hacks documented for this module./
* Features
In addition to =idris-mode= goodness, adds frequently used functions under the localleader key.
** 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'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
#+DATE: January 16, 2017
#+SINCE: v1.3
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang java
#+SUBTITLE: The poster child for carpal tunnel syndrome
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#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 :unfold:
This module adds [[https://www.java.com][Java]] support to Doom Emacs, including ~android-mode~ and
~groovy-mode~.
* Description
This module adds [[https://www.java.com][java]] support to Doom Emacs, including =android-mode= and
=groovy-mode=.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ =+lsp= Enables integration for the eclipse.jdt.ls LSP server.
+ =+meghanada= Enables the [[https://github.com/mopemope/meghanada-emacs/tree/master][meghanada-mode]]
** Module flags
- +lsp ::
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
together. At the time of writing the =+meghanada= is already configured whereas
=+lsp= needs to manual configuring.
** Packages
- [[doom-package:][android-mode]]
- [[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
provides =dap-mode= which contains the Java test runner.
** Hacks
/No hacks documented for this module./
* Prerequisites
This module requires the Java SDK.
** 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.oracle.com/java/technologies/downloads/][Java SDK]]
- The LSP test runner requires [[doom-module:][:tools debugger +lsp]] (requires [[doom-package:][dap-mode]])
** OpenJDK 11
*** Ubuntu
#+BEGIN_SRC sh
sudo apt-get install openjdk-11-jdk-headless
#+END_SRC
#+begin-src sh
apt-get install openjdk-11-jdk-headless
#+end_src
*** Fedora
#+BEGIN_SRC sh
sudo dnf install java-11-openjdk
#+END_SRC
#+begin_src sh
dnf install java-11-openjdk
#+end_src
** Oracle JDK 11
*** Ubuntu
#+BEGIN_SRC sh
sudo add-apt-repository ppa:linuxuprising/java
sudo apt update
sudo apt install oracle-java11-installer
sudo apt install oracle-java11-set-default
#+END_SRC
#+begin_src sh
add-apt-repository ppa:linuxuprising/java
apt update
apt install oracle-java11-installer
apt install oracle-java11-set-default
#+end_src
*** 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
tar zxvf openjdk-11.0.2_linux-x64_bin.tar.gz
sudo mv jdk-11.0.2/ /usr/local/
#+END_SRC
#+end_src
Open =/etc/profile.d/jdk11.sh= as root and add
#+BEGIN_SRC sh
Open =/etc/profile.d/jdk11.sh= as root and add:
#+begin_src sh
export JAVA_HOME=/usr/local/jdk-11.0.2
export PATH=$PATH:$JAVA_HOME/bin
#+END_SRC
#+end_src
Save the file and source the file
#+BEGIN_SRC sh
Save the file and source it:
#+begin_src sh
source /etc/profile.d/jdk11.sh
java -version
#+END_SRC
#+end_src
** Multiple Java Versions
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.
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
Java version for a particular project, create a =.envrc= pointing to the Java
installation in the root of the project:
#+BEGIN_SRC conf-unix
To have a different version of Java per-project, it is recommended you use
[[https://github.com/direnv/direnv][direnv]] and [[doom-module:][:tools direnv]]; create a =.envrc= in the root of the project pointing
to the Java installation:
#+begin_src sh
PATH_add ~/.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
is enabled, then Doom will automatically source this environment before
executing the LSP server.
And then run ~$ direnv allow .~ in the project directory. The [[doom-module:][:tools direnv]]
module will automatically source this environment before activating LSP servers.
* Features
** =+lsp= features
According to [[https://github.com/emacs-lsp/lsp-java]] it adds
* TODO Usage
#+begin_quote
🔨 /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]])
+ Code completion - using [[https://github.com/tigersoldier/company-lsp][company-lsp]] or builtin complete-at-point
+ Javadoc hovers - using [[https://github.com/emacs-lsp/lsp-ui][lsp-ui]]
+ Code actions - using [[https://github.com/emacs-lsp/lsp-ui][lsp-ui]]
+ Code outline - using builtin [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Imenu.html][imenu]]
+ Code navigation - using builtin [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Xref.html][xref]]
+ Code lens (references/implementations) - using builtin [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Xref.html][xref]]
+ Highlights
+ Code formatting
+ Maven pom.xml project support
+ Limited Gradle support
+ Visual debugger - [[https://github.com/yyoncho/dap-mode/][dap-mode]]
+ Test runner - [[https://github.com/yyoncho/dap-mode/][dap-mode]]
+ Project explorer integration - [[https://github.com/Alexander-Miller/treemacs][treemacs]]
+ Integration with [[https://start.spring.io/][Spring Initializr]]
** [[doom-module:][+lsp]] features
According to [[https://github.com/emacs-lsp/lsp-java]], you get:
- As you type reporting of parsing and compilation errors (via [[doom-package:][flycheck]] or
[[doom-package:][lsp-ui]])
- Code completion ([[doom-package:][company-lsp]] or complete-at-point)
- Javadoc hovers ([[doom-package:][lsp-ui]])
- Code actions ([[doom-package:][lsp-ui]])
- Code outline ([[doom-package:][imenu]])
- Code navigation ([[doom-package:][xref]])
- Code lens for references/implementations ([[doom-package:][xref]])
- Highlights
- Code formatting
- Maven pom.xml project support
- Limited Gradle support
- 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
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
+ [[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 (=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
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Configuration
** =+lsp=
Install the eclipse server by executing =M-x lsp-install-server= and selecting
** [[doom-module:][+lsp]]
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
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
install it again. You can do this with =M-x +lsp/uninstall-server= followed by
=M-x lsp-install-server=.
install it again. You can do this with ~M-x +lsp/uninstall-server~ followed by
~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
#+DATE: January 16, 2017
#+SINCE: v2.0
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang javascript
#+SUBTITLE: all(hope(abandon(ye(who(enter(here))))))
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC:
- [[#description][Description]]
- [[#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 :unfold:
This module adds [[https://www.javascript.com/][JavaScript]] and [[https://www.typescriptlang.org/][TypeScript]] support to Doom Emacs.
* Description
This module adds JavaScript and TypeScript support.
- Code completion ([[doom-package:][tide]])
- 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)
+ REPL support (nodejs-repl)
+ Refactoring commands (js2-refactor)
+ Syntax checking (flycheck)
+ Browser code injection with skewer-mode
+ Coffeescript & JSX support
+ Jump-to-definitions and references support (xref)
** Maintainers
- [[doom-user:][@hlissner]]
** Module Flags
+ =+lsp= Enables LangServer support for this module. You must have =:tools lsp=
enabled for this to work, as well as the langserver (e.g.
typescript-language-server) installed on your system.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +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
+ [[https://github.com/defunkt/coffee-mode][coffee-mode]]
+ [[https://github.com/mooz/js2-mode][js2-mode]]
+ [[https://github.com/felipeochoa/rjsx-mode][rjsx-mode]]
+ [[https://github.com/emacs-typescript/typescript.el][typescript-mode]]
+ [[https://github.com/magnars/js2-refactor.el][js2-refactor]]
+ [[https://github.com/mojochao/npm-mode][npm-mode]]
+ [[https://github.com/abicky/nodejs-repl.el][nodejs-repl]]
+ [[https://github.com/skeeto/skewer-mode][skewer-mode]]
+ [[https://github.com/ananthakumaran/tide][tide]]
+ [[https://github.com/NicolasPetton/xref-js2][xref-js2]]*
- [[doom-package:][js2-refactor]]
- [[doom-package:][nodejs-repl]]
- [[doom-package:][npm-mode]]
- [[doom-package:][rjsx-mode]]
- [[doom-package:][skewer-mode]] (DEPRECATED)
- [[doom-package:][tide]]
- [[doom-package:][typescript-mode]]
- [[doom-package:][xref-js2]] if [[doom-module:][:tools lookup]]
* Prerequisites
Many of this modules' plugins require ~node~ and either ~npm~ or ~yarn~
installed.
** TODO Hacks
#+begin_quote
🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]]
#+end_quote
** MacOS
#+BEGIN_SRC sh :tangle (if (doom-system-os 'macos) "yes")
brew install node
#+END_SRC
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
** Arch Linux
#+BEGIN_SRC sh :dir /sudo:: :tangle (if (doom-system-os 'arch) "yes")
sudo pacman --needed --noconfirm -S nodejs npm
#+END_SRC
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
** openSUSE
#+BEGIN_SRC sh :dir /sudo::
sudo zypper install nodejs npm
#+END_SRC
This module requires [[https://nodejs.org/en/][NodeJS]] and one of [[https://www.npmjs.com/][NPM]] or [[https://yarnpkg.com/][Yarn]] in your =$PATH=.
* Troubleshooting
** ~tide-sort-completions-by-kind~ isn't respected
The =:completion company= module uses =company-prescient= to sort completion by
[[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~).
- MacOS: ~$ brew install node~
- Arch Linux: ~$ pacman --needed --noconfirm -S nodejs npm~
- openSUSE: ~$ zypper install nodejs npm~
* 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
*** JS2-mode
*** rjsx-mode
| command | key / ex command | description |
|----------------------------------+------------------+------------------------------------------------------------|
| ~+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/open-repl~ | ~:repl~ | Open the NodeJS REPL (or send the current selection to it) |
| ~+javascript/skewer-this-buffer~ | [[kbd:][<localleader> S]] | Attaches a browser to the current buffer |
*** Tide
| command | key / ex command | description |
|-------------------------+------------------+------------------------|
| ~tide-restart-server~ | =SPC m R= | Restart tide server |
| ~tide-reformat~ | =SPC m f= | Reformat region |
| ~tide-rename-symbol~ | =SPC m r r s= | Rename symbol at point |
| ~tide-organize-imports~ | =SPC m r o i= | Organize imports |
| command | key / ex command | description |
|-------------------------+---------------------+------------------------|
| ~tide-restart-server~ | [[kbd:][<localleader> R]] | Restart tide server |
| ~tide-reformat~ | [[kbd:][<localleader> f]] | Reformat region |
| ~tide-rename-symbol~ | [[kbd:][<localleader> r r s]] | Rename symbol at point |
| ~tide-organize-imports~ | [[kbd:][<localleader> r o i]] | Organize imports |
*** Refactoring (js2-refactor-mode)
| 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-contract-node-at-point~ | =SPC m 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-method~ | =SPC m 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-arrow-function-and-expression~ | =SPC m 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-introduce-parameter~ | =SPC m 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-wrap-buffer-in-iife~ | =SPC m 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-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-extract-var~ | =SPC m 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-const~ | =SPC m 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-rename-var~ | =SPC m 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-arguments-to-object~ | =SPC m 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-split-var-declaration~ | =SPC m 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-string-to-template~ | =SPC m 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-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-debug-this~ | =SPC m 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-barf~ | =SPC m 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. |
| command | key / ex command | description |
|---------------------------------------------------+---------------------+--------------------------------------------------------------------------------------------------------------------|
| ~js2r-expand-node-at-point~ | [[kbd:][<localleader> r e e]] | Expand 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~ | [[kbd:][<localleader> r e f]] | Extracts the marked expressions out into a new named function. |
| ~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~ | [[kbd:][<localleader> r t f]] | Toggle between function name() {} and var name = function (); |
| ~js2r-toggle-arrow-function-and-expression~ | [[kbd:][<localleader> r t a]] | Toggle between function expression to arrow function. |
| ~js2r-toggle-function-async~ | [[kbd:][<localleader> r t s]] | Toggle between an async and a regular function. |
| ~js2r-introduce-parameter~ | [[kbd:][<localleader> r i p]] | Changes the marked expression to a parameter 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~ | [[kbd:][<localleader> r w i]] | Wraps the entire buffer in an 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~ | [[kbd:][<localleader> r a g]] | Creates a /*global */ annotation if it is missing, and adds the var at point to it. |
| ~js2r-extract-var~ | [[kbd:][<localleader> r e v]] | Takes a marked expression and replaces it with a var. |
| ~js2r-extract-let~ | [[kbd:][<localleader> r e l]] | Similar to extract-var but uses a let-statement. |
| ~js2r-extract-const~ | [[kbd:][<localleader> r e c]] | Similar to extract-var but uses a const-statement. |
| ~js2r-inline-var~ | [[kbd:][<localleader> r i v]] | Replaces all instances of a variable with its initial value. |
| ~js2r-rename-var~ | [[kbd:][<localleader> r r v]] | Renames the variable on point and all occurrences in its lexical scope. |
| ~js2r-var-to-this~ | [[kbd:][<localleader> r v t]] | Changes local var a to be this.a instead. |
| ~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~ | [[kbd:][<localleader> r 3 i]] | Converts ternary operator to if-statement. |
| ~js2r-split-var-declaration~ | [[kbd:][<localleader> r s v]] | Splits a var with multiple vars declared, into several var statements. |
| ~js2r-split-string~ | [[kbd:][<localleader> r s s]] | Splits a string. |
| ~js2r-string-to-template~ | [[kbd:][<localleader> r s t]] | Converts a string into a template string. |
| ~js2r-unwrap~ | [[kbd:][<localleader> r u w]] | Replaces the parent statement with the selected region. |
| ~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~ | [[kbd:][<localleader> r d t]] | Adds a debug() statement for what is at point (or region). |
| ~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~ | [[kbd:][<localleader> r b a]] | Moves the last child out of current function, if-statement, for-loop or while-loop. |
| ~js2r-kill~ | [[kbd:][<localleader> r k]] | Kills to the end of the line, but does not cross semantic boundaries. |
*** skewer-mode
**** general
| command | key / ex command | description |
|-------------------------------+------------------+---------------------------------------|
| ~skewer-eval-last-expression~ | =SPC m s E= | Evaluate last expression |
| ~skewer-eval-defun~ | =SPC m s e= | Evaluate function definition at point |
| ~skewer-load-buffer~ | =SPC m s f= | Load buffer into REPL |
| command | key / ex command | description |
|-------------------------------+-------------------+---------------------------------------|
| ~skewer-eval-last-expression~ | [[kbd:][<localleader> s E]] | Evaluate last expression |
| ~skewer-eval-defun~ | [[kbd:][<localleader> s e]] | Evaluate function definition at point |
| ~skewer-load-buffer~ | [[kbd:][<localleader> s f]] | Load buffer into REPL |
**** css
| command | key / ex command | description |
|---------------------------------------+------------------+-------------------------------|
| ~skewer-css-eval-current-declaration~ | =SPC m s e= | Evaluate declaration at point |
| ~skewer-css-eval-current-rule~ | =SPC m s r= | Evaluate rule at point |
| ~skewer-css-eval-buffer~ | =SPC m s b= | Evaluate buffer |
| ~skewer-css-clear-all~ | =SPC m s c= | Clear all rules |
| command | key / ex command | description |
|---------------------------------------+-------------------+-------------------------------|
| ~skewer-css-eval-current-declaration~ | [[kbd:][<localleader> s e]] | Evaluate declaration at point |
| ~skewer-css-eval-current-rule~ | [[kbd:][<localleader> s r]] | Evaluate rule at point |
| ~skewer-css-eval-buffer~ | [[kbd:][<localleader> s b]] | Evaluate buffer |
| ~skewer-css-clear-all~ | [[kbd:][<localleader> s c]] | Clear all rules |
**** html
| command | key / ex command | description |
|------------------------+------------------+-----------------------|
| ~skewer-html-eval-tag~ | =SPC m s e= | Evaluate tag at point |
| command | key / ex command | description |
|------------------------+-------------------+-----------------------|
| ~skewer-html-eval-tag~ | [[kbd:][<localleader> s e]] | Evaluate tag at point |
*** npm-mode
| command | key / ex command | description |
|---------------------------------+------------------+------------------------------------------------------------------|
| ~npm-mode-npm-init~ | =SPC m n n= | Initialize npm project |
| ~npm-mode-npm-install~ | =SPC m 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-dev~ | =SPC m 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-list~ | =SPC m n l= | List npm packages |
| ~npm-mode-npm-run~ | =SPC m n r= | Run npm task |
| ~npm-mode-visit-project-file~ | =SPC m n v= | Find file in npm project |
| command | key / ex command | description |
|---------------------------------+-------------------+------------------------------------------------------------------|
| ~npm-mode-npm-init~ | [[kbd:][<localleader> n n]] | Initialize npm project |
| ~npm-mode-npm-install~ | [[kbd:][<localleader> n i]] | Install npm package |
| ~npm-mode-npm-install-save~ | [[kbd:][<localleader> n s]] | Install npm package and save to package.json |
| ~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~ | [[kbd:][<localleader> n u]] | Uninstall npm package |
| ~npm-mode-npm-list~ | [[kbd:][<localleader> n l]] | List npm packages |
| ~npm-mode-npm-run~ | [[kbd:][<localleader> n r]] | Run npm task |
| ~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
#+DATE: April 23, 2020
#+SINCE: v3.0.0
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang json
#+SUBTITLE: At least it ain't XML
#+CREATED: April 23, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module provides JSON support.
* Description :unfold:
This module adds [[https://www.json.org/json-en.html][JSON]] support to Doom Emacs.
** Maintainers
This module has no dedicated maintainers.
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ =+lsp= Enable integration with LSP servers, if one is available. Requires the
=:tools lsp= module to be enabled.
** Module flags
- +lsp ::
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
+ [[https://github.com/joshwnj/json-mode][json-mode]]
+ [[https://github.com/Sterlingg/json-snatcher][json-snatcher]]
** Packages
- [[doom-package:][counsel-jq]] if [[doom-module:][:completion ivy]]
- [[doom-package:][json-mode]]
- [[doom-package:][json-snatcher]]
* Prerequisites
This module has no prerequisites.
** Hacks
/No hacks documented for this module./
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
** 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
# How to configure this module, including common problems and how to address them.
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Troubleshooting
# Common issues and their solution, or places to look for help.
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,109 +1,129 @@
#+TITLE: lang/julia
#+DATE: April 8, 2020
#+SINCE: v1.3
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang julia
#+SUBTITLE: A better, faster MATLAB
#+CREATED: April 08, 2020
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport:
- [[#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
* Description :unfold:
This module adds support for [[https://julialang.org/][the Julia language]] to Doom Emacs.
+ Syntax highlighting and latex symbols from ~julia-mode~
+ REPL integration from ~julia-repl~
+ Code completion and syntax checking, requires ~:tools lsp~ and ~+lsp~
- Syntax highlighting and latex symbols from [[doom-package:][julia-mode]]
- REPL integration from [[doom-package:][julia-repl]]
- Code completion and syntax checking, requires [[doom-module:][:tools lsp]] and [[doom-module:][+lsp]]
** Module Flags
+ =+lsp= Enable LSP server support.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/JuliaEditorSupport/julia-emacs/][julia-mode]]
+ [[https://github.com/tpapp/julia-repl][julia-repl]]
+ =+lsp= and =:tools lsp=
+ [[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]]
** Module flags
- +lsp ::
Enable LSP support for ~julia-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports LanguageServer.jl).
* Prerequisites
This module requires =julia= and an language server if =+lsp= is enabled.
** Packages
- [[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
~+lsp~ requires ~LanguageServer.jl~ and ~SymbolServer.jl~. The =lsp-julia= and
=eglot-jl= packages both come bundled with their own versions of these servers,
[[doom-module:][+lsp]] requires ~LanguageServer.jl~ and ~SymbolServer.jl~. The [[doom-package:][lsp-julia]] and
[[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
necessary.
However, to use your own installation you will need to install then configure
them. To install them, execute these commands in a Julia REPL:
#+BEGIN_SRC julia
#+begin_src julia
using Pkg
Pkg.add("LanguageServer")
Pkg.add("SymbolServer")
#+END_SRC
#+end_src
Then configure =lsp-julia= or =eglot-jl= depending on whether you have enabled
=:tools lsp= or =:tools (lsp +eglot)=, respectively:
Then configure [[doom-package:][lsp-julia]] or [[doom-package:][eglot-jl]] depending on whether you have enabled
[[doom-module:][:tools lsp]] or [[doom-module:][:tools lsp +eglot]], respectively:
*** ~lsp-julia~
To instruct =lsp-julia= not to use the built-in package:
#+BEGIN_SRC elisp
;; ~/.doom.d/config.el
*** =lsp-julia=
To instruct [[doom-package:][lsp-julia]] not to use the built-in package:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(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
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
(setq lsp-julia-default-environment "~/.julia/environments/v1.0")
#+END_SRC
*** ~eglot-jl~
To find your installation of ~LanguageServer.jl~, ~eglot-jl~ must know the
*** =eglot-jl=
To find your installation of ~LanguageServer.jl~, [[doom-package:][eglot-jl]] must know the
environment in which it is installed. This is set to v1.0 by default as it is
the current LTS:
#+BEGIN_SRC elisp
;; ~/.doom.d/config.el
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(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:
#+BEGIN_SRC elisp
;; ~/.doom.d/config.el
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! eglot-jl
(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
~+lsp~ adds code completion, syntax checking, formatting and other ~lsp-mode~ or
~eglot~ features. It requires ~LanguageServer.jl~, the installation of which is
[[doom-module:][+lsp]] adds code completion, syntax checking, formatting and other [[doom-package:][lsp-mode]] or
[[doom-package:][eglot]] features. It requires ~LanguageServer.jl~, the installation of which is
described above.
* Configuration
** Change the default environment for the Julia language server
~lsp-julia~ requires a variable be set for the Julia environment. This is set to
v1.0 by default as it is the current LTS.
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
#+BEGIN_SRC elisp
;; ~/.doom.d/config.el
(setq lsp-julia-default-environment "~/.julia/environments/v1.0")
#+END_SRC
** Change the default environment for the Julia language server
[[doom-package:][lsp-julia]] requires a variable be set for the Julia environment. This is set to
v1.0 by default as it is 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
* 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
#+DATE: March 28, 2019
#+SINCE: v3.0.0
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang kotlin
#+SUBTITLE: A Java(Script) that won't depress you
#+CREATED: March 28, 2019
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description :unfold:
This module adds [[https://kotlinlang.org/][Kotlin]] support to Doom Emacs.
* Description
This module adds Kotlin support to Emacs.
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ =+lsp= Enables integration with [[https://github.com/emacs-lsp/lsp-mode][kotlin-language-server]]. This requires the
=:tools lsp= module.
** Module flags
- +lsp ::
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
+ kotlin-mode
+ flycheck-kotlin
** Packages
- [[doom-package:][flycheck-kotlin]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][kotlin-mode]]
* Prerequisites
TODO
** Hacks
/No hacks documented for this module./
* Features
TODO
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Configuration
TODO
* 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
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
#+DATE: January 16, 2017
#+SINCE: v1.3
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang latex
#+SUBTITLE: Writing papers in Emacs has never been so fun
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport:
- [[#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
* Description :unfold:
Provide a helping hand when working with LaTeX documents.
+ Sane defaults
+ Fontification of many popular commands
+ Pretty indentation of wrapped lines using the ~adaptive-wrap~ package
+ Spell checking with ~flycheck~
+ Change PDF viewer to Okular or ~latex-preview-pane~
+ Bibtex editor
+ Autocompletion using ~company-mode~
+ Compile your .tex code only once using LatexMk
- Sane defaults
- Fontification of many popular commands
- Pretty indentation of wrapped lines using the [[doom-package:][adaptive-wrap]] package
- Spell checking with [[doom-package:][flycheck]]
- Change PDF viewer to Okular or [[doom-package:][latex-preview-pane]]
- Bibtex editor
- Autocompletion using [[doom-package:][company-mode]]
- Compile your =.tex= code only once using LatexMk
** Module Flags
+ =+latexmk= Use LatexMk instead of LaTeX to compile documents.
+ =+cdlatex= Enable [[https://github.com/cdominik/cdlatex][cdlatex]] for fast math insertion.
+ =+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.
** Maintainers
- [[doom-user:][@tecosaur]]
- [[doom-user:][@ymarco]]
** Plugins
+ [[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=)
[[doom-contrib-maintainer:][Become a maintainer?]]
* Prerequisites
You will need ghostscript and a latex compiler. All this is provided by
the =texlive= bundle, available through many OS package managers.
** Module flags
- +cdlatex ::
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
#+BEGIN_SRC sh
#+begin_src sh
apt-get install texlive
#+END_SRC
#+end_src
** Arch Linux
#+BEGIN_SRC sh
#+begin_src sh
pacman -S texlive-core
#+END_SRC
#+end_src
** TODO macOS
#+BEGIN_SRC sh
#+begin_src sh
brew install --cask basictex
# If the above doesn't work, then
brew install --cask mactex # WARNING: large 4gb download!
#+END_SRC
#+end_src
#+begin_quote
This has not been verified.
🔨 This has not been verified.
#+end_quote
** NixOS
#+BEGIN_SRC nix
#+begin_src nix
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
Reftex has a variable that allow you to
specify where it should find your bibliography file(s):
#+BEGIN_SRC emacs-lisp
Reftex has a variable that allow you to specify where it should find your
bibliography file(s):
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq reftex-default-bibliography "/your/bib/file.bib")
#+END_SRC
#+end_src
** Changing the PDFs viewer
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
+ Zathura
+ 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,
or remove tools from the search altogether. If you want to exclusively use one
tool, for instance:
#+BEGIN_SRC emacs-lisp
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq +latex-viewers '(zathura))
#+END_SRC
#+end_src
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~
to ~nil~.
** Using cdlatex's snippets despite having yasnippet
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
the ~TAB~ key for cdlatex, which takes care of snippet-related stuff:
#+BEGIN_SRC emacs-lisp
[[doom-package:][cdlatex]] has a snippet insertion capability which is disabled in favor of
[[doom-package:][yasnippet]] when using [[doom-module:][:editor snippets]]. If you still wanna use it, simply rebind
the [[kbd:][TAB]] key for cdlatex, which takes care of snippet-related stuff:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(map! :map cdlatex-mode-map
:i "TAB" #'cdlatex-tab)
#+END_SRC
:i "TAB" #'cdlatex-tab)
#+end_src
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
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
#+DATE: October 13, 2019
#+SINCE: v2.0.4
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang ledger
#+SUBTITLE: Be audit you can be
#+CREATED: September 09, 2017
#+SINCE: 2.0.6 (#194)
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
* Description
* Description :unfold:
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
following format:
#+BEGIN_SRC ledger
#+begin_src ledger
2015/10/12 Exxon
Expenses:Auto:Gas $10.00
Liabilities:MasterCard $-10.00
#+END_SRC
#+end_src
This modules enables the following features:
+ Syntax and indentation support for ledger files
+ Add, edit, and delete transactions
+ Generate reports
+ Schedule transactions
+ Sort transactions
+ Display statistics about transactions
+ Display balance up to a point
- Syntax and indentation support for ledger files
- Add, edit, and delete transactions
- Generate reports
- Schedule transactions
- Sort transactions
- Display statistics about transactions
- Display balance up to a point
** Module Flags
This module provides no flags.
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/purcell/flycheck-ledger][flycheck-ledger]]
+ [[https://github.com/atheriel/evil-ledger][evil-ledger]]
** Module flags
/This module has no flags./
** 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
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
whole transaction instead of toggling just the current posting.
- 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 whole transaction instead of toggling just the current posting.
* Prerequisites
In order for ~flycheck-ledger~ to work and to be able to generate reports you
will need to install [[https://www.ledger-cli.org/][ledger]].
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* TODO Features
An in-depth list of features, how to use them, and their dependencies.
* Installation
[[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
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
#+DATE: Jun 3, 2020
#+SINCE: v3.0
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang lua
#+SUBTITLE: One-based indices? one-based indices
#+CREATED: Jun 03, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#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 :unfold:
This module adds Lua support to Doom Emacs.
* Description
Adds Lua support to Doom Emacs
# A summary of what this module does.
+ REPL
+ Love2D specific functions
+ Moonscript support
- REPL
- Love2D specific functions
- Moonscript support
- Fennel support
** Maintainers
This module has no dedicated maintainers.
- [[doom-user:][@hlissner]]
** Module Flags
+ =+moonscript= Moonscript language support
+ =+fennel= Fennel language support
+ =+lsp= Language Server Protocol support
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
# A list of linked plugins
+ [[https://github.com/immerrr/lua-mode][lua-mode]]
+ [[https://github.com/k2052/moonscript-mode][moonscript-mode]] (=+moonscript=)
+ [[https://gitlab.com/technomancy/fennel-mode][fennel-mode]] (=+fennel=)
** Module flags
- +fennel ::
Enable support for the Fennel language.
- +lsp ::
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
LSP server support depends on which flavor of the =:tools lsp= module you have
installed (Eglot or LSP-mode).
LSP server support depends on which flavor of the [[doom-module:][:tools lsp]] module you have
installed ([[doom-package:][eglot]] or [[doom-package:][lsp-mode]]).
*** LSP-mode
Three servers are supported, ordered from highest to lowest priority:
+ [[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.
+ [[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
- [[https://github.com/EmmyLua/EmmyLua-LanguageServer][EmmyLua-LanguageServer]] :: Must be in
=$EMACSDIR/.local/etc/lsp/EmmyLua-LS-all.jar=. See
~lsp-clients-emmy-lua-jar-path~ variable to change this.
- [[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.
+ [[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.
[[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 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
=~/.config/emacs/.local/etc/lsp/lua-language-server/=. See
~+lua-lsp-dir~ variable to change this.
=$EMACSDIR/.local/etc/lsp/lua-language-server/=. See ~+lua-lsp-dir~ variable
to change this.
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Configuration
- lua-lsp-dir :: This must be set when using =+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.
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+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
[[doom-report:][Report an issue?]]
** 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
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
#+DATE: February 19, 2017
#+SINCE: 2.0
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang markdown
#+SUBTITLE: Write docs for people to ignore
#+CREATED: February 19, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport:
- [[#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
* Description :unfold:
This module provides Markdown support for Emacs.
#+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
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.
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
publishable as-is, as plain text, without looking like its been marked up with
tags or formatting instructions. While Markdowns syntax has been influenced by
publishable as-is, as plain text, without looking like it's been marked up with
tags or formatting instructions. While Markdown's syntax has been influenced by
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
** Module Flags
+ =+grip= Enables [[https://github.com/seagle0128/grip-mode][grip support]] (on =<localleader> p=), to provide live
github-style previews of your markdown (or org) files.
** Maintainers
- [[doom-user:][@hlissner]]
** Plugins
+ markdown-mode
+ markdown-toc
[[doom-contrib-maintainer:][Become a maintainer?]]
** 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
+ 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.
* Prerequisites
This module has two soft dependencies: a linter and a compiler (for previewing
markdown).
** 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:
- A linter (requires [[doom-module:][:checkers syntax]])
- A markdown compiler, for previewing Markdown
** Linters
Out of the box, flycheck recognizes these checkers for markdown-mode and
gfm-mode:
+ Markdown-specific
+ [[https://github.com/DavidAnson/markdownlint][markdownlint]] (~npm install markdownlint~)
+ [[https://github.com/markdownlint/markdownlint][mdl]] (~gem install mdl~)
+ General (natural language)
+ [[http://proselint.com/][proselint]]
- ~pip install proselint~
- Markdown-specific
- [[https://github.com/DavidAnson/markdownlint][markdownlint]] (~$ npm install markdownlint~)
- [[https://github.com/markdownlint/markdownlint][mdl]] (~$ gem install mdl~)
- General (natural language)
- [[http://proselint.com/][proselint]]
- ~$ pip install proselint~
- Or through your OS package manager
- MacOS: ~brew install proselint~
- Arch Linux: ~pacman -S proselint~
+ [[https://github.com/textlint/textlint][textlint]] (~npm install textlint~)
- MacOS: ~$ brew install proselint~
- Arch Linux: ~$ pacman -S proselint~
- [[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
work. It will recognize and use one of the following executables, in this order
(you only need one):
+ [[https://github.com/markedjs/marked][markedjs]]: a markdown compiler "built for speed"
+ [[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
- [[https://github.com/markedjs/marked][markedjs]]: a markdown compiler "built for speed"
- [[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
for these two:
+ 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
+ [[https://fletcher.github.io/MultiMarkdown-6/][multimarkdown]]: a compiler for a language that is a superset of Markdown, with
- 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
- [[https://fletcher.github.io/MultiMarkdown-6/][multimarkdown]]: a compiler for a language that is a superset of Markdown, with
additional output formats and features.
*** MarkedJS
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
#+END_SRC
#+end_src
*** Pandoc
Pandoc is the universal markup transpiler. It should be available through your
system package manager. For example:
+ MacOS: ~brew install pandoc~
+ Arch Linux: ~pacman -S pandoc~
+ MacOS: ~$ brew install pandoc~
+ Arch Linux: ~$ pacman -S pandoc~
*** Markdown
The C implementation of Markdown.pl, called =discount=, is available through
your OS's package manager:
+ MacOS: ~brew install discount~
+ Arch Linux: ~pacman -S discount~
+ MacOS: ~$ brew install 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
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
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
* Features
** Markdown preview
~markdown-preview~ is bound to =<localleader> p=. This will open a preview of
your compiled markdown document in your browser.
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+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
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** 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-compile-functions~: a list of functions that take three arguments: the
start and end point in the current buffer to use as input, and an output buffer
to insert the result in.
~+markdown-compile-functions~: a list of functions that take three arguments:
the start and end point in the current buffer to use as input, and an output
buffer to insert the result in.
By default, the value of ~+markdown-compile-functions~ is:
#+BEGIN_SRC lisp
#+begin_src lisp
'(+markdown-compile-marked
+markdown-compile-pandoc
+markdown-compile-markdown
+markdown-compile-multimarkdown)
#+END_SRC
#+end_src
These functions will attempt to use the marked, pandoc and markdown executables,
if available. Changing this variable will control how markdown is compiled.
#+BEGIN_SRC elisp
if available. Changing this variable will control how markdown is compiled:
#+begin_src emacs-lisp
;; Add a new one
(add-hook '+markdown-compile-functions #'my-compile-function)
;; Or remove an existing one
(remove-hook '+markdown-compile-functions #'+markdown-compile-markdown)
#+END_SRC
#+end_src
Otherwise, you can change ~markdown-command~ directly:
#+BEGIN_SRC elisp
#+begin_src emacs-lisp
(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
This module is a work in progress.
#+end_quote
* Description :unfold:
This module adds [[https://nim-lang.org][Nim]] support to Doom Emacs.
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)
+ Syntax checking (nimsuggest + flycheck)
+ Babel support (~ob-nim~)
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
* Table of Contents :TOC:
- [[#module-flags][Module Flags]]
- [[#prerequisites][Prerequisites]]
- [[#nim][Nim]]
- [[#configuration][Configuration]]
** Module flags
/This module has no flags./
* Module Flags
This module provides no flags.
** Packages
- [[doom-package:][flycheck-nim]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][nim-mode]]
* Prerequisites
+ ~nim~ (for building & evaluation)
+ ~nimsuggest~ (for code completion, syntax checking & jump-to-definition functionality)
** Hacks
- [[doom-package:][nimsuggest]] was modified to strip invalid characters from its temp file paths
(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
=choosenim= is an installer and version manager for the Nim programming
language. You can install the latest stable release of Nim by running the
following in your terminal and following the onscreen instructions:
#+BEGIN_SRC bash
#+begin_src 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:
- MacOS: ~$ brew install nim~
- Arch Linux: ~$ pacman --needed --noconfirm -S nim nimble~
- openSUSE: ~$ zypper install nim~
*** MacOS
#+BEGIN_SRC sh :tangle (if (doom-system-os 'macos) "yes")
brew install nim
#+END_SRC
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
*** Arch Linux
#+BEGIN_SRC sh :dir /sudo:: :tangle (if (doom-system-os 'arch) "yes")
sudo pacman --needed --noconfirm -S nim nimble
#+END_SRC
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
*** openSUSE
#+BEGIN_SRC sh :dir /sudo::
sudo zypper install nim
#+END_SRC
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* 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
#+DATE: May 4, 2020
#+SINCE: v2.0.7
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang nix
#+SUBTITLE: I hereby declare "nix geht mehr!"
#+CREATED: December 02, 2017
#+SINCE: 2.0.8 (#280)
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#keybindings][Keybindings]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description :unfold:
This module adds support for the Nix language to Doom Emacs, along with tools
for managing [[https://nixos.org/][Nix(OS)]].
* Description
Adds many tools for [[https://nixos.org/][Nix(OS)]] users in nice package for Doom users.
+ Syntax highlighting
+ Completion through ~company~ / ~helm~
+ Nix option lookup
+ Formatting (~nixfmt~)
Includes:
- Syntax highlighting
- Completion through [[doom-package:][company]] and/or [[doom-package:][helm]]
- Nix option lookup
- Formatting (~nixfmt~)
** Maintainers
This module has no dedicated maintainers.
- [[doom-user:][@hlissner]]
** Module Flags
This module provides no flags.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/NixOS/nix-mode][nix-mode]]
+ [[https://github.com/jwiegley/nix-update-el][nix-update]]
** Module flags
/This module has no flags./
* Prerequisites
+ ~nixfmt~ is required to use formatting
+ If you have Nix(OS) installed it can be installed through Nix configuration ~environment.systemPackages = with pkgs; [ nixfmt ];~ (recommended)
+ Or through nix-env ~nix-env -iA nixpkgs.nixfmt~
+ Or through nix-shell ~nix-shell -f https://github.com/serokell/nixfmt/archive/master.tar.gz -i~
+ ~: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.
** Packages
- [[doom-package:][company-nixos-options]] if [[doom-module:][:completion company]]
- [[doom-package:][helm-nixos-options]] if [[doom-module:][:completion helm]]
- [[doom-package:][nix-mode]]
- [[doom-package:][nix-update]]
** 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
| Binding | Description |
|-------------------+----------------------|
| ~<localleader> b~ | ~nix-build~ |
| ~<localleader> f~ | ~nix-update-fetch~ |
| ~<localleader> o~ | ~+nix/lookup-option~ |
| ~<localleader> p~ | ~nix-format-buffer~ |
| ~<localleader> r~ | ~nix-repl-show~ |
| ~<localleader> s~ | ~nix-repl-shell~ |
| ~<localleader> u~ | ~nix-unpack~ |
| Binding | Description |
|-----------------+----------------------|
| [[kbd:][<localleader> b]] | ~nix-build~ |
| [[kbd:][<localleader> f]] | ~nix-update-fetch~ |
| [[kbd:][<localleader> o]] | ~+nix/lookup-option~ |
| [[kbd:][<localleader> p]] | ~nix-format-buffer~ |
| [[kbd:][<localleader> r]] | ~nix-repl-show~ |
| [[kbd:][<localleader> s]] | ~nix-repl-shell~ |
| [[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
+ 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
#+DATE: June 27, 2017
#+SINCE: v2.0.3
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang ocaml
#+SUBTITLE: An objective camel
#+CREATED: June 27, 2017
#+SINCE: 2.0.4 (#128)
* Table of Contents :TOC:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#appendix][Appendix]]
- [[#commands][Commands]]
- [[#hacks][Hacks]]
* Description :unfold:
This module adds [[https://ocaml.org/][OCaml]] support to Doom Emacs, powered by [[doom-package:][tuareg-mode]].
* Description
This module adds [[https://ocaml.org/][OCaml]] support to Doom Emacs, powered by [[https://github.com/ocaml/tuareg][tuareg-mode]].
- Code completion, documentation look-up, code navigation and refactoring
([[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
([[https://github.com/ocaml/merlin/wiki/emacs-from-scratch][merlin]])
+ 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]])
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
This module provides no flags.
** Module 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
+ [[https://github.com/ocaml/tuareg][tuareg]]
+ [[https://github.com/ocaml/merlin][merlin]]
+ [[https://github.com/Khady/merlin-eldoc][merlin-eldoc]]
+ [[https://github.com/OCamlPro/ocp-indent][ocp-indent]]
+ [[https://github.com/flycheck/flycheck-ocaml][flycheck-ocaml]]*
+ [[https://github.com/ocaml-community/utop][utop]]*
+ [[https://github.com/ocaml-ppx/ocamlformat][ocamlformat]]*
+ [[https://github.com/ocaml/dune][dune]]
* Prerequisites
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= |
** Packages
- [[doom-package:][dune]]
- [[doom-package:][ocamlformat]] if [[doom-module:][:editor format]]
- [[doom-package:][ocp-indent]]
- [[doom-package:][tuareg]]
- [[doom-package:][utop]] if [[doom-module:][:tools eval]]
- unless [[doom-module:][+lsp]]
- [[doom-package:][flycheck-ocaml]] if [[doom-module:][:checkers syntax]]
- [[doom-package:][merlin]]
- [[doom-package:][merlin-company]]
- [[doom-package:][merlin-eldoc]]
** Hacks
+ =set-ligatures!= is called with the full tuareg prettify symbol list, this
can cause columns to change as certain keywords are shortened (e.g. =fun=
becomes \lambda.
+ =tuareg-opam-update-env= is called the first time =tuareg= is loaded
- ~set-ligatures!~ is called with the full tuareg prettify symbol list, this can
cause columns to change as certain keywords are shortened (e.g. =fun= becomes
\lambda).
- ~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
#+DATE: February 19, 2017
#+SINCE: 2.0
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang org
#+SUBTITLE: Organize your plain life in plain text
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#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
* Description :unfold:
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
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
from files in/under =org-directory=).
+ Executable code blocks with support for a variety of languages and tools
from files in/under ~org-directory~).
- Executable code blocks with support for a variety of languages and tools
(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~.
+ 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.
+ Drag-and-drop support for images (with inline preview) and media files (drops
a file icon and a short link) (requires =+dragndrop= flag).
+ Integration with pandoc, ipython, jupyter, reveal.js, beamer, and others
- Drag-and-drop support for images (with inline preview) and media files (drops
a file icon and a short link) (requires [[doom-module:][+dragndrop]] flag).
- Integration with pandoc, ipython, jupyter, reveal.js, beamer, and others
(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
~+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/
#+end_quote
** Module Flags
+ =+brain= Enables [[https://github.com/Kungsgeten/org-brain][org-brain]] integration.
+ =+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=.
** Maintainers
- [[doom-user:][@hlissner]]
** Plugins
+ [[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]]
[[doom-contrib-maintainer:][Become a maintainer?]]
** 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
+ 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~.
+ Gracefully degrades ~:async~ babel blocks to ~:sync~ when =ob-async= would
cause errors or issues (such as with a ~:session~ parameter, which =ob-async=
does not support, or when exporting org documents).
+ The window is recentered when following links.
+ The breadcrumbs displayed in eldoc when hovering over an org headline has been
- Gracefully degrades ~:async~ babel blocks to ~:sync~ when [[doom-package:][ob-async]] would cause
errors or issues (such as with a ~:session~ parameter, which [[doom-package:][ob-async]] does not
support, or when exporting org documents).
- The window is recentered when following links.
- The breadcrumbs displayed in eldoc when hovering over an org headline has been
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
are temporarily opened in the background.
+ Temporary org agenda files aren't added to recentf.
+ =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,
- If [[doom-module:][:ui workspaces]] is enabled, persp-mode won't register org agenda buffers
that are temporarily opened in the background.
- Temporary org agenda files aren't added to recentf.
- =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,
rather than cycle through it recursively. This can be reversed with:
#+BEGIN_SRC emacs-lisp
#+begin_src emacs-lisp
(after! evil-org
(remove-hook 'org-tab-first-hook #'+org-cycle-only-current-subtree-h))
#+END_SRC
+ (Evil users) Nearby tables are formatted when exiting insert or replace mode
#+end_src
- (Evil users) Nearby tables are formatted when exiting insert or replace mode
(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~).
+ 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.
+ 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
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:*~
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
~+org-capture-expand-variable-file-a~).
* Prerequisites
Org has a few soft dependencies that you will need to make use of Org's more
esoteric features:
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
+ For inline LaTeX previews, ~latex~ and ~dvipng~ is needed.
+ To render GNUPlot images (with =+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 =:lang= module and ensure
its dependencies are met, e.g. install the =ruby= executable for ruby support.
To use ~jupyter kernels~ you need the =+jupyter= flag, the associated kernel as
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module has no hard requirements, but these soft requirements are needed to
use Org's more esoteric features:
- For inline LaTeX previews, ~latex~ and ~dvipng~ is needed.
- 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.
+ =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
#+BEGIN_SRC sh
#+begin_src sh
brew install --cask mactex
brew install gnuplot
#+END_SRC
#+end_src
** Arch Linux
#+BEGIN_SRC sh
#+begin_src sh
pacman -S texlive-core texlive-bin texlive-science
pacman -S gnuplot
pacman -S jupyter # required by +jupyter
#+END_SRC
#+end_src
** NixOS
#+BEGIN_SRC nix
#+begin_src nix
environment.systemPackages = with pkgs; [
# any less than medium isn't guaranteed to work
texlive.combined.scheme-medium
# required by +jupyter
(python38.withPackages(ps: with ps; [jupyter]))
];
#+END_SRC
#+end_src
** 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
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
will spawn a temporary daemon for you.
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)'
#+END_SRC
#+end_src
** Built-in custom link types
This module defines a number of custom link types in ~+org-init-custom-links-h~.
They are (with examples):
+ ~doom-docs:news/2.1.0~ (=~/.emacs.d/docs/%s=)
+ ~doom-modules:editor/evil/README.org~ (=~/.emacs.d/modules/%s=)
+ ~doom-repo:issues~ (=https://github.com/hlissner/doom-emacs/%s=)
+ ~doom:core/core.el~ (=~/.emacs.d/%s=)
+ ~duckduckgo:search terms~
+ ~gimages:search terms~ (Google Images)
+ ~github:hlissner/doom-emacs~
+ ~gmap:Toronto, Ontario~ (Google Maps)
+ ~google:search terms~
+ ~org:todo.org~ (={org-directory}/%s=)
+ ~wolfram:sin(x^3)~
+ ~wikipedia:Emacs~
+ ~youtube:P196hEuA_Xc~ (link only)
+ ~yt:P196hEuA_Xc~ (like =youtube=, but includes an inline preview of the video)
- ~doom-docs:index.org~ -> =~/.emacs.d/docs/%s=
- ~doom-modules:editor/evil/README.org~ -> =~/.emacs.d/modules/%s=
- ~doom-repo:issues~ -> =https://github.com/hlissner/doom-emacs/%s=
- ~doom:core/core.el~ -> =~/.emacs.d/%s=
- ~duckduckgo:search terms~
- ~gimages:search terms~ (Google Images)
- ~github:hlissner/doom-emacs~
- ~gmap:Toronto, Ontario~ (Google Maps)
- ~google:search terms~
- ~org:todo.org~ -> ={org-directory}/%s=
- ~wolfram:sin(x^3)~
- ~wikipedia:Emacs~
- ~youtube:P196hEuA_Xc~ (link only)
- ~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~
To modify ~org-directory~ it must be set /before/ =org= has loaded:
#+BEGIN_SRC emacs-lisp
;; ~/.doom.d/config.el
~org-directory~ must be set /before/ [[doom-package:][org]] has loaded:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq org-directory "~/new/org/location/")
#+END_SRC
** Changing ~org-noter-notes-search-path~
To modify ~org-noter-notes-search-path~ set:
#+end_src
#+BEGIN_SRC emacs-lisp
;; ~/.doom.d/config.el
** Changing ~org-noter-notes-search-path~
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq org-noter-notes-search-path '("~/notes/path/"))
#+END_SRC
#+end_src
* Troubleshooting
[[doom-report:][Report an issue?]]
** =org-roam=
*** 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
should go with =+roam2=; if you already have an ~org-roam-directory~ with the v1
files in it, then you can keep use =+roam= for a time being.
Long story short: if you're new to [[doom-package:][org-roam]] and haven't used it, then you should
go with [[doom-module:][+roam2]]; if you already have an ~org-roam-directory~ with the v1 files in
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
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.
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
your =init.el=.
1. Enable [[doom-module:][+roam2]] flag (and disable [[doom-module:][+roam]] if it was previously enabled) in your
=init.el=.
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~
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
just in case backup it yourself too.
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
[[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
#+DATE: January 16, 2017
#+SINCE: v1.3
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang php
#+SUBTITLE: Perl's insecure younger brother
#+CREATED: January 16, 2017
#+SINCE: 1.3
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#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 :unfold:
This module adds support for PHP 5.3+ (including PHP7) to Doom Emacs.
* Description
This module adds support for PHP 5.3+ (including PHP7).
+ ctags-based code completion (~company-php~ and ~phpctags~)
+ eldoc support (~ac-php~ and ~php-extras~)
+ REPL (~php-boris~)
+ Code refactoring commands (~php-refactor-mode~)
+ Unit-test commands (~phpunit~)
+ 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]]
- ctags-based code completion (~company-php~ and ~phpctags~)
- eldoc support (~ac-php~ and ~php-extras~)
- REPL (~php-boris~)
- Code refactoring commands (~php-refactor-mode~)
- Unit-test commands (~phpunit~)
- Support for ~laravel~ and ~composer~ projects (with project-specific snippets)
- [[../../editor/file-templates/templates/php-mode][File templates]]
- [[https://github.com/hlissner/doom-snippets/tree/master/php-mode][Snippets]]
#+begin_quote
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
who inherited my earliest PHP work. I know you're out there, writhing in your
straitjackets.
💡 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 who inherited my earliest PHP work. I know you're out there,
writhing in your straitjackets.
Save a programmer today. Stop a friend from choosing PHP as their first
language.
Save a programmer today. Stop a friend from choosing PHP as their first
language.
#+end_quote
** Maintainers
This module has no dedicated maintainers.
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ =+hack= Add support for the [[https://hacklang.org/][Hack dialect of PHP]] by Facebook.
+ =+lsp= Enable LSP support through phpactor or intelephense. Requires the ~:tools
lsp~ module and the [[https://phpactor.readthedocs.io/en/develop/usage/standalone.html][phpactor server]] to be installed on your system.
** Plugins
+ [[https://github.com/tomterl/php-boris][async]]
+ [[https://github.com/tomterl/php-boris][php-boris]]
+ [[https://github.com/arnested/php-extras][php-extras]]
+ [[https://github.com/emacs-php/php-mode][php-mode]]
+ [[https://github.com/keelerm84/php-refactor-mode.el][php-refactor-mode]]
+ [[https://github.com/nlamirault/phpunit.el][phpunit]]
+ [[https://github.com/emacs-php/composer.el][composer.el]]
+ =+hack=
+ [[https://github.com/hhvm/hack-mode][hack-mode]]
+ =+lsp=
+ [[https://github.com/emacs-php/phpactor.el][phpactor]]
+ [[https://github.com/emacs-php/phpactor.el][company-phpactor]]
+ =:editor format=
+ [[https://github.com/OVYA/php-cs-fixer][php-cs-fixer]]
** Module flags
- +hack ::
Add support for the [[https://hacklang.org/][Hack dialect of PHP]] by Facebook.
- +lsp ::
Enable LSP support for ~php-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports [[https://phpactor.readthedocs.io/en/develop/usage/standalone.html][phpactor]] and intelephense).
** Packages
- [[doom-package:][async]]
- [[doom-package:][hack-mode]] if [[doom-module:][+hack]]
- [[doom-package:][php-boris]]
- [[doom-package:][php-cs-fixer]] if [[doom-package:][:editor format]]
- [[doom-package:][php-extras]]
- [[doom-package:][php-mode]]
- [[doom-package:][php-refactor-mode]]
- [[doom-package:][phpunit]]
- if [[doom-module:][+lsp]]
- [[doom-package:][phpactor]]
- [[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
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
PHP 5.5 comes prepackaged with newer versions of MacOS. These instructions are
provided for reference:
#+begin_src sh :tangle (if (doom-system-os 'macos) "yes")
#+begin_src sh
brew tap homebrew/homebrew-php
brew install php71 # or php53, php54, php55
brew install composer
@ -92,7 +82,7 @@ brew install npm
#+end_src
*** 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
# If you use intelephense:
@ -100,20 +90,32 @@ sudo pacman -S nodejs npm
#+end_src
*** openSUSE
#+begin_src sh :dir /sudo::
#+begin_src sh
sudo zypper install php-composer
# If you use intelephense:
sudo zypper install nodejs npm
#+end_src
** Dependencies
This module has no required dependencies, but it has a couple optional ones.
** LSP Support
There are a number of currently supported LSP servers:
+ ~boris~ (REPL)
+ ~phpctags~ (better code completion)
+ ~phpunit~ (unit test commands)
+ ~php-cs-fixer~ and ~@prettier/plugin-php~ (for code formatting)
- [[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 [[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)
#+begin_src sh
@ -129,34 +131,23 @@ composer global require \
npm install -g @prettier/plugin-php
#+end_src
You must ensure that ~~/.composer/vendor/bin~ is in ~PATH~, so these executables are
visible to Emacs:
You must ensure that =$HOME/.composer/vendor/bin= is in =$PATH=, so these
executables are visible to Emacs:
#+begin_src sh
# place this in your profile file, like ~/.bash_profile or ~/.zshenv
export PATH="~/.composer/vendor/bin:$PATH"
#+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.
*NOTE* phpactor doesn't have to be installed via =composer=, just has to exist in
your =$PATH=.
* Features
** LSP Support
There are a number of currently supported LSP servers:
+ [[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=.
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** PHPUnit
This module provides an interface to PHPUnit through a number of commands as
@ -178,21 +169,25 @@ use the ~phpunit.xml.dist~ convention) , the path can be changed via
This module provides several convenience methods for triggering composer
commands:
| Binding | Function |
|---------------------+---------------------------------|
| ~<localleader> m c c~ | ~composer~ |
| ~<localleader> m c i~ | ~composer-install~ |
| ~<localleader> m c r~ | ~composer-require~ |
| ~<localleader> m c u~ | ~composer-update~ |
| ~<localleader> m c d~ | ~composer-dump-autoload~ |
| ~<localleader> m c s~ | ~composer-run-scripts~ |
| ~<localleader> m c v~ | ~composer-run-vendor-bin-command~ |
| ~<localleader> m c o~ | ~composer-find-json-file~ |
| ~<localleader> m c l~ | ~composer-view-lock-file~ |
| Binding | Function |
|---------------------+-----------------------------------|
| [[kbd:][<localleader> m c c]] | ~composer~ |
| [[kbd:][<localleader> m c i]] | ~composer-install~ |
| [[kbd:][<localleader> m c r]] | ~composer-require~ |
| [[kbd:][<localleader> m c u]] | ~composer-update~ |
| [[kbd:][<localleader> m c d]] | ~composer-dump-autoload~ |
| [[kbd:][<localleader> m c s]] | ~composer-run-scripts~ |
| [[kbd:][<localleader> m c v]] | ~composer-run-vendor-bin-command~ |
| [[kbd:][<localleader> m c o]] | ~composer-find-json-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
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=
@ -210,11 +205,12 @@ If you wish to specify a different container, modify the
#+end_src
* Troubleshooting
[[doom-report:][Report an issue?]]
** "I'm missing functionality on lsp-mode"
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
(insecurely) added directly to your config:
#+begin_src emacs-lisp
(setq lsp-intelephense-licence-key "<key>")
#+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.
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
machine * login intelephense password <key>
#+end_src
And add the following to your config
And add the following to your config:
#+begin_src emacs-lisp
(defun my-fetch-password (&rest params)
(require 'auth-source)
@ -244,3 +238,11 @@ And add the following to your config
(setq lsp-intelephense-license-key (my-fetch-password :user intelephense))
#+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
#+DATE: Oct, 2019
#+SINCE: v2.0.9
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang python
#+SUBTITLE: Beautiful is better than ugly
#+CREATED: June 15, 2015
#+SINCE: 0.7
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#language-server-protocol-support][Language Server Protocol Support]]
- [[#features][Features]]
- [[#keybindings][Keybindings]]
- [[#configuration][Configuration]]
* Description :unfold:
This module adds [[https://www.python.org/][Python]] support to Doom Emacs.
* Description
Adds Python support to Doom Emacs.
- Syntax checking ([[doom-package:][flycheck]])
- 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~)
+ Snippets
+ Run tests (~nose~, ~pytest~)
+ Auto-format (~black~), requires ~:editor format~
+ LSP integration (mspyls, pyls, or pyright)
** Maintainers
- [[doom-user:][@hlissner]]
** Module Flags
+ ~+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]]
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/pythonic-emacs/anaconda-mode][anaconda-mode]]*
+ [[https://github.com/Wilfred/pyimport][pyimport]]*
+ [[https://github.com/paetzke/py-isort.el][py-isort]]*
+ [[https://github.com/emacsattic/nose/][nose]]*
+ [[https://github.com/wbolster/emacs-python-pytest][python-pytest]]*
+ [[https://github.com/Wilfred/pip-requirements.el][pip-requirements]]*
+ [[https://github.com/pwalsh/pipenv.el][pipenv]]*
+ if ~+conda~
+ [[https://github.com/necaris/conda.el][conda]]*
+ if ~+pyenv~
+ [[https://github.com/pythonic-emacs/pyenv-mode][pyenv]]*
+ if ~+poetry~
+ [[https://github.com/galaunay/poetry.el][poetry]]*
+ if ~+lsp~ and ~:tools 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]]
** Module flags
- +conda ::
Enable python virtual environment support via [[https://conda.io/en/latest/][Conda]].
- +cython ::
Enable support for Cython files support.
- +lsp ::
Enable LSP support for ~python-mode~. Requires [[doom-module:][:tools lsp]] and a langserver
(supports mspyls, pyls, and pyright).
- +poetry ::
Enable Python packaging, dependency management, and virtual environment
support via [[https://python-poetry.org/][Poetry]].
- +pyenv ::
Enable Python virtual environment support via [[https://github.com/pyenv/pyenv][pyenv]]
- +pyright ::
Use the pyright LSP server instead of mspyls or pyls (requires [[doom-module:][+lsp]]).
* Prerequisites
This module has no hard prerequisites, but a few soft ones:
** Packages
- [[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:
+ ~pip install pytest~
+ ~pip install nose~
+ 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~
+ ~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]]
** Hacks
- [[doom-package:][anaconda-mode]] is configured to activate when [[doom-package:][lsp-mode]] (or [[doom-package:][eglot]]) don't -- or
fail to.
** 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 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
For LSP support the =:tools lsp= module must be enabled, along with this
module's =+lsp= flag. By default, it supports =mspyls= and =pyls=, in that
order. With the =+pyright= flag, it will try Pyright first.
For LSP support the [[doom-module:][:tools lsp]] module must be enabled, along with this module's
[[doom-module:][+lsp]] flag. By default, it supports [[doom-package:][mspyls]] and [[doom-package:][pyls]], in that order. With the
[[doom-module:][+pyright]] flag, it will try Pyright first.
Each of these servers must be installed on your system via your OS package
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]~.
+ *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~.
* TODO Usage
#+begin_quote
🔨 /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]], [[https://github.com/Microsoft/python-language-server][Microsoft Language Server]], or [[https://github.com/microsoft/pyright][pyright]], see [[Language Server Protocol Support][LSP Support]].
This module supports LSP. It requires installation of [[https://pypi.org/project/python-language-server/][Python Language 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
~init.el~ file.
To enable support for auto-formatting with black enable [[doom-module:][:editor format]].
** Keybindings
| Binding | Description |
|-------------------+----------------------------------|
| [[kbd:][<localleader> c c]] | ~Compile Cython buffer~ |
| [[kbd:][<localleader> i i]] | ~Insert mising imports~ |
| [[kbd:][<localleader> i r]] | ~Remove unused imports~ |
| [[kbd:][<localleader> i s]] | ~Sort imports~ |
| [[kbd:][<localleader> i o]] | ~Optimize imports~ |
| [[kbd:][<localleader> t r]] | ~nosetests-again~ |
| [[kbd:][<localleader> t a]] | ~nosetests-all~ |
| [[kbd:][<localleader> t s]] | ~nosetests-one~ |
| [[kbd:][<localleader> t v]] | ~nosetests-module~ |
| [[kbd:][<localleader> t A]] | ~nosetests-pdb-all~ |
| [[kbd:][<localleader> t O]] | ~nosetests-pdb-one~ |
| [[kbd:][<localleader> t V]] | ~nosetests-pdb-module~ |
| [[kbd:][<localleader> t f]] | ~python-pytest-file~ |
| [[kbd:][<localleader> t k]] | ~python-pytest-file-dwim~ |
| [[kbd:][<localleader> t t]] | ~python-pytest-function~ |
| [[kbd:][<localleader> t m]] | ~python-pytest-function-dwim~ |
| [[kbd:][<localleader> t r]] | ~python-pytest-repeat~ |
| [[kbd:][<localleader> t p]] | ~python-pytest-popup~ |
| [[kbd:][<localleader> g d]] | ~anaconda-mode-find-definitions~ |
| [[kbd:][<localleader> g h]] | ~anaconda-mode-show-doc~ |
| [[kbd:][<localleader> g a]] | ~anaconda-mode-find-assignments~ |
| [[kbd:][<localleader> g f]] | ~anaconda-mode-find-file~ |
| [[kbd:][<localleader> g u]] | ~anaconda-mode-find-references~ |
| Binding | Description |
|---------------------+----------------------------------|
| ~<localleader> c c~ | ~Compile Cython buffer~ |
| ~<localleader> i i~ | ~Insert mising imports~ |
| ~<localleader> i r~ | ~Remove unused imports~ |
| ~<localleader> i s~ | ~Sort imports~ |
| ~<localleader> i o~ | ~Optimize imports~ |
| ~<localleader> t r~ | ~nosetests-again~ |
| ~<localleader> t a~ | ~nosetests-all~ |
| ~<localleader> t s~ | ~nosetests-one~ |
| ~<localleader> t v~ | ~nosetests-module~ |
| ~<localleader> t A~ | ~nosetests-pdb-all~ |
| ~<localleader> t O~ | ~nosetests-pdb-one~ |
| ~<localleader> t V~ | ~nosetests-pdb-module~ |
| ~<localleader> t f~ | ~python-pytest-file~ |
| ~<localleader> t k~ | ~python-pytest-file-dwim~ |
| ~<localleader> t t~ | ~python-pytest-function~ |
| ~<localleader> t m~ | ~python-pytest-function-dwim~ |
| ~<localleader> t r~ | ~python-pytest-repeat~ |
| ~<localleader> t p~ | ~python-pytest-popup~ |
| ~<localleader> g d~ | ~anaconda-mode-find-definitions~ |
| ~<localleader> g h~ | ~anaconda-mode-show-doc~ |
| ~<localleader> g a~ | ~anaconda-mode-find-assignments~ |
| ~<localleader> g f~ | ~anaconda-mode-find-file~ |
| ~<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
[[https://jupyter.org/][jupyter]] shells:
#+BEGIN_SRC elisp
;; ~/.doom.d/config.el
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq +python-ipython-repl-args '("-i" "--simple-prompt" "--no-color-info"))
(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
#+DATE: May 22, 2021
#+SINCE: v2.0.9
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang qt
#+SUBTITLE: The cutest GUI framework ever
#+CREATED: June 02, 2018
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
* Description
# A summary of what this module does.
* Description :unfold:
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 .pro and .pri files used by [[https://doc.qt.io/qt-5/qmake-project-files.html][qmake]]
- 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]]
** Maintainers
This module has no dedicated maintainers.
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** Plugins
+ [[https://github.com/coldnew/qml-mode/tree/master][qml-mode]]
+ [[https://github.com/EricCrosson/qt-pro-mode][qt-pro-mode]]
** Packages
- [[doom-package:][qml-mode]]
- [[doom-package:][qt-pro-mode]]
* Prerequisites
This module has no prerequisites.
** 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,70 +1,90 @@
#+TITLE: lang/racket
#+DATE: July 29, 2018
#+SINCE: v2.0.9
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang racket
#+SUBTITLE: The DSL for DSLs
#+CREATED: July 29, 2018
#+SINCE: 2.0.9 (#772)
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#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]].
* Description :unfold:
This module adds support for the [[https://www.racket-lang.org/][Racket programming language]] to Doom Emacs.
** Maintainers
This module has no dedicated maintainers.
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ =+lsp= Enables LSP support. Requires jeapostrophe/racket-langserver.
+ =+xp= Enables the explore mode, which "analyzes expanded code to explain and explore."
** Module flags
- +lsp ::
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
+ [[https://github.com/greghendershott/racket-mode][racket-mode]]
** Packages
- [[doom-package:][racket-mode]]
* Prerequisites
This module only requires ~racket~. Install it directly from the [[https://download.racket-lang.org/][racket website]],
or check your package manger.
** 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 ~racket~. Install it from the [[https://download.racket-lang.org/][racket website]] or through
your OS package manger.
** Arch Linux
#+begin_src bash
#+begin_src sh
pacman -S racket
#+end_src
Or, for fewer dependencies:
#+begin_src bash
#+begin_src sh
pacman -S racket-minimal
#+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~ gets turned off automatically if you use ~parinfer~,
~lispy~. If you wish to enable it, add the following to your ~config.el~:
#+BEGIN_SRC elisp
~racket-smart-open-bracket-mode~ gets turned off automatically if you use
~parinfer~, ~lispy~. If you wish to enable it:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! racket-mode
(add-hook! racket-mode
#'racket-smart-open-bracket-mode))
#+END_SRC
(add-hook 'racket-mode-hook #'racket-smart-open-bracket-mode))
#+end_src
** Unicode Input
The optional ~racket-unicode~ input method lets you type unicode characters such as λ or π.
To enable unicode input for a single buffer, run ~racket-unicode-input-method-enable~.
To enable unicode input by default on all racket buffers, add the following hooks
to your ~config.el~:
#+BEGIN_SRC elisp
The optional ~racket-unicode~ input method lets you type unicode characters such
as λ or π. To enable unicode input for a single buffer, run
~racket-unicode-input-method-enable~. To enable unicode input by default on all
racket buffers:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(add-hook 'racket-mode-hook #'racket-unicode-input-method-enable)
(add-hook 'racket-repl-mode-hook #'racket-unicode-input-method-enable)
#+END_SRC
Once enabled, unicode input can be toggled by pressing C-\ or running ~toggle-input-method~.
#+end_src
* 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 @@
#+TITLE: :lang raku
← [[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
#+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:
- [[#install][Install]]
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
* Install
This module depends on raku itself.
** Module flags
/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
#+DATE: March 17, 2017
#+SINCE: v1.3
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang rest
#+SUBTITLE: Emacs as a REST client
#+CREATED: February 20, 2017
#+SINCE: 2.0.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description :unfold:
This module turns Emacs into a [[https://en.wikipedia.org/wiki/Representational_state_transfer][REST]] client.
* Description
This module adds [[https://en.wikipedia.org/wiki/Representational_state_transfer][REST]] support.
+ Code-completion (~company-restclient~)
+ Code evaluation
+ Imenu support for ~restclient-mode~
+ org-mode: babel support (~ob-restclient~)
- Code-completion (~company-restclient~)
- Code evaluation
- Imenu support for ~restclient-mode~
- org-mode: babel support (~ob-restclient~)
#+begin_quote
~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
block and hack away. ~restclient-mode~ and ~company-restclient~ power this
arcane wizardry.
💡 ~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 block and hack away. ~restclient-mode~ and ~company-restclient~ power
this arcane wizardry.
#+end_quote
** Maintainers
This module has no dedicated maintainers.
- [[doom-user:][@hlissner]]
** Module Flags
This module provides no flags.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/pashky/restclient.el][restclient]]
+ =:completion company=
+ [[https://github.com/iquiw/company-restclient][company-restclient]]
** Module flags
/This module has no flags./
** Packages
- [[doom-package:][company-restclient]] if [[doom-module:][:completion company]]
- [[doom-package:][restclient]]
** 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.
+ Adds imenu support to ~restclient-mode~.
* Prerequisites
This module has no prerequisites.
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Features
# An in-depth list of features, how to use them, and their dependencies.
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
* Configuration
# How to configure this module, including common problems and how to address them.
/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
# 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
#+DATE: January 16, 2007
#+SINCE: v1.3
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang ruby
#+SUBTITLE: 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
#+CREATED: January 16, 2007
#+SINCE: 1.3
* Table of contents :TOC:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#packages][Packages]]
- [[#prerequisites][Prerequisites]]
- [[#ubuntu][Ubuntu]]
- [[#macos][MacOS]]
- [[#windows][Windows]]
- [[#appendix][Appendix]]
- [[#commands][Commands]]
* Description
* Description :unfold:
This module add Ruby and optional Ruby on Rails support to Emacs.
+ Code completion (robe)
+ Syntax checking (flycheck)
+ Jump-to-definitions (robe)
+ Bundler
+ Rubocop integration (flycheck)
- Code completion ([[doom-package:][robe]])
- Syntax checking ([[doom-package:][flycheck]])
- Jump-to-definitions ([[doom-package:][robe]])
- Bundler
- Rubocop integration ([[doom-package:][flycheck]])
** Module Flags
+ =+lsp= Enables LangServer support for ruby. You must have =:tools lsp= enabled
for this to work, as well as the langserver (solargraph) installed on your
system.
+ =+rvm= Enables RVM (Ruby Version Manager) integration.
+ =+rbenv= Enables rbenv integration.
+ =+chruby= Enables chruby integration.
+ =+rails= Enables rails navigational commands, plus server+console integration.
** Maintainers
- [[doom-user:][@hlissner]]
[[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +chruby ::
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
+ [[https://github.com/endofunky/bundler.el][bundler]]
+ [[https://github.com/plexus/chruby.el][chruby]] (=+chruby=)
+ [[https://github.com/company-mode/company-inf-ruby][company-inf-ruby]]
+ [[https://github.com/eschulte/jump.el][inflections]]
+ [[https://github.com/nonsequitur/inf-ruby][inf-ruby]]
+ [[https://github.com/arthurnn/minitest-emacs][minitest]]
+ [[https://github.com/asok/projectile-rails][projectile-rails]] (=+rails=)
+ [[https://github.com/asok/rake][rake]]
+ [[https://github.com/senny/rbenv.el][rbenv]] (=+rbenv=)
+ [[https://github.com/dgutov/robe][robe]]
+ [[https://github.com/pezra/rspec-mode][rspec-mode]]
+ [[https://github.com/rubocop-hq/rubocop-emacs][rubocop]]
+ [[https://github.com/senny/rvm.el][rvm]] (=+rvm=)
- [[doom-package:][bundler]]
- [[doom-package:][chruby]] if [[doom-module:][+chruby]]
- [[doom-package:][company-inf-ruby]] if :completion company
- [[doom-package:][inf-ruby]]
- [[doom-package:][minitest]]
- [[doom-package:][rake]]
- [[doom-package:][rbenv]] if [[doom-module:][+rbenv]]
- [[doom-package:][robe]]
- [[doom-package:][rspec-mode]]
- [[doom-package:][rubocop]]
- [[doom-package:][rvm]] if [[doom-module:][+rvm]]
- if [[doom-module:][+rails]]
- [[doom-package:][inflections]]
- [[doom-package:][projectile-rails]]
* Prerequisites
Many of this modules plugins require ruby with some version manager (RVM or
Rbenv) and the rubocop gem.
** Hacks
/No hacks documented for this module./
** Ubuntu
You can follow [[https://gorails.com/setup/ubuntu/18.04][this guide]]. After ruby installation, run ~gem install rubocop~.
** MacOS
You can follow [[https://gorails.com/setup/osx/10.15-catalina][this guide]]. After ruby installation, run ~gem install rubocop~.
** Windows
You can follow [[https://gorails.com/setup/windows/10][this guide]]. After ruby installation, run ~gem install rubocop~.
** 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 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
*** robe
| command | key / ex command | description |
|----------------------+------------------+--------------------------------------------------------------------|
| ~robe-start~ | =SPC m \'= | Open ruby lang server for auto-completions and jump to definitions |
| ~robe-rails-refresh~ | =SPC m R= | Refresh the lang server. |
| command | key / ex command | description |
|----------------------+--------------------+--------------------------------------------------------------------|
| ~robe-start~ | [[kbd:][<localleader> ']] | Open ruby lang server for auto-completions and jump to definitions |
| ~robe-rails-refresh~ | [[kbd:][<localleader> R]] | Refresh the lang server. |
*** 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 |
|-------------------------------+-------------------+---------------------------------------------------|
| ~projectile-rails-console~ | [[kbd:][<localleader> r r]] | Open Rails console |
| ~projectile-rails-server~ | [[kbd:][<localleader> r R]] | Open Rails server |
| ~projectile-rails-find-model~ | [[kbd:][<localleader> r m]] | Find any model of the project |
| ~projectile-rails-find-model~ | [[kbd:][<localleader> r M]] | Find the model related of currently open resource |
| command | key / ex command | description |
|-------------------------------+------------------+---------------------------------------------------|
| ~projectile-rails-console~ | =SPC m r r= | Open Rails console |
| ~projectile-rails-server~ | =SPC m r R= | Open Rails server |
| ~projectile-rails-find-model~ | =SPC m r m= | Find any model of the project |
| ~projectile-rails-find-model~ | =SPC m r M= | Find the model related of currently open resource |
*** bundler
The bundler prefix is =SPC m b=. Here is some examples:
The bundler prefix is [[kbd:][<localleader> b]]:
| command | key / ex command | description |
|------------------+-------------------+---------------------|
| ~bundle-install~ | [[kbd:][<localleader> b i]] | Runs bundle install |
| ~bundle-update~ | [[kbd:][<localleader> b u]] | Runs bundle update |
| command | key / ex command | description |
|------------------+------------------+---------------------|
| ~bundle-install~ | =SPC m b i= | Runs bundle install |
| ~bundle-update~ | =SPC m b u= | Runs bundle update |
*** 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 |
|-----------------------+------------------+-----------------------------------|
| ~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 |
* 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
#+DATE: June 5, 2019
#+SINCE: v3.0.0
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang rust
#+SUBTITLE: Fe2O3.unwrap().unwrap().unwrap().unwrap()
#+CREATED: September 30, 2015
#+SINCE: 0.7
* Table of Contents :TOC_3:noexport:
- [[#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
* Description :unfold:
This module adds support for the Rust language and integration for its tools,
e.g. ~cargo~.
+ Code completion (=racer= or an LSP server)
+ Syntax checking (=flycheck=)
+ LSP support (for rust-analyzer and rls) (=rustic=)
+ Snippets
- Code completion ([[doom-package:][racer]] or an LSP server)
- Syntax checking ([[doom-package:][flycheck]])
- LSP support (for rust-analyzer and rls) ([[doom-package:][rustic]])
- Snippets
** Module Flags
+ ~+lsp~ to add support Language server protocol. Will use the first of
=rust-analyzer= or =rls= (in that order).
** Maintainers
- @hlissner
** Plugins
+ [[https://github.com/brotzeit/rustic][rustic]]
+ [[https://github.com/racer-rust/emacs-racer][racer]]* (unless =+lsp=)
[[doom-contrib-maintainer:][Become a maintainer?]]
** 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
+ 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
- rustic has been modified /not/ to automatically install lsp-mode or eglot if
they're missing. Doom expects you to have enabled the [[doom-module:][:tools lsp]] module
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
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
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
This module requires ~rust~, which can be acquired through =rustup=:
#+begin_src sh
curl https://sh.rustup.rs -sSf | sh
#+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
Additional requirements depend on the module's configuration:
+ If =:editor format= is enabled, you'll need =rustfmt=: ~rustup component add
- If [[doom-module:][:editor format]] is enabled, you'll need =rustfmt=: ~$ rustup component add
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).
+ Users with =+lsp= enabled will need:
+ =rust-analyzer= or =rls=
+ Using the following commands requires:
+ ~cargo-process-check~: ~cargo install cargo-check~
+ ~cargo-process-clippy~: ~rustup component add clippy-preview~
- Users with [[doom-module:][+lsp]] enabled will need:
- =rust-analyzer= or =rls=
- Using the following commands requires:
- ~cargo-process-check~: ~$ cargo install cargo-check~
- ~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)
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
OS package manager).
2. The =:tools lsp= module enabled.
3. The ~+lsp~ flag on this module enabled.
2. The [[doom-module:][:tools lsp]] module enabled.
3. The [[doom-module:][+lsp]] flag on this module enabled.
** Format on save
Enable the [[file:../../../modules/editor/format/README.org][:editor format]] module's =+onsave= flag to get formatting on save with
rustfmt. No additional configuration is necessary.
Enable [[doom-module:][:editor format +onsave]] to get formatting on save with =rustfmt=. No
additional configuration is necessary.
** Keybinds
| Binding | Description |
|---------------------+-----------------------------|
| ~<localleader> b a~ | ~cargo audit~ |
| ~<localleader> b b~ | ~cargo build~ |
| ~<localleader> b B~ | ~cargo bench~ |
| ~<localleader> b c~ | ~cargo check~ |
| ~<localleader> b C~ | ~cargo clippy~ |
| ~<localleader> b d~ | ~cargo doc~ |
| ~<localleader> b n~ | ~cargo update~ |
| ~<localleader> b o~ | ~cargo outdated~ |
| ~<localleader> b r~ | ~cargo run~ |
| ~<localleader> t a~ | ~cargo test~ |
| ~<localleader> t t~ | ~run current test~ |
| =<localleader> b a= | ~cargo audit~ |
| =<localleader> b b= | ~cargo build~ |
| =<localleader> b B= | ~cargo bench~ |
| =<localleader> b c= | ~cargo check~ |
| =<localleader> b C= | ~cargo clippy~ |
| =<localleader> b d= | ~cargo doc~ |
| =<localleader> b n= | ~cargo update~ |
| =<localleader> b o= | ~cargo outdated~ |
| =<localleader> b r= | ~cargo run~ |
| =<localleader> t a= | ~cargo test~ |
| =<localleader> t t= | ~run current test~ |
* TODO Configuration
#+begin_quote
🔨 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
** Enable RLS by default
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:
#+BEGIN_SRC elisp
used by default. Modify ~rustic-lsp-server~ to change the default:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(after! rustic
(setq rustic-lsp-server 'rls))
#+END_SRC
#+end_src
** Enabling eglot support for Rust
Doom's =:tools lsp= module has an =+eglot= flag. Enable it and this module will
use eglot instead.
Doom's [[doom-module:][:tools lsp]] module has an [[doom-module:][+eglot]] flag. Enable it and this module will use
eglot instead.
* Troubleshooting
[[doom-report:][Report an issue?]]
** error[E0670]: `async fn` is not permitted in the 2015 edition
You may be seeing this error, despite having ~edition = "2018"~ in your
=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
format= enabled).
server tries to invoke on save (if you have ~rustic-format-on-save~ or
[[doom-module:][:editor format]] enabled).
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
#+DATE: October 14, 2020
#+SINCE: v1.3
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang scala
#+SUBTITLE: Java, but good
#+CREATED: May 12, 2016
#+SINCE: 1.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#lsp-integration][=+lsp= Integration]]
- [[#prerequisites][Prerequisites]]
- [[#coursier][Coursier]]
- [[#metals][Metals]]
- [[#features][Features]]
- [[#notes][Notes]]
* Description
* Description :unfold:
This module adds [[https://www.scala-lang.org][scala]] and [[https://www.scala-sbt.org/][sbt]] support to Doom Emacs.
** Module Flags
+ =+lsp= Enables integration for the metals LSP server.
Through the power of [[https://scalameta.org/metals/docs/editors/overview.html][Metals]] (LSP) this module offers:
- 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
Note: Coursier is only required to install Metals. If system is running arch
linux this step can be safely skipped.
Coursier is only required to install Metals. If you're on Arch linux this step
can be skipped.
**** Ubuntu / Debian / Fedora
#+BEGIN_SRC sh
#+begin_src sh
curl -fLo cs https://git.io/coursier-cli-linux &&
chmod +x cs &&
./cs
#+END_SRC
#+end_src
**** MacOS
#+BEGIN_SRC sh
#+begin_src sh
curl -fLo cs https://git.io/coursier-cli-macos &&
chmod +x cs &&
(xattr -d com.apple.quarantine cs || true) &&
./cs
#+END_SRC
#+end_src
**** Arch
#+BEGIN_SRC sh
**** Arch Linux
#+begin_src sh
yay -S coursier
#+END_SRC
#+end_src
*** Metals
**** 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
coursier bootstrap \
@ -64,31 +89,34 @@ coursier bootstrap \
-o /usr/local/bin/metals-emacs -f
#+end_src
**** Arch
#+BEGIN_SRC sh
**** Arch Linux
#+begin_src sh
yay -S metals
#+END_SRC
#+end_src
** Features
According to [[https://scalameta.org/metals/docs/editors/overview.html]] it adds
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
+ Goto Definition
+ Completions
+ Hover
+ Paremeter Hints
+ Find References
+ Run/Debug
+ Find Implementations
+ Rename Symbol
+ Code Actions
+ Document Symbols
+ Formatting
+ Folding
+ Organize Imports
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
** 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.
+ Latest version of sbt is recommended.
+ Running =M-x lsp-metals-doctor-run= helps diagnose problems.
+ Full reference here: https://scalameta.org/metals/docs/editors/emacs.html
- Projects are required to have scala version =2.11.12=, =2.12.8=, =2.13.0= or
greater.
- Latest version of sbt is recommended.
- 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
#+DATE: July 23, 2019
#+SINCE: v2.0.9
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang scheme
#+SUBTITLE: A fully conniving family of lisps
#+CREATED: July 23, 2019
#+SINCE: 21.12.0 (#1588)
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#commands][Commands]]
- [[#geiser][Geiser]]
* Description :unfold:
This module provides support for the Scheme family of Lisp languages, powered by
[[https://www.nongnu.org/geiser/geiser_1.html#introduction][geiser]].
* Description
This module provides an environment for hacking and having fun in scheme. It is
powered by [[https://www.nongnu.org/geiser/geiser_1.html#introduction][geiser]].
** Maintainers
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ =+chez=
+ =+chibi=
+ =+chicken=
+ =+gambit=
+ =+gauche=
+ =+guile=
+ =+kawa=
+ =+mit=
+ =+racket=
** Module flags
- +chez ::
- +chibi ::
- +chicken ::
- +gambit ::
- +gauche ::
- +guile ::
- +kawa ::
- +mit ::
- +racket ::
** Plugins
+ [[https://gitlab.com/jaor/geiser][geiser]]
+ [[https://github.com/nbfalcon/macrostep-geiser][macrostep-geiser]]
+ [[https://gitlab.com/emacs-geiser/chez][geiser-chez]] (if =+chez=)
+ [[https://gitlab.com/emacs-geiser/chibi][geiser-chibi]] (if =+chibi=)
+ [[https://gitlab.com/emacs-geiser/chicken][geiser-chicken]] (if =+chicken=)
+ [[https://gitlab.com/emacs-geiser/gambit][geiser-gambit]] (if =+gambit=)
+ [[https://gitlab.com/emacs-geiser/gauche][geiser-gauche]] (if =+gauche=)
+ [[https://gitlab.com/emacs-geiser/guile][geiser-guile]] (if =+guile=)
+ [[https://github.com/flatwhatson/flycheck-guile][flycheck-guile]] (if =+guile= and =:checkers syntax=)
+ [[https://gitlab.com/emacs-geiser/kawa][geiser-kawa]] (if =+kawa=)
+ [[https://gitlab.com/emacs-geiser/mit][geiser-mit]] (if =+mit=)
+ [[https://gitlab.com/emacs-geiser/racket][geiser-racket]] (if =+racket=)
** Packages
- [[doom-package:][flycheck-guile]] if [[doom-module:][+guile]] and [[doom-module:][:checkers syntax]]
- [[doom-package:][geiser]]
- [[doom-package:][geiser-chez]] if [[doom-module:][+chez]]
- [[doom-package:][geiser-chibi]] if [[doom-module:][+chibi]]
- [[doom-package:][geiser-chicken]] if [[doom-module:][+chicken]]
- [[doom-package:][geiser-gambit]] if [[doom-module:][+gambit]]
- [[doom-package:][geiser-gauche]] if [[doom-module:][+gauche]]
- [[doom-package:][geiser-guile]] if [[doom-module:][+guile]]
- [[doom-package:][geiser-kawa]] if [[doom-module:][+kawa]]
- [[doom-package:][geiser-mit]] if [[doom-module:][+mit]]
- [[doom-package:][geiser-racket]] if [[doom-module:][+racket]]
- [[doom-package:][macrostep-geiser]]
* Prerequisites
This module requires you to have at least one of the supported schemes, namely:
** 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.]]
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://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://synthcode.com/scheme/chibi][Chibi Scheme]] 0.7.3 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.
* Features
** Commands
*** Geiser
| command | key / ex command | description |
|---------------------+------------------+----------------------|
| ~+scheme/open-repl~ | =:repl= | Open the Scheme Repl |
| | | |
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
| command | key / ex command | description |
|---------------------+-----------------------+----------------------|
| ~+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
#+DATE: December 19, 2015
#+SINCE: v0.7
#+STARTUP: inlineimages
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang sh
#+SUBTITLE: She sells {ba,z,fi}sh shells on the C xor
#+CREATED: September 28, 2015
#+SINCE: 0.7
* Table of Contents :TOC:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description :unfold:
This module adds support for shell scripting languages (including Powershell and
Fish script) to Doom Emacs.
* Description
This module adds support for shell scripting languages.
- Code completion ([[doom-package:][company-shell]])
- Syntax Checking ([[doom-package:][flycheck]])
+ Code completion (company-shell)
+ Syntax Checking (flycheck)
** Maintainers
- [[doom-user:][@hlissner]]
** Module Flags
+ =+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
[[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
- +fish ::
Add syntax highlighting for fish script files.
- +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=).
** Plugins
+ [[https://github.com/Alexander-Miller/company-shell][company-shell]]* (=:completion company=)
+ [[https://github.com/wwwjfy/emacs-fish][fish-mode]]* (=+fish=)
+ [[https://github.com/jschaf/powershell.el][powershell-mode]]* (=+powershell=)
** 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
+ 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:
+ [[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).
+ With the =:tools debugger= module
+ [[http://bashdb.sourceforge.net/][bashdb]]: Enables debugging for bash scripts
+ [[https://github.com/rocky/zshdb][zshdb]]: Enables debugging for zsh scripts
- [[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 [[doom-module:][+lsp]] flag).
- With the [[doom-module:][:tools debugger]] module
- [[http://bashdb.sourceforge.net/][bashdb]]: Enables debugging for bash 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 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
#+DATE: March 29, 2020
#+SINCE: v3.0
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang sml
#+SUBTITLE: ...
#+CREATED: Mar 30, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module has no description yet.
* Description :unfold:
THis module adds [[https://smlfamily.github.io/][SML (Standard ML) programming language]] support to Doom Emacs.
** Maintainers
This module has no dedicated maintainers.
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** Plugins
+ sml-mode
+ company-mlton (=:completion company=)
** Packages
- [[doom-package:][company-mlton]] if [[doom-module:][:completion company]]
- [[doom-package:][sml-mode]]
* TODO Prerequisites
# Document how to install sml program and MLton
** Hacks
/No hacks documented for this module./
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
** 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 =sml= and =MLton=.
* TODO Usage
#+begin_quote
🔨 This module has no usage documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Configuration
# How to configure this module, including common problems and how to address them.
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Troubleshooting
# Common issues and their solution, or places to look for help.
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote

View file

@ -1,47 +1,79 @@
#+TITLE: :lang solidity
← [[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
#+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~)
+ Code completion ([[https://github.com/ssmolkin1/company-solidity][company-solidity]])
+ Gas estimation (~C-c C-g~)
- Syntax-checking ([[doom-package:][flycheck]])
- Code completion ([[doom-package:][company-solidity]])
- Gas estimation (~C-c C-g~)
* Table of Contents :TOC:
- [[#module-flags][Module Flags]]
- [[#prerequisites][Prerequisites]]
- [[#solc][Solc]]
- [[#solium][Solium]]
- [[#todo][TODO]]
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
* Module Flags
This module provides no flags.
** Module flags
/This module has no flags./
** 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:
+ [[https://github.com/ethereum/solc-js][Solc]]
+ [[http://solium.readthedocs.io/en/latest/user-guide.html#installation][Solium]]
- [[https://github.com/ethereum/solc-js][Solc]]
- [[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
errors.
** Solc
#+BEGIN_SRC sh
#+begin_src sh
npm install -g solc
#+END_SRC
#+end_src
** Solium
#+BEGIN_SRC sh
#+begin_src sh
npm install -g solium
#+END_SRC
#+end_src
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
~config.el~
#+BEGIN_SRC emacs-lisp
By default *solium* looks for =.soliumrc.json= in the project directory, but you
can set it to your own =.soliumrc.json= with:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(setq flycheck-solidity-solium-soliumrcfile "~/.soliumrc.json")
#+END_SRC
#+end_src
* TODO
+ Snippets
* 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,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
#+DATE: April 23, 2020
#+SINCE: v3.0.0
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang yaml
#+SUBTITLE: JSON, but readable
#+CREATED: April 24, 2020
#+SINCE: 21.12.0
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#troubleshooting][Troubleshooting]]
* Description
This module provides support for the [[https://yaml.org/][YAML file format]].
* Description :unfold:
This module provides support for the [[https://yaml.org/][YAML file format]] to Doom Emacs.
** Maintainers
This module has no dedicated maintainers.
/This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]]
** Module Flags
+ =+lsp= Enables integration with LSP servers. Requires the =:tools lsp= module to be enabled.
** Module flags
- +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
+ [[https://github.com/yoshiki/yaml-mode][yaml-mode]]
** Packages
- [[doom-package:][yaml-mode]]
* Prerequisites
This module has no prerequisites.
** Hacks
/No hacks documented for this module./
* TODO Features
# An in-depth list of features, how to use them, and their dependencies.
** 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
# How to configure this module, including common problems and how to address them.
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* TODO Troubleshooting
# Common issues and their solution, or places to look for help.
/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
#+DATE: March 18, 2021
#+SINCE: v2.0.9
#+STARTUP: inlineimages nofold
← [[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]]
--------------------------------------------------------------------------------
#+TITLE: :lang zig
#+SUBTITLE: C, but simpler
#+CREATED: April 05, 2021
#+SINCE: 21.12.0 (#4827)
* Table of Contents :TOC_3:noexport:
- [[#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
* Description :unfold:
This module adds [[https://ziglang.org/][Zig]] support, with optional (but recommended) LSP support via
[[https://github.com/zigtools/zls][zls]].
+ Syntax highlighting
+ Syntax-checking (~flycheck~)
+ Code completion and LSP integration (~zls~)
- Syntax highlighting
- Syntax-checking ([[doom-package:][flycheck]])
- Code completion and LSP integration (~zls~)
** Maintainers
+ [[https://github.com/bnjmnt4n][@bnjmnt4n]] (Author)
- [[doom-user:][@bnjmnt4n]]
** Module Flags
+ =+lsp= Enables integration for the zls LSP server. It is highly recommended
you use this.
[[doom-contrib-maintainer:][Become a maintainer?]]
** Plugins
+ [[https://github.com/ziglang/zig-mode][zig-mode]]
** Module flags
- +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
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]].
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
This module supports LSP integration. For it to work you'll need:
1. zls installed.
2. The =:tools lsp= module enabled. Only =lsp-mode= is supported for now.
3. The ~+lsp~ flag on this module enabled.
1. zls installed,
2. The [[doom-module:][:tools lsp]] module enabled. Only [[doom-package:][lsp-mode]] is supported for now,
3. The [[doom-module:][+lsp]] flag on this module enabled.
** Keybinds
| Binding | Description |
|-------------------+---------------------|
| ~<localleader> b~ | ~zig-compile~ |
| ~<localleader> f~ | ~zig-format-buffer~ |
| ~<localleader> r~ | ~zig-run~ |
| ~<localleader> t~ | ~zig-test-buffer~ |
| [[kbd:][<localleader> b]] | ~zig-compile~ |
| [[kbd:][<localleader> f]] | ~zig-format-buffer~ |
| [[kbd:][<localleader> r]] | ~zig-run~ |
| [[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
To customize the path of the =zls= executable, modify ~lsp-zig-zls-executable~.
#+BEGIN_SRC elisp
To customize the path of the =zls= executable, modify ~lsp-zig-zls-executable~:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(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