First version of use-package
This commit is contained in:
parent
42ff73fdd7
commit
fca83b0b97
15 changed files with 214 additions and 197 deletions
19
01mac.el
19
01mac.el
|
|
@ -111,11 +111,11 @@
|
|||
;;;;;;;;;;;;;;;;;;;;;; Shell stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
|
||||
|
||||
;; Add pgp binary
|
||||
(add-to-list 'exec-path "/usr/local/bin")
|
||||
|
||||
; Use Shells variables
|
||||
(when (memq window-system '(mac ns))
|
||||
;; Allow to execute path from shell
|
||||
(use-package exec-path-from-shell
|
||||
:if (memq window-system '(mac ns))
|
||||
:ensure t
|
||||
:config (add-to-list 'exec-path "/usr/local/bin")
|
||||
(exec-path-from-shell-initialize))
|
||||
|
||||
|
||||
|
|
@ -145,6 +145,9 @@
|
|||
(scroll-bar-mode -1)
|
||||
|
||||
;;;;;;;;;;;;;;;;; Record frequency of different commands. Review them later
|
||||
(require 'keyfreq)
|
||||
(keyfreq-mode 1)
|
||||
(keyfreq-autosave-mode 1)
|
||||
(use-package keyfreq
|
||||
:defer t
|
||||
:ensure t)
|
||||
|
||||
(keyfreq-mode t)
|
||||
(keyfreq-autosave-mode t)
|
||||
|
|
|
|||
31
02ivy.el
31
02ivy.el
|
|
@ -1,17 +1,20 @@
|
|||
(setq-default ivy-use-virtual-buffers t ;; Display recent files in ivy-switch-buffer
|
||||
(use-package ivy
|
||||
:requires (counsel swiper)
|
||||
:ensure t
|
||||
:config (setq-default ivy-use-virtual-buffers t ;; Display recent files in ivy-switch-buffer
|
||||
ivy-count-format "(%d of %d) " ;; Current candidate count style
|
||||
ivy-display-style 'fancy ;; Formatting style
|
||||
)
|
||||
ivy-display-style 'fancy) ;; Formatting style
|
||||
:bind ("C-c a" . counsel-ag)
|
||||
("C-c a" . counsel-ag)
|
||||
("C-c b" . ivy-switch-buffer)
|
||||
("C-c t" . counsel-find-file)
|
||||
|
||||
(global-set-key (kbd "C-c a") 'counsel-ag)
|
||||
(global-set-key (kbd "C-c b") 'ivy-switch-buffer)
|
||||
(global-set-key (kbd "C-c t") 'counsel-find-file)
|
||||
("C-c C-s" . swiper) ;; Find things by regexp
|
||||
("M-x" . counsel-M-x) ;; M-x on steroids
|
||||
|
||||
(global-set-key (kbd "C-c C-s") 'swiper) ;; Find things by regexp
|
||||
(global-set-key (kbd "M-x") 'counsel-M-x) ;; M-x on steroids
|
||||
|
||||
(global-set-key (kbd "<f1> f") 'counsel-describe-function)
|
||||
(global-set-key (kbd "<f1> v") 'counsel-describe-variable)
|
||||
(global-set-key (kbd "<f1> l") 'counsel-find-library)
|
||||
(global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
|
||||
(global-set-key (kbd "<f2> u") 'counsel-unicode-char)
|
||||
("<f1> f" . counsel-describe-function)
|
||||
("<f1> v" . counsel-describe-variable)
|
||||
("<f1> l" . counsel-find-library)
|
||||
("<f2> i" . counsel-info-lookup-symbol)
|
||||
("<f2> u" . counsel-unicode-char)
|
||||
("C-c b" . ivy-switch-buffer))
|
||||
|
|
|
|||
13
03hydra.el
13
03hydra.el
|
|
@ -1,5 +1,6 @@
|
|||
(require 'hydra)
|
||||
|
||||
(use-package hydra
|
||||
:ensure t
|
||||
:config
|
||||
(defhydra hydra-file-switcher-menu (:color teal :hint nil)
|
||||
"
|
||||
^Ivy^ ^Projectile^ ^Magit^
|
||||
|
|
@ -26,8 +27,6 @@ _t_: Find file _g_: ag in current project _M_: Git blame
|
|||
("C" magit-checkout)
|
||||
("M" magit-blame))
|
||||
|
||||
(global-set-key (kbd "C-c p") 'hydra-file-switcher-menu/body)
|
||||
|
||||
(defhydra hydra-programming-actions (:color teal :hint nil)
|
||||
"
|
||||
Programming actions
|
||||
|
|
@ -53,8 +52,6 @@ _s_: swiper
|
|||
("y" company-yasnippet)
|
||||
("m" company-complete))
|
||||
|
||||
(global-set-key (kbd "C-c c") 'hydra-programming-actions/body)
|
||||
|
||||
(defhydra hydra-window-actions (:color teal :hint nil)
|
||||
"
|
||||
Window actions
|
||||
|
|
@ -81,4 +78,6 @@ _v_: split vertically _<up>_: Move up
|
|||
("p" previous-buffer)
|
||||
("n" next-buffer))
|
||||
|
||||
(global-set-key (kbd "C-c w") 'hydra-window-actions/body)
|
||||
:bind ("C-c p" . hydra-file-switcher-menu/body)
|
||||
("C-c c" . hydra-programming-actions/body)
|
||||
("C-c w" . hydra-window-actions/body))
|
||||
|
|
|
|||
14
04magit.el
14
04magit.el
|
|
@ -1,8 +1,8 @@
|
|||
;;; Magit
|
||||
|
||||
(require 'magit)
|
||||
|
||||
(global-set-key (kbd "<f5> c") 'magit-checkout)
|
||||
(global-set-key (kbd "<f5> b") 'magit-blame)
|
||||
(define-key magit-blame-mode-map (kbd "<f5> b") 'magit-blame-quit)
|
||||
(global-set-key (kbd "<f5> g") 'magit-status)
|
||||
(use-package magit
|
||||
:ensure t
|
||||
:bind ("<f5> c" . magit-checkout)
|
||||
("<f5> b" . magit-blame)
|
||||
("<f5> g" . magit-status)
|
||||
(:map magit-blame-mode-map
|
||||
("<f5> b" . 'magit-blame-quit)))
|
||||
|
|
|
|||
103
05prog-mode.el
103
05prog-mode.el
|
|
@ -2,59 +2,76 @@
|
|||
|
||||
;;; Wrap long lines
|
||||
(toggle-truncate-lines t)
|
||||
|
||||
;;; Show trailing whitespace and remove whitespace on save
|
||||
(require 'whitespace)
|
||||
(add-hook 'prog-mode-hook 'whitespace-mode)
|
||||
(add-hook 'text-mode-hook 'whitespace-mode)
|
||||
(setq whitespace-style '(face trailing empty))
|
||||
|
||||
;;; Cleanup whitespace on save
|
||||
(add-hook 'before-save-hook 'whitespace-cleanup)
|
||||
|
||||
;;; Tabs are spaces and are general at 2. Guide indent with lines
|
||||
(setq-default indent-tabs-mode nil)
|
||||
|
||||
;;; Insert newline on save
|
||||
(setq require-final-newline t)
|
||||
|
||||
;;; Match parenthasis (left-right)
|
||||
(electric-pair-mode 1)
|
||||
|
||||
;;; Rainbow parenthesis
|
||||
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
|
||||
(add-hook 'text-mode-hook 'rainbow-delimiters-mode)
|
||||
|
||||
;;; Show hex colors as colors
|
||||
(add-hook 'prog-mode-hook 'rainbow-mode)
|
||||
(add-hook 'text-mode-hook 'rainbow-mode)
|
||||
(require 'lsp-mode)
|
||||
|
||||
;;; When pasting/writing over a selection, replace it.
|
||||
(delete-selection-mode 1)
|
||||
|
||||
;; Dash
|
||||
(define-key prog-mode-map (kbd "C-s C-d") 'dash-at-point) ;; Jump to dash definition
|
||||
(define-key text-mode-map (kbd "C-s C-d") 'dash-at-point) ;; Jump to dash definition
|
||||
(add-to-list
|
||||
'dash-at-point-mode-alist
|
||||
'(enh-ruby-mode . "ruby,rubygems,rails")) ;; Configure lookup for Ruby mode
|
||||
|
||||
;; When possible, show code documentation
|
||||
(global-eldoc-mode 1)
|
||||
|
||||
;; Revert tags automatically
|
||||
;; Revert tag tables without asking
|
||||
(setq tags-revert-without-query 1)
|
||||
|
||||
;; Use flycheck globally to check syntax and compile languages
|
||||
(global-flycheck-mode 1)
|
||||
;;; Show trailing whitespace and remove whitespace on save
|
||||
(use-package whitespace
|
||||
:commands whitespace-mode
|
||||
:ensure t
|
||||
:hook (((prog-mode text-mode) . whitespace-mode)
|
||||
(before-save . whitespace-cleanup))
|
||||
:init (setq whitespace-style #'(face trailing empty))
|
||||
;;; Insert newline on save
|
||||
(setq require-final-newline t)
|
||||
;;; Tabs are spaces and are general at 2. Guide indent
|
||||
;;; with lines
|
||||
(setq-default indent-tabs-mode nil))
|
||||
|
||||
;; Function for definiting indentation
|
||||
;; Use colorful, matching parens
|
||||
(use-package rainbow-delimiters
|
||||
:commands rainbow-delimiters-mode
|
||||
:ensure t
|
||||
:hook (((prog-mode text-mode) . rainbow-delimiters-mode))
|
||||
:init
|
||||
;;; Match parenthasis (left-right)
|
||||
(electric-pair-mode 1))
|
||||
|
||||
;;; Show hex colors as colors
|
||||
(use-package rainbow-mode
|
||||
:commands rainbow-mode
|
||||
:ensure t
|
||||
:hook ((prog-mode text-mode) . rainbow-mode))
|
||||
|
||||
(use-package lsp-mode
|
||||
:ensure t)
|
||||
|
||||
;; Dash integration
|
||||
(use-package dash-at-point
|
||||
:commands dash-at-point
|
||||
:ensure t
|
||||
:bind (:map prog-mode-map ("C-s C-d" . dash-at-point)
|
||||
:map text-mode-map ("C-s C-d" . dash-at-point))
|
||||
:config
|
||||
(add-to-list 'dash-at-point-mode-alist
|
||||
;; Configure lookup for Ruby mode
|
||||
'(enh-ruby-mode . "ruby,rubygems,rails")))
|
||||
|
||||
|
||||
;; Use flycheck globally to check syntax and compile languages
|
||||
(use-package flycheck
|
||||
:commands flycheck-define-checker
|
||||
:ensure t
|
||||
:defer t
|
||||
:config (global-flycheck-mode t))
|
||||
|
||||
;; By default, use 2 spaces for indentation
|
||||
(setq tab-width 2)
|
||||
(setq tab-stop-list (number-sequence tab-width 200 tab-width))
|
||||
|
||||
;; Ensure indentation in steps:
|
||||
(defun set-indent (step)
|
||||
"Set indentation to X STEPs."
|
||||
(interactive "NNumber of columns for one step: ")
|
||||
(setq tab-width step)
|
||||
(setq tab-stop-list (number-sequence step 200 step)))
|
||||
(setq-local tab-width step)
|
||||
(setq-local tab-stop-list (number-sequence step 200 step)))
|
||||
|
||||
;; Enforce column width by number
|
||||
(global-column-enforce-mode 1)
|
||||
(use-package column-enforce-mode
|
||||
:ensure t
|
||||
:config (global-column-enforce-mode t))
|
||||
|
|
|
|||
|
|
@ -1,7 +1,17 @@
|
|||
;; Company completion framework configuration
|
||||
(require 'company); Add completion
|
||||
(use-package company
|
||||
:commands (company-indent-or-complete-common company-yasnippet)
|
||||
:requires (yasnippet
|
||||
yasnippet-snippets
|
||||
lsp-mode
|
||||
company-lsp
|
||||
lsp-ui)
|
||||
:ensure t
|
||||
:defer t)
|
||||
|
||||
(global-company-mode 1)
|
||||
(yas-global-mode 1)
|
||||
|
||||
;; Company configuration
|
||||
(setq-default
|
||||
company-minimum-prefix-length 2 ; minimum prefix character number for auto complete.
|
||||
company-idle-delay 0.1
|
||||
|
|
@ -20,11 +30,8 @@
|
|||
;; company-async-timeout 2
|
||||
)
|
||||
|
||||
(global-company-mode 1)
|
||||
(yas-global-mode 1)
|
||||
|
||||
;; Absolute defaults for company mode
|
||||
(setq-default company-backends
|
||||
(setq company-backends
|
||||
'((company-files ; files & directory
|
||||
company-keywords ; keywords
|
||||
company-capf
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
(require 'projectile)
|
||||
|
||||
(use-package projectile
|
||||
:ensure t
|
||||
:requires (counsel counsel-projectile)
|
||||
:config
|
||||
(setq-default projectile-completion-system 'ivy ;; Use ivy as completion system
|
||||
projectile-enable-caching t ;; Cache project files
|
||||
projectile-file-exists-local-cache-expire (* 3 60) ;; keep cache for 3 minutes
|
||||
|
|
@ -7,6 +9,6 @@
|
|||
projectile-globally-ignored-directories
|
||||
(append '("node_modules" ".svn" "_build" "tmp" "log") projectile-globally-ignored-directories)
|
||||
;; Add certain folders to ignored
|
||||
)
|
||||
))
|
||||
|
||||
(projectile-mode t)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
(require 'ispell)
|
||||
;; Highlight misspelled words
|
||||
(setq ispell-program-name "aspell")
|
||||
(use-package ispell
|
||||
:ensure t
|
||||
:config (setq ispell-program-name "aspell")
|
||||
(setq ispell-extra-args
|
||||
'("--run-together" "--run-together-limit=5" "--run-together-min=2"))
|
||||
(add-hook 'prog-mode-hook 'flyspell-mode)
|
||||
:hook ((prog-mode text-mode) . flyspell-mode))
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
;; Use smart-mode-line
|
||||
(require 'smart-mode-line)
|
||||
|
||||
(use-package smart-mode-line
|
||||
:ensure t
|
||||
:config
|
||||
(setq-default sml/no-confirm-load-theme t)
|
||||
(setq-default display-time-format "%H:%M") ;; time format to display on mode line
|
||||
(sml/setup)
|
||||
(sml/setup))
|
||||
|
||||
(load "~/.emacs.d/10themes-base16-not-harmonic.el" t)
|
||||
(load-theme 'base16-mexico-light t t)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
(use-package cider
|
||||
:requires clojure-mode
|
||||
:ensure t)
|
||||
|
||||
(add-hook 'clojure-mode-hook 'cider-mode)
|
||||
|
||||
(defun activate-clojure-mode ()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
(require 'alchemist)
|
||||
(use-package alchemist
|
||||
:requires (ruby-end-mode)
|
||||
:ensure t)
|
||||
|
||||
(defun activate-elixir-mode ()
|
||||
"All things Elixir."
|
||||
|
|
@ -9,9 +11,9 @@
|
|||
(add-to-list (make-local-variable 'company-backends)
|
||||
'(alchemist-company company-yasnippet)))
|
||||
|
||||
(add-hook 'elixir-mode-hook 'alchemist-mode)
|
||||
(add-hook 'alchemist-mode-hook 'activate-elixir-mode)
|
||||
(add-hook 'elixir-mode-hook 'ruby-end-mode)
|
||||
(add-hook 'elixir-mode-hook 'alchemist-mode)
|
||||
|
||||
;; Eex Web mode
|
||||
(add-to-list 'auto-mode-alist '("\\.eex\\'" . web-mode))
|
||||
|
|
|
|||
12
20ruby.el
12
20ruby.el
|
|
@ -1,14 +1,13 @@
|
|||
;; Require Enhanced Ruby Mode
|
||||
(require 'enh-ruby-mode)
|
||||
|
||||
(define-key enh-ruby-mode-map (kbd "C-c \\") 'nil)
|
||||
|
||||
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
|
||||
(use-package enh-ruby-mode
|
||||
:requires (rspec-mode ruby-end-mode)
|
||||
:ensure t
|
||||
:config
|
||||
(add-hook 'enh-ruby-mode-hook 'rspec-mode)
|
||||
(add-hook 'enh-ruby-mode-hook 'ruby-end-mode)
|
||||
|
||||
(eval-after-load 'rspec-mode
|
||||
'(rspec-install-snippets))
|
||||
'(rspec-install-snippets)))
|
||||
|
||||
(defun activate-ruby-mode ()
|
||||
"All things for ruby mode."
|
||||
|
|
@ -34,6 +33,7 @@
|
|||
(format "ctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
|
||||
(projectile-project-root) (projectile-project-root))))
|
||||
|
||||
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
|
||||
(add-hook 'enh-ruby-mode-hook 'activate-ruby-mode)
|
||||
|
||||
;;; ERB specific things
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
(use-package racer
|
||||
:ensure t
|
||||
:requires (racer flycheck-rust))
|
||||
|
||||
(defun activate-rust-mode ()
|
||||
"All things for Rust mode"
|
||||
(interactive)
|
||||
|
|
|
|||
7
20web.el
7
20web.el
|
|
@ -1,3 +1,10 @@
|
|||
(use-package web-mode
|
||||
:ensure t)
|
||||
|
||||
(use-package js2-mode
|
||||
:requires (web-mode company-web lsp)
|
||||
:ensure t)
|
||||
|
||||
;; Use js2-mode for javascript editing
|
||||
(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.json\\'" . js2-mode))
|
||||
|
|
|
|||
37
init.el
37
init.el
|
|
@ -14,53 +14,18 @@
|
|||
|
||||
;; list the packages you want
|
||||
(setq package-list '(
|
||||
keyfreq ;; Record how often emacs commands are executed
|
||||
exec-path-from-shell ;; Allow to execute path from shell
|
||||
|
||||
rainbow-delimiters ;; Colorize matching parens
|
||||
rainbow-mode ;; Make color symbols like #FFF colorfull
|
||||
|
||||
magit ;; Git interface for Emacs
|
||||
column-enforce-mode ;; Enforce column length of X
|
||||
window-purpose ;; Make sure that windows are of grouped by
|
||||
;; purpose.
|
||||
|
||||
;;; Helm replacements
|
||||
ivy
|
||||
counsel
|
||||
swiper
|
||||
hydra ;; Create nice text menus without memorizing too much
|
||||
|
||||
;;; Code
|
||||
dash-at-point
|
||||
|
||||
company ;; Code completion framework
|
||||
yasnippet ;; Code snippets framework
|
||||
yasnippet-snippets ;; Actual snippets for various languages
|
||||
flycheck ;; Compilation framework
|
||||
visual-regexp ;; Regexp replacement with preview in
|
||||
;; current buffer.
|
||||
|
||||
;; Language server protocol
|
||||
lsp-mode
|
||||
company-lsp
|
||||
lsp-ui
|
||||
|
||||
;; Project management
|
||||
projectile
|
||||
counsel-projectile
|
||||
|
||||
;; Themes
|
||||
smart-mode-line
|
||||
base16-theme
|
||||
flatui-theme
|
||||
planet-theme
|
||||
|
||||
;; Ruby
|
||||
enh-ruby-mode ;; Enhanced Ruby mode
|
||||
ruby-end ;; Insert end for methods automatically
|
||||
rspec-mode ;; RSpec yasnippets
|
||||
|
||||
;; Elixir
|
||||
alchemist
|
||||
|
||||
|
|
@ -102,6 +67,8 @@
|
|||
(unless (package-installed-p package)
|
||||
(package-install package)))
|
||||
|
||||
(require 'use-package)
|
||||
|
||||
;; Additional files
|
||||
(load "~/.emacs.d/01mac.el")
|
||||
(load "~/.emacs.d/02macros.el")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue