Doom and gloom when things go boom, in Dexter's laaaaab

This commit is contained in:
Henrik Lissner 2015-05-14 23:50:20 -04:00
parent 4f3c2c7800
commit a5056b71ed
17 changed files with 125 additions and 107 deletions

View file

@ -7,7 +7,7 @@ update:
clean:
@rm -rf init.elc init/*.elc contrib/*.elc core/*.elc
@rm -rf auto-save-list recentf places ido.last async-bytecomp.log elpa
@rm -rf auto-save-list recentf places ido.last async-bytecomp.log elpa projectile-bookmarks.eld projectile.cache company-statistics-cache.el tramp smex-items
autoloads:
@rm -rf core/autoloads.el

View file

@ -42,6 +42,10 @@
(if (string-equal (system-name) "io")
(set-frame-size (selected-frame) 326 119)))
(defadvice save-buffers-kill-emacs (around no-query-kill-emacs activate)
"Prevent annoying \"Active processes exist\" query when you quit Emacs."
(flet ((process-list ())) ad-do-it))
;;;; Modeline ;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package vim-empty-lines-mode

View file

@ -30,7 +30,8 @@
(auto-compression-mode t) ; Transparently open compressed files
(global-font-lock-mode t) ; Enable syntax highlighting for older emacs
(global-auto-revert-mode 1) ; revert buffers for changed files
(electric-indent-mode -1) ; In case of emacs >24.4
(electric-indent-mode 1)
(setq electric-indent-chars '(? ?: ?{))
;;; window layout undo/redo
(setq winner-boring-buffers '("*Completions*" "*Compile-Log*" "*inferior-lisp*"
@ -38,13 +39,15 @@
"*Buffer List*" "*Ibuffer*" "*esh command on file*"))
(winner-mode 1)
(setq semanticdb-default-save-directory (expand-file-name "semanticdb" my-tmp-dir))
(semantic-mode 1)
;;; UTF-8 please
(setq locale-coding-system 'utf-8) ; pretty
(set-terminal-coding-system 'utf-8) ; pretty
(set-keyboard-coding-system 'utf-8) ; pretty
(set-selection-coding-system 'utf-8) ; please
(prefer-coding-system 'utf-8) ; with sugar on top
(fset 'yes-or-no-p 'y-or-n-p) ; y/n instead of yes/no
;;; Show tab characters
@ -90,8 +93,6 @@
(setq sentence-end-double-space nil) ; sentences end with periods. Period.
(setq eval-expression-print-level nil)
(setq show-paren-delay 0)
(setq ediff-diff-options "-w")
@ -101,7 +102,7 @@
;; Fixes C-i's synonymity with TAB
(keyboard-translate ?\C-i ?\H-i)
;; Save clipboard contents into kill-ring before replace them
;; Don't save clipboard contents into kill-ring before replacing them
(setq save-interprogram-paste-before-kill nil)
;; don't let the cursor go into minibuffer prompt
@ -120,7 +121,7 @@
(setq bookmark-default-file (expand-file-name "bookmarks" my-tmp-dir))
(setq auto-save-default nil)
(setq auto-save-list-file-name (expand-file-name ".auto-save" my-tmp-dir-autosave))
(setq auto-save-file-name-transforms `((".*" ,my-tmp-dir-autosave t)))
(setq auto-save-file-name-transforms `((".*" ,my-tmp-dir-autosave t)))
;; In case I want to reactivate backup files
(setq make-backup-files nil)
(setq create-lockfiles nil)
@ -152,6 +153,7 @@
(setq recentf-max-menu-items 0)
(setq recentf-max-saved-items 1000)
(setq recentf-auto-cleanup 'never)
(add-hook 'kill-emacs-hook 'recentf-cleanup)
(recentf-mode 1)
;; What we do every night, Pinkie...
@ -171,7 +173,10 @@
;; Project defuns ;;;;;;;;;;;;;;;;;;;;;;
(require 'f)
(defvar project-root-files '(".git" ".hg" ".svn" "README" "README.md"))
(defvar project-root-files '(".git" ".hg" ".svn" ".project" "local.properties" "project.properties")
"A list of files that count as 'project files', which determine whether a
folder is the root of a project or not.")
(defun project-root (&optional strict-p)
"Get the path to the root of your project. Uses `project-root-files' to
determine if a directory is a project."
@ -277,10 +282,12 @@ the checking happens for all pairs in auto-minor-mode-alist"
(push '("^\\*Flycheck.*\\*$" :regexp t :position bottom :height 0.25 :noselect t) popwin:special-display-config)
(push '(inf-enh-ruby-mode :position bottom :stick t) popwin:special-display-config)
(push '(snippet-mode :position bottom :stick t) popwin:special-display-config)
(push '("^\\*eclim.*\\*" :regexp t :position bottom :height 0.25) popwin:special-display-config)
(push '("*ansi-term*" :position bottom :height 0.45 :stick t) popwin:special-display-config)
(push '("*terminal*" :position bottom :height 0.45 :stick t) popwin:special-display-config)
(push '("*Async Shell Command*" :position bottom) popwin:special-display-config)
(push '("*Shell Command Output*" :position bottom :stick t :height 15) popwin:special-display-config)
(push '("* Regexp Explain *" :position top :height 0.35) popwin:special-display-config)

View file

@ -1,3 +1,8 @@
love.keyboard.isDown
love.draw
love.update
love.conf
love.load
draw
focus
joystickpressed

View file

@ -63,7 +63,7 @@
init-git ; git-gutter + modes
init-ido ; a search engine for your car keys
init-helm ; a search engine for your life
init-project ; project tools - dired, perspective, neotree
init-project ; project tools: dired, neotree
init-cc ; C/C++/Obj-C madness
;; init-d ; D - It's C, but better!

View file

@ -2,7 +2,6 @@
:mode "CMakeLists\\.txt$"
:config
(progn
(after "auto-complete" (add-to-list 'ac-modes 'cmake-mode))
(after "company"
(use-package company-cmake
:config (company--backend-on 'cmake-mode-hook 'company-cmake 'company-yasnippet)))))

View file

@ -62,13 +62,13 @@ If ARG is nil this function calls `recompile', otherwise it calls
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(evil-define-operator my:eval-region (beg end)
:keep-visual t
:move-point nil
(interactive "<r>")
(cond ((eq major-mode 'emacs-lisp-mode)
(eval-region beg end))
(t
(let ((interp (my--get-interpreter)))
(let ((interp (my--get-interpreter))
(max-mini-window-height 1))
(when interp (shell-command-on-region beg end interp))))))
(evil-define-command my:eval-buffer ()
@ -76,7 +76,8 @@ If ARG is nil this function calls `recompile', otherwise it calls
(cond ((eq major-mode 'emacs-lisp-mode)
(eval-buffer))
(t
(let ((interp (my--get-interpreter)))
(let ((interp (my--get-interpreter))
(max-mini-window-height 1))
(when interp (shell-command-on-region (point-min) (point-max) interp))))))
(defun my--get-interpreter ()

View file

@ -30,6 +30,8 @@
helm-css-scss-multi
helm-css-scss-insert-close-comment))
(use-package helm-company :commands (helm-company))
;; Ex-mode interface for `helm-ag'. If `bang', then `search' is interpreted as
;; regexp.
(evil-define-operator my:helm-ag-search (beg end &optional search hidden-files-p pwd-p regex-p)
@ -100,31 +102,11 @@
(add-to-list 'projectile-globally-ignored-directories "assets")
(add-to-list 'projectile-other-file-alist '("scss" "css"))
(add-to-list 'projectile-other-file-alist '("css" "scss"))
(use-package helm-projectile)
;; Don't show the project name in the prompts; I already know.
(defun projectile-prepend-project-name (string) (format helm-global-prompt string))
(defun projectile-prepend-project-name (string) helm-global-prompt)
;; All this for a smaller prompt (it was redundant with helm headers)
(defmacro helm-projectile-command (command source prompt)
`(defun ,(intern (concat "helm-projectile-" command)) (&optional arg)
(interactive "P")
(if (projectile-project-p)
(projectile-maybe-invalidate-cache arg))
(let ((helm-ff-transformer-show-only-basename nil)
;; for consistency, we should just let Projectile take care of ignored files
(helm-boring-file-regexp-list nil))
(helm :sources ,source
:buffer "*helm projectile*"
:prompt helm-global-prompt))))
(helm-projectile-command "switch-project" 'helm-source-projectile-projects helm-global-prompt)
(helm-projectile-command "find-file" helm-source-projectile-files-and-dired-list helm-global-prompt)
(helm-projectile-command "find-file-in-known-projects" 'helm-source-projectile-files-in-all-projects-list helm-global-prompt)
(helm-projectile-command "find-file-dwim" 'helm-source-projectile-files-dwim-list helm-global-prompt)
(helm-projectile-command "find-dir" helm-source-projectile-directories-and-dired-list helm-global-prompt)
(helm-projectile-command "recentf" 'helm-source-projectile-recentf-list helm-global-prompt)
(helm-projectile-command "switch-to-buffer" 'helm-source-projectile-buffers-list helm-global-prompt)))
(use-package helm-projectile)))
(progn ; helm hacks
;; No persistent header

View file

@ -1,7 +1,7 @@
(defun my-java-project-package ()
(if (eq major-mode 'java-mode)
(s-chop-suffix "." (s-replace "/" "." (f-dirname (f-relative (buffer-file-name)
(concat (project-root) "src/")))))
(concat (project-root) "/src/")))))
""))
(defun my-java-class-name ()
@ -10,14 +10,15 @@
""))
(use-package eclim
:disabled t
:commands (eclim-mode global-eclim-mode)
:config
:init
(progn
(setq eclim-eclipse-dirs '("/Applications/eclipse")
eclim-executable "/Applications/eclipse/eclim")
(add-hook 'java-mode-hook 'eclim-mode)
(when (f-exists? eclim-executable)
(add-hook 'java-mode-hook 'eclim-mode)))
:config
(progn
;; (use-package eclim-ant)
;; (use-package eclim-maven)
(use-package eclim-problems)
@ -28,23 +29,33 @@
(setq help-at-pt-timer-delay 0.1)
(help-at-pt-set-timer)
(push "*eclim: problems*" winner-boring-buffers)
(after "company"
(use-package company-emacs-eclim
:config (company-emacs-eclim-setup)))
(bind 'motion java-mode-map "gd" 'eclim-java-find-declaration)))
(use-package groovy-mode :mode "\\.gradle$")
(use-package android-mode
:defer t
:init
(add-hook 'android-mode-hook (set-build-command "./gradlew %s" "build.gradle"))
(add-hook! 'java-mode-hook
(let ((root (project-root)))
(when (or (project-has-files "AndroidManifest.xml" root)
(project-has-files "src/main/AndroidManifest.xml" root))
(android-mode +1)))))
(progn
(defun my-android-mode-enable-maybe ()
(let ((root (project-root)))
(when (or (project-has-files "local.properties" root)
(project-has-files "AndroidManifest.xml" root)
(project-has-files "src/main/AndroidManifest.xml" root))
(android-mode +1)
(set-build-command "./gradlew %s" "build.gradle"))))
(after "company" (add-to-list 'company-dictionary-major-minor-modes 'android-mode))
(add-hook 'java-mode-hook 'my-android-mode-enable-maybe)
(add-hook 'groovy-mode-hook 'my-android-mode-enable-maybe)
(add-hook 'nxml-mode-hook 'my-android-mode-enable-maybe)
(add-hook! 'android-mode-hook (my--init-yas-mode 'android-mode))))
(use-package groovy-mode :mode "\\.gradle$")
(provide 'init-java)
;;; init-java.el ends here

View file

@ -25,23 +25,14 @@
(add-hook 'js2-mode-hook 'tern-mode)
(after "auto-complete" (add-hook 'js2-mode-hook 'tern-ac-setup)))
:config
(progn
(after "auto-complete"
(use-package tern-auto-complete
:config
(progn
(setq tern-ac-on-dot nil)
(bind 'insert js2-mode-map [remap auto-complete] 'tern-ac-complete)
(bind 'motion js2-mode-map "gd" 'tern-find-definition))))
(after "company"
(use-package company-tern
:config
(company--backend-on 'js2-mode-hook 'company-tern)
;; (setq company-tern-meta-as-single-line t)
;; (setq company-tern-property-marker "")
;; (setq company-tooltip-align-annotations t)
))))))
(after "company"
(use-package company-tern
:config
(company--backend-on 'js2-mode-hook 'company-tern)
;; (setq company-tern-meta-as-single-line t)
;; (setq company-tern-property-marker "")
;; (setq company-tooltip-align-annotations t)
)))))
(use-package json-mode
:mode (("\\.json$" . json-mode)

View file

@ -15,6 +15,8 @@
(when (project-has-files "main.lua")
(love-mode +1)))
(after "company" (add-to-list 'company-dictionary-major-minor-modes 'love-mode))
(add-hook 'lua-mode-hook 'enable-tab-width-2)))

View file

@ -4,7 +4,7 @@
:init (add-hook 'python-mode-hook 'enable-tab-width-4)
:config
(progn
(setq python-indent-offset 4)
(setq-default python-indent-offset 4)
(setq python-environment-directory my-tmp-dir)
(setq python-shell-interpreter "ipython")

View file

@ -1,20 +1,14 @@
(use-package enh-ruby-mode
:mode (("\\.rb$" . enh-ruby-mode)
("\\.ru$" . enh-ruby-mode)
("\\.rake$" . enh-ruby-mode)
("\\.gemspec$" . enh-ruby-mode)
("\\.?pryrc$" . enh-ruby-mode)
("Gemfile$" . enh-ruby-mode)
("Capfile$" . enh-ruby-mode)
("Vagrantfile$" . enh-ruby-mode)
("Rakefile$" . enh-ruby-mode))
:mode (("\\.rb$" . enh-ruby-mode)
("\\.ru$" . enh-ruby-mode)
("\\.rake$" . enh-ruby-mode)
("\\.gemspec$" . enh-ruby-mode)
("\\.?pryrc$" . enh-ruby-mode)
("/Gemfile$" . enh-ruby-mode)
("/Capfile$" . enh-ruby-mode)
("/Vagrantfile$" . enh-ruby-mode)
("/Rakefile$" . enh-ruby-mode))
:interpreter "ruby"
:init
(progn
(associate-minor-mode "\\(/spec_helper\\|_spec\\)\\.rb$" 'rspec-mode)
(associate-minor-mode "/\\.rspec$" 'rspec-mode)
(associate-minor-mode "/\\.rake$" 'rake-mode)
(associate-mode "/\\.rspec$" 'text-mode))
:config
(progn
;;; Formatting
@ -22,9 +16,11 @@
(setq ruby-deep-indent-paren t)
(setq enh-ruby-check-syntax nil)
(associate-mode "/\\.rspec$" 'text-mode)
(add-hook 'enh-ruby-mode-hook 'enable-tab-width-2)
(add-hook! 'enh-ruby-mode-hook (set-build-command "rake %s" "Rakefile"))
;; Don't interfere with my custom RET behavior
(define-key enh-ruby-mode-map [?\n] nil)
(after "emr"
@ -33,45 +29,46 @@
:title "extract method"
:modes 'enh-ruby-mode
:predicate (lambda () (use-region-p)))
(emr-declare-command 'ruby-refactor-extract-local-variable
:title "extract local variable"
:modes 'enh-ruby-mode
:predicate (lambda () (use-region-p)))
(emr-declare-command 'ruby-refactor-extract-constant
:title "extract constant"
:modes 'enh-ruby-mode
:predicate (lambda () (use-region-p)))
(emr-declare-command 'ruby-refactor-add-parameter
:title "add parameter"
:modes 'enh-ruby-mode)
(emr-declare-command 'ruby-refactor-extract-to-let
:title "extract to let"
:modes 'enh-ruby-mode
:predicate (lambda () (use-region-p))))
;; Rakefiles ;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-minor-mode rake-mode
"Buffer local minor mode for rake files"
:lighter " Rake"
:lighter " Rake" :keymap (make-sparse-keymap)
(my--init-yas-mode 'rake-mode))
(associate-minor-mode "/\\(Rakefile\\|\\.rake\\)$" 'rake-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package inf-ruby
:commands (inf-ruby inf-ruby-console-auto)
:config
(progn
(evil-set-initial-state 'inf-enh-ruby-mode 'insert)
(after "company"
(use-package company-inf-ruby
:config (company--backend-on 'inf-enh-ruby-mode-hook 'company-inf-ruby)))))
;; Vagrantfiles ;;;;;;;;;;;;;;;;;;;;;;;;
(define-minor-mode vagrant-mode
"Buffer local minor mode for vagrant files"
:lighter " Va" :keymap (make-sparse-keymap)
(my--init-yas-mode 'vagrant-mode))
(associate-minor-mode "/Vagrantfile$" 'vagrant-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Rspec files ;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package rspec-mode
:defer t
:init
(progn
(associate-minor-mode "\\(/spec_helper\\|_spec\\)\\.rb$" 'rspec-mode)
(associate-minor-mode "/\\.rspec$" 'rspec-mode)
(defvar rspec-mode-verifiable-map (make-sparse-keymap))
(defvar evilmi-ruby-match-tags
'((("unless" "if") ("elsif" "else") "end")
@ -86,6 +83,16 @@
",ta" 'rspec-verify-all
",ts" 'rspec-verify-single
",tv" 'rspec-verify))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package inf-ruby
:commands (inf-ruby inf-ruby-console-auto)
:config
(progn
(evil-set-initial-state 'inf-enh-ruby-mode 'insert)
(after "company"
(use-package company-inf-ruby
:config (company--backend-on 'inf-enh-ruby-mode-hook 'company-inf-ruby)))))
(use-package robe
:config
@ -94,10 +101,16 @@
(use-package company-robe
:config (company--backend-on 'enh-ruby-mode-hook 'company-robe)))
;; (add-hook! 'enh-ruby-mode-hook
;; (unless (f-ext? (buffer-file-name) "org") ;; in case of org-mode
;; (robe-mode 1)
;; (my--ruby-load-file buffer-file-name)))
(defun my-enable-robe-maybe ()
(let ((file (buffer-file-name)))
;; Don't run in gemfiles, capfiles or vagrantfiles
(unless (or (string-equal (f-filename file) "Gemfile")
(string-equal (f-filename file) "Capfile")
(string-equal (f-filename file) "Vagrantfile")
(f-ext? file "org")) ;; or org-mode
(robe-mode 1)
(my--ruby-load-file file))))
(add-hook 'enh-ruby-mode-hook 'my-enable-robe-maybe)
(defun my--ruby-load-file (&optional file)
(let ((file (or file buffer-file-name)))

View file

@ -75,6 +75,7 @@
(associate-minor-mode "/_\\(layouts\\|posts\\)/.+$" 'jekyll-mode)
(add-hooks '(web-mode-hook scss-mode-hook html-mode-hook markdown-mode markdown-mode-hook)
'jekyll-mode-enable-maybe)
(after "company" (add-to-list 'company-dictionary-major-minor-modes 'jekyll-mode))
(define-minor-mode wordpress-mode
:init-value nil
@ -83,6 +84,7 @@
(my--init-yas-mode 'wordpress-mode))
(associate-minor-mode "/wp-\\(content\\|admin\\|includes\\)/.+$" 'wordpress-mode)
(associate-minor-mode "/wp-.+\\.php$" 'wordpress-mode)
(after "company" (add-to-list 'company-dictionary-major-minor-modes 'wordpress-mode))
(provide 'init-web)

View file

@ -143,11 +143,12 @@
(defun my--init-yas-mode (&rest modes)
;; Yasnippet 0.8.1+
(when (boundp 'yas-extra-modes)
(if (symbol-value mode)
(dolist (mode modes)
(yas-activate-extra-mode mode))
(setq yas-extra-modes (delq mode yas-extra-modes)))))
(after "yasnippet"
(when (boundp 'yas-extra-modes)
(dolist (mode modes)
(if (symbol-value mode)
(yas-activate-extra-mode mode)
(setq yas-extra-modes (delq mode yas-extra-modes)))))))
;; keybinds
(bind yas-keymap

View file

@ -37,12 +37,12 @@
;; <leader>
(bind my-leader-map
"," 'helm-projectile-switch-to-buffer
"," (λ (if (projectile-project-p) (helm-projectile-switch-to-buffer) (helm-buffers-list)))
"<" 'helm-buffers-list
"." 'ido-find-file
">" 'my-ido-find-project-file
"/" 'helm-projectile-find-file
";" 'helm-semantic-or-imenu
"<" 'helm-mini
"M" 'helm-projectile-recentf ; recent PROJECT files
"]" 'helm-etags-select
"a" 'helm-projectile-find-other-file
@ -80,7 +80,7 @@
"g" 'git-gutter+-show-hunk
"e" (λ (flycheck-buffer) (flycheck-list-errors))
"p" 'helm-show-kill-ring
"b" 'helm-projectile-switch-to-buffer
"b" 'helm-bookmarks
"w" 'helm-wg)

View file

@ -42,7 +42,7 @@
(selection "#4f5b66")
(text "#c0c5ce")
(comments "#65737e")
(punctuation "#c0c5ce")
(punctuation "#8fa1b3")
(delimiters "#c0c5ce")
(operators "#c0c5ce")
(keywords "#b48ead")