Skip to content

Latest commit

 

History

History
130 lines (114 loc) · 5.83 KB

README.org

File metadata and controls

130 lines (114 loc) · 5.83 KB

lang/python

Table of Contents

Description

Adds Python support to Doom Emacs.

  • Syntax checking (flycheck)
  • Snippets
  • Run tests (nose, pytest)
  • Auto-format (black), requires :editor format
  • LSP integration (mspyls, pyls, or pyright)

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 pyenv
  • +conda Python virtual environment support via Conda
  • +poetry Python packaging, dependency management, and virtual environment support via Poetry
  • +cython Cython files support via cython-mode

Plugins

Prerequisites

This module has no hard prerequisites, but a few soft ones:

  • 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

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.

Features

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 in init.el file.

Keybindings

BindingDescription
<localleader> c cCompile Cython buffer
<localleader> i iInsert mising imports
<localleader> i rRemove unused imports
<localleader> i sSort imports
<localleader> i oOptimize imports
<localleader> t rnosetests-again
<localleader> t anosetests-all
<localleader> t snosetests-one
<localleader> t vnosetests-module
<localleader> t Anosetests-pdb-all
<localleader> t Onosetests-pdb-one
<localleader> t Vnosetests-pdb-module
<localleader> t fpython-pytest-file
<localleader> t kpython-pytest-file-dwim
<localleader> t tpython-pytest-function
<localleader> t mpython-pytest-function-dwim
<localleader> t rpython-pytest-repeat
<localleader> t ppython-pytest-popup
<localleader> g danaconda-mode-find-definitions
<localleader> g hanaconda-mode-show-doc
<localleader> g aanaconda-mode-find-assignments
<localleader> g fanaconda-mode-find-file
<localleader> g uanaconda-mode-find-references

Configuration

This module has the following variables to set extra arguments to ipython and jupyter shells:

;; ~/.doom.d/config.el
(setq +python-ipython-repl-args '("-i" "--simple-prompt" "--no-color-info"))
(setq +python-jupyter-repl-args '("--simple-prompt"))