Misc haskell stuff, snippets, etc
This commit is contained in:
		
							parent
							
								
									8ba14144a3
								
							
						
					
					
						commit
						29c7632fd2
					
				
					 19 changed files with 341 additions and 250 deletions
				
			
		
							
								
								
									
										19
									
								
								+bindings.el
									
										
									
									
									
								
							
							
						
						
									
										19
									
								
								+bindings.el
									
										
									
									
									
								
							|  | @ -1022,17 +1022,20 @@ private/hlissner/snippets." | |||
| 
 | ||||
| (map! | ||||
|   (:map haskell-mode-map | ||||
|      :n "K"     'lsp-info-under-point | ||||
|      :n "g d"   'lsp-ui-peek-find-definitions | ||||
|      :n "g r"   'lsp-ui-peek-find-references | ||||
|      ;; :n "g SPC" 'intero-repl-load | ||||
|      :n "g \\"  '+haskell/repl | ||||
|      ;; :n "g y"   'intero-type-at | ||||
|      ;; :n "K"     'lsp-info-under-point | ||||
|      ;; :n "g d"   'lsp-ui-peek-find-definitions | ||||
|      ;; :n "g r"   'lsp-ui-peek-find-references | ||||
|      ;; :n "g \\"  '+haskell/repl | ||||
|      :n "K"     'intero-info | ||||
|      :n "g d"   'intero-goto-definition | ||||
|      :n "g SPC" 'intero-repl-load | ||||
|      :n "g \\"  'intero-repl | ||||
|      :n "g y"   'intero-type-at | ||||
|      ;; :n "g RET" 'grfn/run-sputnik-test-for-file | ||||
| 
 | ||||
|      (:localleader | ||||
|        :desc "Apply action"  :n "a" 'lsp-execute-code-action | ||||
|        :desc "Rename symbol" :n "r" 'lsp-rename)) | ||||
|        :desc "Apply action"  :n "e" 'intero-repl-eval-region | ||||
|        :desc "Rename symbol" :n "r" 'intero-apply-suggestions)) | ||||
| 
 | ||||
|   (:after agda2-mode | ||||
|     (:map agda2-mode-map | ||||
|  |  | |||
							
								
								
									
										278
									
								
								config.el
									
										
									
									
									
								
							
							
						
						
									
										278
									
								
								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-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! 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! 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-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! 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")) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										193
									
								
								init.el
									
										
									
									
									
								
							
							
						
						
									
										193
									
								
								init.el
									
										
									
									
									
								
							|  | @ -91,8 +91,8 @@ | |||
|        emacs-lisp        ; drown in parentheses | ||||
|       ;ess               ; emacs speaks statistics | ||||
|       ;go                ; the hipster dialect | ||||
|       ;(haskell +intero) ; a language that's lazier than I am | ||||
|        haskell           ; a language that's lazier than I am | ||||
|       (haskell +intero) ; a language that's lazier than I am | ||||
|        ;; haskell           ; a language that's lazier than I am | ||||
|       ;hy                ; readability of scheme w/ speed of python | ||||
|       ;(java +meghanada) ; the poster child for carpal tunnel syndrome | ||||
|        javascript        ; all(hope(abandon(ye(who(enter(here)))))) | ||||
|  | @ -152,192 +152,3 @@ | |||
|        ;; and additional ex commands for evil-mode. Use it as a reference for | ||||
|        ;; your own modules. | ||||
|        (default +bindings +snippets +evil-commands)) | ||||
| 
 | ||||
| 
 | ||||
| ;; 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)))))) | ||||
| 
 | ||||
