5.4 KiB
lang/python
Description
Adds Python support to Doom Emacs.
- Syntax checking (
flycheck
) - Snippets
- Run tests (
nose
,pytest
) - Auto-format (
black
), requires:editor format
Module Flags
+lsp
Language Server Protocol support+pyenv
Python virtual environment support via pyenv+conda
Python virtual environment support via Conda+cython
Cython files support via Cython-mode
Plugins
- anaconda-mode*
- pyimport*
- py-isort*
- nose*
- python-pytest*
- pip-requirements*
- pipenv*
-
:editor format
-
+conda
-
+pyenv
-
+lsp
and:tools lsp
-
+cython
- Cython-mode
:tools flycheck
Flycheck-cython
Hacks
- As per our "your system your rules" mantra, lsp-python-ms has been modified to
not automatically install its server if it cannot find it. Install it with
M-x lsp-python-ms-setup
.
Prerequisites
This module has no direct prerequisites. Here are some of its soft dependencies.
-
To run tests inside of Emacs:
pip install pytest
pip install nose
-
The
:editor format
module uses Black for python filespip install black
-
pyimport
requires Python's modulepyflakes
:pip install pyflakes
-
Python virtual environments install instructions at:
pipenv
requires pipenvcython
requires Cython
Language Server Protocol Support
Requires the +lsp
flag and :tools lsp
module to be enabled.
By default LSP will use Microsoft's language server if installed.
To install the language server:
M-x lsp-python-ms-setup
To update the server:
M-x lsp-python-ms-update-server
Alternatively you can use the Python Language Server instead.
pip install 'python-language-server[all]'
Features
This module supports LSP. It requires installation of Python Language Server or Microsoft Language Server, see LSP Support.
To enable support for auto-formatting with black enable :editor format-all
in
init.el
file.
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-dwin |
<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 |