summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emacs-blue239
1 files changed, 239 insertions, 0 deletions
diff --git a/emacs-blue b/emacs-blue
new file mode 100644
index 0000000..617b997
--- /dev/null
+++ b/emacs-blue
@@ -0,0 +1,239 @@
+;;; .emacs --- Config
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'package)
+(add-to-list 'package-archives
+ '("melpa" . "https://melpa.org/packages/"))
+(package-initialize)
+(setq
+ package-selected-packages '(meson-mode groovy-mode gradle-mode flycheck))
+;; use (package-install-selected-packages) to install the ones above
+
+ ;; show matching parentheses (and other characters)
+(show-paren-mode t)
+
+;; hide toolbar
+(tool-bar-mode -1)
+;; hide tooltips
+(tooltip-mode -1)
+
+(setq
+ ;; skip startup message
+ inhibit-startup-message t
+ ;; show line and column number in mode-line
+ line-number-mode t
+ column-number-mode t
+ ;; increase undo
+ undo-limit 200000
+ undo-strong-limit 300000
+ ;; enable visible bell
+ visible-bell t
+ ;; enable font lockmode
+ global-font-lock-mode t
+ font-lock-mode t
+ font-lock-maximum-decoration t)
+
+;; Force more unique buffer names
+(require 'uniquify)
+(setq uniquify-buffer-name-style 'post-forward-angle-brackets)
+
+;; Clean the buffer list at midnight
+(require 'midnight)
+;; Set clean-buffer-list delay to 1 day
+(setq clean-buffer-list-delay-general 1)
+(if (not (boundp 'clean-buffer-list-kill-regexps))
+ (setq clean-buffer-list-kill-regexps '()))
+;; Add preprocessed buffers to the list
+(add-to-list 'clean-buffer-list-kill-regexps
+ '("\\`\\*.*-preprocessed\\*\\'"))
+
+(setq
+ ;; create backups
+ make-backup-files t
+ ;; don't ask to delete backup versions
+ delete-old-versions t
+ ;; use version control
+ version-control t)
+
+;; put all backup files in their own directory
+(let ((backup-dir "~/.emacs.d/backups/"))
+ (make-directory backup-dir :parents)
+ (setq backup-directory-alist
+ `((".*" . ,backup-dir))))
+
+;; show buffer in frame title
+(setq frame-title-format "%b %* emacs")
+
+;; frame parameters
+;; frame size
+(add-to-list 'default-frame-alist '(width . 80))
+(add-to-list 'default-frame-alist '(height . 36))
+;; tell WM that we really want those sizes
+(add-to-list 'default-frame-alist '(user-size . t))
+;; frame font and color
+(add-to-list 'default-frame-alist
+ '(font . "-*-inconsolata-*-*-*-*-*-120-*-*-*-*-*"))
+(add-to-list 'default-frame-alist '(cursor-color . "green"))
+(add-to-list 'default-frame-alist '(foreground-color . "grey"))
+(add-to-list 'default-frame-alist '(background-color . "black"))
+(add-to-list 'default-frame-alist '(background-mode . "dark"))
+
+;; default styles
+(setq-default
+ ;; no tabs in indentation
+ indent-tabs-mode nil
+ ;; tab-width 4
+ tab-width 4
+ ;; c-basic-offset
+ c-basic-offset 4
+ ;; show trailing whitespace
+ show-trailing-whitespace t)
+
+;; enable c warnings
+(global-cwarn-mode t)
+
+;; auto inserts
+(eval-after-load 'autoinsert
+ '(define-auto-insert
+ '("\\.\\(hh\\|hxx\\|hpp\\)\\'" . "C++ header")
+ '((upcase
+ (mapconcat 'identity (split-string
+ (file-name-nondirectory buffer-file-name)
+ "[^a-zA-Z0-9]+") "_"))
+ "#ifndef " str \n
+ "#define " str \n
+ \n
+ _ \n
+ \n
+ "#endif // " str \n)))
+(eval-after-load 'autoinsert
+ '(define-auto-insert
+ '("\\.\\(CC?\\|cc\\|cxx\\|cpp\\|c++\\)\\'" . "C++ source")
+ '(nil
+ "#include \"common.hh\"" \n
+ \n
+ (let ((base (file-name-sans-extension buffer-file-name)))
+ (cond
+ ((file-exists-p
+ (concat base ".hh"))
+ (concat "#include \""
+ (file-name-nondirectory (concat base ".hh"))
+ "\"\n\n"))))
+ > _ \n)))
+(eval-after-load 'autoinsert
+ '(define-auto-insert
+ '("\\.\\([Hh]\\)\\'" . "C header")
+ '((upcase
+ (mapconcat 'identity (split-string
+ (file-name-nondirectory buffer-file-name)
+ "[^a-zA-Z0-9]+") "_"))
+ "#ifndef " str \n
+ "#define " str \n
+ \n
+ _ \n
+ \n
+ "#endif /* " str " */" \n)))
+(eval-after-load 'autoinsert
+ '(define-auto-insert
+ '("\\.\\([Cc]\\)\\'" . "C source")
+ '(nil
+ "#include \"common.h\"" \n
+ \n
+ (let ((base (file-name-sans-extension buffer-file-name)))
+ (cond
+ ((file-exists-p
+ (concat base ".h"))
+ (concat "#include \""
+ (file-name-nondirectory (concat base ".h"))
+ "\"\n\n"))))
+ > _ \n)))
+(eval-after-load 'autoinsert
+ '(define-auto-insert
+ '("[Mm]akefile\\'" . "Makefile")
+ '(nil
+ ".PHONY: all clean" \n
+ \n
+ "all: " _ \n
+ \n
+ "clean:" \n
+ \n)))
+(eval-after-load 'autoinsert
+ '(define-auto-insert
+ '("\\.\\(py\\)\\'" . "Python source")
+ '(nil
+ "#!/usr/bin/env python" \n
+ \n
+ _ \n)))
+(eval-after-load 'autoinsert
+ '(define-auto-insert
+ '("\\.\\(java\\)\\'" . "Java source")
+ '((capitalize
+ (file-name-base buffer-file-name))
+ "package " (mapconcat 'identity (member "com" (split-string (file-name-directory buffer-file-name) "/" t)) ".") ";" \n
+ \n
+ "class " str " {" \n
+ _ \n
+ str "() {" ?\n
+ " " "}" ?\n ;; > should work here but it doesn't
+ "}" \n)))
+(auto-insert-mode t)
+;; don't ask before using auto-insert
+(setq-default auto-insert-query nil)
+
+;; gpg
+(require 'epa-file)
+(epa-file-enable)
+
+;; keys
+(global-set-key (kbd "C-c o") 'ff-find-other-file)
+
+;; flycheck
+(require 'flycheck)
+(global-flycheck-mode)
+
+(c-add-style
+ "common c"
+ '("gnu"
+ (c-basic-offset . 4)
+ (c-offsets-alist
+ .
+ ((substatement-open . 0)
+ (arglist-intro . ++)
+ (innamespace . 0)))))
+
+(add-hook 'c-mode-common-hook
+ (lambda()
+ (c-set-style "common c")))
+
+(c-add-style
+ "default c++"
+ '("common c"
+ (c-basic-offset . 2)))
+
+(add-hook 'c++-mode-hook
+ (lambda()
+ (setq flycheck-clang-language-standard "c++11"
+ flycheck-clang-definitions '("HAVE_CONFIG_H")
+ flycheck-clang-include-path
+ '("../src" "../build"))
+ (c-set-style "default c++")))
+
+;; Opera Java hook
+(add-hook 'java-mode-hook
+ (lambda()
+ (when (and buffer-file-name
+ (string-match "/opera/head" buffer-file-name))
+ (require 'flycheck-android-experimental)
+ (setq flycheck-android-java-checkstyle-jar
+ "../../chromium/src/third_party/checkstyle/checkstyle-6.5-all.jar"
+ flycheck-android-java-checkstyle-path
+ "tools/checkstyle"
+ flycheck-android-java-checkstyle-config
+ "checkstyle-config-android.xml"
+ flycheck-android-java-checkstyle-properties
+ "checkstyle.properties"))))
+
+;;;