Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| ;;; package --- my .emacs config | |
| ;;; Commentary: | |
| ;;; Code: | |
| (require 'package) | |
| (add-to-list 'package-archives | |
| '("melpa" . "https://melpa.org/packages/")) | |
| (when (< emacs-major-version 24) | |
| ;; For important compatibility libraries like cl-lib | |
| (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))) | |
| (package-initialize) | |
| ;;customize.el has its own file | |
| (setq custom-file "~/.emacs.d/.emacs-custom.el") | |
| (load custom-file) | |
| (require 'server) | |
| (unless (server-running-p) | |
| (server-start)) | |
| (require 'tramp) | |
| ;;Editor Config | |
| (fset 'yes-or-no-p 'y-or-n-p) | |
| (windmove-default-keybindings) | |
| (global-unset-key [mouse-2]) | |
| (setq-default cursor-type 'bar) | |
| (blink-cursor-mode) | |
| (column-number-mode 1) | |
| (recentf-mode 1) | |
| (setq recentf-max-menu-items 50) | |
| (global-hl-line-mode 1) | |
| (set-face-attribute 'hl-line nil | |
| :foreground nil | |
| :background "grey3") | |
| (defface mode-line-vc | |
| '((t :background "firebrick" :foreground "white")) | |
| "Face used for git identification parts of the mode line." | |
| :group 'mode-line-faces | |
| :group 'basic-faces) | |
| (defvar mode-line-vc | |
| '(:propertize | |
| (:eval (when (stringp vc-mode) (concat vc-mode " "))) | |
| face mode-line-vc)) | |
| (put 'mode-line-vc 'risky-local-variable t) | |
| (global-auto-revert-mode 1) | |
| (setq-default mode-line-format | |
| '("%e" mode-line-front-space mode-line-vc mode-line-mule-info mode-line-client mode-line-modified mode-line-remote mode-line-frame-identification mode-line-buffer-identification " " mode-line-position | |
| " " mode-line-modes mode-line-misc-info mode-line-end-spaces)) | |
| (defun frame-title-format () | |
| "Return frame title with current project name, where applicable." | |
| (concat | |
| "emacs - " | |
| (when (and (bound-and-true-p projectile-mode) | |
| (projectile-project-p)) | |
| (format "[%s] - " (projectile-project-name))) | |
| (let ((file buffer-file-name)) | |
| (if file | |
| (abbreviate-file-name file) | |
| "%b")))) | |
| (setq-default frame-title-format '((:eval (frame-title-format)))) | |
| (add-to-list 'default-frame-alist '(fullscreen . maximized)) | |
| (when (eq window-system 'w32) | |
| (setq find-program "gfind")) | |
| ;;override a couple defaults | |
| (global-set-key (kbd "C-s") 'isearch-forward-regexp) | |
| (global-set-key (kbd "C-r") 'isearch-backward-regexp) | |
| (global-set-key (kbd "C-M-s") 'isearch-forward) | |
| (global-set-key (kbd "C-M-r") 'isearch-backward) | |
| (global-set-key [remap dabbrev-expand] 'hippie-expand) | |
| (global-set-key (kbd "S-C-<left>") 'shrink-window-horizontally) | |
| (global-set-key (kbd "S-C-<right>") 'enlarge-window-horizontally) | |
| (global-set-key (kbd "S-C-<down>") 'shrink-window) | |
| (global-set-key (kbd "S-C-<up>") 'enlarge-window) | |
| ;;iwatchstuffbehindemacs | |
| (defun toggle-transparency () | |
| "Toggle background transparency." | |
| (interactive) | |
| (if (equal (car (frame-parameter (selected-frame) 'alpha)) 100) | |
| (set-frame-parameter (selected-frame) 'alpha '(80 70)) | |
| (set-frame-parameter (selected-frame) 'alpha '(100 100)))) | |
| (defun kill-dired-buffers () | |
| (interactive) | |
| (mapc (lambda (buffer) | |
| (when (eq 'dired-mode (buffer-local-value 'major-mode buffer)) | |
| (kill-buffer buffer))) | |
| (buffer-list))) | |
| (defun kill-other-buffers () | |
| "Kill all other buffers." | |
| (interactive) | |
| (mapc 'kill-buffer (delq (current-buffer) (buffer-list)))) | |
| ;;File encoding | |
| (prefer-coding-system 'utf-8) | |
| (set-default-coding-systems 'utf-8) | |
| (set-terminal-coding-system 'utf-8) | |
| (set-keyboard-coding-system 'utf-8) | |
| ;;saving properties | |
| (add-hook 'focus-out-hook (lambda () (interactive)(save-some-buffers t))) | |
| (add-hook 'delete-frame-functions (lambda () (interactive)(save-some-buffers t))) | |
| (defun back-to-indentation-or-beginning () (interactive) | |
| (if (= (point) (progn (back-to-indentation) (point))) | |
| (beginning-of-line))) | |
| (global-set-key (kbd "C-a") 'back-to-indentation-or-beginning) | |
| ;;;;;;;;;;;;;;;;;; | |
| ;;Package Config;; | |
| ;;;;;;;;;;;;;;;;;; | |
| ;;General | |
| (use-package golden-ratio-scroll-screen | |
| :ensure t | |
| :bind(([remap scroll-down-command] . golden-ratio-scroll-screen-down) | |
| ([remap scroll-up-command] . golden-ratio-scroll-screen-up))) | |
| (use-package undo-tree | |
| :ensure t | |
| :diminish undo-tree-mode | |
| :demand | |
| :config | |
| (global-undo-tree-mode) | |
| :bind(("C-z" . undo-tree-undo) | |
| ("C-M-z" . undo-tree-redo))) | |
| (use-package helm | |
| :ensure t | |
| :diminish helm-mode | |
| :demand | |
| :init | |
| (setq helm-mode-fuzzy-match t) | |
| (setq helm-completion-in-region-fuzzy-match t) | |
| (setq helm-echo-input-in-header-line t) | |
| :bind(("C-x f" . helm-recentf) | |
| ("C-x b" . helm-mini) | |
| ("C-c s" . helm-occur) | |
| ("C-x C-b" . helm-buffers-list) | |
| ("C-x C-f" . helm-find-files) | |
| ("C-x C-r" . helm-resume)) | |
| :config | |
| (helm-mode 1)) | |
| (use-package helm-swoop | |
| :ensure t | |
| :bind | |
| (("M-i" . helm-swoop) | |
| ("C-c M-i" . helm-multi-swoop) | |
| ("M-I" . helm-swoop-back-to-last-point) | |
| ("C-x M-i" . helm-multi-swoop-all))) | |
| (use-package wgrep | |
| :ensure t) | |
| (use-package smex | |
| :ensure t) | |
| (use-package helm-smex | |
| :ensure t | |
| :after helm | |
| :after smex | |
| :bind(([remap execute-extended-command] . helm-smex) | |
| ("M-X" . helm-smex-major-mode-commands))) | |
| (use-package helm-projectile | |
| :ensure t | |
| :after projectile | |
| :after helm | |
| :config | |
| (helm-projectile-on)) | |
| (use-package helm-flx | |
| :ensure t | |
| :after helm | |
| :config | |
| (helm-flx-mode +1)) | |
| (use-package helm-fuzzier | |
| :ensure t | |
| :config | |
| (helm-fuzzier-mode +1)) | |
| (use-package helm-ag | |
| :ensure t) | |
| (use-package projectile | |
| :ensure t | |
| :demand | |
| :init | |
| (setq projectile-switch-project-action 'projectile-vc) | |
| (setq projectile-mode-line | |
| '(:eval | |
| (format " Pr[%s]" | |
| (projectile-project-name)))) | |
| :config | |
| (projectile-mode)) | |
| (use-package ibuffer | |
| :bind( "C-x C-b" . ibuffer)) | |
| (use-package expand-region | |
| :ensure t | |
| :bind("C-=" . er/expand-region)) | |
| (use-package diminish | |
| :ensure t | |
| :config | |
| (diminish 'auto-revert-mode)) | |
| (use-package company | |
| :ensure t | |
| :diminish company-mode | |
| :demand | |
| :init | |
| (setq company-idle-delay 0.3) | |
| (setq company-begin-commands '(self-insert-command)) | |
| (setq company-minimum-prefix-length 1) | |
| (setq company-tooltip-align-annotations t) | |
| (setq company-tooltip-limit 20) | |
| (setq company-dabbrev-downcase nil) | |
| :config | |
| (global-company-mode)) | |
| (use-package hl-line+ | |
| :ensure t | |
| :demand t) | |
| (use-package rainbow-delimiters | |
| :ensure t | |
| :init | |
| (add-hook 'prog-mode-hook 'rainbow-delimiters-mode-enable)) | |
| (use-package magit | |
| :ensure t | |
| :init | |
| (setq magit-display-buffer-function 'magit-display-buffer-fullframe-status-v1 ) | |
| :bind("C-x g" . magit-status) | |
| :config | |
| ;; Protect against accident pushes to upstream | |
| (defadvice magit-push-current-to-upstream | |
| (around my-protect-accidental-magit-push-current-to-upstream) | |
| "Protect against accidental push to upstream. | |
| Causes `magit-git-push' to ask the user for confirmation first." | |
| (let ((my-magit-ask-before-push t)) | |
| ad-do-it)) | |
| (defadvice magit-git-push (around my-protect-accidental-magit-git-push) | |
| "Maybe ask the user for confirmation before pushing. | |
| Advice to `magit-push-current-to-upstream' triggers this query." | |
| (if (bound-and-true-p my-magit-ask-before-push) | |
| ;; Arglist is (BRANCH TARGET ARGS) | |
| (if (yes-or-no-p (format "Push %s branch upstream to %s? " | |
| (ad-get-arg 0) (ad-get-arg 1))) | |
| ad-do-it | |
| (error "Push to upstream aborted by user")) | |
| ad-do-it)) | |
| (ad-activate 'magit-push-current-to-upstream) | |
| (ad-activate 'magit-git-push)) | |
| (use-package git-gutter-fringe | |
| :ensure t | |
| :defer 1 | |
| :diminish git-gutter-mode | |
| :config | |
| (global-git-gutter-mode t)) | |
| ;(use-package diff-hl | |
| ; :ensure t | |
| ; :config | |
| ; (global-diff-hl-mode)) | |
| (use-package ace-window | |
| :ensure t | |
| :bind("M-`" . ace-window) | |
| :init | |
| (setq aw-dispatch-always t)) | |
| (use-package multiple-cursors | |
| :ensure t | |
| :bind(("C-c /" . mc/edit-lines) | |
| ("C->" . mc/mark-next-like-this) | |
| ("C-<" . mc/mark-previous-like-this) | |
| ("C-c C-<" . mc/mark-all-like-this))) | |
| (use-package switch-buffer-functions | |
| :ensure t | |
| :init | |
| (add-hook 'switch-buffer-functions (lambda (prev cur) (interactive)(save-some-buffers t)))) | |
| (use-package flycheck | |
| :ensure t | |
| :defer 1 | |
| :diminish (flycheck-mode . "Fly") | |
| :init | |
| (add-hook 'after-init-hook #'global-flycheck-mode)) | |
| (use-package neotree | |
| :ensure t) | |
| (use-package adaptive-wrap | |
| :ensure t) | |
| (use-package yasnippet | |
| :ensure t | |
| :diminish yas-minor-mode | |
| :config | |
| (yas-reload-all) | |
| (add-hook 'prog-mode-hook #'yas-minor-mode)) | |
| (use-package duplicate-thing | |
| :ensure t | |
| :bind(("C-c C-d" . duplicate-thing))) | |
| (use-package org | |
| :ensure t | |
| :init | |
| (setq org-src-fontify-natively t) | |
| (setq org-src-tab-acts-natively t)) | |
| (use-package eslint-fix | |
| :ensure t) | |
| ;;JAVASCRIPT | |
| (use-package js2-mode | |
| :ensure t | |
| :mode (("\\.js\\'" . js2-mode)) | |
| :init | |
| (setq js2-include-node-externs t) | |
| (setq js2-include-browser-externs t) | |
| (setq js2-mode-show-parse-errors nil) | |
| (setq js2-mode-show-strict-warnings nil)) | |
| (use-package rjsx-mode | |
| :ensure t | |
| :mode(("/\\(containers\\)/[^/]*\\.js" . rjsx-mode) | |
| ("/\\(components\\)/[^/]*\\.js" . rjsx-mode) | |
| ("\\.jsx\\'" . rjsx-mode))) | |
| (defadvice js-jsx-indent-line (after js-jsx-indent-line-after-hack activate) | |
| "Workaround sgml-mode and follow airbnb component style." | |
| (save-match-data | |
| (save-excursion | |
| (goto-char (line-beginning-position)) | |
| (when (looking-at "^\\( +\\)\/?> *$") | |
| (let ((empty-spaces (match-string 1))) | |
| (while (search-forward empty-spaces (line-end-position) t) | |
| (replace-match (make-string (- (length empty-spaces) sgml-basic-offset) | |
| 32)))))))) | |
| (use-package js2-refactor | |
| :ensure t | |
| :config | |
| (js2r-add-keybindings-with-prefix "C-c C-m") | |
| (add-hook 'js2-mode-hook #'js2-refactor-mode)) | |
| (use-package tern | |
| :ensure t | |
| :diminish ( tern-mode . "Tr") | |
| :init | |
| (add-hook 'js2-mode-hook 'tern-mode) | |
| (add-hook 'rjsx-mode-hook 'tern-mode)) | |
| (use-package add-node-modules-path | |
| :ensure t | |
| :init | |
| (add-hook 'js2-mode-hook #'add-node-modules-path)) | |
| (use-package tide | |
| :ensure t | |
| :mode(("\\.ts\\'" . typescript-mode)) | |
| :config | |
| (defun setup-tide-mode () | |
| (interactive) | |
| (tide-setup) | |
| (flycheck-mode +1) | |
| (setq flycheck-check-syntax-automatically '(save mode-enabled)) | |
| (eldoc-mode +1) | |
| (tide-hl-identifier-mode +1) | |
| (company-mode +1)) | |
| ;; formats the buffer before saving | |
| (add-hook 'before-save-hook 'tide-format-before-save) | |
| (add-hook 'typescript-mode-hook #'setup-tide-mode)) | |
| (use-package mocha | |
| :ensure t | |
| :init | |
| (setq mocha-command ".\\node_modules\\.bin\\mocha.cmd") | |
| (setq mocha-which-node "") | |
| (setq mocha-reporter "spec")) | |
| (use-package company-tern | |
| :ensure t | |
| :config | |
| (add-hook 'js2-mode-hook (lambda () | |
| (add-to-list 'company-backends 'company-tern)))) | |
| (use-package indium | |
| :ensure t | |
| :diminish (indium-interaction-mode . "In" ) | |
| :init | |
| (add-hook 'js2-mode-hook #'indium-interaction-mode)) | |
| (use-package simple-httpd | |
| :ensure t) | |
| (use-package impatient-mode | |
| :ensure t) | |
| ;;JSON | |
| (use-package json-mode | |
| :ensure t | |
| :mode (("\\.json\\'" . json-mode) | |
| ("\\manifest.webapp\\'" . json-mode ) | |
| ("\\.tern-project\\'" . json-mode))) | |
| ;;WEB | |
| (use-package web-mode | |
| :ensure t | |
| :mode (("\\.phtml\\'" . web-mode) | |
| ("\\.tpl\\.php\\'" . web-mode) | |
| ("\\.blade\\.php\\'" . web-mode) | |
| ("\\.jsp\\'" . web-mode) | |
| ("\\.as[cp]x\\'" . web-mode) | |
| ("\\.erb\\'" . web-mode) | |
| ("\\.html?\\'" . web-mode) | |
| ("\\.ejs\\'" . web-mode) | |
| ("\\.php\\'" . web-mode) | |
| ("\\.mustache\\'" . web-mode) | |
| ("/\\(views\\|html\\|theme\\|templates\\)/.*\\.php\\'" . web-mode)) | |
| :init | |
| (setq web-mode-markup-indent-offset 2) | |
| (setq web-mode-attr-indent-offset 2) | |
| (setq web-mode-attr-value-indent-offset 2) | |
| (setq web-mode-code-indent-offset 2) | |
| (setq web-mode-css-indent-offset 2) | |
| (setq web-mode-code-indent-offset 2) | |
| (setq web-mode-enable-auto-closing t) | |
| (setq web-mode-enable-auto-pairing t) | |
| (setq web-mode-enable-comment-keywords t) | |
| (setq web-mode-enable-current-element-highlight t)) | |
| (use-package company-web | |
| :ensure t | |
| :config | |
| (add-hook 'web-mode-hook (lambda () | |
| (add-to-list 'company-backends 'company-web-html) | |
| (add-to-list 'company-backends 'company-web-jade) | |
| (add-to-list 'company-backends 'company-web-slim)))) | |
| (use-package emmet-mode | |
| :ensure t | |
| :config | |
| (add-hook 'web-mode-hook 'emmet-mode) | |
| (add-hook 'sgml-mode-hook 'emmet-mode) | |
| (add-hook 'html-mode-hook 'emmet-mode) | |
| (add-hook 'css-mode-hook 'emmet-mode)) | |
| (use-package rainbow-mode | |
| :pin gnu | |
| :init | |
| (add-hook 'css-mode-hook 'rainbow-mode)) | |
| ;; PYTHON | |
| (use-package python-mode | |
| :ensure t) | |
| (use-package company-jedi | |
| :ensure t | |
| :config | |
| (add-hook 'python-mode-hook (add-to-list 'company-backends 'company-jedi))) | |
| ;;Markdown | |
| (use-package markdown-mode | |
| :ensure t | |
| :commands (markdown-mode gfm-mode) | |
| :mode (("README\\.md\\'" . gfm-mode) | |
| ("\\.md\\'" . markdown-mode) | |
| ("\\.markdown\\'" . markdown-mode)) | |
| :init | |
| (setq markdown-command "multimarkdown") | |
| (setq markdown-header-scaling t)) | |
| ;;Scheme | |
| (use-package geiser | |
| :ensure t) | |
| ;; Lua | |
| (use-package lua-mode | |
| :ensure t | |
| :mode ("\\.lua\\'" . lua-mode)) | |
| (use-package company-lua | |
| :ensure t | |
| :config | |
| (add-hook 'lua-mode-hook (lambda () | |
| (add-to-list 'company-backends 'company-lua)))) | |
| ;;Fountain | |
| (use-package fountain-mode | |
| :ensure t) | |
| (provide 'init) | |
| ;;; init.el ends here |