summaryrefslogtreecommitdiffstats
path: root/lisp/init-python.el
blob: 75e7fbe550cb3574c62b6efbebc5dbdbf72d74c2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
;;; init-python.el --- configure python language support  -*- lexical-binding:t -*-
;;; Commentary:
;;; Code:

(defun mpolden/python-mode-buffer-local-variables ()
  "Set buffer-local variables for `python-mode'."
  ;; highlight lines longer than 88 characters
  (setq-local fill-column 88)
  ;; use flat index in imenu
  (setq-local imenu-create-index-function
              'python-imenu-create-flat-index)
  ;; use virtualenv if it exists
  (let* ((venv ".venv")
         (project-dir (locate-dominating-file default-directory venv)))
    (setq-local python-shell-virtualenv-root
                (expand-file-name venv project-dir))))

(use-package python
  :mode ("\\.py\\'" . python-mode)
  :hook (python-mode . mpolden/python-mode-buffer-local-variables))

(provide 'init-python)

;;; init-python.el ends here