doomemacs/modules/lang/python
Henrik Lissner a18ea683d2
refactor(python): autoload syntax highlighter fix for 28.1
A summary of the issue:
- emacs-mirror/emacs@c44908c059 broke syntax highlighting for
  python-mode.
- emacs-mirror/emacs@a8acb9516e fixes the issue shortly after, but the
  fix did not make it into the 28.1 release (but made it into 28.2).
- This fix was deployed in #6414 (773122f1ec).
- This commit ensures the fix is only effective for 28.1 users, and
  documents it for posterity.

Ref: #6414
Ref: emacs-mirror/emacs@c44908c059
Ref: emacs-mirror/emacs@a8acb9516e
Amend: 773122f1ec
Co-authored-by: dani84bs <dani84bs@users.noreply.github.com>
2022-09-16 01:14:20 +02:00
..
autoload refactor(python): autoload syntax highlighter fix for 28.1 2022-09-16 01:14:20 +02:00
config.el refactor(python): autoload syntax highlighter fix for 28.1 2022-09-16 01:14:20 +02:00
doctor.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
packages.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
README.org revert: fix(docs): set mode in file-local vars 2022-08-07 19:08:07 +02:00

:lang python

Description   unfold

This module adds Python support to Doom Emacs.

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 :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 +lsp).
+tree-sitter
Leverages tree-sitter for better syntax highlighting and structural text editing. Requires :tools tree-sitter.

Hacks

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 :editor format module uses Black for python files: $ pip install black
  • pyimport requires Python's module pyflakes: $ pip install pyflakes
  • 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 :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.

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 :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?