From c0368d8e65fd15a1f48de6a01adcb8ec786a72a0 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Fri, 29 Jun 2018 14:49:44 -0700 Subject: [emacs] Massive rewrite --- emacs.d/config/config-lib.el | 32 ------------- emacs.d/config/config-set-path.el | 9 ---- emacs.d/config/fcuny-appearance.el | 22 +++++++++ emacs.d/config/fcuny-basic-settings.el | 38 +++++++++++++++ emacs.d/config/fcuny-basic-settings.el~ | 9 ++++ emacs.d/config/fcuny-common.el | 29 ++++++++++++ emacs.d/config/fcuny-company.el | 17 +++++++ emacs.d/config/fcuny-darwin.el | 14 ++++++ emacs.d/config/fcuny-dired.el | 15 ++++++ emacs.d/config/fcuny-docker.el | 7 +++ emacs.d/config/fcuny-editor.el | 55 +++++++++++++++++++++ emacs.d/config/fcuny-elisp.el | 13 +++++ emacs.d/config/fcuny-flyspell.el | 9 ++++ emacs.d/config/fcuny-go.el | 35 ++++++++++++++ emacs.d/config/fcuny-ibuffer.el | 26 ++++++++++ emacs.d/config/fcuny-json.el | 11 +++++ emacs.d/config/fcuny-magit.el | 29 ++++++++++++ emacs.d/config/fcuny-make.el | 9 ++++ emacs.d/config/fcuny-markdown.el | 13 +++++ emacs.d/config/fcuny-pants.el | 15 ++++++ emacs.d/config/fcuny-paren.el | 13 +++++ emacs.d/config/fcuny-project.el | 84 +++++++++++++++++++++++++++++++++ emacs.d/config/fcuny-protobuf.el | 8 ++++ emacs.d/config/fcuny-puppet.el | 12 +++++ emacs.d/config/fcuny-python.el | 12 +++++ emacs.d/config/fcuny-rust.el | 24 ++++++++++ emacs.d/config/fcuny-scala.el | 6 +++ emacs.d/config/fcuny-shell.el | 13 +++++ emacs.d/config/fcuny-thrift.el | 10 ++++ emacs.d/config/fcuny-vars.el | 35 ++++++++++++++ emacs.d/config/fcuny-yaml.el | 9 ++++ 31 files changed, 592 insertions(+), 41 deletions(-) delete mode 100644 emacs.d/config/config-lib.el delete mode 100644 emacs.d/config/config-set-path.el create mode 100644 emacs.d/config/fcuny-appearance.el create mode 100644 emacs.d/config/fcuny-basic-settings.el create mode 100644 emacs.d/config/fcuny-basic-settings.el~ create mode 100644 emacs.d/config/fcuny-common.el create mode 100644 emacs.d/config/fcuny-company.el create mode 100644 emacs.d/config/fcuny-darwin.el create mode 100644 emacs.d/config/fcuny-dired.el create mode 100644 emacs.d/config/fcuny-docker.el create mode 100644 emacs.d/config/fcuny-editor.el create mode 100644 emacs.d/config/fcuny-elisp.el create mode 100644 emacs.d/config/fcuny-flyspell.el create mode 100644 emacs.d/config/fcuny-go.el create mode 100644 emacs.d/config/fcuny-ibuffer.el create mode 100644 emacs.d/config/fcuny-json.el create mode 100644 emacs.d/config/fcuny-magit.el create mode 100644 emacs.d/config/fcuny-make.el create mode 100644 emacs.d/config/fcuny-markdown.el create mode 100644 emacs.d/config/fcuny-pants.el create mode 100644 emacs.d/config/fcuny-paren.el create mode 100644 emacs.d/config/fcuny-project.el create mode 100644 emacs.d/config/fcuny-protobuf.el create mode 100644 emacs.d/config/fcuny-puppet.el create mode 100644 emacs.d/config/fcuny-python.el create mode 100644 emacs.d/config/fcuny-rust.el create mode 100644 emacs.d/config/fcuny-scala.el create mode 100644 emacs.d/config/fcuny-shell.el create mode 100644 emacs.d/config/fcuny-thrift.el create mode 100644 emacs.d/config/fcuny-vars.el create mode 100644 emacs.d/config/fcuny-yaml.el (limited to 'emacs.d/config') diff --git a/emacs.d/config/config-lib.el b/emacs.d/config/config-lib.el deleted file mode 100644 index 8896d2f..0000000 --- a/emacs.d/config/config-lib.el +++ /dev/null @@ -1,32 +0,0 @@ -;; rename a buffer -(defun fc/rename-this-buffer-and-file () - "Renames current buffer and file it is visiting." - (interactive) - (let ((name (buffer-name)) - (filename (buffer-file-name)) - (read-file-name-function 'read-file-name-default)) - (if (not (and filename (file-exists-p filename))) - (error "Buffer '%s' is not visiting a file!" name) - (let ((new-name (read-file-name "New name: " filename))) - (cond ((get-buffer new-name) - (error "A buffer named '%s' already exists!" new-name)) - (t - (rename-file filename new-name 1) - (rename-buffer new-name) - (set-visited-file-name new-name) - (set-buffer-modified-p nil) - (message "File '%s' successfully renamed to '%s'" name (file-name-nondirectory new-name)))))))) - - -;; predicate for checking style only on python files -(defun fc/check-source-p () - "Finds if the current python file is in the `source' repository." - (and (executable-find "check.pex") - (buffer-file-name) - (string-match "src/source/.*\.py$" (buffer-file-name)))) - -(defun fc/check-gcp-puppet-p () - "Finds if the current file is in GCP's puppet repository." - (string-match "gcp-puppet-manifest/.*$" (buffer-file-name))) - -(provide 'config-lib) diff --git a/emacs.d/config/config-set-path.el b/emacs.d/config/config-set-path.el deleted file mode 100644 index a22416d..0000000 --- a/emacs.d/config/config-set-path.el +++ /dev/null @@ -1,9 +0,0 @@ -(paradox-require 'exec-path-from-shell) - -(when (memq window-system '(x mac ns)) - (exec-path-from-shell-initialize) - (dolist (var '("GEM_HOME" "GEM_PATH" "MY_RUBY_HOME")) - (unless (getenv var) - (exec-path-from-shell-copy-env var)))) - -(provide 'config-set-path) diff --git a/emacs.d/config/fcuny-appearance.el b/emacs.d/config/fcuny-appearance.el new file mode 100644 index 0000000..5c65374 --- /dev/null +++ b/emacs.d/config/fcuny-appearance.el @@ -0,0 +1,22 @@ +(eval-when-compile + (require 'use-package)) + +;; Set default font. +(set-face-attribute 'default nil :height 130 :weight 'normal :width 'normal) + +(use-package tool-bar + :config + (tool-bar-mode -1)) + +(use-package scroll-bar + :config + (scroll-bar-mode -1)) + +(use-package frame + :bind ("" . toggle-frame-fullscreen) + :config + (blink-cursor-mode -1) + (when (eq system-type 'darwin) + (setq ns-use-native-fullscreen nil))) + +(provide 'fcuny-appearance) diff --git a/emacs.d/config/fcuny-basic-settings.el b/emacs.d/config/fcuny-basic-settings.el new file mode 100644 index 0000000..fe05241 --- /dev/null +++ b/emacs.d/config/fcuny-basic-settings.el @@ -0,0 +1,38 @@ +(eval-when-compile + (require 'use-package)) + +;; set utf-8 as the default encoding +(prefer-coding-system 'utf-8-unix) +(set-terminal-coding-system 'utf-8) +(set-keyboard-coding-system 'utf-8) + +;; alias yes-or-no to y-or-n +(fset 'yes-or-no-p 'y-or-n-p) + +(setq auto-save-default nil) ;; don't auto save files +(setq auto-save-list-file-prefix nil) ;; no backups +(setq create-lockfiles nil) ;; don't use a lock file +(setq custom-file fcuny-custom-settings) ;; where to save custom settings +(setq inhibit-startup-message t) ;; Skip the default splash screen +(setq inhibit-startup-screen t) ;; I don't want a startup screen +(setq make-backup-files nil) ;; really no backups +(setq minibuffer-message-timeout 0.5) ;; How long to display an echo-area message +(setq next-screen-context-lines 5) ;; scroll 5 lines at a time +(setq require-final-newline t) ;; ensure newline exists at the end of the file +(setq ring-bell-function 'ignore) ;; really no bell +(setq tab-always-indent 'complete) ;; when using TAB, always indent +(setq visible-bell nil) ;; no bell + +(setq-default indent-tabs-mode nil) ;; turn off tab indentation +(setq-default cursor-type 'hbar) ;; cursor is a horizontal bar + +;; size of the fringe +(fringe-mode '(8 . 8)) + +;; show column number in the mode line +(setq column-number-mode t) + +;; Remap join-line to M-j where it's easier to get to. +(global-set-key (kbd "M-j") 'join-line) + +(provide 'fcuny-basic-settings) diff --git a/emacs.d/config/fcuny-basic-settings.el~ b/emacs.d/config/fcuny-basic-settings.el~ new file mode 100644 index 0000000..2dab7f0 --- /dev/null +++ b/emacs.d/config/fcuny-basic-settings.el~ @@ -0,0 +1,9 @@ +;; set utf-8 as the default encoding +(prefer-coding-system 'utf-8-unix) +(set-terminal-coding-system 'utf-8) +(set-keyboard-coding-system 'utf-8) + +;; alias yes-or-no to y-or-n +(fset 'yes-or-no-p 'y-or-n-p) + +(provide 'fcuny-basic-settings) diff --git a/emacs.d/config/fcuny-common.el b/emacs.d/config/fcuny-common.el new file mode 100644 index 0000000..61a2829 --- /dev/null +++ b/emacs.d/config/fcuny-common.el @@ -0,0 +1,29 @@ +(defun fc/rename-this-buffer-and-file () + "Renames current buffer and file it is visiting." + (interactive) + (let ((name (buffer-name)) + (filename (buffer-file-name)) + (read-file-name-function 'read-file-name-default)) + (if (not (and filename (file-exists-p filename))) + (error "Buffer '%s' is not visiting a file!" name) + (let ((new-name (read-file-name "New name: " filename))) + (cond ((get-buffer new-name) + (error "A buffer named '%s' already exists!" new-name)) + (t + (rename-file filename new-name 1) + (rename-buffer new-name) + (set-visited-file-name new-name) + (set-buffer-modified-p nil) + (message "File '%s' successfully renamed to '%s'" name (file-name-nondirectory new-name)))))))) + +(defun fc/check-source-p () + "Finds if the current python file is in the `source' repository." + (and (executable-find "check.pex") + (buffer-file-name) + (string-match "src/source/.*\.py$" (buffer-file-name)))) + +(defun fc/check-work-machine-p () + "Returns t if this is a work machine" + (string-match "tw-mbp.*" (system-name))) + +(provide 'fcuny-common) diff --git a/emacs.d/config/fcuny-company.el b/emacs.d/config/fcuny-company.el new file mode 100644 index 0000000..62e06de --- /dev/null +++ b/emacs.d/config/fcuny-company.el @@ -0,0 +1,17 @@ +(eval-when-compile + (require 'use-package)) + +(use-package company + :ensure t + :diminish company-mode + :config + (global-company-mode) + (setq company-global-modes '(not term-mode) + company-idle-delay 0.3 + company-minimum-prefix-length 3 + company-selection-wrap-around t + company-show-numbers t + company-tooltip-align-annotations t + company-require-match nil)) + +(provide 'fcuny-company) diff --git a/emacs.d/config/fcuny-darwin.el b/emacs.d/config/fcuny-darwin.el new file mode 100644 index 0000000..fbc95e7 --- /dev/null +++ b/emacs.d/config/fcuny-darwin.el @@ -0,0 +1,14 @@ +(eval-when-compile + (require 'use-package)) + +(use-package exec-path-from-shell + :if (memq window-system '(mac ns)) + :ensure t + :config + (exec-path-from-shell-initialize) + (if (fc/check-work-machine-p) + (dolist (var '("GEM_HOME" "GEM_PATH" "MY_RUBY_HOME")) + (unless (getenv var) + (exec-path-from-shell-copy-env var))))) + +(provide 'fcuny-darwin) diff --git a/emacs.d/config/fcuny-dired.el b/emacs.d/config/fcuny-dired.el new file mode 100644 index 0000000..8c64c1f --- /dev/null +++ b/emacs.d/config/fcuny-dired.el @@ -0,0 +1,15 @@ +(eval-when-compile + (require 'use-package)) + +(use-package dired + :defer t + :bind ("C-x C-d" . dired) + :init + (setq-default dired-dwim-target t) + (setq dired-recursive-deletes 'always) + (setq dired-recursive-copies 'always) + + (let ((gls (executable-find "/opt/twitter/bin/gls"))) + (when gls (setq insert-directory-program gls)))) + +(provide 'fcuny-dired) diff --git a/emacs.d/config/fcuny-docker.el b/emacs.d/config/fcuny-docker.el new file mode 100644 index 0000000..7ed7b0b --- /dev/null +++ b/emacs.d/config/fcuny-docker.el @@ -0,0 +1,7 @@ +(eval-when-compile + (require 'use-package)) + +(use-package dockerfile-mode + :ensure t) + +(provide 'fcuny-docker) diff --git a/emacs.d/config/fcuny-editor.el b/emacs.d/config/fcuny-editor.el new file mode 100644 index 0000000..75baa4f --- /dev/null +++ b/emacs.d/config/fcuny-editor.el @@ -0,0 +1,55 @@ +(eval-when-compile + (require 'use-package)) + +(use-package bookmark + :custom + (bookmark-default-file fcuny-bookmarks-dir) + (bookmark-save-flag 1)) + +(use-package autorevert + :config + (global-auto-revert-mode t)) + +(use-package midnight + :config + (midnight-mode t)) + +(use-package autorevert + :config + (setq global-auto-revert-non-file-buffers t) + (setq auto-revert-verbose nil) + (global-auto-revert-mode t)) + +(use-package recentf + :config + (setq recentf-save-file (expand-file-name "var/recentf" user-emacs-directory))) + +(use-package server + :if window-system + :init + (add-hook 'after-init-hook 'server-start)) + +(use-package hl-line + :config + (global-hl-line-mode t)) + +(use-package tramp + :custom + (tramp-default-method "ssh") + (tramp-persistency-file-name (expand-file-name "var/tramp" user-emacs-directory))) + +(use-package whitespace + :custom + (whitespace-style '(face trailing)) + (show-trailing-whitespace t) + :hook (whitespace-mode)) + +(use-package ispell + :ensure t + :config + (use-package flyspell-correct-ivy :ensure t) + (when (executable-find "aspell") + (setq ispell-program-name "aspell" + ispell-list-command "--list"))) + +(provide 'fcuny-editor) diff --git a/emacs.d/config/fcuny-elisp.el b/emacs.d/config/fcuny-elisp.el new file mode 100644 index 0000000..118eb5b --- /dev/null +++ b/emacs.d/config/fcuny-elisp.el @@ -0,0 +1,13 @@ +(eval-when-compile + (require 'use-package)) + +(use-package lisp-mode + :bind + (("C-c C-e" . eval-buffer) + ("C-c C-r" . eval-region))) + +(use-package eldoc + :ensure t + :hook (emacs-lisp-mode-hook)) + +(provide 'fcuny-elisp) diff --git a/emacs.d/config/fcuny-flyspell.el b/emacs.d/config/fcuny-flyspell.el new file mode 100644 index 0000000..fe26768 --- /dev/null +++ b/emacs.d/config/fcuny-flyspell.el @@ -0,0 +1,9 @@ +(eval-when-compile + (require 'use-package)) + +(use-package flyspell + :ensure t + :hook ((text-mode-hook . flyspell-mode) + (prog-mode-hook . flyspell-prog-mode))) + +(provide 'fcuny-flyspell) diff --git a/emacs.d/config/fcuny-go.el b/emacs.d/config/fcuny-go.el new file mode 100644 index 0000000..14acbe4 --- /dev/null +++ b/emacs.d/config/fcuny-go.el @@ -0,0 +1,35 @@ +(eval-when-compile + (require 'use-package)) + +(use-package go-mode + :ensure t + :init + (progn + (defun fcuny-go-set-tab-width () + (setq-local tab-width 2)) + (add-hook 'go-mode-hook 'fcuny-go-set-tab-width)) + + :config + (use-package go-eldoc + :config + (add-hook 'go-mode-hook 'go-eldoc-setup)) + + (use-package gotest :ensure t) + + (use-package go-guru :ensure t) + + (use-package go-imports :ensure t) + + (use-package golint :ensure t) + + (use-package go-projectile :ensure t) + + (use-package company-go + :ensure t + :init + (progn + (setq company-go-show-annotation t)) + :config + (add-hook 'go-mode-hook (lambda() (add-to-list 'company-backends 'company-go))))) + +(provide 'fcuny-go) diff --git a/emacs.d/config/fcuny-ibuffer.el b/emacs.d/config/fcuny-ibuffer.el new file mode 100644 index 0000000..b949c87 --- /dev/null +++ b/emacs.d/config/fcuny-ibuffer.el @@ -0,0 +1,26 @@ +(eval-when-compile + (require 'use-package)) + +(use-package ibuffer + :ensure t + :bind ("C-x C-b" . ibuffer)) + +(use-package flycheck + :ensure t + :config + (progn + (add-hook 'prog-mode-hook 'flycheck-mode) + (setq flycheck-highlighting-mode 'lines) + (setq flycheck-check-syntax-automatically '(mode-enabled save)) + (setq flycheck-checkers (delq 'emacs-lisp-checkdoc flycheck-checkers)) + (if (fc/check-work-machine-p) + (flycheck-define-checker fc/twitter-source-check + "A syntax checker for python source code in Source, using `check.pex'" + :command ("check.pex" source) + :error-patterns ((error line-start (id (1+ nonl)) ":ERROR" (1+ nonl) ":" line (message) line-end) + (warning line-start (id (1+ nonl)) ":WARNING" (1+ nonl) ":" line (message) line-end)) + :predicate fc/check-source-p + :modes (python-mode)) + (add-to-list 'flycheck-checkers 'fc/twitter-source-check)))) + +(provide 'fcuny-ibuffer) diff --git a/emacs.d/config/fcuny-json.el b/emacs.d/config/fcuny-json.el new file mode 100644 index 0000000..91c682b --- /dev/null +++ b/emacs.d/config/fcuny-json.el @@ -0,0 +1,11 @@ +(eval-when-compile + (require 'use-package)) + +(use-package json-mode + :ensure t + :config + (setq json-reformat:indent-width 2) + (if (fc/check-work-machine-p) + (add-to-list 'auto-mode-alist '("\\.workflow$" . json-mode)))) + +(provide 'fcuny-json) diff --git a/emacs.d/config/fcuny-magit.el b/emacs.d/config/fcuny-magit.el new file mode 100644 index 0000000..b78398c --- /dev/null +++ b/emacs.d/config/fcuny-magit.el @@ -0,0 +1,29 @@ +(eval-when-compile + (require 'use-package)) + +(use-package magit + :mode (("differential-update-comments" . git-commit-mode) + ("new-commit" . git-commit-mode)) + :bind (("C-x g s" . magit-status) + ("C-x g b" . magit-checkout)) + :init + (progn + (setq magit-completing-read-function 'ivy-completing-read)) + + :config + (progn + (global-git-commit-mode) + + ;; I don't care about other VC backend for work + (if (fc/check-work-machine-p) + (setf vc-handled-backends nil + vc-follow-symlinks t)) + + (use-package git-commit :ensure t) + + (add-hook 'magit-log-edit-mode-hook + #'(lambda () + (set-fill-column 72) + (flyspell-mode))))) + +(provide 'fcuny-magit) diff --git a/emacs.d/config/fcuny-make.el b/emacs.d/config/fcuny-make.el new file mode 100644 index 0000000..1218f7a --- /dev/null +++ b/emacs.d/config/fcuny-make.el @@ -0,0 +1,9 @@ +(eval-when-compile + (require 'use-package)) + +(use-package make-mode + :ensure t + :config + (add-hook 'makefile-mode-hook (lambda () (setq-local tab-width 2)))) + +(provide 'fcuny-make) diff --git a/emacs.d/config/fcuny-markdown.el b/emacs.d/config/fcuny-markdown.el new file mode 100644 index 0000000..7387a0d --- /dev/null +++ b/emacs.d/config/fcuny-markdown.el @@ -0,0 +1,13 @@ +(eval-when-compile + (require 'use-package)) + +(use-package markdown-mode + :ensure t + :mode (("\\.md\\'" . gfm-mode) + ("\\.markdown\\'" . gfm-mode)) + :init (setq markdown-command "pandoc -f markdown_github -c https://goo.gl/OVmlwT --self-contained" + markdown-header-scaling 't) + :config + (add-hook 'gfm-mode-hook 'visual-line-mode)) + +(provide 'fcuny-markdown) diff --git a/emacs.d/config/fcuny-pants.el b/emacs.d/config/fcuny-pants.el new file mode 100644 index 0000000..3ed1ef1 --- /dev/null +++ b/emacs.d/config/fcuny-pants.el @@ -0,0 +1,15 @@ +(eval-when-compile + (require 'use-package)) + +(use-package pants + :load-path (lambda () (expand-file-name "github.com/fcuny/pants.el/" fcuny-path-workspace)) + :custom + (pants-completion-system 'ivy) + (pants-source-tree-root (expand-file-name "git.twitter.biz/source" fcuny-path-workspace)) + (pants-bury-compilation-buffer t) + (pants-extra-args "-q") + :bind (("C-c b" . pants-find-build-file) + ("C-c r" . pants-run-binary) + ("C-c t" . pants-run-test))) + +(provide 'fcuny-pants) diff --git a/emacs.d/config/fcuny-paren.el b/emacs.d/config/fcuny-paren.el new file mode 100644 index 0000000..db6bdeb --- /dev/null +++ b/emacs.d/config/fcuny-paren.el @@ -0,0 +1,13 @@ +(eval-when-compile + (require 'use-package)) + +;; auto close bracket, parenthesis insertion +(electric-pair-mode 1) + +(use-package paren + :custom + (show-paren-delay 0) + :config + (show-paren-mode 1)) + +(provide 'fcuny-paren) diff --git a/emacs.d/config/fcuny-project.el b/emacs.d/config/fcuny-project.el new file mode 100644 index 0000000..c94c40b --- /dev/null +++ b/emacs.d/config/fcuny-project.el @@ -0,0 +1,84 @@ +(eval-when-compile + (require 'use-package)) + +(use-package counsel + :ensure t + :bind + (("M-x" . counsel-M-x) + ("C-s" . counsel-grep-or-swiper) + ("C-x C-f" . counsel-find-file) + ("C-x C-r" . counsel-recentf) + ("C-c f" . counsel-git) + ("C-c s" . counsel-git-grep) + ("C-c /" . counsel-ag)) + :custom + (counsel-find-file-at-point t) + :config + (use-package swiper :ensure t) + (use-package counsel-projectile :ensure t)) + +(use-package ivy + :ensure t + :diminish (ivy-mode . "") + :bind ("C-c m" . ivy-switch-project) + :config + (ivy-mode 1) + (setq ivy-use-virtual-buffers t + ivy-height 10 + ivy-count-format "(%d/%d) " + ivy-initial-inputs-alist nil + ivy-use-ignore-default 'always + ivy-ignore-buffers '("company-statistics-cache.el" "company-statistics-autoload.el") + ivy-re-builders-alist '((swiper . ivy--regex-ignore-order) + (t . ivy--regex-fuzzy) + (t . ivy--regex-ignore-order))) + + (defun ivy-switch-project () + (interactive) + (ivy-read + "Switch to project: " + (if (projectile-project-p) + (cons (abbreviate-file-name (projectile-project-root)) + (projectile-relevant-known-projects)) + projectile-known-projects) + :action #'projectile-switch-project-by-name)) + + (ivy-set-actions + 'ivy-switch-project + '(("d" dired "Open Dired in project's directory") + ("v" counsel-projectile "Open project root in vc-dir or magit") + ("c" projectile-compile-project "Compile project") + ("r" projectile-remove-known-project "Remove project(s)")))) + +(use-package projectile + :ensure t + :diminish projectile-mode + :bind-keymap ("C-c p" . projectile-command-map) + + :init + (add-hook 'after-init-hook #'projectile-mode) + + :config + (setq projectile-switch-project-action 'projectile-dired + projectile-enable-caching t + projectile-completion-system 'ivy + projectile-known-projects-file (expand-file-name "var/projectile-bookmarks.eld" user-emacs-directory) + projectile-cache-file (expand-file-name "var/projectile.cache" user-emacs-directory) + projectile-globally-ignored-directories (append fcuny-projects-ignored-dirs + projectile-globally-ignored-directories) + projectile-globally-ignored-files (append + projectile-globally-ignored-files))) + +(use-package ag + :ensure t + :bind (:map ag-mode-map + ("p" . compilation-previous-error) + ("n" . compilation-next-error) + ("N" . compilation-next-file) + ("P" . compilation-previous-file)) + :custom + (ag-highlight-search t) + (ag-reuse-buffers t) + (ag-reuse-window t)) + +(provide 'fcuny-project) diff --git a/emacs.d/config/fcuny-protobuf.el b/emacs.d/config/fcuny-protobuf.el new file mode 100644 index 0000000..a2dedb4 --- /dev/null +++ b/emacs.d/config/fcuny-protobuf.el @@ -0,0 +1,8 @@ +(eval-when-compile + (require 'use-package)) + +(use-package protobuf-mode + :ensure t + :mode ("\\.proto$" . protobuf-mode)) + +(provide 'fcuny-protobuf) diff --git a/emacs.d/config/fcuny-puppet.el b/emacs.d/config/fcuny-puppet.el new file mode 100644 index 0000000..4a7eb10 --- /dev/null +++ b/emacs.d/config/fcuny-puppet.el @@ -0,0 +1,12 @@ +(eval-when-compile + (require 'use-package)) + +(use-package puppet-mode + :ensure t + :mode ("\\.pp\\'" . puppet-mode) + ;:hook (flycheck-mode) + :config + (if (fc/check-work-machine-p) + (setq flycheck-puppet-lint-rc fcuny-path-puppet-linter-svn))) + +(provide 'fcuny-puppet) diff --git a/emacs.d/config/fcuny-python.el b/emacs.d/config/fcuny-python.el new file mode 100644 index 0000000..16b4cc1 --- /dev/null +++ b/emacs.d/config/fcuny-python.el @@ -0,0 +1,12 @@ +(eval-when-compile + (require 'use-package)) + +(use-package python + :ensure t + :mode (("\\.py$" . python-mode) + ("^BUILD$" . python-mode) + ("\\.aurora$" . python-mode)) + :custom (python-indent-offset 2) + :hook (eldoc-mode)) + +(provide 'fcuny-python) diff --git a/emacs.d/config/fcuny-rust.el b/emacs.d/config/fcuny-rust.el new file mode 100644 index 0000000..8b3fe49 --- /dev/null +++ b/emacs.d/config/fcuny-rust.el @@ -0,0 +1,24 @@ +(eval-when-compile + (require 'use-package)) + +(use-package rust-mode + :ensure t + :config + + (use-package toml-mode :ensure t) + + (use-package racer :ensure t) + + (use-package company-racer :ensure t) + + (use-package cargo + :ensure t + :hook ((rust-mode . cargo-minor-mode) + (rust-mode . eldoc-mode) + (rust-mode . race-mode)) + :custom + (compilation-ask-about-save nil) + (rust-format-on-save t) + (rust-rustfmt-bin "/Users/fcuny/.cargo/bin/rustfmt"))) + +(provide 'fcuny-rust) diff --git a/emacs.d/config/fcuny-scala.el b/emacs.d/config/fcuny-scala.el new file mode 100644 index 0000000..cfadbd6 --- /dev/null +++ b/emacs.d/config/fcuny-scala.el @@ -0,0 +1,6 @@ +(eval-when-compile + (require 'use-package)) + +(use-package scala-mode :ensure t) + +(provide 'fcuny-scala) diff --git a/emacs.d/config/fcuny-shell.el b/emacs.d/config/fcuny-shell.el new file mode 100644 index 0000000..01fb075 --- /dev/null +++ b/emacs.d/config/fcuny-shell.el @@ -0,0 +1,13 @@ +(eval-when-compile + (require 'use-package)) + +(use-package sh-script + :mode ("bashrc" . sh-mode) + :config + (defun set-sh-mode-indent () + (setq sh-basic-offset 2 + sh-indentation 2)) + (add-hook 'sh-mode-hook 'set-sh-mode-indent) + (add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p)) + +(provide 'fcuny-shell) diff --git a/emacs.d/config/fcuny-thrift.el b/emacs.d/config/fcuny-thrift.el new file mode 100644 index 0000000..9bfa497 --- /dev/null +++ b/emacs.d/config/fcuny-thrift.el @@ -0,0 +1,10 @@ +(eval-when-compile + (require 'use-package)) + +(use-package thrift + :ensure t + :mode ("\\.thrift\\'" . thrift-mode) + :config + (setq thrift-indent-level 2)) + +(provide 'fcuny-thrift) diff --git a/emacs.d/config/fcuny-vars.el b/emacs.d/config/fcuny-vars.el new file mode 100644 index 0000000..cc19201 --- /dev/null +++ b/emacs.d/config/fcuny-vars.el @@ -0,0 +1,35 @@ +(defvar fcuny-path-home (getenv "HOME") + "Path to the user's home directory.") + +(defvar fcuny-path-workspace (expand-file-name "workspace" fcuny-path-home) + "Path to the workspace.") + +(defvar fcuny-path-git-twitter (expand-file-name "git.twitter.biz" fcuny-path-workspace) + "Path to twitter's git repositories.") + +(defvar fcuny-path-git-github (expand-file-name "github.com" fcuny-path-workspace) + "Path to github's git repositories.") + +(defvar fcuny-path-svn-twitter (expand-file-name "svn.twitter.biz" fcuny-path-workspace) + "Path to twitter's SVN repositories.") + +(defvar fcuny-path-puppet-linter-svn (expand-file-name "twitter-ops/utilities/puppet/.puppet-lint.rc" + fcuny-path-svn-twitter) + "Path to the linter's configuration for twitter-ops.") + +(defvar fcuny-path-emacs-var (expand-file-name "var" user-emacs-directory) + "Path to some files for Emacs.") + +(defvar fcuny-path-emacs-elpa (expand-file-name "elpa" fcuny-path-emacs-var) + "Path to elpa's local files.") + +(defvar fcuny-projects-ignored-dirs '(".git" ".svn" "target" "elpa") + "Ignore the following directories when browsing with projectile.") + +(defvar fcuny-bookmarks-dir (expand-file-name "bookmarks" fcuny-path-emacs-var) + "Path to save the bookmarks") + +(defvar fcuny-custom-settings (expand-file-name "emacs-custom.el" fcuny-path-emacs-var) + "Path to emacs custom variables.") + +(provide 'fcuny-vars) diff --git a/emacs.d/config/fcuny-yaml.el b/emacs.d/config/fcuny-yaml.el new file mode 100644 index 0000000..7d9ca87 --- /dev/null +++ b/emacs.d/config/fcuny-yaml.el @@ -0,0 +1,9 @@ +(eval-when-compile + (require 'use-package)) + +(use-package yaml-mode + :ensure t +;; :hook (flycheck-mode) + :mode ("\\.ya?ml\\'" . yaml-mode)) + +(provide 'fcuny-yaml) -- cgit 1.4.1