2018-09-14 03:40:53 +00:00
|
|
|
; __ __ __ __ ______ ______ __
|
|
|
|
; /\ \ /\ "-.\ \ /\ \ /\__ _\ /\ ___\ /\ \
|
|
|
|
; \ \ \ \ \ \-. \ \ \ \ \/_/\ \/ \ \ __\ \ \ \____
|
|
|
|
; \ \_\ \ \_\\"\_\ \ \_\ \ \_\ \ \_____\ \ \_____\
|
|
|
|
; \/_/ \/_/ \/_/ \/_/ \/_/ \/_____/ \/_____/
|
2019-11-24 10:00:48 +00:00
|
|
|
|
2018-09-14 03:40:53 +00:00
|
|
|
|
|
|
|
;;; Bad stuff
|
|
|
|
(setq package-check-signature nil)
|
|
|
|
|
|
|
|
;;; Making the interface not terrible ;;;
|
|
|
|
(menu-bar-mode -1)
|
2019-11-26 23:48:10 +00:00
|
|
|
(tool-bar-mode -1)
|
|
|
|
(scroll-bar-mode -1)
|
|
|
|
(fringe-mode 0)
|
2019-02-19 23:23:30 +00:00
|
|
|
|
2018-09-14 03:40:53 +00:00
|
|
|
;;; Sane defaults ;;;
|
2019-11-24 10:00:48 +00:00
|
|
|
(when (version<= "26.0.50" emacs-version)
|
|
|
|
(setq display-line-numbers-type 'relative)
|
|
|
|
(global-display-line-numbers-mode))
|
2019-11-22 08:01:12 +00:00
|
|
|
(setq server-use-tcp t)
|
2019-11-24 10:00:48 +00:00
|
|
|
(add-to-list 'exec-path "/home/gigavinyl/.nix-profile/bin/")
|
2019-11-22 08:01:12 +00:00
|
|
|
(global-set-key (kbd "<mouse-2>") 'clipboard-yank)
|
|
|
|
(setq x-select-enable-primary t)
|
|
|
|
(setq x-select-enable-clipboard t)
|
2018-09-14 03:40:53 +00:00
|
|
|
(setq-default word-wrap t) ; wrap lines
|
2019-11-24 10:00:48 +00:00
|
|
|
(setq delete-old-versions -1) ; delete excess backup versions silently
|
|
|
|
(setq version-control t) ; use version control
|
|
|
|
(setq vc-make-backup-files t) ; make backups file even when in version controlled dir
|
|
|
|
(setq backup-directory-alist `(("." . "~/.emacs.d/backups"))) ; which directory to put backups file
|
|
|
|
(setq vc-follow-symlinks t) ; don't ask for confirmation when opening symlinked file
|
|
|
|
(setq auto-save-file-name-transforms '((".*" "~/.emacs.d/auto-save-list/" t))) ;transform backups file name
|
|
|
|
(setq inhibit-startup-screen t) ; inhibit useless and old-school startup screen
|
|
|
|
(setq ring-bell-function 'ignore) ; silent bell when you make a mistake
|
|
|
|
(setq coding-system-for-read 'utf-8) ; use utf-8 by default
|
|
|
|
(setq coding-system-for-write 'utf-8)
|
2018-09-14 03:40:53 +00:00
|
|
|
(set-language-environment "UTF-8")
|
2019-11-24 10:00:48 +00:00
|
|
|
(setq sentence-end-double-space nil) ; sentence SHOULD end with only a point.
|
|
|
|
(setq default-fill-column 80) ; toggle wrapping text at the 80th character
|
2018-09-14 03:40:53 +00:00
|
|
|
(setq-default indent-tabs-mode nil) ; tabs to spaces
|
2019-11-22 08:01:12 +00:00
|
|
|
(setq tab-width 2)
|
2019-02-19 23:23:30 +00:00
|
|
|
(global-set-key "\C-m" 'newline-and-indent)
|
2018-09-14 03:40:53 +00:00
|
|
|
;; Scratch Buffer
|
2019-02-19 23:23:30 +00:00
|
|
|
;; (setq initial-scratch-message
|
|
|
|
;; (format
|
|
|
|
;; ";; %s\n\n"
|
|
|
|
;; (replace-regexp-in-string
|
|
|
|
;; "\n" "\n;; " ; comment each line
|
|
|
|
;; (replace-regexp-in-string
|
|
|
|
;; "\n$" "" ; remove trailing linebreak
|
|
|
|
;; (shell-command-to-string "toilet -d ~/labs/figlet-fonts -f Sub-Zero Im\ Gay")))))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
;;; Setup Recent Files
|
2019-02-19 23:23:30 +00:00
|
|
|
(recentf-mode 1)
|
|
|
|
(setq recentf-max-menu-items 25)
|
|
|
|
(global-set-key "\C-x\ \C-r" 'recentf-open-files)
|
2018-09-14 03:40:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
;;; Use package ;;;
|
|
|
|
(setq package-enable-at-startup nil) ; tells emacs not to load any packages before starting up
|
|
|
|
;; the following lines tell emacs where on the internet to look up
|
|
|
|
;; for new packages.
|
|
|
|
(setq package-archives '(("org" . "http://orgmode.org/elpa/")
|
|
|
|
("gnu" . "http://elpa.gnu.org/packages/")
|
|
|
|
("melpa" . "https://melpa.org/packages/")
|
|
|
|
("marmalade" . "http://marmalade-repo.org/packages/")))
|
|
|
|
(package-initialize) ; guess what this one does ?
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; Bootstrap `use-package'
|
2018-09-14 03:40:53 +00:00
|
|
|
(unless (package-installed-p 'use-package) ; unless it is already installed
|
|
|
|
(package-refresh-contents) ; updage packages archive
|
|
|
|
(package-install 'use-package)) ; and install the most recent version of use-package
|
|
|
|
|
|
|
|
(require 'use-package) ; guess what this one does too ?
|
|
|
|
(setq use-package-always-ensure t) ; autodownload plugins
|
2019-02-19 23:23:30 +00:00
|
|
|
(use-package auto-package-update
|
|
|
|
:config
|
|
|
|
(setq auto-package-update-delete-old-versions t)
|
|
|
|
(setq auto-package-update-hide-results t)
|
2019-11-24 10:00:48 +00:00
|
|
|
(auto-package-update-maybe))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
|
|
|
;;; Evil!!
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; General
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package general
|
|
|
|
:config
|
|
|
|
(setq general-default-prefix "<SPC>")
|
|
|
|
(general-evil-setup))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; Undo-tree
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package undo-tree)
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;goto-chg
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package goto-chg)
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; evil-mode
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package evil
|
|
|
|
:init
|
|
|
|
(setq evil-want-C-i-jump nil)
|
|
|
|
:config
|
|
|
|
(evil-mode 1)
|
|
|
|
(setq evil-mode-line-format '(before . mode-line-front-space))
|
|
|
|
(setq-default display-line-numbers 'visual
|
2019-11-24 10:00:48 +00:00
|
|
|
display-line-numbers-widen t
|
|
|
|
;; this is the default
|
|
|
|
display-line-numbers-current-absolute t)
|
2018-09-14 03:40:53 +00:00
|
|
|
(defun noct:relative ()
|
|
|
|
(setq-local display-line-numbers 'visual))
|
|
|
|
(defun noct:absolute ()
|
|
|
|
(setq-local display-line-numbers t))
|
|
|
|
(add-hook 'evil-insert-state-entry-hook #'noct:absolute)
|
|
|
|
(add-hook 'evil-insert-state-exit-hook #'noct:relative)
|
|
|
|
(custom-set-faces '(line-number ((t :foreground "brightblack"))))
|
|
|
|
(custom-set-faces '(line-number-current-line ((t :weight bold
|
|
|
|
:foreground "white")))))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; evil-escape
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package evil-escape
|
|
|
|
:config
|
|
|
|
(setq-default evil-escape-key-sequence "jk")
|
|
|
|
(evil-escape-mode))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; evil- commentary
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package evil-commentary
|
|
|
|
:config
|
|
|
|
(evil-commentary-mode))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
|
2018-09-14 03:40:53 +00:00
|
|
|
(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.
|
|
|
|
'(line-number ((t :foreground "brightblack")))
|
|
|
|
'(line-number-current-line ((t :weight bold :foreground "white"))))
|
|
|
|
|
|
|
|
;;; Editing Packages
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;parinfer
|
|
|
|
(use-package parinfer
|
|
|
|
:general
|
|
|
|
(general-nmap
|
|
|
|
"," 'parinfer-toggle-mode)
|
|
|
|
:config
|
|
|
|
(setq parinfer-extensions '(defaults pretty-parens smart-yank smart-tab paredit evil))
|
|
|
|
:init
|
|
|
|
(progn
|
|
|
|
(setq parinfer-extensions
|
|
|
|
'(defaults ; should be included.
|
|
|
|
pretty-parens ; different paren styles for different modes.
|
|
|
|
evil ; If you use Evil.
|
|
|
|
;; lispy ; If you use Lispy. With this extension, you should install Lispy and do not enable lispy-mode directly.
|
|
|
|
smart-tab ; C-b & C-f jump positions and smart shift with tab & S-tab.
|
|
|
|
smart-yank)) ; Yank behavior depend on mode.
|
|
|
|
(add-hook 'clojure-mode-hook #'parinfer-mode)
|
|
|
|
(add-hook 'emacs-lisp-mode-hook #'parinfer-mode)
|
|
|
|
(add-hook 'common-lisp-mode-hook #'parinfer-mode)
|
|
|
|
(add-hook 'scheme-mode-hook #'parinfer-mode)
|
|
|
|
(add-hook 'lisp-mode-hook #'parinfer-mode)))
|
|
|
|
|
|
|
|
|
|
|
|
;yasnippet
|
|
|
|
(use-package yasnippet
|
|
|
|
:config
|
|
|
|
(yas-global-mode 1))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; focus-mode
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package focus
|
|
|
|
:commands focus-mode)
|
|
|
|
|
|
|
|
(use-package writeroom-mode
|
|
|
|
:commands writeroom-mode)
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; flyspell
|
2018-09-14 03:40:53 +00:00
|
|
|
|
|
|
|
(use-package flyspell
|
|
|
|
:after (:any tex org)
|
|
|
|
:config
|
|
|
|
(setq ispell-program-name "aspell")
|
|
|
|
;; Please note ispell-extra-args contains ACTUAL parameters passed to aspell
|
2019-11-24 10:00:48 +00:00
|
|
|
(setq ispell-extra-args '("--sug-mode=ultra" "--lang=en_US")))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; company-mode
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package company
|
|
|
|
:config
|
|
|
|
(add-hook 'after-init-hook 'global-company-mode))
|
|
|
|
(use-package pos-tip
|
|
|
|
:after compmay)
|
|
|
|
(use-package company-quickhelp
|
|
|
|
:after company
|
|
|
|
:config (company-quickhelp-mode))
|
|
|
|
|
2019-11-22 08:01:12 +00:00
|
|
|
;flycheck
|
|
|
|
(use-package flycheck
|
|
|
|
:config
|
|
|
|
(global-flycheck-mode))
|
|
|
|
|
|
|
|
(use-package flycheck-pos-tip
|
|
|
|
:after flycheck
|
|
|
|
:config
|
|
|
|
(with-eval-after-load 'flycheck
|
|
|
|
(flycheck-pos-tip-mode)))
|
|
|
|
; lsp
|
2019-05-25 20:44:44 +00:00
|
|
|
(use-package lsp-mode
|
|
|
|
:hook (XXX-mode . lsp)
|
|
|
|
:commands lsp)
|
|
|
|
|
|
|
|
;; optionally
|
|
|
|
(use-package lsp-ui
|
2019-11-24 10:00:48 +00:00
|
|
|
:commands lsp-ui-mode
|
|
|
|
:config
|
|
|
|
(add-hook 'lsp-mode-hook 'lsp-ui-mode))
|
2019-05-25 20:44:44 +00:00
|
|
|
(use-package company-lsp :commands company-lsp)
|
2019-11-24 10:00:48 +00:00
|
|
|
;(use-package helm-lsp :commands helm-lsp-workspace-symbol)
|
|
|
|
;(use-package lsp-treemacs :commands lsp-treemacs-errors-list)
|
2018-09-14 03:40:53 +00:00
|
|
|
|
|
|
|
;;; Evil!!
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; General
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package general
|
|
|
|
:config
|
|
|
|
(setq general-default-prefix "<SPC>")
|
|
|
|
(general-evil-setup))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; Undo-tree
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package undo-tree)
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;goto-chg
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package goto-chg)
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; evil-mode
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package evil
|
|
|
|
:init
|
|
|
|
(setq evil-want-C-i-jump nil)
|
|
|
|
:config
|
|
|
|
(evil-mode 1)
|
|
|
|
(setq evil-mode-line-format '(before . mode-line-front-space))
|
|
|
|
(setq-default display-line-numbers 'visual
|
2019-11-24 10:00:48 +00:00
|
|
|
display-line-numbers-widen t
|
|
|
|
;; this is the default
|
|
|
|
display-line-numbers-current-absolute t)
|
2018-09-14 03:40:53 +00:00
|
|
|
(defun noct:relative ()
|
|
|
|
(setq-local display-line-numbers 'visual))
|
|
|
|
(defun noct:absolute ()
|
|
|
|
(setq-local display-line-numbers t))
|
|
|
|
(add-hook 'evil-insert-state-entry-hook #'noct:absolute)
|
|
|
|
(add-hook 'evil-insert-state-exit-hook #'noct:relative)
|
|
|
|
(custom-set-faces '(line-number ((t :foreground "brightblack"))))
|
|
|
|
(custom-set-faces '(line-number-current-line ((t :weight bold
|
|
|
|
:foreground "white")))))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; evil-escape
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package evil-escape
|
|
|
|
:config
|
|
|
|
(setq-default evil-escape-key-sequence "jk")
|
|
|
|
(evil-escape-mode))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; evil- commentary
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package evil-commentary
|
|
|
|
:config
|
|
|
|
(evil-commentary-mode))
|
|
|
|
|
|
|
|
|
|
|
|
;;; Interface
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;theme
|
2018-09-14 03:40:53 +00:00
|
|
|
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
|
2019-11-24 10:00:48 +00:00
|
|
|
(load-theme 'xresources t)
|
2018-09-14 03:40:53 +00:00
|
|
|
|
2019-05-17 05:04:40 +00:00
|
|
|
(set-default-font "scientifica 12")
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; fix those pesky highligts
|
2018-09-14 03:40:53 +00:00
|
|
|
(set-face-attribute 'region nil :background "brightblack")
|
|
|
|
|
2019-11-22 08:01:12 +00:00
|
|
|
;all-the-icons
|
|
|
|
(use-package all-the-icons)
|
|
|
|
|
|
|
|
;neo-tree
|
|
|
|
(use-package neotree
|
|
|
|
:config
|
|
|
|
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))
|
|
|
|
(global-set-key [f8] 'neotree-toggle))
|
|
|
|
;which-key
|
|
|
|
(use-package which-key
|
|
|
|
:config
|
|
|
|
(which-key-mode)
|
|
|
|
(setq which-key-allow-evil-operators t))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;rainbow-delimiters
|
2019-11-22 08:01:12 +00:00
|
|
|
(use-package rainbow-delimiters
|
|
|
|
:config
|
|
|
|
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; rich-minority
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package rich-minority
|
|
|
|
:config
|
|
|
|
(setq rm-whitelist "*")
|
|
|
|
(rich-minority-mode 1))
|
|
|
|
|
2019-11-26 23:48:10 +00:00
|
|
|
;; ; smart-mode-line
|
|
|
|
;; (use-package smart-mode-line
|
|
|
|
;; :config
|
|
|
|
;; (setq sml/theme 'respectful)
|
|
|
|
;; (setq sml/no-confirm-load-theme t)
|
|
|
|
;; (sml/setup))
|
|
|
|
|
|
|
|
;; doom-modeline
|
|
|
|
(use-package doom-modeline
|
|
|
|
:hook (after-init . doom-modeline-mode))
|
|
|
|
(set-face-attribute 'mode-line nil
|
|
|
|
:box '(:line-width 3))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
|
|
|
;; ivy
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;flx
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package flx)
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;ivy
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package ivy
|
|
|
|
:config
|
|
|
|
(setq ivy-initial-inputs-alist nil)
|
2019-11-24 10:00:48 +00:00
|
|
|
;; (setq ivy-re-builders-alist
|
|
|
|
;; '((ivy-switch-buffer . ivy--regex-plus
|
|
|
|
;; (t . ivy--regex-fuzzy))))
|
2018-09-14 03:40:53 +00:00
|
|
|
(ivy-mode 1))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;swiper
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package swiper
|
|
|
|
:after ivy)
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;counsel
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package counsel
|
|
|
|
:after ivy
|
|
|
|
:general
|
|
|
|
(general-nmap
|
|
|
|
":" 'counsel-M-x))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; Parens
|
2018-09-14 03:40:53 +00:00
|
|
|
(show-paren-mode 1)
|
2019-11-24 10:00:48 +00:00
|
|
|
(set-face-background 'show-paren-match "brightblack"
|
|
|
|
(set-face-attribute 'show-paren-match nil :weight 'bold))
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package smartparens
|
|
|
|
:config
|
|
|
|
(require 'smartparens-config)
|
|
|
|
(smartparens-global-mode 1))
|
|
|
|
|
|
|
|
|
|
|
|
;;; Org Mode
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; org
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package org
|
|
|
|
:mode ("\\.org\\'" . org-mode)
|
2019-11-22 08:01:12 +00:00
|
|
|
:interpreter ("org" . org-mode)
|
|
|
|
:config
|
2019-11-24 10:00:48 +00:00
|
|
|
(custom-set-variables)
|
|
|
|
'(org-directory "~/.org")
|
|
|
|
'(org-agenda-files (list org-directory)))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; evil-org
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package evil-org
|
|
|
|
:after org
|
|
|
|
:config
|
|
|
|
(add-hook 'org-mode-hook 'evil-org-mode)
|
|
|
|
(add-hook 'evil-org-mode-hook
|
|
|
|
(lambda ()
|
|
|
|
(evil-org-set-key-theme '(textobjects insert navigation additional shift todo heading))))
|
|
|
|
(require 'evil-org-agenda)
|
2019-11-22 08:01:12 +00:00
|
|
|
(evil-org-agenda-set-keys))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;org-journal ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
|
2019-11-22 08:01:12 +00:00
|
|
|
(use-package org-journal
|
|
|
|
:custom
|
|
|
|
(org-journal-dir "~/org/journal/")
|
|
|
|
(org-journal-date-format "%A, %d %B %Y"))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
|
|
|
;;; LaTeX
|
|
|
|
|
|
|
|
(use-package tex
|
|
|
|
:ensure auctex
|
|
|
|
:mode ("\\.tex\\'" . LaTeX-mode)
|
|
|
|
:interpreter ("tex" . LaTeX-mode)
|
|
|
|
:config
|
|
|
|
(setq TeX-save-query nil)
|
|
|
|
(add-hook 'LaTeX-mode-hook 'turn-on-auto-fill)
|
|
|
|
(setq TeX-source-correlate-mode t)
|
2019-02-19 23:23:30 +00:00
|
|
|
(setq LaTeX-item-indent 1)
|
2018-09-14 03:40:53 +00:00
|
|
|
(setq TeX-auto-save t)
|
|
|
|
(setq TeX-parse-self t)
|
|
|
|
(setq-default TeX-master nil)
|
|
|
|
(add-hook 'LaTeX-mode-hook 'visual-line-mode)
|
|
|
|
(add-hook 'LaTeX-mode-hook 'flyspell-mode)
|
|
|
|
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
|
|
|
|
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
|
2019-02-19 23:23:30 +00:00
|
|
|
(add-hook 'LaTeX-mode-hook 'TeX-interactive-mode)
|
|
|
|
(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)
|
2019-05-25 20:44:44 +00:00
|
|
|
(setq TeX-view-program-selection '((output-pdf "Zathura")))
|
2019-05-17 23:39:30 +00:00
|
|
|
(eval-after-load "tex"
|
|
|
|
'(progn
|
|
|
|
(add-to-list
|
|
|
|
'TeX-engine-alist
|
|
|
|
'(default-shell-escape "Default with shell escape"
|
|
|
|
"pdftex -shell-escape"
|
|
|
|
"pdflatex -shell-escape"
|
2019-11-24 10:00:48 +00:00
|
|
|
ConTeXt-engine))))
|
|
|
|
;; (setq-default TeX-engine 'default-shell-escape)
|
|
|
|
|
2019-02-19 23:23:30 +00:00
|
|
|
(setq reftex-plug-into-AUCTeX t))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
|
|
|
(use-package company-auctex
|
2019-11-24 10:00:48 +00:00
|
|
|
:after tex
|
|
|
|
:config
|
|
|
|
(company-auctex-init))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
2019-02-19 23:23:30 +00:00
|
|
|
(use-package company-math
|
2019-11-24 10:00:48 +00:00
|
|
|
:after tex
|
|
|
|
:config
|
|
|
|
(defun my-latex-mode-setup ()
|
|
|
|
(setq-local company-backends
|
|
|
|
(append '((company-math-symbols-latex company-math-symbols-unicode company-latex-commands company-auctex))
|
|
|
|
company-backends)))
|
|
|
|
(add-hook 'TeX-mode-hook 'my-latex-mode-setup))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
2019-05-25 20:44:44 +00:00
|
|
|
;;; projects
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; projectile ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
|
2019-11-22 08:01:12 +00:00
|
|
|
(use-package projectile
|
|
|
|
:general
|
|
|
|
(general-nmap
|
2019-11-24 10:00:48 +00:00
|
|
|
"p" '(:keymap projectile-command-map :wk "projectile prefix")))
|
2018-09-14 03:40:53 +00:00
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
; magit ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
|
2018-09-14 03:40:53 +00:00
|
|
|
(use-package magit)
|
2019-02-19 23:23:30 +00:00
|
|
|
|
2019-11-26 23:48:10 +00:00
|
|
|
(use-package git-gutter
|
|
|
|
:config
|
|
|
|
(global-git-gutter-mode +1))
|
|
|
|
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
(use-package evil-magit)
|
|
|
|
|
2019-02-19 23:23:30 +00:00
|
|
|
|
|
|
|
;;; Misc
|
2019-11-22 08:01:12 +00:00
|
|
|
|
2019-02-19 23:23:30 +00:00
|
|
|
(use-package w3m)
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
(use-package circe
|
|
|
|
:config
|
|
|
|
(setq auth-sources '("~/.authinfo.gpg"))
|
|
|
|
|
|
|
|
(defun my-fetch-password (&rest params)
|
|
|
|
(require 'auth-source)
|
|
|
|
(let ((match (car (apply 'auth-source-search params))))
|
|
|
|
(if match
|
|
|
|
(let ((secret (plist-get match :secret)))
|
|
|
|
(if (functionp secret)
|
|
|
|
(funcall secret)
|
|
|
|
secret))
|
|
|
|
(error "Password not found for %S" params))))
|
|
|
|
|
|
|
|
(defun my-nickserv-password (server)
|
|
|
|
(my-fetch-password :login "forcer" :machine "irc.freenode.net"))
|
|
|
|
|
|
|
|
(setq circe-network-options
|
|
|
|
'(("Freenode"
|
|
|
|
:nick "gigavinyl"
|
|
|
|
:channels ("#emacs" "#emacs-circe" "#clojure" "#netbsd")
|
|
|
|
:nickserv-password my-nickserv-password))))
|
|
|
|
|
|
|
|
(use-package exec-path-from-shell
|
|
|
|
:config
|
|
|
|
(when (memq window-system '(mac ns x))
|
|
|
|
(exec-path-from-shell-initialize)))
|
|
|
|
|
2019-05-17 05:04:40 +00:00
|
|
|
(use-package rainbow-delimiters
|
|
|
|
:config
|
|
|
|
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode))
|
|
|
|
|
2019-11-22 08:01:12 +00:00
|
|
|
(use-package editorconfig
|
|
|
|
:config
|
|
|
|
(editorconfig-mode 1))
|
|
|
|
|
|
|
|
(use-package aggressive-indent
|
|
|
|
:config
|
|
|
|
(global-aggressive-indent-mode 1))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;(add-to-list 'load-path "~/.emacs.d/scel/el") ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
|
|
|
|
;(require 'sclang) ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
|
2019-11-22 08:01:12 +00:00
|
|
|
|
|
|
|
;;; Rust
|
|
|
|
(use-package rust-mode
|
|
|
|
:mode ("\\.rs\\'" . rust-mode)
|
|
|
|
:interpreter ("rust" . rust-mode))
|
2019-05-17 05:04:40 +00:00
|
|
|
|
2019-11-22 08:01:12 +00:00
|
|
|
(use-package flycheck-rust
|
|
|
|
:after rust-mode)
|
|
|
|
|
|
|
|
(use-package racer
|
|
|
|
:after rust-mode
|
|
|
|
:config
|
|
|
|
(add-hook 'rust-mode-hook #'racer-mode)
|
|
|
|
(add-hook 'racer-mode-hook #'eldoc-mode)
|
|
|
|
(add-hook 'racer-mode-hook #'company-mode)
|
|
|
|
(define-key rust-mode-map (kbd "TAB") #'company-indent-or-complete-common)
|
|
|
|
(setq company-tooltip-align-annotations t))
|
|
|
|
|
|
|
|
(use-package toml-mode
|
|
|
|
:mode ("\\.toml\\'" . toml-mode)
|
|
|
|
:interpreter ("rust" . toml-mode))
|
2019-05-17 05:04:40 +00:00
|
|
|
|
2019-05-25 20:44:44 +00:00
|
|
|
;;; Haskell
|
|
|
|
(use-package haskell-mode
|
|
|
|
:mode ("\\.hs\\'" . haskell-mode)
|
|
|
|
:interpreter ("haskell" . haskell-mode))
|
|
|
|
|
|
|
|
(use-package lsp-haskell
|
2019-11-24 10:00:48 +00:00
|
|
|
:config
|
|
|
|
(add-hook 'haskell-mode-hook #'lsp))
|
2019-05-25 20:44:44 +00:00
|
|
|
|
|
|
|
|
2019-11-22 08:01:12 +00:00
|
|
|
;;; Clojure
|
|
|
|
(use-package clojure-mode
|
|
|
|
:mode ("\\.clj*\\'" . clojure-mode)
|
2019-11-24 10:00:48 +00:00
|
|
|
:interpreter ("clojure" . clojure-mode))
|
2019-11-22 08:01:12 +00:00
|
|
|
|
|
|
|
(use-package cider
|
|
|
|
:after clojure-mode
|
|
|
|
:config
|
|
|
|
(add-hook 'clojure-mode-hook #'cider-mode)
|
|
|
|
(setq nrepl-hide-special-buffers t))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
(use-package emidje
|
|
|
|
:after clojure-mode
|
|
|
|
:config
|
|
|
|
(eval-after-load 'cider
|
|
|
|
#'emidje-setup))
|
|
|
|
|
2019-11-22 08:01:12 +00:00
|
|
|
(use-package flycheck-clojure
|
|
|
|
:after flycheck
|
|
|
|
:config
|
|
|
|
(eval-after-load 'flycheck '(flycheck-clojure-setup))
|
|
|
|
(add-hook 'after-init-hook #'global-flycheck-mode))
|
|
|
|
|
2019-11-24 10:00:48 +00:00
|
|
|
;; (use-package clj-refactor
|
|
|
|
;; :after clojure-mode
|
|
|
|
;; :config
|
|
|
|
;; (defun my-clojure-mode-hook ()
|
|
|
|
;; (clj-refactor-mode 1
|
|
|
|
;; (yas-minor-mode 1))
|
|
|
|
;; (cljr-add-keybindings-with-prefix "C-c C-m"))
|
|
|
|
;; (add-hook 'clojure-mode-hook #'my-clojure-mode-hook)) ; for adding require/use/import statements
|
|
|
|
;; This choice of keybinding leaves cider-macroexpand-1 unbound
|
|
|
|
|
|
|
|
;;; Misc langs
|
|
|
|
(use-package yaml-mode
|
|
|
|
:mode ("\\.yaml\\'" . yaml-mode)
|
|
|
|
:interpreter ("yaml" . yaml-mode))
|
|
|
|
|
2019-05-25 20:44:44 +00:00
|
|
|
|
|
|
|
(general-define-key
|
|
|
|
:states 'normal
|
|
|
|
"rl" 'load-file "~/emacs.d/init.el")
|
2019-11-22 08:01:12 +00:00
|
|
|
|
|
|
|
(defun goto-match-paren (arg)
|
2019-11-24 10:00:48 +00:00
|
|
|
"Go to the matching parenthesis if on parenthesis, otherwise insert %.)
|
|
|
|
vi style of % jumping to matching brace."
|
|
|
|
(interactive "p")
|
|
|
|
(cond ((looking-at "\\s\(\") (forward-list 1) (backward-char 1)
|
|
|
|
((looking-at \"\\s\)\") (forward-char 1) (backward-list 1))
|
|
|
|
(t (self-insert-command (or arg 1)))))\)"))))
|
|
|
|
(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
|
|
|
|
("c74e83f8aa4c78a121b52146eadb792c9facc5b1f02c917e3dbb454fca931223" "e4c8810d9ab925567a69c11d5c95d198a4e7d05871453b2c92c020712559c4c1" default)))
|
|
|
|
'(org-journal-date-format "%A, %d %B %Y")
|
|
|
|
'(org-journal-dir "~/org/journal/")
|
|
|
|
'(package-selected-packages
|
|
|
|
(quote
|
2019-11-26 23:48:10 +00:00
|
|
|
(git-gutter doom-modeline clj-refactor paredit yascroll yaml-mode writeroom-mode which-key w3m use-package toml-mode smartparens smart-mode-line rainbow-delimiters racer projectile parinfer org-plus-contrib org-journal neotree multiple-cursors minimap lsp-ui lsp-haskell inflections hydra general focus flycheck-rust flycheck-pos-tip flycheck-clojure flx exec-path-from-shell evil-org evil-magit evil-escape evil-commentary emidje edn editorconfig counsel company-quickhelp company-math company-lsp company-auctex bug-hunter auto-package-update all-the-icons aggressive-indent))))
|