;;; oni-python.el --- Python configuration -*- lexical-binding: t; -*- ;; Copyright (C) 2019 Tom Willemse ;; Author: Tom Willemse ;; Keywords: local ;; Version: 20190131153854 ;; Package-Requires: (company-jedi fill-column-indicator flycheck rainbow-delimiters reformatter) ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; My Python configuration. ;; ;; It features: ;; - Completion ;; - Syntax checking ;; - Right margin ;; - Delimiter balancing ;; - Automatic reformatting ;; - Delimiter highlighting ;;; Code: (require 'company) (require 'reformatter) (autoload 'hl-indent-mode "hl-indent-mode") (defun oni-python-set-fill-column () "Set the `fill-column' and `comment-fill-column' for the current buffer. The values are taken from the PEP8 coding standard for Python." (setq-local fill-column 80) (setq-local comment-fill-column 72)) (add-to-list 'company-backends 'company-jedi) (reformatter-define python-black :program "black" :args "-" :lighter "" :group 'python-black) (add-hook 'python-mode-hook 'electric-indent-local-mode) (add-hook 'python-mode-hook 'electric-pair-local-mode) (add-hook 'python-mode-hook 'flycheck-mode) (add-hook 'python-mode-hook 'fci-mode) (add-hook 'python-mode-hook 'company-mode) (add-hook 'python-mode-hook 'rainbow-delimiters-mode) (add-hook 'python-mode-hook 'python-black-on-save-mode) (add-hook 'python-mode-hook 'oni-python-set-fill-column) ;;;###autoload(with-eval-after-load 'python (require 'oni-python)) (provide 'oni-python) ;;; oni-python.el ends here