From 5f2b301a8df5410962519d2b7e9a977b03e75977 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Fri, 12 Feb 2016 20:58:37 -0800 Subject: [emacs] Split the config into 'core' and 'modes'. Separate the modules that are 'core' (e.g.: related to editing, manipulating text, and so on) and the 'modes' (e.g.: related to syntax, langage support, etc). --- emacs.d/core/core-autocompletion.el | 7 ++++ emacs.d/core/core-bindings.el | 9 +++++ emacs.d/core/core-default.el | 29 ++++++++++++++++ emacs.d/core/core-defun.el | 9 +++++ emacs.d/core/core-editor.el | 67 +++++++++++++++++++++++++++++++++++++ emacs.d/core/core-flycheck.el | 33 ++++++++++++++++++ emacs.d/core/core-flyspell.el | 11 ++++++ emacs.d/core/core-git.el | 24 +++++++++++++ emacs.d/core/core-load-paths.el | 12 +++++++ emacs.d/core/core-modes.el | 7 ++++ emacs.d/core/core-ui.el | 54 ++++++++++++++++++++++++++++++ 11 files changed, 262 insertions(+) create mode 100644 emacs.d/core/core-autocompletion.el create mode 100644 emacs.d/core/core-bindings.el create mode 100644 emacs.d/core/core-default.el create mode 100644 emacs.d/core/core-defun.el create mode 100644 emacs.d/core/core-editor.el create mode 100644 emacs.d/core/core-flycheck.el create mode 100644 emacs.d/core/core-flyspell.el create mode 100644 emacs.d/core/core-git.el create mode 100644 emacs.d/core/core-load-paths.el create mode 100644 emacs.d/core/core-modes.el create mode 100644 emacs.d/core/core-ui.el (limited to 'emacs.d/core') diff --git a/emacs.d/core/core-autocompletion.el b/emacs.d/core/core-autocompletion.el new file mode 100644 index 0000000..724ccf3 --- /dev/null +++ b/emacs.d/core/core-autocompletion.el @@ -0,0 +1,7 @@ +(use-package company + :ensure t + :config + (progn + (add-hook 'prog-mode-hook 'company-mode))) + +(provide 'core-autocompletion) diff --git a/emacs.d/core/core-bindings.el b/emacs.d/core/core-bindings.el new file mode 100644 index 0000000..e95e837 --- /dev/null +++ b/emacs.d/core/core-bindings.el @@ -0,0 +1,9 @@ +(global-set-key (kbd "M-j") 'join-line) + +(global-set-key (kbd "C-x C-b") 'ivy-switch-buffer) + +(global-set-key (kbd "") 'toggle-frame-fullscreen) + +(global-set-key (kbd "C-c C-d") 'fcuny-terminal) + +(provide 'core-bindings) diff --git a/emacs.d/core/core-default.el b/emacs.d/core/core-default.el new file mode 100644 index 0000000..a3076eb --- /dev/null +++ b/emacs.d/core/core-default.el @@ -0,0 +1,29 @@ +;; alias yes-or-no to y-or-n +(fset 'yes-or-no-p 'y-or-n-p) + +;; set utf-8 as the default encoding +(prefer-coding-system 'utf-8-unix) + +(setq auto-save-default nil) + +(setq auto-save-list-file-prefix nil) + +;; *no* backups +(setq make-backup-files nil) + +;; always add a newline +(setq require-final-newline t) + +;; follow symlinks +(setq vc-follow-symlinks t) + +;; navigation +(setq next-screen-context-lines 5) + +(setq tab-always-indent 'complete) + +(global-auto-revert-mode 1) + +(setq-default indent-tabs-mode nil) + +(provide 'core-default) diff --git a/emacs.d/core/core-defun.el b/emacs.d/core/core-defun.el new file mode 100644 index 0000000..deb315b --- /dev/null +++ b/emacs.d/core/core-defun.el @@ -0,0 +1,9 @@ +(defun fcuny-terminal () + "Switch to terminal. Launch if nonexistent." + (interactive) + (if (get-buffer "*ansi-term*") + (switch-to-buffer "*ansi-term*") + (ansi-term "/bin/bash")) + (get-buffer-process "*ansi-term*")) + +(provide 'core-defun) diff --git a/emacs.d/core/core-editor.el b/emacs.d/core/core-editor.el new file mode 100644 index 0000000..c8740db --- /dev/null +++ b/emacs.d/core/core-editor.el @@ -0,0 +1,67 @@ +(use-package swiper + :ensure t + :bind ( + ("C-s" . swiper)) + :config + (setq ivy-use-virtual-buffers t) + (ivy-mode)) + +(use-package counsel + :ensure t + :config + (setq counsel-find-file-at-point t)) + +(use-package exec-path-from-shell + :ensure t + :config + (exec-path-from-shell-initialize) + (exec-path-from-shell-copy-envs '("TMPDIR" "GOPATH"))) + +(use-package ag + :ensure t + :defer t) + +(use-package smartparens + :ensure t + :config + (progn + (require 'smartparens-config) + (smartparens-global-mode 1) + (setq sp-show-pair-delay 0) + (setq sp-autoinsert-if-followed-by-word nil) + (show-smartparens-global-mode t) + (bind-keys :map sp-keymap + ("C-M-d" . sp-down-sexp) + ("C-M-a" . sp-backward-down-sexp) + ("C-S-a" . sp-beginning-of-sexp) + ("C-S-e" . sp-end-of-sexp) + ("C-M-f" . sp-forward-sexp) + ("C-M-b" . sp-backward-sexp) + ("C-M-u" . sp-backward-up-sexp) + ("C-M-t" . sp-transpose-sexp) + ("C-M-n" . sp-next-sexp) + ("C-M-p" . sp-previous-sexp) + ("C-M-k" . sp-kill-sexp) + ("C-M-w" . sp-copy-sexp) + ("M-" . sp-unwrap-sexp) + ("M-". sp-backward-unwrap-sexp) + ("M-" . sp-forward-slurp-sexp) + ("M-" . sp-forward-barf-sexp) + ("M-S-" . sp-backward-slurp-sexp) + ("M-S-" . sp-backward-barf-sexp) + ("M-d" . sp-splice-sexp)))) + +(use-package projectile + :ensure t + :init + (setq projectile-enable-caching t) + (setq projectile-completion-system 'ivy) + :config + (projectile-global-mode)) + +(use-package server + :config + (unless (server-running-p) + (server-start))) + +(provide 'core-editor) diff --git a/emacs.d/core/core-flycheck.el b/emacs.d/core/core-flycheck.el new file mode 100644 index 0000000..9c64bb1 --- /dev/null +++ b/emacs.d/core/core-flycheck.el @@ -0,0 +1,33 @@ +(use-package flycheck + :ensure t + :defer t + :preface (progn + (defun check-source-predicate () + (and (executable-find "check.pex") + (buffer-file-name) + (string-match "src/source/.*\.py$" (buffer-file-name))))) + :init + (progn + (add-hook 'prog-mode-hook 'flycheck-mode) + (setq-default flycheck-disabled-checkers '(emacs-lisp-checkdoc))) + :config + (progn + (flycheck-define-checker source-check + "A syntax checker for python source code in Source, using `check.pex'" + :command ("check.pex" source) + ;;; errors are reported like this: + ;;; E241:ERROR : + :error-patterns ((error line-start (1+ nonl) ":ERROR" (1+ nonl) ":" line (message) line-end)) + :predicate check-source-predicate + :modes (python-mode)) + (add-to-list 'flycheck-checkers 'source-check))) + +(use-package flycheck-pos-tip + :defer t + :init + (progn + (eval-after-load 'feature-flycheck + '(setq-default flycheck-display-errors-function #'flycheck-pos-tip-error-messages))) + :ensure t) + +(provide 'core-flycheck) diff --git a/emacs.d/core/core-flyspell.el b/emacs.d/core/core-flyspell.el new file mode 100644 index 0000000..7c61b49 --- /dev/null +++ b/emacs.d/core/core-flyspell.el @@ -0,0 +1,11 @@ +(use-package flyspell + :ensure t + :defer t + :init + (progn + (setq ispell-program-name "aspell" + ispell-list-command "--list") + (add-hook 'prog-mode-hook 'flyspell-prog-mode) + (add-hook 'text-mode-hook 'turn-on-flyspell))) + +(provide 'core-flyspell) diff --git a/emacs.d/core/core-git.el b/emacs.d/core/core-git.el new file mode 100644 index 0000000..2fa1167 --- /dev/null +++ b/emacs.d/core/core-git.el @@ -0,0 +1,24 @@ +(delete 'Git vc-handled-backends) + +(use-package magit + :ensure t + :bind ("C-x g" . magit-status) + :config + (progn + (setq magit-completing-read-function 'ivy-completing-read) + (setq magit-item-highlight-face 'bold))) + +(use-package gist + :ensure t + :bind ("C-c g p" . gist-region-or-buffer-private) + :config + (setq gist-view-gist t)) + +(use-package github-browse-file + :ensure t + :defer t) + +(provide 'core-git) + + + diff --git a/emacs.d/core/core-load-paths.el b/emacs.d/core/core-load-paths.el new file mode 100644 index 0000000..0dec695 --- /dev/null +++ b/emacs.d/core/core-load-paths.el @@ -0,0 +1,12 @@ +(add-to-list 'load-path (concat user-emacs-directory "core/")) + +(require 'core-default) +(require 'core-ui) +(require 'core-editor) +(require 'core-defun) +(require 'core-git) +(require 'core-flycheck) +(require 'core-flyspell) +(require 'core-autocompletion) +(require 'core-bindings) +(require 'core-modes) diff --git a/emacs.d/core/core-modes.el b/emacs.d/core/core-modes.el new file mode 100644 index 0000000..b994b1e --- /dev/null +++ b/emacs.d/core/core-modes.el @@ -0,0 +1,7 @@ +(defun fcuny/load-layers () + (mapc 'load + (directory-files (concat user-emacs-directory "modes") t "\\.el$"))) + +(fcuny/load-layers) + +(provide 'core-modes) diff --git a/emacs.d/core/core-ui.el b/emacs.d/core/core-ui.el new file mode 100644 index 0000000..ff70ae3 --- /dev/null +++ b/emacs.d/core/core-ui.el @@ -0,0 +1,54 @@ +;; no menu +(menu-bar-mode -1) + +;; show parenthesis +(show-paren-mode +1) + +;; enable colors +(global-font-lock-mode +1) + +;; no startup screen +(setq inhibit-startup-message t) +(setq initial-scratch-message ";; scratch buffer") + +(setq frame-title-format '(buffer-file-name "%f" ("%b"))) + +;; no blink cursor +(blink-cursor-mode -1) + +;; show the column number in the mode-line +(setq column-number-mode t) + +(when window-system + ;;hide tool-bar + (tool-bar-mode 0) + ;;hide scroll-bar + (scroll-bar-mode 0) + ;;hide menu-bar + (menu-bar-mode +1) + ;; set the font size and family + (custom-set-faces '(default ((t (:height 130 :family "Droid Sans Mono")))))) + +(require 'whitespace) +(global-whitespace-mode 1) +(setq whitespace-style '(face trailing tabs tab-mark)) + +(use-package leuven-theme + :init + (load-theme 'leuven t)) + +(use-package smart-mode-line + :ensure t + :config + (setq sml/theme 'light) + (setq rm-whitelist '("")) + (sml/setup)) + +(use-package rainbow-delimiters + :ensure t + :defer t + :init + (progn + (add-hook 'emacs-lisp-mode-hook #'rainbow-delimiters-mode))) + +(provide 'core-ui) -- cgit 1.4.1