;; windmove
(windmove-default-keybindings)
+;; file renaming
+;; Originally from stevey, adapted to support moving to a new directory.
+(defun rename-file-and-buffer (new-name)
+ "Renames both current buffer and file it's visiting to NEW-NAME."
+ (interactive
+ (progn
+ (if (not (buffer-file-name))
+ (error "Buffer '%s' is not visiting a file!" (buffer-name)))
+ ;; Disable ido auto merge since it too frequently jumps back to the original
+ ;; file name if you pause while typing. Reenable with C-z C-z in the prompt.
+ (let ((ido-auto-merge-work-directories-length -1))
+ (list (read-file-name (format "Rename %s to: " (file-name-nondirectory
+ (buffer-file-name))))))))
+ (if (equal new-name "")
+ (error "Aborted rename"))
+ (setq new-name (if (file-directory-p new-name)
+ (expand-file-name (file-name-nondirectory
+ (buffer-file-name))
+ new-name)
+ (expand-file-name new-name)))
+ ;; Only rename if the file was saved before. Update the
+ ;; buffer name and visited file in all cases.
+ (if (file-exists-p (buffer-file-name))
+ (rename-file (buffer-file-name) new-name 1))
+ (let ((was-modified (buffer-modified-p)))
+ ;; This also renames the buffer, and works with uniquify
+ (set-visited-file-name new-name)
+ (if was-modified
+ (save-buffer)
+ ;; Clear buffer-modified flag caused by set-visited-file-name
+ (set-buffer-modified-p nil)))
+
+ (setq default-directory (file-name-directory new-name))
+
+ (message "Renamed to %s." new-name))
+
;; Host specific configuration ------------------------------------------------
(let ((host (system-name)))
(cond ((equal host "aria.cielonegro.org")
(load-file path)
(message "Warning: file %s is absent" path)))
-;; session
-(require-if-present 'session)
+;; ditz
+(require-if-present 'ditz)
;; flyspell
(require-if-present 'flyspell)
-;; ditz
-(require-if-present 'ditz)
+;; jaspace
+(require-if-present 'jaspace)
+
+;; glsl
+(autoload 'glsl-mode "glsl-mode" nil t)
+(add-to-list 'auto-mode-alist '("\\.glsl\\'" . glsl-mode))
+(add-to-list 'auto-mode-alist '("\\.vert\\'" . glsl-mode))
+(add-to-list 'auto-mode-alist '("\\.frag\\'" . glsl-mode))
+(add-to-list 'auto-mode-alist '("\\.geom\\'" . glsl-mode))
+
+;; rust
+(autoload 'rust-mode "rust-mode" nil t)
+(add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode))
+
+;; session
+(require-if-present 'session)
;; mediawiki
(require-if-present 'mediawiki)
-;; jaspace
-(require-if-present 'jaspace)
+;; midnight
+(require-if-present 'midnight)
;; color-theme
(require-if-present 'color-theme)
(autoload 'cleite "cleite" "Cleite RSS Aggregator -- Emacs Interface" t)
;; javascript
-(autoload 'js2-mode "js2" nil t)
-(add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
+(add-to-list 'auto-mode-alist '("\\.js$" . javascript-mode))
(add-to-list 'auto-mode-alist '("\\.json$" . javascript-mode))
;; typescript
(setq cperl-indent-level 4)
(setq cperl-indent-parens-as-block t)
-;; Lua
-(autoload 'lua-mode "lua-mode" "Lua Mode" t)
-(add-to-list 'auto-mode-alist '("\\.lua\\'" . lua-mode))
-
;; Erlang
(require-if-present 'erlang-start)
(setq erlang-electric-commands nil)
'(appt-message-warning-time 20)
'(browse-url-browser-function (quote browse-url-firefox))
'(canlock-password "a14fa4d2601465d55585c291fa8b3943e189e716")
+ '(clean-buffer-list-delay-general 7)
'(cleite:auto-refresh-interval nil)
'(cleite:measure-srpc-call-time t)
'(compilation-scroll-output (quote first-error))
'(js2-indent-on-enter-key nil)
'(js2-mirror-mode nil)
'(js2-use-font-lock-faces t)
+ '(lua-indent-level 4)
'(makefile-mode-hook (quote ((lambda nil (set-variable (quote tab-width) 8)))))
'(markdown-live-preview-delete-export (quote delete-on-export))
'(mediawiki-site-alist
(30 subj)
"|"
(0 body))))
+ '(midnight-mode t)
'(mouse-wheel-progessive-speed nil)
'(mouse-wheel-scroll-amount (quote (1 ((shift) . 5) ((control)))))
'(mpc-browser-tags