summary refs log tree commit diff
path: root/emacs.d/core
diff options
context:
space:
mode:
Diffstat (limited to 'emacs.d/core')
-rw-r--r--emacs.d/core/core-autocompletion.el7
-rw-r--r--emacs.d/core/core-bindings.el9
-rw-r--r--emacs.d/core/core-default.el29
-rw-r--r--emacs.d/core/core-defun.el9
-rw-r--r--emacs.d/core/core-editor.el67
-rw-r--r--emacs.d/core/core-flycheck.el33
-rw-r--r--emacs.d/core/core-flyspell.el11
-rw-r--r--emacs.d/core/core-git.el24
-rw-r--r--emacs.d/core/core-load-paths.el12
-rw-r--r--emacs.d/core/core-modes.el7
-rw-r--r--emacs.d/core/core-ui.el54
11 files changed, 262 insertions, 0 deletions
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 "<s-return>") '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-<delete>" . sp-unwrap-sexp)
+               ("M-<backspace>". sp-backward-unwrap-sexp)
+               ("M-<right>" . sp-forward-slurp-sexp)
+               ("M-<left>" . sp-forward-barf-sexp)
+               ("M-S-<left>" . sp-backward-slurp-sexp)
+               ("M-S-<right>" . 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   <file name>:<line> <message>
+      :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)