legacy-dotfiles/emacs/site-lisp/ext.el

57 lines
1.9 KiB
EmacsLisp

;;; ext.el --- More emacs functions
;; Copyright (C) 2012 Tom Willemsen
;; Author: Tom Willemsen <tom@ryuslash.org>
;; Keywords: local
;; 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 <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;; Code:
(defadvice org-agenda-redo (after ext:org-agenda-redo-add-appts)
"Pressing `r' on the agenda will also add appointments."
(progn
(setq appt-time-msg-list nil)
(org-agenda-to-appt)))
(defun ext:flymake-pyflakes-init ()
"Initialize function for flymake with pyflakes."
(let* ((temp-file (flymake-init-create-temp-buffer-copy
'flymake-create-temp-inplace))
(local-file (file-relative-name temp-file (file-name-directory
buffer-file-name))))
(list "pycheck.sh" (list local-file))))
(defun ext:comp-finish-function (buf str)
"Don't show compilation window if everything went ok"
(if (string-match "exited abnormally" str)
;; there were errors
(message "compilation errors, press C-x ` to visit")
;; no errors, make the compilation window go away in 0.5 seconds
(when (member (buffer-name) '("*Compilation*" "*compilation*"))
(run-at-time 0.5 nil 'delete-windows-on buf)
(message "No compilation errors!"))))
(defun ext:reload-buffer ()
"Reload current buffer."
(interactive)
(revert-buffer nil t nil))
(provide 'ext)
;;; ext.el ends here