From bc53a7008a2ba1b9f30a6bbfad5d264f11c65fae Mon Sep 17 00:00:00 2001 From: toctan Date: Tue, 1 Jul 2014 20:47:15 +0800 Subject: [PATCH 1/2] Set buffer mode according to `auto-mode-alist' With this, after we create a special buffer, the major-mode get set automatically. For example, we create a new buffer named "ruby.rb", `ruby-mode` was automatically enabled. --- core/prelude-editor.el | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/prelude-editor.el b/core/prelude-editor.el index 5cc8e70..4a9b1b4 100644 --- a/core/prelude-editor.el +++ b/core/prelude-editor.el @@ -181,6 +181,12 @@ The body of the advice is in BODY." (when (version<= "24.4" emacs-version) (add-hook 'focus-out-hook 'prelude-save-all-buffers)) +(defadvice set-buffer-major-mode (after set-major-mode activate compile) + "Set buffer major mode according to `auto-mode-alist'." + (let* ((name (buffer-name buffer)) + (mode (assoc-default name auto-mode-alist 'string-match))) + (with-current-buffer buffer (if mode (funcall mode))))) + ;; highlight the current line (global-hl-line-mode +1) From 4dab9a193a98e6a74a8ceff7197e58913f8b901b Mon Sep 17 00:00:00 2001 From: toctan Date: Tue, 1 Jul 2014 20:50:17 +0800 Subject: [PATCH 2/2] Respect initial-major-mode creating scratch buffer --- core/prelude-core.el | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/core/prelude-core.el b/core/prelude-core.el index d828e3f..3dc7d48 100644 --- a/core/prelude-core.el +++ b/core/prelude-core.el @@ -371,10 +371,9 @@ Doesn't mess with special buffers." (defun prelude-create-scratch-buffer () "Create a new scratch buffer." (interactive) - (progn - (switch-to-buffer - (get-buffer-create (generate-new-buffer-name "*scratch*"))) - (emacs-lisp-mode))) + (let ((buf (get-buffer-create (generate-new-buffer-name "*scratch*")))) + (set-buffer-major-mode buf) + (switch-to-buffer buf))) (defvar prelude-tips '("Press to open a file with external program."