| (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"))) | ||||
|  |  | |||
							
								
								
									
										10
									
								
								packages.el
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								packages.el
									
										
									
									
									
								
							|  | @ -68,8 +68,8 @@ | |||
| (package! graphql-mode) | ||||
| 
 | ||||
| ;; Haskell | ||||
| (package! lsp-mode) | ||||
| (package! lsp-ui) | ||||
| (package! lsp-haskell) | ||||
| (package! company-lsp) | ||||
| (package! lsp-imenu) | ||||
| ;; (package! lsp-mode) | ||||
| ;; (package! lsp-ui) | ||||
| ;; (package! lsp-haskell) | ||||
| ;; (package! company-lsp) | ||||
| ;; (package! lsp-imenu) | ||||
|  |  | |||
							
								
								
									
										5
									
								
								snippets/haskell-mode/annotation
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								snippets/haskell-mode/annotation
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| # key: ann | ||||
| # name: annotation | ||||
| # expand-env: ((yas-indent-line 'fixed)) | ||||
| # -- | ||||
| {-# ANN ${1:module} ("${2:HLint: ignore ${3:Reduce duplication}}" :: String) #-} | ||||
							
								
								
									
										4
									
								
								snippets/haskell-mode/import-i
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								snippets/haskell-mode/import-i
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| # key: i | ||||
| # name: import-i | ||||
| # -- | ||||
| import           ${1:Prelude} | ||||
							
								
								
									
										6
									
								
								snippets/haskell-mode/inl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								snippets/haskell-mode/inl
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| # -*- mode: snippet -*- | ||||
| # name: inl | ||||
| # key: inl | ||||
| # expand-env: ((yas-indent-line 'fixed)) | ||||
| # -- | ||||
| {-# INLINE $1 #-} | ||||
							
								
								
									
										5
									
								
								snippets/haskell-mode/inline
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								snippets/haskell-mode/inline
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| # key: inline | ||||
| # name: inline | ||||
| # expand-env: ((yas-indent-line 'fixed)) | ||||
| # -- | ||||
| {-# INLINE $1 #-} | ||||
							
								
								
									
										6
									
								
								snippets/haskell-mode/language pragma
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								snippets/haskell-mode/language pragma
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| # -*- mode: snippet -*- | ||||
| # name: language pragma | ||||
| # key: lang | ||||
| # expand-env: ((yas-indent-line 'fixed)) | ||||
| # -- | ||||
| {-# LANGUAGE $1 #-} | ||||
							
								
								
									
										6
									
								
								snippets/haskell-mode/shut up, hlint
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								snippets/haskell-mode/shut up, hlint
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| # -*- mode: snippet -*- | ||||
| # name: shut up, hlint | ||||
| # key: dupl | ||||
| # expand-env: ((yas-indent-line 'fixed)) | ||||
| # -- | ||||
| {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-} | ||||
							
								
								
									
										4
									
								
								snippets/js2-mode/action-type
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								snippets/js2-mode/action-type
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| # key: at | ||||
| # name: action-type | ||||
| # -- | ||||
| export const ${1:FOO_BAR$(->> yas-text s-upcase (s-replace-all '(("-" . "_") (" " . "_"))))}: '${3:ns}/${1:$(-> yas-text s-dashed-words)}' = '$3/${1:$(-> yas-text s-dashed-words)}'$5 | ||||
							
								
								
									
										6
									
								
								snippets/js2-mode/describe
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								snippets/js2-mode/describe
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| # key: desc | ||||
| # name: describe | ||||
| # -- | ||||
| describe('$1', () => { | ||||
|   $2 | ||||
| }) | ||||
							
								
								
									
										5
									
								
								snippets/js2-mode/expect
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								snippets/js2-mode/expect
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| # -*- mode: snippet -*- | ||||
| # name: expect | ||||
| # key: ex | ||||
| # -- | ||||
| expect($1).$2 | ||||
							
								
								
									
										6
									
								
								snippets/js2-mode/header
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								snippets/js2-mode/header
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| # -*- mode: snippet -*- | ||||
| # name: header | ||||
| # key: hh | ||||
| # expand-env: ((yas-indent-line 'fixed)) | ||||
| # -- | ||||
| //////////////////////////////////////////////////////////////////////////////// | ||||
							
								
								
									
										7
									
								
								snippets/js2-mode/it
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								snippets/js2-mode/it
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| # -*- mode: snippet -*- | ||||
| # name: it | ||||
| # key: it | ||||
| # -- | ||||
| it('$1', () => { | ||||
|   $2 | ||||
| }) | ||||
							
								
								
									
										5
									
								
								snippets/js2-mode/it-pending
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								snippets/js2-mode/it-pending
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| # -*- mode: snippet -*- | ||||
| # name: it-pending | ||||
| # key: xi | ||||
| # -- | ||||
| it('$1')$0 | ||||
							
								
								
									
										12
									
								
								snippets/js2-mode/module
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								snippets/js2-mode/module
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| # key: module | ||||
| # name: module | ||||
| # expand-env: ((yas-indent-line (quote fixed))) | ||||
| # condition: (= (length "module") (current-column)) | ||||
| # -- | ||||
| /** | ||||
|  * @fileOverview $1 | ||||
|  * @name ${2:`(file-name-nondirectory (buffer-file-name))`} | ||||
|  * @author Griffin Smith | ||||
|  * @license Proprietary | ||||
|  */ | ||||
| $3 | ||||
							
								
								
									
										7
									
								
								snippets/js2-mode/record
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								snippets/js2-mode/record
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| # -*- mode: snippet -*- | ||||
| # name: record | ||||
| # key: rec | ||||
| # -- | ||||
| export default class $1 extends Record({ | ||||
|   $2 | ||||
| }) {} | ||||
							
								
								
									
										7
									
								
								snippets/js2-mode/test
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								snippets/js2-mode/test
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| # -*- mode: snippet -*- | ||||
| # name: test | ||||
| # key: test | ||||
| # -- | ||||
| test('$1', () => { | ||||
|   $2 | ||||
| }) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue