summary refs log tree commit diff
path: root/emacs.d/config/fcuny-prog.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs.d/config/fcuny-prog.el')
-rw-r--r--emacs.d/config/fcuny-prog.el158
1 files changed, 158 insertions, 0 deletions
diff --git a/emacs.d/config/fcuny-prog.el b/emacs.d/config/fcuny-prog.el
new file mode 100644
index 0000000..8124952
--- /dev/null
+++ b/emacs.d/config/fcuny-prog.el
@@ -0,0 +1,158 @@
+(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))
+
+(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))
+
+(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)))
+
+(use-package make-mode
+  :ensure t
+  :config
+  (add-hook 'makefile-mode-hook (lambda () (setq-local tab-width 2))))
+
+(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))
+
+(use-package magit
+  :ensure t
+  :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)))))
+
+(use-package go-mode
+  :ensure t
+  :after (company flycheck)
+  :preface
+  (defun fcuny/go-mode-setup ()
+    (add-hook 'go-mode-hook 'flycheck-mode)
+    (setq-default)
+    (setq tab-width 2))
+  :config
+  (add-hook 'go-mode-hook #'fcuny/go-mode-setup))
+
+(use-package go-eldoc
+  :after go-mode
+  :ensure t
+  :hook (go-mode . 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
+  :after (company go-mode)
+  :custom
+  (company-go-show-annotation t)
+  :config
+  (add-hook 'go-mode-hook 'company-mode)
+  (add-to-list 'company-backends 'company-go))
+
+(use-package python
+  :mode (("\\.py$" . python-mode))
+  :ensure t
+  :commands python-mode
+  :custom (python-indent-offset 2))
+
+(use-package anaconda-mode
+  :ensure t
+  :after python
+  :hook ((python-mode . anaconda-mode)
+         (python-mode . eldoc-mode))
+  :custom (anaconda-mode-eldoc-as-single-line t))
+
+(use-package company-anaconda
+  :ensure t
+  :after anaconda-mode
+  :init
+  (add-to-list 'company-backends 'company-anaconda))
+
+(use-package scala-mode :ensure t)
+
+(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))
+
+(use-package dockerfile-mode
+  :ensure t)
+
+(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-prog)