summaryrefslogtreecommitdiffstats
path: root/emacs
diff options
context:
space:
mode:
authorGravatar Tom Willemse2015-12-18 01:03:41 +0100
committerGravatar Tom Willemse2015-12-18 01:03:41 +0100
commit86e8b035922f4a33816ead9bf6379c9ff7d8791c (patch)
tree4821c4bc01c3235d62858189f056d7140dc7cb48 /emacs
parent9a626be7a446c3d52fa7ac8b3f500a8789ef3ad0 (diff)
downloaddotfiles-86e8b035922f4a33816ead9bf6379c9ff7d8791c.tar.gz
dotfiles-86e8b035922f4a33816ead9bf6379c9ff7d8791c.zip
Move python-mode-func to Python library
Diffstat (limited to 'emacs')
-rw-r--r--emacs/.emacs.d/init.el22
-rw-r--r--emacs/.emacs.d/site-lisp/oni-python.el28
2 files changed, 39 insertions, 11 deletions
diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el
index d519b91..d4b73bd 100644
--- a/emacs/.emacs.d/init.el
+++ b/emacs/.emacs.d/init.el
@@ -141,15 +141,6 @@ MODE1 is enabled and vice-versa."
"Set the `disabled' property for each item in FUNCTIONS to nil."
(mapc #'(lambda (f) (put f 'disabled nil)) functions))
-(defun oni:python-mode-func ()
- "Function for `python-mode-hook'."
- (local-set-key (kbd "C->") 'python-indent-shift-right)
- (local-set-key (kbd "C-<") 'python-indent-shift-left)
- (set (make-local-variable 'electric-indent-chars) nil)
- (setq-local fci-rule-column 79)
- (setq-local fill-column 72)
- (setq-local whitespace-style '(tab-mark)))
-
(defun oni:raise-ansi-term (arg)
"Create or show an `ansi-term' buffer."
(interactive "P")
@@ -873,6 +864,16 @@ If no direction is given, don't split."
;; Only autofill comments in programming buffers.
(add-hook 'prog-mode-hook 'oni:auto-fill-only-comments)
+;; Set Python mode-specific keybindings.
+(add-hook 'python-mode-hook 'oni:set-keys-for-python)
+
+;; Set PEP 8 margin settings for Python
+(add-hook 'python-mode-hook 'oni:set-pep8-margin)
+(add-hook 'python-mode-hook 'oni:set-pep8-fill-column)
+
+;; Make `whitespace-mode' show tabs
+(add-hook 'python-mode-hook 'oni:set-whitespace-tab-display)
+
(oni:add-function-to-hooks 'oni:make-readable
'Info-mode-hook 'gnus-article-mode-hook 'gnus-group-mode-hook
'org-agenda-mode-hook)
@@ -934,8 +935,7 @@ If no direction is given, don't split."
(oni:add-hooks 'python-mode-hook
(lambda () (setq ac-sources '(ac-source-jedi-direct)))
#'oni:set-python-symbols #'whitespace-mode
- #'oni:python-mode-func #'oni:set-python-imenu-function
- #'jedi:setup #'subword-mode)
+ #'oni:set-python-imenu-function #'jedi:setup #'subword-mode)
(oni:add-hooks 'slime-repl-mode-hook
#'paredit-mode #'set-up-slime-ac)
diff --git a/emacs/.emacs.d/site-lisp/oni-python.el b/emacs/.emacs.d/site-lisp/oni-python.el
index 6a0ff03..7dc6f21 100644
--- a/emacs/.emacs.d/site-lisp/oni-python.el
+++ b/emacs/.emacs.d/site-lisp/oni-python.el
@@ -25,7 +25,9 @@
;;; Code:
+(require 'fill-column-indicator)
(require 'python)
+(require 'whitespace)
;;;###autoload
(defun oni:add-import-from (package import)
@@ -50,6 +52,11 @@
results))
;;;###autoload
+(defun oni:clear-electric-indent-chars ()
+ "Clear the `electric-indent-chars' which don't work well in Python."
+ (set (make-local-variable 'electric-indent-chars) nil))
+
+;;;###autoload
(defun oni:make-import-multiline (from-point to-point)
"Turn an import statement into a multi-line import statement."
(interactive (list (line-beginning-position)
@@ -71,6 +78,27 @@
(oni:sort-imports)))
;;;###autoload
+(defun oni:set-keys-for-python ()
+ "Set Python mode-specific keybindings."
+ (define-key python-mode-map (kbd "C->") #'python-indent-shift-right)
+ (define-key python-mode-map (kbd "C-<") #'python-indent-shift-left))
+
+;;;###autoload
+(defun oni:set-pep8-fill-column ()
+ "Set the `fill-column' to the PEP 8 recommendation."
+ (setq-local fill-column 72))
+
+;;;###autoload
+(defun oni:set-pep8-margin ()
+ "Set the `fci-rule-column' the the PEP 8 recommendation."
+ (setq-local fci-rule-column 79))
+
+;;;###autoload
+(defun oni:set-whitespace-tab-display ()
+ "Set the `whitespace-style' to show only tabs."
+ (setq-local whitespace-style '(tab-mark)))
+
+;;;###autoload
(defun oni:sort-imports ()
"Sort python multiline imports using `()'."
(interactive)