Complete refactor & implement cask

This commit is contained in:
Henrik Lissner 2014-09-20 16:54:04 -04:00
parent 418f7bc5a6
commit 8f93fb9b73
39 changed files with 1534 additions and 1155 deletions

View file

@ -1,5 +1,7 @@
(provide 'core)
(require 'f)
(defconst is-mac (eq system-type 'darwin))
(defconst is-linux (eq system-type 'gnu/linux))
@ -9,16 +11,18 @@
;; Emacs under-the-hood
(global-auto-revert-mode 1) ; revert buffers for changed files
(fset 'yes-or-no-p 'y-or-n-p) ; y/n instead of yes/no
(prefer-coding-system 'utf-8)
(setq-default load-prefer-newer t) ; load newer .el over older .elc
(setq-default gc-cons-threshold 50000000) ; avoid garbage collection (default is 400k)
(setq redisplay-dont-pause t)
(fset 'yes-or-no-p 'y-or-n-p) ; y/n instead of yes/no
(setq confirm-kill-emacs nil)
(setq-default enable-recursive-minibuffers nil)
(setq-default load-prefer-newer t ; load newer .el over older .elc
gc-cons-threshold 50000000 ; avoid garbage collection (default is 400k)
enable-recursive-minibuffers nil
redisplay-dont-pause t
confirm-kill-emacs nil
vc-follow-symlinks nil
compilation-scroll-output t)
;; Show keystrokes in [near] realtime
;; Show keystrokes
(setq echo-keystrokes 0.02)
;; Sane scroll settings
@ -26,7 +30,7 @@
scroll-conservatively 100000
scroll-preserve-screen-position 1)
(setq inhibit-startup-screen t ; don't show EMACs start screen
(setq inhibit-startup-screen t ; don't show EMACs start screen
inhibit-splash-screen t
inhibit-startup-buffer-menu t
inhibit-startup-echo-area-message t
@ -35,37 +39,28 @@
initial-scratch-buffer nil) ; empty scratch buffer
;;; Backups
;; If I ever enable backups/autosaves, then change where they go
(setq make-backup-files nil ; Don't want any backup files
auto-save-list-file-name nil ; Don't want any .saves files
(defconst *tmp-dir-undo (f-expand "undo" *tmp-dir))
(defconst *tmp-dir-backup (f-expand "backup" *tmp-dir))
(unless (f-dir? *tmp-dir)
(f-mkdir *tmp-dir *tmp-dir-undo *tmp-dir-backup))
(setq make-backup-files nil ; Don't want any backup
auto-save-list-file-name nil ; Don't want any .saves
auto-save-default nil ; Don't want any auto saving
create-lockfiles nil)
(setq backup-directory-alist `((".*" . ,"/tmp/emacs/")))
(setq auto-save-file-name-transforms `((".*" ,"/tmp/emacs/" t)))
;; Save history across sessions
(setq savehist-additional-variables
;; search entries
'(search ring regexp-search-ring)
;; save every 5 minutes
savehist-autosave-interval 300
;; keep the home clean
savehist-file (expand-file-name "savehist" "/tmp/emacs/"))
(savehist-mode 1)
;; Save cursor location across sessions
(require 'saveplace)
(setq-default save-place t)
(setq save-place-file (expand-file-name "saveplace" "/tmp/emacs/"))
;; In case I want to reactivate backup files
(setq backup-directory-alist `((".*" . ,*tmp-dir-backup)))
;; window layout undo/redo, keymaps in core-keymaps.el
(when (fboundp 'winner-mode) (winner-mode 1))
;;;; Advice ;;;;;;;;;;;;;;;;;;;;;;;;
;; Make next/previous-buffer skip special buffers
(defadvice next-buffer (after avoid-messages-buffer-in-next-buffer)
(defadvice next-buffer (after avoid-messages-buffer-in-next-buffer activate)
"Advice around `next-buffer' to avoid going into the *Messages* buffer."
(when (string-match "\\`\\*.+\\*\\'" (buffer-name)) (next-buffer)))
(defadvice previous-buffer (after avoid-messages-buffer-in-previous-buffer)
(defadvice previous-buffer (after avoid-messages-buffer-in-previous-buffer activate)
"Advice around `previous-buffer' to avoid going into the *Messages* buffer."
(when (string-match "\\`\\*.+\\*\\'" (buffer-name)) (previous-buffer)))
@ -75,8 +70,10 @@
;; Automatic minor modes
(defvar auto-minor-mode-alist ()
"Alist of filename patterns vs correpsonding minor mode functions, see `auto-mode-alist'
All elements of this alist are checked, meaning you can enable multiple minor modes for the same regexp.")
"Alist of filename patterns vs correpsonding minor mode functions,
see `auto-mode-alist' All elements of this alist are checked, meaning
you can enable multiple minor modes for the same regexp.")
(defun enable-minor-mode-based-on-extension ()
"check file name against auto-minor-mode-alist to enable minor modes
the checking happens for all pairs in auto-minor-mode-alist"
@ -99,16 +96,11 @@ the checking happens for all pairs in auto-minor-mode-alist"
;;;; Load the rest ;;;;;;;;;;;;;;;;;;
(require 'shut-up)
;; (when noninteractive
;; (shut-up-silence-emacs))
(when noninteractive
(shut-up-silence-emacs))
;; Package management bootstrap
(setq package-enable-at-startup nil
package-archive-exclude-alist
'(("melpa" org-trello)
("melpa" org)
("marmalade" org)
("gnu" org))
delete-old-versions t)
(let ((default-directory *elisp-dir))
@ -116,10 +108,3 @@ the checking happens for all pairs in auto-minor-mode-alist"
(normal-top-level-add-subdirs-to-load-path))
(require 'use-package)
(require 'diminish)
(require 'core-ui)
(require 'core-editor)
(if is-mac (require 'core-osx))
(add-hook 'after-init-hook (lambda() (require 'my-keymaps)))