First version of use-package

This commit is contained in:
Maciej 2019-07-16 21:04:35 +03:00
parent 42ff73fdd7
commit fca83b0b97
Signed by: maciej
GPG key ID: 41D62D42D3B0D765
15 changed files with 214 additions and 197 deletions

View file

@ -111,11 +111,11 @@
;;;;;;;;;;;;;;;;;;;;;; Shell stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;; Shell stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
;; Add pgp binary ;; Allow to execute path from shell
(add-to-list 'exec-path "/usr/local/bin") (use-package exec-path-from-shell
:if (memq window-system '(mac ns))
; Use Shells variables :ensure t
(when (memq window-system '(mac ns)) :config (add-to-list 'exec-path "/usr/local/bin")
(exec-path-from-shell-initialize)) (exec-path-from-shell-initialize))
@ -145,6 +145,9 @@
(scroll-bar-mode -1) (scroll-bar-mode -1)
;;;;;;;;;;;;;;;;; Record frequency of different commands. Review them later ;;;;;;;;;;;;;;;;; Record frequency of different commands. Review them later
(require 'keyfreq) (use-package keyfreq
(keyfreq-mode 1) :defer t
(keyfreq-autosave-mode 1) :ensure t)
(keyfreq-mode t)
(keyfreq-autosave-mode t)

View file

@ -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-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) ("C-c C-s" . swiper) ;; Find things by regexp
(global-set-key (kbd "C-c b") 'ivy-switch-buffer) ("M-x" . counsel-M-x) ;; M-x on steroids
(global-set-key (kbd "C-c t") 'counsel-find-file)
(global-set-key (kbd "C-c C-s") 'swiper) ;; Find things by regexp ("<f1> f" . counsel-describe-function)
(global-set-key (kbd "M-x") 'counsel-M-x) ;; M-x on steroids ("<f1> v" . counsel-describe-variable)
("<f1> l" . counsel-find-library)
(global-set-key (kbd "<f1> f") 'counsel-describe-function) ("<f2> i" . counsel-info-lookup-symbol)
(global-set-key (kbd "<f1> v") 'counsel-describe-variable) ("<f2> u" . counsel-unicode-char)
(global-set-key (kbd "<f1> l") 'counsel-find-library) ("C-c b" . ivy-switch-buffer))
(global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
(global-set-key (kbd "<f2> u") 'counsel-unicode-char)

View file

@ -1,5 +1,6 @@
(require 'hydra) (use-package hydra
:ensure t
:config
(defhydra hydra-file-switcher-menu (:color teal :hint nil) (defhydra hydra-file-switcher-menu (:color teal :hint nil)
" "
^Ivy^ ^Projectile^ ^Magit^ ^Ivy^ ^Projectile^ ^Magit^
@ -26,8 +27,6 @@ _t_: Find file _g_: ag in current project _M_: Git blame
("C" magit-checkout) ("C" magit-checkout)
("M" magit-blame)) ("M" magit-blame))
(global-set-key (kbd "C-c p") 'hydra-file-switcher-menu/body)
(defhydra hydra-programming-actions (:color teal :hint nil) (defhydra hydra-programming-actions (:color teal :hint nil)
" "
Programming actions Programming actions
@ -53,8 +52,6 @@ _s_: swiper
("y" company-yasnippet) ("y" company-yasnippet)
("m" company-complete)) ("m" company-complete))
(global-set-key (kbd "C-c c") 'hydra-programming-actions/body)
(defhydra hydra-window-actions (:color teal :hint nil) (defhydra hydra-window-actions (:color teal :hint nil)
" "
Window actions Window actions
@ -81,4 +78,6 @@ _v_: split vertically _<up>_: Move up
("p" previous-buffer) ("p" previous-buffer)
("n" next-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))

View file

@ -1,8 +1,8 @@
;;; Magit ;;; Magit
(use-package magit
(require 'magit) :ensure t
:bind ("<f5> c" . magit-checkout)
(global-set-key (kbd "<f5> c") 'magit-checkout) ("<f5> b" . magit-blame)
(global-set-key (kbd "<f5> b") 'magit-blame) ("<f5> g" . magit-status)
(define-key magit-blame-mode-map (kbd "<f5> b") 'magit-blame-quit) (:map magit-blame-mode-map
(global-set-key (kbd "<f5> g") 'magit-status) ("<f5> b" . 'magit-blame-quit)))

View file

@ -2,59 +2,76 @@
;;; Wrap long lines ;;; Wrap long lines
(toggle-truncate-lines t) (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. ;;; When pasting/writing over a selection, replace it.
(delete-selection-mode 1) (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 ;; When possible, show code documentation
(global-eldoc-mode 1) (global-eldoc-mode 1)
;; Revert tags automatically ;; Revert tag tables without asking
(setq tags-revert-without-query 1) (setq tags-revert-without-query 1)
;; Use flycheck globally to check syntax and compile languages ;;; Show trailing whitespace and remove whitespace on save
(global-flycheck-mode 1) (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) (defun set-indent (step)
"Set indentation to X STEPs." "Set indentation to X STEPs."
(interactive "NNumber of columns for one step: ") (interactive "NNumber of columns for one step: ")
(setq tab-width step) (setq-local tab-width step)
(setq tab-stop-list (number-sequence step 200 step))) (setq-local tab-stop-list (number-sequence step 200 step)))
;; Enforce column width by number (use-package column-enforce-mode
(global-column-enforce-mode 1) :ensure t
:config (global-column-enforce-mode t))

View file

@ -1,7 +1,17 @@
;; Company completion framework configuration ;; 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 (setq-default
company-minimum-prefix-length 2 ; minimum prefix character number for auto complete. company-minimum-prefix-length 2 ; minimum prefix character number for auto complete.
company-idle-delay 0.1 company-idle-delay 0.1
@ -20,11 +30,8 @@
;; company-async-timeout 2 ;; company-async-timeout 2
) )
(global-company-mode 1)
(yas-global-mode 1)
;; Absolute defaults for company mode ;; Absolute defaults for company mode
(setq-default company-backends (setq company-backends
'((company-files ; files & directory '((company-files ; files & directory
company-keywords ; keywords company-keywords ; keywords
company-capf company-capf

View file

@ -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 (setq-default projectile-completion-system 'ivy ;; Use ivy as completion system
projectile-enable-caching t ;; Cache project files projectile-enable-caching t ;; Cache project files
projectile-file-exists-local-cache-expire (* 3 60) ;; keep cache for 3 minutes projectile-file-exists-local-cache-expire (* 3 60) ;; keep cache for 3 minutes
@ -7,6 +9,6 @@
projectile-globally-ignored-directories projectile-globally-ignored-directories
(append '("node_modules" ".svn" "_build" "tmp" "log") projectile-globally-ignored-directories) (append '("node_modules" ".svn" "_build" "tmp" "log") projectile-globally-ignored-directories)
;; Add certain folders to ignored ;; Add certain folders to ignored
) ))
(projectile-mode t) (projectile-mode t)

View file

@ -1,6 +1,7 @@
(require 'ispell)
;; Highlight misspelled words ;; Highlight misspelled words
(setq ispell-program-name "aspell") (use-package ispell
:ensure t
:config (setq ispell-program-name "aspell")
(setq ispell-extra-args (setq ispell-extra-args
'("--run-together" "--run-together-limit=5" "--run-together-min=2")) '("--run-together" "--run-together-limit=5" "--run-together-min=2"))
(add-hook 'prog-mode-hook 'flyspell-mode) :hook ((prog-mode text-mode) . flyspell-mode))

View file

@ -1,9 +1,10 @@
;; Use smart-mode-line ;; 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 sml/no-confirm-load-theme t)
(setq-default display-time-format "%H:%M") ;; time format to display on mode line (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 "~/.emacs.d/10themes-base16-not-harmonic.el" t)
(load-theme 'base16-mexico-light t t) (load-theme 'base16-mexico-light t t)

View file

@ -1,3 +1,7 @@
(use-package cider
:requires clojure-mode
:ensure t)
(add-hook 'clojure-mode-hook 'cider-mode) (add-hook 'clojure-mode-hook 'cider-mode)
(defun activate-clojure-mode () (defun activate-clojure-mode ()

View file

@ -1,4 +1,6 @@
(require 'alchemist) (use-package alchemist
:requires (ruby-end-mode)
:ensure t)
(defun activate-elixir-mode () (defun activate-elixir-mode ()
"All things Elixir." "All things Elixir."
@ -9,9 +11,9 @@
(add-to-list (make-local-variable 'company-backends) (add-to-list (make-local-variable 'company-backends)
'(alchemist-company company-yasnippet))) '(alchemist-company company-yasnippet)))
(add-hook 'elixir-mode-hook 'alchemist-mode)
(add-hook 'alchemist-mode-hook 'activate-elixir-mode) (add-hook 'alchemist-mode-hook 'activate-elixir-mode)
(add-hook 'elixir-mode-hook 'ruby-end-mode) (add-hook 'elixir-mode-hook 'ruby-end-mode)
(add-hook 'elixir-mode-hook 'alchemist-mode)
;; Eex Web mode ;; Eex Web mode
(add-to-list 'auto-mode-alist '("\\.eex\\'" . web-mode)) (add-to-list 'auto-mode-alist '("\\.eex\\'" . web-mode))

View file

@ -1,14 +1,13 @@
;; Require Enhanced Ruby Mode ;; Require Enhanced Ruby Mode
(require 'enh-ruby-mode)
(define-key enh-ruby-mode-map (kbd "C-c \\") 'nil) (use-package enh-ruby-mode
:requires (rspec-mode ruby-end-mode)
(add-hook 'ruby-mode-hook 'enh-ruby-mode) :ensure t
:config
(add-hook 'enh-ruby-mode-hook 'rspec-mode) (add-hook 'enh-ruby-mode-hook 'rspec-mode)
(add-hook 'enh-ruby-mode-hook 'ruby-end-mode) (add-hook 'enh-ruby-mode-hook 'ruby-end-mode)
(eval-after-load 'rspec-mode (eval-after-load 'rspec-mode
'(rspec-install-snippets)) '(rspec-install-snippets)))
(defun activate-ruby-mode () (defun activate-ruby-mode ()
"All things for ruby mode." "All things for ruby mode."
@ -34,6 +33,7 @@
(format "ctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)" (format "ctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
(projectile-project-root) (projectile-project-root)))) (projectile-project-root) (projectile-project-root))))
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
(add-hook 'enh-ruby-mode-hook 'activate-ruby-mode) (add-hook 'enh-ruby-mode-hook 'activate-ruby-mode)
;;; ERB specific things ;;; ERB specific things

View file

@ -1,3 +1,7 @@
(use-package racer
:ensure t
:requires (racer flycheck-rust))
(defun activate-rust-mode () (defun activate-rust-mode ()
"All things for Rust mode" "All things for Rust mode"
(interactive) (interactive)

View file

@ -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 ;; Use js2-mode for javascript editing
(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
(add-to-list 'auto-mode-alist '("\\.json\\'" . js2-mode)) (add-to-list 'auto-mode-alist '("\\.json\\'" . js2-mode))

37
init.el
View file

@ -14,53 +14,18 @@
;; list the packages you want ;; list the packages you want
(setq package-list '( (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 window-purpose ;; Make sure that windows are of grouped by
;; purpose. ;; 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 visual-regexp ;; Regexp replacement with preview in
;; current buffer. ;; current buffer.
;; Language server protocol
lsp-mode
company-lsp
lsp-ui
;; Project management
projectile
counsel-projectile
;; Themes ;; Themes
smart-mode-line smart-mode-line
base16-theme base16-theme
flatui-theme flatui-theme
planet-theme planet-theme
;; Ruby
enh-ruby-mode ;; Enhanced Ruby mode
ruby-end ;; Insert end for methods automatically
rspec-mode ;; RSpec yasnippets
;; Elixir ;; Elixir
alchemist alchemist
@ -102,6 +67,8 @@
(unless (package-installed-p package) (unless (package-installed-p package)
(package-install package))) (package-install package)))
(require 'use-package)
;; Additional files ;; Additional files
(load "~/.emacs.d/01mac.el") (load "~/.emacs.d/01mac.el")
(load "~/.emacs.d/02macros.el") (load "~/.emacs.d/02macros.el")