| @ -0,0 +1,48 @@ | |||
| ;; Configure customization | |||
| (setq custom-file "~/.emacs.d/custom.el") | |||
| (load custom-file) | |||
| ;; Hide startup message | |||
| (setq inhibit-startup-message t) | |||
| ;; Configure package and use-package | |||
| (require 'package) | |||
| (add-to-list 'package-archives | |||
| '("melpa-stable" . "https://stable.melpa.org/packages/") t) | |||
| (package-initialize) | |||
| (when (not package-archive-contents) | |||
| (package-refresh-contents)) | |||
| (unless (package-installed-p 'use-package) | |||
| (package-refresh-contents) | |||
| (package-install 'use-package)) | |||
| (require 'use-package) | |||
| (setq use-package-always-ensure t) | |||
| ;; Disable backup files and auto-saving | |||
| (setq backup-inhibited t) | |||
| (setq auto-save-default nil) | |||
| ;; revert buffers automatically when underlying files are changed externally | |||
| (global-auto-revert-mode t) | |||
| ;; Whitespace | |||
| ;; Newline at end of file | |||
| (setq require-final-newline t) | |||
| (add-hook 'before-save-hook 'whitespace-cleanup) | |||
| (whitespace-mode) | |||
| ;; Subword mode | |||
| (global-subword-mode) | |||
| ;; Enable global line numbers | |||
| (global-linum-mode t) | |||
| ;; Custom functions | |||
| ;; DEV: Load this last | |||
| (load "~/.emacs.d/funcs.el") | |||
| @ -0,0 +1,17 @@ | |||
| (custom-set-variables | |||
| ;; custom-set-variables was added by Custom. | |||
| ;; If you edit it by hand, you could mess it up, so be careful. | |||
| ;; Your init file should contain only one such instance. | |||
| ;; If there is more than one, they won't work right. | |||
| '(custom-safe-themes | |||
| (quote | |||
| ("5f27195e3f4b85ac50c1e2fac080f0dd6535440891c54fcfa62cdcefedf56b1b" default))) | |||
| '(package-selected-packages | |||
| (quote | |||
| (helm-gtags ggtags smartparens helm-ag flymake-python-pyflakes flycheck company-anaconda anaconda-mode osx-clipboard diminish ws-butler company company-mode helm-projectile ivy ag projectile helm use-package)))) | |||
| (custom-set-faces | |||
| ;; custom-set-faces was added by Custom. | |||
| ;; If you edit it by hand, you could mess it up, so be careful. | |||
| ;; Your init file should contain only one such instance. | |||
| ;; If there is more than one, they won't work right. | |||
| ) | |||
| @ -0,0 +1,6 @@ | |||
| (defun enable-flycheck () | |||
| ;; Flycheck | |||
| ;; http://www.flycheck.org/en/latest/index.html | |||
| (use-package flycheck | |||
| :config | |||
| (flycheck-mode))) | |||
| @ -0,0 +1,14 @@ | |||
| ;; Startup optimizations | |||
| (load "~/.emacs.d/startup.el") | |||
| ;; Configure core required setup | |||
| (load "~/.emacs.d/core.el") | |||
| ;; Configure theme | |||
| (load "~/.emacs.d/theme.el") | |||
| ;; Configure global packages | |||
| (load "~/.emacs.d/packages.el") | |||
| ;; Configure layers | |||
| (load "~/.emacs.d/layers.el") | |||
| @ -0,0 +1,2 @@ | |||
| ;; Load layers | |||
| (load "~/.emacs.d/layers/python/init.el") | |||
| @ -0,0 +1,22 @@ | |||
| (add-hook 'python-mode-hook | |||
| (lambda () | |||
| ;; Anaconda mode | |||
| ;; https://github.com/proofit404/anaconda-mode | |||
| (use-package anaconda-mode | |||
| :diminish anaconda-mode | |||
| :config | |||
| (anaconda-mode) | |||
| (anaconda-eldoc-mode)) | |||
| ;; Company anaconda | |||
| ;; https://github.com/proofit404/company-anaconda | |||
| (use-package company-anaconda | |||
| :init | |||
| (eval-after-load "company" | |||
| '(add-to-list 'company-backends 'company-anaconda))) | |||
| (use-package eldoc | |||
| :diminish eldoc-mode | |||
| :config | |||
| (eldoc-mode)) | |||
| (enable-flycheck))) | |||
| @ -0,0 +1,63 @@ | |||
| ;; Global packages | |||
| ;; Configure osx-clipboard | |||
| ;; https://github.com/joddie/osx-clipboard-mode | |||
| (use-package osx-clipboard | |||
| :diminish osx-clipboard-mode | |||
| :config | |||
| (osx-clipboard-mode t)) | |||
| ;; Configure helm | |||
| ;; https://emacs-helm.github.io/helm/ | |||
| (use-package helm | |||
| :diminish helm-mode | |||
| :bind (("M-x" . helm-M-x) | |||
| ("C-x C-f" . helm-find-files)) | |||
| :config | |||
| (use-package helm-ag) | |||
| (helm-mode 1)) | |||
| ;; Configure projectile | |||
| ;; https://www.projectile.mx/en/latest/ | |||
| (use-package projectile | |||
| :diminish projectile-mode | |||
| :config | |||
| (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) | |||
| (projectile-mode +1) | |||
| ;; Use helm-projectile | |||
| (use-package helm-projectile | |||
| :config | |||
| (setq projectile-switch-project-action 'helm-projectile) | |||
| (helm-projectile-on))) | |||
| ;; Configure company-mode | |||
| ;; http://company-mode.github.io/ | |||
| (use-package company | |||
| :diminish company-mode | |||
| :init | |||
| (setq company-idle-delay 0.2 | |||
| company-minimum-prefix-length 2 | |||
| company-require-match nil | |||
| company-dabbrev-ignore-case nil | |||
| company-dabbrev-downcase nil) | |||
| :config | |||
| (global-company-mode)) | |||
| ;; Configure ws-butler | |||
| ;; https://github.com/lewang/ws-butler | |||
| (use-package ws-butler) | |||
| ;; Configure diminish | |||
| ;; https://github.com/myrjola/diminish.el | |||
| (use-package diminish) | |||
| ;; Smartparens | |||
| ;; https://github.com/Fuco1/smartparens | |||
| (use-package smartparens | |||
| :config | |||
| (smartparens-global-mode)) | |||
| @ -0,0 +1,27 @@ | |||
| ;; Startup optimizations | |||
| ;; Set garbage collection threshold | |||
| ;; https://www.reddit.com/r/emacs/comments/3kqt6e/2_easy_little_known_steps_to_speed_up_emacs_start/ | |||
| (setq gc-cons-threshold-original gc-cons-threshold | |||
| gc-cons-percentage-original gc-cons-percentage) | |||
| (setq gc-cons-threshold (* 1024 1024 100) | |||
| gc-cons-percentage 0.6) | |||
| ;; Set file-name-handler-alist | |||
| ;; https://www.reddit.com/r/emacs/comments/3kqt6e/2_easy_little_known_steps_to_speed_up_emacs_start/ | |||
| (setq file-name-handler-alist-original file-name-handler-alist) | |||
| (setq file-name-handler-alist nil) | |||
| ;; Set deferred timer to reset them | |||
| ;; https://emacs.stackexchange.com/a/34367 | |||
| (run-with-idle-timer | |||
| 5 nil | |||
| (lambda () | |||
| (setq gc-cons-threshold gc-cons-threshold-original) | |||
| (setq gc-cons-percentage gc-cons-percentage-original) | |||
| (setq file-name-handler-alist file-name-handler-alist-original) | |||
| (makunbound 'gc-cons-threshold-original) | |||
| (makunbound 'gc-cons-percentage-original) | |||
| (makunbound 'file-name-handler-alist-original) | |||
| (message "gc-cons-threshold and file-name-handler-alist restored"))) | |||
| @ -0,0 +1,3 @@ | |||
| (use-package monokai-theme | |||
| :config | |||
| (load-theme 'monokai t)) | |||