diff options
author | Griffin Smith <root@gws.fyi> | 2018-09-18T14·18-0400 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2018-09-18T14·18-0400 |
commit | 29c7632fd278e6d4228290956534a1195c488fad (patch) | |
tree | caa09f8bb30ea8ef88e1086ea2281311168ae28f /config.el | |
parent | 8ba14144a32ee053d7fa27b836c632eed48b6f54 (diff) |
Misc haskell stuff, snippets, etc
Diffstat (limited to 'config.el')
-rw-r--r-- | config.el | 286 |
1 files changed, 236 insertions, 50 deletions
diff --git a/config.el b/config.el index 1646314ab712..ec91438d39d0 100644 --- a/config.el +++ b/config.el @@ -1,5 +1,195 @@ ;;; private/grfn/config.el -*- lexical-binding: t; -*- +;; I've swapped these keys on my keyboard +(setq x-super-keysym 'alt + x-alt-keysym 'meta) + +(setq user-mail-address "root@gws.fyi" + user-full-name "Griffin Smith") + +; (def-package-hook! doom-themes :disable) + +(after! rust + (setq rust-format-on-save t)) + +; (defconst rust-src-path +; (-> "/Users/griffin/.cargo/bin/rustc --print sysroot" +; shell-command-to-string +; string-trim +; (concat "/lib/rustlib/src/rust/src"))) +; +; (setenv "RUST_SRC_PATH" rust-src-path) +; +; (after! racer +; (setq racer-rust-src-path rust-src-path)) +; +(add-hook! rust-mode + (flycheck-rust-setup) + (flycheck-mode) + (racer-mode) + (cargo-minor-mode)) + +(add-hook! elixir-mode + (require 'flycheck-credo) + (setq flycheck-elixir-credo-strict t) + (flycheck-credo-setup) + + (require 'flycheck-mix) (flycheck-mix-setup) + + (require 'flycheck-dialyxir) (flycheck-dialyxir-setup) + + (flycheck-mode)) + +(setq exec-path (append exec-path '("/Users/griffin/.cargo/bin"))) + +(after! cargo + (setq cargo-process--custom-path-to-bin "/Users/griffin/.cargo/bin/cargo")) + +(setq +solarized-s-base03 "#002b36" + +solarized-s-base02 "#073642" + ;; emphasized content + +solarized-s-base01 "#586e75" + ;; primary content + +solarized-s-base00 "#657b83" + +solarized-s-base0 "#839496" + ;; comments + +solarized-s-base1 "#93a1a1" + ;; background highlight light + +solarized-s-base2 "#eee8d5" + ;; background light + +solarized-s-base3 "#fdf6e3" + + ;; Solarized accented colors + +solarized-yellow "#b58900" + +solarized-orange "#cb4b16" + +solarized-red "#dc322f" + +solarized-magenta "#d33682" + +solarized-violet "#6c71c4" + +solarized-blue "#268bd2" + +solarized-cyan "#2aa198" + +solarized-green "#859900" + + ;; Darker and lighter accented colors + ;; Only use these in exceptional circumstances! + +solarized-yellow-d "#7B6000" + +solarized-yellow-l "#DEB542" + +solarized-orange-d "#8B2C02" + +solarized-orange-l "#F2804F" + +solarized-red-d "#990A1B" + +solarized-red-l "#FF6E64" + +solarized-magenta-d "#93115C" + +solarized-magenta-l "#F771AC" + +solarized-violet-d "#3F4D91" + +solarized-violet-l "#9EA0E5" + +solarized-blue-d "#00629D" + +solarized-blue-l "#69B7F0" + +solarized-cyan-d "#00736F" + +solarized-cyan-l "#69CABF" + +solarized-green-d "#546E00" + +solarized-green-l "#B4C342") + +(defadvice load-theme (after theme-set-overrides activate) + (dolist (theme-settings theme-overrides) + (let ((theme (car theme-settings)) + (faces (cadr theme-settings))) + (if (member theme custom-enabled-themes) + (dolist (face faces) + (custom-theme-set-faces theme face)))))) + +(defcustom theme-overrides nil + "Association list of override faces to set for different custom themes.") + +(defun alist-set (alist-symbol key value) + "Set VALUE of a KEY in ALIST-SYMBOL." + (set alist-symbol (cons (list key value) (assq-delete-all key (eval alist-symbol))))) + +(alist-set 'theme-overrides 'grfn-solarized-light + `((font-lock-doc-face ((t (:foreground ,+solarized-s-base1)))) + (font-lock-preprocessor-face ((t (:foreground ,+solarized-red)))) + (font-lock-keyword-face ((t (:foreground ,+solarized-green)))) + + (elixir-attribute-face ((t (:foreground ,+solarized-blue)))) + (elixir-atom-face ((t (:foreground ,+solarized-cyan)))) + (linum ((t (:background ,+solarized-s-base2 :foreground ,+solarized-s-base1)))) + (line-number ((t (:background ,+solarized-s-base2 :foreground ,+solarized-s-base1)))) + + (haskell-operator-face ((t (:foreground ,+solarized-green)))) + (haskell-keyword-face ((t (:foreground ,+solarized-cyan)))))) + +(setq solarized-use-variable-pitch nil + solarized-scale-org-headlines nil) + +(add-to-list 'custom-theme-load-path "~/.doom.d/themes") +(load-theme 'grfn-solarized-light t) + +(defface haskell-import-face `((t (:foreground ,+solarized-magenta))) "") + +(setq doom-theme 'grfn-solarized-light) +; (setq doom-theme 'doom-solarized-light) + +(add-hook! doom-post-init + (set-face-attribute 'bold nil :weight 'ultra-light) + (set-face-bold-p 'bold nil)) + +(defun rx-words (&rest words) + (rx-to-string + `(and symbol-start (group (or ,@words)) symbol-end))) + +(font-lock-add-keywords + 'elixir-mode + `((,(rx-words "def" + "defp" + "test" + "describe" + "property" + "defrecord" + "defmodule" + "defstruct" + "defdelegate" + "defprotocol" + "defimpl" + "use" + "import" + "alias" + "require" + "assert" + "refute" + "assert_raise") + . + 'font-lock-preprocessor-face))) + +(font-lock-add-keywords + 'elixir-mode + `((,(rx-words "def" + "defp" + "test" + "describe" + "property" + "defrecord" + "defmodule" + "defstruct" + "defdelegate" + "use" + "import" + "alias" + "require" + "assert" + "refute" + "assert_raise") + . + 'font-lock-preprocessor-face))) + +(font-lock-add-keywords + 'haskell-mode + `((,(rx-words "import") . 'haskell-import-face))) + +;; (font-lock-add-keywords +;; 'haskell-mode +;; `((,(rx "-- |") . 'haskell-keyword-face))) + + +(load-file (let ((coding-system-for-read 'utf-8)) + (shell-command-to-string "agda-mode locate"))) (defvar +grfn-dir (file-name-directory load-file-name)) (defvar +grfn-snippets-dir (expand-file-name "snippets/" +grfn-dir)) @@ -85,9 +275,6 @@ (def-package! org-clubhouse) -(setq solarized-use-variable-pitch nil - solarized-scale-org-headlines nil) - ; (require 'doom-themes) ;; Should really figure out which of these is correct, eventually @@ -248,11 +435,11 @@ (add-hook! haskell-mode - ;; (intero-mode) - (lsp-mode) - ;; (flycheck-add-next-checker - ;; 'intero - ;; 'haskell-hlint) + (intero-mode) + ;; (lsp-mode) + (flycheck-add-next-checker + 'intero + 'haskell-hlint) (set-fill-column 80) (setq evil-shift-width 2)) @@ -451,44 +638,47 @@ ;; (with-selected-window window ;; (split-window-below)))))))) -(def-package! lsp-mode - :after (:any haskell-mode) - :config - (lsp-mode) - (setq lsp-project-whitelist '("^/home/griffin/code/urb/grid/$") - lsp-response-timeout 60) - :hook - (haskell-mode . lsp-mode)) - -(def-package! lsp-ui - :after lsp-mode - :config - (setq lsp-ui-flycheck-enable t) - (setq imenu-auto-rescan t) - (set-face-background 'lsp-ui-doc-background +solarized-s-base2) - (set-face-background 'lsp-face-highlight-read +solarized-s-base2) - (set-face-background 'lsp-face-highlight-write +solarized-s-base2) - :hook - (lsp-mode . lsp-ui-mode) - (lsp-ui-mode . flycheck-mode)) - -(def-package! company-lsp - :after (lsp-mode lsp-ui) - :config - (setq company-backends '(company-lsp)) - (setq company-lsp-async t)) - -(def-package! lsp-haskell - :after (lsp-mode lsp-ui haskell-mode) - :hook - (haskell-mode . lsp-haskell-enable) - :config - (setq lsp-haskell-process-path-hie "/home/griffin/.local/bin/hie-wrapper")) - -(def-package! lsp-imenu - :after (lsp-mode lsp-ui) - :hook - (lsp-after-open . lsp-enable-imenu)) +;; (def-package! lsp-mode +;; :after (:any haskell-mode) +;; :config +;; (lsp-mode) +;; (setq lsp-project-whitelist '("^/home/griffin/code/urb/grid/$") +;; lsp-response-timeout 60) +;; :hook +;; (haskell-mode . lsp-mode)) + +;; (def-package! lsp-ui +;; :after lsp-mode +;; :config +;; (setq lsp-ui-flycheck-enable t) +;; (setq imenu-auto-rescan t) +;; (set-face-background 'lsp-ui-doc-background +solarized-s-base2) +;; (set-face-background 'lsp-face-highlight-read +solarized-s-base2) +;; (set-face-background 'lsp-face-highlight-write +solarized-s-base2) +;; :hook +;; (lsp-mode . lsp-ui-mode) +;; (lsp-ui-mode . flycheck-mode)) + +;; (def-package! company-lsp +;; :after (lsp-mode lsp-ui) +;; :config +;; (setq company-backends '(company-lsp)) +;; (setq company-lsp-async t)) + +;; (def-package! lsp-haskell +;; :after (lsp-mode lsp-ui haskell-mode) +;; :hook +;; (haskell-mode . lsp-haskell-enable) +;; :config +;; (setq lsp-haskell-process-path-hie "/home/griffin/.local/bin/hie-wrapper" +;; lsp-haskell-process-args-hie +;; '("-d" "-l" "/tmp/hie.log" "+RTS" "-M4G" "-H1G" "-K4G" "-A16M" "-RTS" +;; "--lsp"))) + +;; (def-package! lsp-imenu +;; :after (lsp-mode lsp-ui) +;; :hook +;; (lsp-after-open . lsp-enable-imenu)) (def-package! evil-magit :after (magit)) @@ -548,7 +738,3 @@ `(agda2-highlight-termination-problem-face ((t (:background ,orange :foreground ,base03)))) `(agda2-highlight-incomplete-pattern-face ((t (:background ,orange :foreground ,base03)))) `(agda2-highlight-typechecks-face ((t (:background ,cyan :foreground ,base03)))))) - -;; (with-eval-after-load 'intero -;; (setq intero-package-version "0.1.31")) - |