blob: 5dc06bf62c994fb37b306a1b70d501ec9b57aaa2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
;;; prog-python --- Python Specific Setup and Functionality -*- lexical-binding: t; -*-
;; author Craig Jennings <c@cjennings.net>
;;; Commentary:
;;; Code:
;; ------------------------- General Settings ------------------------
(add-hook 'python-mode-hook (lambda () (setq indent-tabs-mode nil))) ;; use spaces, not tabs
;; ----------------------------------- Python ----------------------------------
;; remove the guess indent python message
(use-package python
:config
(setq python-indent-guess-indent-offset-verbose nil))
;; --------------------------- Python Mode ---------------------------
(use-package python-mode
:ensure nil ;; built-in
:hook
((python-mode . flyspell-prog-mode)
(python-mode . superword-mode)
(python-mode . company-mode)
(python-mode . electric-pair-mode)) ;; auto-complete braces and pairs
:custom
(python-shell-interpreter "python3")
(setq python-indent-offset 4)) ;; 4 spaces default indent
;; ----------------------------------- Poetry ----------------------------------
;; virtual environments and dependencies
;; (use-package poetry
;; :defer t
;; :config
;; ;; Checks for the correct virtualenv. Better strategy IMO because the default
;; ;; one is quite slow.
;; (setq poetry-tracking-strategy 'switch-buffer)
;; :hook (python-mode . poetry-tracking-mode))
;; ---------------------------------- Blacken ----------------------------------
;; formatting on save
(use-package blacken
:defer t
:custom
(blacken-allow-py36 t)
(blacken-skip-string-normalization t)
:hook (python-mode . blacken-mode))
;; ---------------------------------- Numpydoc ---------------------------------
;; automatically insert NumPy style docstrings in Python function definitions
(use-package numpydoc
:defer t
:custom
(numpydoc-insert-examples-block nil)
(numpydoc-template-long nil)
:bind (:map python-mode-map
("C-c C-n" . numpydoc-generate)))
;; ------------------------------------ Toml -----------------------------------
(use-package toml-mode
:defer .5)
(use-package eldoc-toml
:defer .5)
(provide 'prog-python)
;;; prog-python.el ends here
|