diff --git a/01mac.el b/01mac.el index 74feaee..085572e 100644 --- a/01mac.el +++ b/01mac.el @@ -97,7 +97,7 @@ ; Enable line numbers and show cursors position (global-display-line-numbers-mode t) -(column-number-mode 1) +(column-number-mode t) ;; Turn off sounds (setq ring-bell-function 'ignore) @@ -111,12 +111,12 @@ ;;;;;;;;;;;;;;;;;;;;;; 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)) - (exec-path-from-shell-initialize)) +;; 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)) ;;;;;;;;;;;;;;;;;;;;;; Font configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -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) diff --git a/02ivy.el b/02ivy.el index 754fde0..8a2e6ba 100644 --- a/02ivy.el +++ b/02ivy.el @@ -1,12 +1,17 @@ -(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 - ) +(use-package counsel :ensure t :defer t) +(use-package swiper :ensure t :defer t) + +(use-package ivy + :requires (counsel swiper) + :ensure t + :defer t + :config (setq 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 (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) - (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 diff --git a/03hydra.el b/03hydra.el index 9701b66..7c678ed 100644 --- a/03hydra.el +++ b/03hydra.el @@ -1,7 +1,9 @@ -(require 'hydra) - -(defhydra hydra-file-switcher-menu (:color teal :hint nil) - " +(use-package hydra + :ensure t + :defer t + :config + (defhydra hydra-file-switcher-menu (:color teal :hint nil) + " ^Ivy^ ^Projectile^ ^Magit^ ^^^^^^^^------------------------------------------------------------------------ _a_: ag _s_: Switch project _m_: Git status @@ -11,25 +13,23 @@ _t_: Find file _g_: ag in current project _M_: Git blame ^^ _n_: New project ^^ _i_: ielm console " - ("q" nil "cancel" :color pink) + ("q" nil "cancel" :color pink) - ("a" counsel-ag) - ("b" ivy-switch-buffer) - ("t" counsel-find-file) - ("s" counsel-projectile-switch-project) - ("f" counsel-projectile-find-file) - ("g" counsel-projectile-ag) - ("c" projectile-invalidate-cache) - ("n" projectile-add-known-project) - ("i" ielm) - ("m" magit-status) - ("C" magit-checkout) - ("M" magit-blame)) + ("a" counsel-ag) + ("b" ivy-switch-buffer) + ("t" counsel-find-file) + ("s" counsel-projectile-switch-project) + ("f" counsel-projectile-find-file) + ("g" counsel-projectile-ag) + ("c" projectile-invalidate-cache) + ("n" projectile-add-known-project) + ("i" ielm) + ("m" magit-status) + ("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) - " + (defhydra hydra-programming-actions (:color teal :hint nil) + " Programming actions ^Code Manipulation^ ^Code Completion^ @@ -41,22 +41,20 @@ _a_: align regexp _e_: eval region _s_: swiper " - ("q" nil "cancel" :color pink) + ("q" nil "cancel" :color pink) - ("c" comment-line) - ("r" vr/replace) - ("i" indent-region) - ("a" align-regexp) - ("e" eval-region) - ("s" swiper) + ("c" comment-line) + ("r" vr/replace) + ("i" indent-region) + ("a" align-regexp) + ("e" eval-region) + ("s" swiper) - ("y" company-yasnippet) - ("m" company-complete)) + ("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) - " + (defhydra hydra-window-actions (:color teal :hint nil) + " Window actions ^Windows^ ^Move around^ @@ -68,17 +66,19 @@ _v_: split vertically __: Move up ^^ _p_: Previous buffer ^^ _n_: Next buffer " - ("q" nil "cancel" :color pink) + ("q" nil "cancel" :color pink) - ("k" kill-buffer-and-window) - ("h" split-window-below) - ("v" split-window-right) + ("k" kill-buffer-and-window) + ("h" split-window-below) + ("v" split-window-right) - ("" windmove-left) - ("" windmove-right) - ("" windmove-up) - ("" windmove-down) - ("p" previous-buffer) - ("n" next-buffer)) + ("" windmove-left) + ("" windmove-right) + ("" windmove-up) + ("" windmove-down) + ("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)) diff --git a/04magit.el b/04magit.el index 33c8fb2..0c1c7ac 100644 --- a/04magit.el +++ b/04magit.el @@ -1,8 +1,9 @@ ;;; Magit - -(require 'magit) - -(global-set-key (kbd " c") 'magit-checkout) -(global-set-key (kbd " b") 'magit-blame) -(define-key magit-blame-mode-map (kbd " b") 'magit-blame-quit) -(global-set-key (kbd " g") 'magit-status) +(use-package magit + :ensure t + :defer t + :bind (" c" . magit-checkout) + (" b" . magit-blame) + (" g" . magit-status) + (:map magit-blame-mode-map + (" b" . 'magit-blame-quit))) diff --git a/05prog-mode.el b/05prog-mode.el index 4e81f64..dd6beca 100644 --- a/05prog-mode.el +++ b/05prog-mode.el @@ -3,58 +3,68 @@ ;;; 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 +(delete-selection-mode t) ;; When possible, show code documentation -(global-eldoc-mode 1) +(global-eldoc-mode t) -;; Revert tags automatically -(setq tags-revert-without-query 1) +;; Revert tag tables without asking +(setq tags-revert-without-query t) -;; 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 + :defer t + :hook (((prog-mode text-mode) . whitespace-mode) + (before-save . whitespace-cleanup)) + :config + (setq whitespace-style #'(face trailing empty newline) + ;;; Insert newline on save + require-final-newline t + indent-tabs-mode nil)) -;; Function for definiting indentation +;; Use colorful, matching parens +(use-package rainbow-delimiters + :commands rainbow-delimiters-mode + :ensure t + :defer t + :hook (((prog-mode text-mode) . rainbow-delimiters-mode)) + :init + ;;; Match parenthasis (left-right) + (electric-pair-mode t)) + +;;; Show hex (#aaa) colors as colors +(use-package rainbow-mode + :commands rainbow-mode + :ensure t + :hook ((prog-mode text-mode) . rainbow-mode)) + +;; Dash integration +(use-package dash-at-point + :commands dash-at-point + :ensure t + :defer 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"))) + +;; 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 + :defer t + :config (global-column-enforce-mode t)) diff --git a/06company-yasnippet.el b/06company-yasnippet.el index aa4b05a..8632a93 100644 --- a/06company-yasnippet.el +++ b/06company-yasnippet.el @@ -1,7 +1,35 @@ ;; Company completion framework configuration -(require 'company); Add completion +(use-package yasnippet + :ensure t + :defer t) + +(use-package yasnippet-snippets + :ensure t + :defer t) + +(use-package lsp-mode + :ensure t + :defer t) + +(use-package lsp-ui) + +(use-package company + :commands (company-indent-or-complete-common company-yasnippet) + :requires (yasnippet + yasnippet-snippets + lsp-mode + lsp-ui) + :ensure t + :defer t) + +(use-package company-lsp + :ensure t + :requires company + :defer t) + +(global-company-mode t) +(yas-global-mode t) -;; Company configuration (setq-default company-minimum-prefix-length 2 ; minimum prefix character number for auto complete. company-idle-delay 0.1 @@ -20,17 +48,14 @@ ;; company-async-timeout 2 ) -(global-company-mode 1) -(yas-global-mode 1) - ;; Absolute defaults for company mode -(setq-default company-backends - '((company-files ; files & directory - company-keywords ; keywords - company-capf - ) - (company-dabbrev company-abbrev) - )) +(setq company-backends + '((company-files ; files & directory + company-keywords ; keywords + company-capf + ) + (company-dabbrev company-abbrev) + )) (setq-default company-lsp-cache-candidates 1 ;; Cache LSP results diff --git a/06flycheck.el b/06flycheck.el new file mode 100644 index 0000000..10a1815 --- /dev/null +++ b/06flycheck.el @@ -0,0 +1,6 @@ +;; 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)) diff --git a/07projectile.el b/07projectile.el index b78a8fb..b8edec5 100644 --- a/07projectile.el +++ b/07projectile.el @@ -1,12 +1,14 @@ -(require 'projectile) - -(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 - projectile-sort-order (quote recently-active) ;; Order by recently active projects - projectile-globally-ignored-directories - (append '("node_modules" ".svn" "_build" "tmp" "log") projectile-globally-ignored-directories) - ;; Add certain folders to ignored - ) +(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 + projectile-sort-order (quote recently-active) ;; Order by recently active projects + projectile-globally-ignored-directories + (append '("node_modules" ".svn" "_build" "tmp" "log") projectile-globally-ignored-directories) + ;; Add certain folders to ignored + )) (projectile-mode t) diff --git a/08purpose.el b/08purpose.el deleted file mode 100644 index b87a4f5..0000000 --- a/08purpose.el +++ /dev/null @@ -1,48 +0,0 @@ -;;; windows.el -- summary -;;; Commentary: -;;; Windows management things, mostly with purpose -;;; Code: -(require 'window-purpose) -(purpose-mode t) - -;; Set everything to use code windows -(add-to-list 'purpose-user-mode-purposes '(fundamental-mode . code)) -(add-to-list 'purpose-user-mode-purposes '(prog-mode . code)) -(add-to-list 'purpose-user-mode-purposes '(diff-mode . code)) -(add-to-list 'purpose-user-mode-purposes '(yaml-mode . code)) -(add-to-list 'purpose-user-mode-purposes '(magit-diff-mode . code)) -(add-to-list 'purpose-user-regexp-purposes - '("COMMIT_EDITMSG\\(<.*>\\)?$" . code)) -(add-to-list 'purpose-user-regexp-purposes - '("git-rebase-todo\\(<.*>\\)?$" . code)) - - -;; Tools -(add-to-list 'purpose-user-mode-purposes '(dired-mode . tools)) -(add-to-list 'purpose-user-mode-purposes '(process-list . tools)) -(add-to-list 'purpose-user-mode-purposes '(magit-mode . tools)) -(add-to-list 'purpose-user-mode-purposes '(help-mode . tools)) -(add-to-list 'purpose-user-mode-purposes '(term-mode . tools)) -(add-to-list 'purpose-user-mode-purposes '(compilation-mode . tools)) -(add-to-list 'purpose-user-mode-purposes '(etags-select-mode . tools)) -(add-to-list 'purpose-user-mode-purposes '(reb-mode . tools)) ;; Regexp builder -(add-to-list 'purpose-user-regexp-purposes - '("Process List\\(<.*>\\)?$" . tools)) - -(setq purpose-use-default-configuration nil) -(purpose-compile-user-configuration) - -;; Functions for changing layout -(defun purpose-big-screen () - "Load coding_with_magit." - (interactive) - (purpose-load-window-layout "coding_with_magit")) - -(defun purpose-small-screen () - "Load small_screen." - (interactive) - (purpose-load-window-layout "small_screen")) -;;; windows.el ends here - -(global-set-key (kbd "") 'purpose-big-screen) -(global-set-key (kbd "") 'purpose-small-screen) diff --git a/09ispell.el b/09ispell.el index b800c21..ce6b742 100644 --- a/09ispell.el +++ b/09ispell.el @@ -1,6 +1,7 @@ -(require 'ispell) ;; Highlight misspelled words -(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) +(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")) + :hook ((prog-mode text-mode) . flyspell-mode)) diff --git a/init.el b/init.el index 1443fad..ce6c464 100644 --- a/init.el +++ b/init.el @@ -14,76 +14,21 @@ ;; 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 + use-package 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 - - ;; Erlang - erlang - - ;; Rust - racer - rust-mode - flycheck-rust - - ;; Crystal - crystal-mode - ;; Web web-mode company-web js2-mode - ;; Clojure - clojure-mode - cider - ;; Infrastructure files dockerfile-mode terraform-mode @@ -102,30 +47,34 @@ (unless (package-installed-p package) (package-install package))) +(require 'use-package) + ;; Additional files -(load "~/.emacs.d/01mac.el") -(load "~/.emacs.d/02macros.el") -(load "~/.emacs.d/02ivy.el") -(load "~/.emacs.d/03hydra.el") -(load "~/.emacs.d/04magit.el") -(load "~/.emacs.d/05prog-mode.el") -(load "~/.emacs.d/06company-yasnippet.el") -(load "~/.emacs.d/07projectile.el") -(load "~/.emacs.d/08purpose.el") -(load "~/.emacs.d/08ctags.el") -(load "~/.emacs.d/09ispell.el") -(load "~/.emacs.d/10themes.el") +(load "$HOME/.emacs.d/01mac.el" 'f 't) +(load "$HOME/.emacs.d/02macros.el" 'f 't) +(load "$HOME/.emacs.d/02ivy.el" 'f 't) +(load "$HOME/.emacs.d/03hydra.el" 'f 't) +(load "$HOME/.emacs.d/04magit.el" 'f 't) +(load "$HOME/.emacs.d/05prog-mode.el" 'f 't) +(load "$HOME/.emacs.d/06company-yasnippet.el" 'f 't) +(load "$HOME/.emacs.d/06flycheck.el" 'f 't) +(load "$HOME/.emacs.d/07projectile.el" 'f 't) +(load "$HOME/.emacs.d/08ctags.el" 'f 't) +(load "$HOME/.emacs.d/09ispell.el" 'f 't) + +;; Themes +(load "$HOME/.emacs.d/themes/themes.el" 'f 't) ;; Actual supported languages -(load "~/.emacs.d/20elisp.el") -(load "~/.emacs.d/20ruby.el") -(load "~/.emacs.d/20web.el") -(load "~/.emacs.d/20elixir.el") -(load "~/.emacs.d/20erlang.el") -(load "~/.emacs.d/20sh.el") -(load "~/.emacs.d/20rust.el") -(load "~/.emacs.d/20clang.el") -(load "~/.emacs.d/20clojure.el") +(load "$HOME/.emacs.d/languages/elisp.el" 'f 't) +(load "$HOME/.emacs.d/languages/ruby.el" 'f 't) +(load "$HOME/.emacs.d/languages/web.el" 'f 't) +(load "$HOME/.emacs.d/languages/elixir.el" 'f 't) +(load "$HOME/.emacs.d/languages/erlang.el" 'f 't) +(load "$HOME/.emacs.d/languages/sh.el" 'f 't) +(load "$HOME/.emacs.d/languages/rust.el" 'f 't) +(load "$HOME/.emacs.d/languages/clang.el" 'f 't) +(load "$HOME/.emacs.d/languages/clojure.el" 'f 't) (custom-set-variables ;; custom-set-variables was added by Custom. @@ -137,7 +86,7 @@ ("85e6bb2425cbfeed2f2b367246ad11a62fb0f6d525c157038a0d0eaaabc1bfee" "3380a2766cf0590d50d6366c5a91e976bdc3c413df963a0ab9952314b4577299" "cea3ec09c821b7eaf235882e6555c3ffa2fd23de92459751e18f26ad035d2142" "8ffdc8c66ceeaf7921f4510a70d808f01b303e6b4d177c947b442e80d4228678" "b0c5c6cc59d530d3f6fbcfa67801993669ce062dda1435014f74cafac7d86246" "ad16a1bf1fd86bfbedae4b32c269b19f8d20d416bd52a87cd50e355bf13c2f23" "d9dab332207600e49400d798ed05f38372ec32132b3f7d2ba697e59088021555" "bc4c89a7b91cfbd3e28b2a8e9e6750079a985237b960384f158515d32c7f0490" "99c86852decaeb0c6f51ce8bd46e4906a4f28ab4c5b201bdc3fdf85b24f88518" "a85e40c7d2df4a5e993742929dfd903899b66a667547f740872797198778d7b5" default))) '(package-selected-packages (quote - (planet-theme cider clojure-mode erlang rspec-mode crystal-mode dap-mode lsp-ui company-lsp lsp-mode nginx-mode gitignore-mode js2-mode keyfreq company-web visual-regexp enh-ruby-mode counsel-projectile counsel ivy flycheck-rust flycheck hydra solarized-theme company-ansible alchemist column-enforce-mode yaml-mode ansible dockerfile-mode ruby-end dash-at-point base16-theme exec-path-from-shell)))) + (planet-theme cider clojure-mode erlang rspec-mode dap-mode lsp-ui company-lsp lsp-mode nginx-mode gitignore-mode js2-mode keyfreq company-web visual-regexp enh-ruby-mode counsel-projectile counsel ivy flycheck-rust flycheck hydra solarized-theme company-ansible alchemist column-enforce-mode yaml-mode ansible dockerfile-mode ruby-end dash-at-point base16-theme exec-path-from-shell)))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. diff --git a/20clang.el b/languages/clang.el similarity index 100% rename from 20clang.el rename to languages/clang.el diff --git a/20clojure.el b/languages/clojure.el similarity index 63% rename from 20clojure.el rename to languages/clojure.el index d4a46a5..0d003b4 100644 --- a/20clojure.el +++ b/languages/clojure.el @@ -1,4 +1,12 @@ -(add-hook 'clojure-mode-hook 'cider-mode) +(use-package clojure-mode + :defer t + :ensure t) + +(use-package cider + :requires clojure-mode + :commands cider-jack-in + :defer t + :ensure t) (defun activate-clojure-mode () "Goodies for clojure files." @@ -7,3 +15,4 @@ ) (add-hook 'clojure-mode-hook 'activate-clojure-mode) +(add-hook 'clojure-mode-hook 'cider-mode) diff --git a/20elisp.el b/languages/elisp.el similarity index 100% rename from 20elisp.el rename to languages/elisp.el diff --git a/20elixir.el b/languages/elixir.el similarity index 68% rename from 20elixir.el rename to languages/elixir.el index bdf71b8..181347b 100644 --- a/20elixir.el +++ b/languages/elixir.el @@ -1,4 +1,7 @@ -(require 'alchemist) +(use-package alchemist + :requires (ruby-end-mode) + :ensure t + :defer t) (defun activate-elixir-mode () "All things Elixir." @@ -9,12 +12,6 @@ (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)) -(setq web-mode-extra-auto-pairs - '(("eex" . (("<%" "%>"))) - )) diff --git a/20erlang.el b/languages/erlang.el similarity index 100% rename from 20erlang.el rename to languages/erlang.el diff --git a/20ruby.el b/languages/ruby.el similarity index 81% rename from 20ruby.el rename to languages/ruby.el index d31da66..eaa833f 100644 --- a/20ruby.el +++ b/languages/ruby.el @@ -1,14 +1,12 @@ ;; Require Enhanced Ruby Mode -(require 'enh-ruby-mode) -(define-key enh-ruby-mode-map (kbd "C-c \\") 'nil) +(use-package rspec-mode :ensure t :defer t) +(use-package ruby-end :ensure t :defer t) -(add-hook 'ruby-mode-hook 'enh-ruby-mode) -(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)) +(use-package enh-ruby-mode + :requires (rspec-mode ruby-end) + :ensure t + :defer t) (defun activate-ruby-mode () "All things for ruby mode." @@ -34,11 +32,9 @@ (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 'rspec-mode) +(add-hook 'enh-ruby-mode-hook 'ruby-end-mode) +(eval-after-load 'rspec-mode + '(rspec-install-snippets)) (add-hook 'enh-ruby-mode-hook 'activate-ruby-mode) - -;;; ERB specific things -(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)) -(setq web-mode-extra-auto-pairs - '(("erb" . (("<%" "%>") - ("beg" "end"))) - )) diff --git a/20rust.el b/languages/rust.el similarity index 85% rename from 20rust.el rename to languages/rust.el index b627b73..d70599f 100644 --- a/20rust.el +++ b/languages/rust.el @@ -1,3 +1,7 @@ +(use-package racer + :ensure t + :requires (racer flycheck-rust)) + (defun activate-rust-mode () "All things for Rust mode" (interactive) diff --git a/20sh.el b/languages/sh.el similarity index 100% rename from 20sh.el rename to languages/sh.el diff --git a/20web.el b/languages/web.el similarity index 55% rename from 20web.el rename to languages/web.el index 7ef202f..f15732f 100644 --- a/20web.el +++ b/languages/web.el @@ -1,7 +1,26 @@ +(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)) +;;; ERB editing +(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)) + +;; Eex Web mode +(add-to-list 'auto-mode-alist '("\\.eex\\'" . web-mode)) + + +(setq web-mode-extra-auto-pairs + '(("eex" . (("<%" "%>"))) + ("erb" . (("<%" "%>") + ("beg" "end"))))) + ;; Language Server Protocol is used for completion (add-hook 'js2-mode-hook 'lsp) diff --git a/layouts/coding_with_magit.window-layout b/layouts/coding_with_magit.window-layout deleted file mode 100644 index 9a37a33..0000000 --- a/layouts/coding_with_magit.window-layout +++ /dev/null @@ -1 +0,0 @@ -(nil (0 0 284 74) (t (0 0 145 74) (:purpose code :purpose-dedicated t :width 0.5141843971631206 :height 0.6133333333333333 :edges (0.0 0.0 0.5141843971631206 0.6133333333333333)) (:purpose tools :purpose-dedicated t :width 0.5141843971631206 :height 0.37333333333333335 :edges (0.0 0.6133333333333333 0.5141843971631206 0.9866666666666667))) (:purpose code :purpose-dedicated t :width 0.4929078014184397 :height 0.9866666666666667 :edges (0.5141843971631206 0.0 1.0070921985815602 0.9866666666666667))) \ No newline at end of file diff --git a/layouts/small_screen.window-layout b/layouts/small_screen.window-layout deleted file mode 100644 index 11a91d2..0000000 --- a/layouts/small_screen.window-layout +++ /dev/null @@ -1 +0,0 @@ -(t (0 0 256 70) (nil (0 0 256 57) (:purpose code :purpose-dedicated t :width 0.5039370078740157 :height 0.8028169014084507 :edges (0.0 0.0 0.5039370078740157 0.8028169014084507)) (:purpose code :purpose-dedicated t :width 0.5039370078740157 :height 0.8028169014084507 :edges (0.5039370078740157 0.0 1.0078740157480315 0.8028169014084507))) (:purpose tools :purpose-dedicated t :width 1.0078740157480315 :height 0.18309859154929578 :edges (0.0 0.8028169014084507 1.0078740157480315 0.9859154929577465))) diff --git a/refcard.pdf b/refcard.pdf deleted file mode 100644 index cb152cf..0000000 Binary files a/refcard.pdf and /dev/null differ diff --git a/10themes-base16-not-harmonic.el b/themes/themes-base16-not-harmonic.el similarity index 100% rename from 10themes-base16-not-harmonic.el rename to themes/themes-base16-not-harmonic.el diff --git a/10themes-tronesque.el b/themes/themes-tronesque.el similarity index 100% rename from 10themes-tronesque.el rename to themes/themes-tronesque.el diff --git a/10themes.el b/themes/themes.el similarity index 74% rename from 10themes.el rename to themes/themes.el index a716b6b..597c7aa 100644 --- a/10themes.el +++ b/themes/themes.el @@ -1,11 +1,12 @@ ;; 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)) -(setq-default sml/no-confirm-load-theme t) -(setq-default display-time-format "%H:%M") ;; time format to display on mode line -(sml/setup) - -(load "~/.emacs.d/10themes-base16-not-harmonic.el" t) +(load "$HOME/.emacs.d/themes/themes-base16-not-harmonic.el" 'f 't) (load-theme 'base16-mexico-light t t) (load-theme 'manoj-dark t t) (load-theme 'base16-one-light t t) @@ -22,7 +23,7 @@ (sml/apply-theme 'respectful) (enable-theme 'base16-mocha)) (progn - (enable-theme 'manoj-dark))) + (enable-theme 'planet))) ;; Set font face (set-font-size 16)