diff --git a/src/etc/emacs/README.md b/src/etc/emacs/README.md
index b9f11d881ab25..006dd6654cdec 100644
--- a/src/etc/emacs/README.md
+++ b/src/etc/emacs/README.md
@@ -29,13 +29,15 @@ it, and pressing `C-j`:
Rust mode will automatically be associated with .rs and .rc files. To
enable it explicitly, do `M-x rust-mode`.
-### package.el installation via Marmalade
+### package.el installation via Marmalade or MELPA
It can be more convenient to use Emacs's package manager to handle
installation for you if you use many elisp libraries. If you have
-package.el but haven't added Marmalade, the community package source,
+package.el but haven't added Marmalade or MELPA, the community package source,
yet, add this to ~/.emacs.d/init.el:
+Using Marmalade:
+
```lisp
(require 'package)
(add-to-list 'package-archives
@@ -43,6 +45,15 @@ yet, add this to ~/.emacs.d/init.el:
(package-initialize)
```
+Using MELPA:
+
+```lisp
+(require 'package)
+(add-to-list 'package-archives
+ '("melpa" . "http://melpa.milkbox.net/packages/") t)
+(package-initialize)
+```
+
Then do this to load the package listing:
* M-x eval-buffer
@@ -56,18 +67,6 @@ should upgrade in order to support installation from multiple sources.
The ELPA archive is deprecated and no longer accepting new packages,
so the version there (1.7.1) is very outdated.
-From there you can install rust-mode or any other modes by choosing
-them from a list:
-
-* M-x package-list-packages
-
-Now, to install packages, move your cursor to them and press i. This
-will mark the packages for installation. When you're done with
-marking, press x, and ELPA will install the packages for you (under
-~/.emacs.d/elpa/).
-
-* or using M-x package-install rust-mode
-
#### Important
In order to have cm-mode properly initialized after compilation prior
@@ -85,3 +84,17 @@ your init file or if you are a melpa user install the `melpa` package.
"initialize the package after compilation"
(package-initialize))
```
+
+#### Install rust-mode
+
+From there you can install rust-mode or any other modes by choosing
+them from a list:
+
+* M-x package-list-packages
+
+Now, to install packages, move your cursor to them and press i. This
+will mark the packages for installation. When you're done with
+marking, press x, and ELPA will install the packages for you (under
+~/.emacs.d/elpa/).
+
+* or using M-x package-install rust-mode
diff --git a/src/etc/emacs/rust-mode.el b/src/etc/emacs/rust-mode.el
index 6c118da40e0ba..2166f14e5eff8 100644
--- a/src/etc/emacs/rust-mode.el
+++ b/src/etc/emacs/rust-mode.el
@@ -21,9 +21,6 @@
(c-populate-syntax-table table)
table))
-(add-to-list 'auto-mode-alist '("\\.rs$" . rust-mode))
-(add-to-list 'auto-mode-alist '("\\.rc$" . rust-mode))
-
(defun make-rust-state ()
(vector 'rust-token-base
(list (vector 'top (- rust-indent-unit) nil nil nil))
@@ -300,6 +297,11 @@
(define-key rust-mode-map "}" 'rust-electric-brace)
(define-key rust-mode-map "{" 'rust-electric-brace)
+;;;###autoload
+(progn
+ (add-to-list 'auto-mode-alist '("\\.rs$" . rust-mode))
+ (add-to-list 'auto-mode-alist '("\\.rc$" . rust-mode)))
+
(provide 'rust-mode)
;;; rust-mode.el ends here