Alexander-Miller/company-shell@a77f4de759 -> Alexander-Miller/company-shell@5f959a63a6 Emacs-Kotlin-Mode-Maintainers/kotlin-mode@3e0c34087b -> Emacs-Kotlin-Mode-Maintainers/kotlin-mode@fddd747e5b FStarLang/fstar-mode.el@c95c2a61a6 -> FStarLang/fstar-mode.el@ab0697b947 Fuco1/sphinx-mode@9d4075c106 -> Fuco1/sphinx-mode@77ca51adf9 Groovy-Emacs-Modes/groovy-emacs-modes@bf732d367b -> Groovy-Emacs-Modes/groovy-emacs-modes@c612ac1e9f Khady/merlin-eldoc@db7fab1edd -> Khady/merlin-eldoc@bf8edc63d8 OVYA/php-cs-fixer@7e12a1af5d -> OVYA/php-cs-fixer@efe4368d89 ProofGeneral/PG@e1e29acb04 -> ProofGeneral/PG@8416875696 Wilfred/elisp-def@dfca043ec0 -> Wilfred/elisp-def@1d2e88a232 agda/agda@b612cabaae -> agda/agda@bb7603d197 amake/flutter.el@08138f8c95 -> amake/flutter.el@edd3f5eb3f ananthakumaran/exunit.el@0715c2dc2d -> ananthakumaran/exunit.el@e0a8c2b81f beancount/beancount-mode@ea8257881b -> beancount/beancount-mode@519bfd868f bradyt/dart-mode@3bac14200f -> bradyt/dart-mode@9c846769ab brantou/emacs-go-tag@59b243f2fa -> brantou/emacs-go-tag@33f2059551 cdominik/cdlatex@8e963c6853 -> cdominik/cdlatex@ac024ce293 clojure-emacs/cider@92c1b6de20 -> clojure-emacs/cider@1ed5163433 clojure-emacs/clj-refactor.el@db89b55871 -> clojure-emacs/clj-refactor.el@b5abe655e5 clojure-emacs/clojure-mode@414157c3e5 -> clojure-emacs/clojure-mode@3453cd229b cpitclaudel/company-coq@a6e349e013 -> cpitclaudel/company-coq@5affe7a96a crystal-lang-tools/emacs-crystal-mode@96a8058205 -> crystal-lang-tools/emacs-crystal-mode@9bfb9f0f56 davazp/graphql-mode@9740e4027b -> davazp/graphql-mode@1437b79006 diml/utop@bbd9a6ed45 -> diml/utop@ace481388a dominikh/go-mode.el@3273fcece5 -> dominikh/go-mode.el@166dfb1e09 elixir-editors/emacs-elixir@e0d0466d83 -> elixir-editors/emacs-elixir@7641373f05 emacs-csharp/csharp-mode@856ecbc0a7 -> emacs-csharp/csharp-mode@02c61c219b emacs-ess/ESS@39eba28300 -> emacs-ess/ESS@8b4664e4a7 emacs-lsp/lsp-dart@fda433671f -> emacs-lsp/lsp-dart@3db9f93c83 emacs-lsp/lsp-java@0968038b9a -> emacs-lsp/lsp-java@dbe448a886 emacs-lsp/lsp-sourcekit@f877659bab -> emacs-lsp/lsp-sourcekit@468c641e35 emacs-php/composer.el@7c7f89df22 -> emacs-php/composer.el@5af1707fef emacs-php/php-mode@5f26bec865 -> emacs-php/php-mode@fb11df8268 emacs-php/phpactor.el@34195f1533 -> emacs-php/phpactor.el@9440005814 emacs-php/psysh.el@21250984ad -> emacs-php/psysh.el@796b26a5cd emacs-straight/auctex@830e40a063 -> emacs-straight/auctex@3929d5408b emacs-straight/csv-mode@43f6106f0d -> emacs-straight/csv-mode@d190a479b4 emacs-straight/rainbow-mode@949166cc01 -> emacs-straight/rainbow-mode@8e96388fb4 emacs-straight/sml-mode@0338e9729b -> emacs-straight/sml-mode@5426ff4738 emacsmirror/auctex-latexmk@4d35352265 -> emacsmirror/auctex-latexmk@b00a95e6b3 emacsmirror/paredit@e4a67f4f23 -> emacsmirror/paredit@9a2c4b37fc emacsorphanage/macrostep@424e3734a1 -> emacsorphanage/macrostep@75ecd04121 erlang/otp@9ba9f6e60d -> erlang/otp@be7109f43b ethereum/emacs-solidity@20fb77e089 -> ethereum/emacs-solidity@ddb4a901c3 factor/factor@1aeafdb87b -> factor/factor@76ac65649d fsharp/emacs-fsharp-mode@c1e58c61f9 -> fsharp/emacs-fsharp-mode@09fec6c91f fxbois/web-mode@efa853e5cf -> fxbois/web-mode@df97ab62c9 godotengine/emacs-gdscript-mode@4badcf6a0c -> godotengine/emacs-gdscript-mode@d392e8aa7e greghendershott/racket-mode@af9b760e7b -> greghendershott/racket-mode@947d9806ee hhvm/hack-mode@a522f61c08 -> hhvm/hack-mode@26f06ffe82 idris-hackers/idris-mode@65d6db1b75 -> idris-hackers/idris-mode@c96f45d1b8 immerrr/lua-mode@5a9bee8d5f -> immerrr/lua-mode@ad639c62e3 iyefrat/evil-tex@0fa85c3fc8 -> iyefrat/evil-tex@3e0a26b91a jcollard/elm-mode@d4e434fa18 -> jcollard/elm-mode@5797500d74 joaotavora/sly@4513c382f0 -> joaotavora/sly@fa70fc8ab1 jorgenschaefer/emacs-buttercup@ceedad5efa -> jorgenschaefer/emacs-buttercup@07a52c9969 jrblevin/markdown-mode@1f709778ac -> jrblevin/markdown-mode@c765b73b37 jschaf/powershell.el@ce1f0ae0b2 -> jschaf/powershell.el@f2da15857e jwiegley/emacs-async@c78bab7506 -> jwiegley/emacs-async@71cc50f27f leanprover/lean-mode@c1c68cc946 -> leanprover/lean-mode@362bc6fa3e ledger/ledger-mode@b55384d9cd -> ledger/ledger-mode@4b32f70173 midnightSuyama/shader-mode@d7dc8d0d6f -> midnightSuyama/shader-mode@fe5a1982ba necaris/conda.el@667968184e -> necaris/conda.el@28f51e49fd nlamirault/phpunit.el@fe6bc91c3b -> nlamirault/phpunit.el@4a36906344 ocaml-ppx/ocamlformat@9cbd8150c2 -> ocaml-ppx/ocamlformat@1ad4bdba9e ocaml/dune@3df932f7f9 -> ocaml/dune@f5a5a9c17b ocaml/merlin@be753d9412 -> ocaml/merlin@306af713e2 ocaml/tuareg@ad8a688b7e -> ocaml/tuareg@53ce2fdfdd pashky/restclient.el@9e2cfa8652 -> pashky/restclient.el@0ba72816f9 polymode/polymode@2094c92403 -> polymode/polymode@15b6c1e94a purcell/flycheck-package@615c1ed8c6 -> purcell/flycheck-package@3a6aaed29f purescript-emacs/purescript-mode@0acd1af446 -> purescript-emacs/purescript-mode@cf113871f9 s-kostyaev/go-gen-test@35df36dcd5 -> s-kostyaev/go-gen-test@f84f4177af seagle0128/grip-mode@6d6ddbe0af -> seagle0128/grip-mode@5809fb62f6 sebasmonia/sharper@96edd4a1db -> sebasmonia/sharper@496e90e337 smihica/emmet-mode@6b2e554f7f -> smihica/emmet-mode@63b6932603 swift-emacs/swift-mode@f4529efa45 -> swift-emacs/swift-mode@1244ee48de technomancy/fennel-mode@5664357349 -> technomancy/fennel-mode@52da9715b0 vspinu/company-math@45778f5731 -> vspinu/company-math@3eb006874e whirm/flycheck-kotlin@bf1b398bdd -> whirm/flycheck-kotlin@a2a6abb9a7 wwwjfy/emacs-fish@a7c953b149 -> wwwjfy/emacs-fish@d04478c0ab xuchunyang/elisp-demos@01c301b516 -> xuchunyang/elisp-demos@792be709c8 yoshiki/yaml-mode@535273d5a1 -> yoshiki/yaml-mode@3fcb36d603 ziglang/zig-mode@aa20d630b8 -> ziglang/zig-mode@9c5e41d6a0
:lang python
Description unfold
This module 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
, orpyright
)
Maintainers
Module flags
- +conda
- Enable python virtual environment support via 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 Poetry.
- +pyenv
- Enable Python virtual environment support via pyenv
- +pyright
- Use the pyright LSP server instead of mspyls or pyls (requires doom-module:+lsp).
- +tree-sitter
- Leverages tree-sitter for better syntax highlighting and structural text editing. Requires doom-module::tools tree-sitter.
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
-
- doom-package:cython-mode
- doom-package:flycheck-cython if doom-module::checkers syntax
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 module does not have a changelog yet.
Installation
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 isort to be installed:
pip install isort
-
Python virtual environments install instructions at:
cython
requires Cython
Language Server Protocol Support
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:
- 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
🔨 This module's usage documentation is incomplete. Complete it?
This module supports LSP. It requires installation of Python Language Server, Microsoft Language Server, or pyright, see LSP Support.
To enable support for auto-formatting with black enable doom-module::editor format.
Keybindings
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
🔨 This module's configuration documentation is incomplete. Complete it?
This module has the following variables to set extra arguments to ipython and jupyter shells:
;; in $DOOMDIR/config.el
(setq +python-ipython-repl-args '("-i" "--simple-prompt" "--no-color-info"))
(setq +python-jupyter-repl-args '("--simple-prompt"))
Troubleshooting
There are no known problems with this module. Report one?
Frequently asked questions
This module has no FAQs yet. Ask one?
TODO Appendix
🔨 This module has no appendix yet. Write one?