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!
|
||||||
(:map haskell-mode-map
|
(:map haskell-mode-map
|
||||||
:n "K" 'lsp-info-under-point
|
;; :n "K" 'lsp-info-under-point
|
||||||
:n "g d" 'lsp-ui-peek-find-definitions
|
;; :n "g d" 'lsp-ui-peek-find-definitions
|
||||||
:n "g r" 'lsp-ui-peek-find-references
|
;; :n "g r" 'lsp-ui-peek-find-references
|
||||||
;; :n "g SPC" 'intero-repl-load
|
;; :n "g \\" '+haskell/repl
|
||||||
:n "g \\" '+haskell/repl
|
:n "K" 'intero-info
|
||||||
;; :n "g y" 'intero-type-at
|
: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
|
;; :n "g RET" 'grfn/run-sputnik-test-for-file
|
||||||
|
|
||||||
(:localleader
|
(:localleader
|
||||||
:desc "Apply action" :n "a" 'lsp-execute-code-action
|
:desc "Apply action" :n "e" 'intero-repl-eval-region
|
||||||
:desc "Rename symbol" :n "r" 'lsp-rename))
|
:desc "Rename symbol" :n "r" 'intero-apply-suggestions))
|
||||||
|
|
||||||
(:after agda2-mode
|
(:after agda2-mode
|
||||||
(:map agda2-mode-map
|
(:map agda2-mode-map
|
||||||
|
|
278
config.el
278
config.el
|
@ -1,5 +1,195 @@
|
||||||
;;; private/grfn/config.el -*- lexical-binding: t; -*-
|
;;; 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-dir (file-name-directory load-file-name))
|
||||||
(defvar +grfn-snippets-dir (expand-file-name "snippets/" +grfn-dir))
|
(defvar +grfn-snippets-dir (expand-file-name "snippets/" +grfn-dir))
|
||||||
|
@ -85,9 +275,6 @@
|
||||||
|
|
||||||
(def-package! org-clubhouse)
|
(def-package! org-clubhouse)
|
||||||
|
|
||||||
(setq solarized-use-variable-pitch nil
|
|
||||||
solarized-scale-org-headlines nil)
|
|
||||||
|
|
||||||
; (require 'doom-themes)
|
; (require 'doom-themes)
|
||||||
|
|
||||||
;; Should really figure out which of these is correct, eventually
|
;; Should really figure out which of these is correct, eventually
|
||||||
|
@ -248,11 +435,11 @@
|
||||||
|
|
||||||
|
|
||||||
(add-hook! haskell-mode
|
(add-hook! haskell-mode
|
||||||
;; (intero-mode)
|
(intero-mode)
|
||||||
(lsp-mode)
|
;; (lsp-mode)
|
||||||
;; (flycheck-add-next-checker
|
(flycheck-add-next-checker
|
||||||
;; 'intero
|
'intero
|
||||||
;; 'haskell-hlint)
|
'haskell-hlint)
|
||||||
(set-fill-column 80)
|
(set-fill-column 80)
|
||||||
(setq evil-shift-width 2))
|
(setq evil-shift-width 2))
|
||||||
|
|
||||||
|
@ -451,44 +638,47 @@
|
||||||
;; (with-selected-window window
|
;; (with-selected-window window
|
||||||
;; (split-window-below))))))))
|
;; (split-window-below))))))))
|
||||||
|
|
||||||
(def-package! lsp-mode
|
;; (def-package! lsp-mode
|
||||||
:after (:any haskell-mode)
|
;; :after (:any haskell-mode)
|
||||||
:config
|
;; :config
|
||||||
(lsp-mode)
|
;; (lsp-mode)
|
||||||
(setq lsp-project-whitelist '("^/home/griffin/code/urb/grid/$")
|
;; (setq lsp-project-whitelist '("^/home/griffin/code/urb/grid/$")
|
||||||
lsp-response-timeout 60)
|
;; lsp-response-timeout 60)
|
||||||
:hook
|
;; :hook
|
||||||
(haskell-mode . lsp-mode))
|
;; (haskell-mode . lsp-mode))
|
||||||
|
|
||||||
(def-package! lsp-ui
|
;; (def-package! lsp-ui
|
||||||
:after lsp-mode
|
;; :after lsp-mode
|
||||||
:config
|
;; :config
|
||||||
(setq lsp-ui-flycheck-enable t)
|
;; (setq lsp-ui-flycheck-enable t)
|
||||||
(setq imenu-auto-rescan t)
|
;; (setq imenu-auto-rescan t)
|
||||||
(set-face-background 'lsp-ui-doc-background +solarized-s-base2)
|
;; (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-read +solarized-s-base2)
|
||||||
(set-face-background 'lsp-face-highlight-write +solarized-s-base2)
|
;; (set-face-background 'lsp-face-highlight-write +solarized-s-base2)
|
||||||
:hook
|
;; :hook
|
||||||
(lsp-mode . lsp-ui-mode)
|
;; (lsp-mode . lsp-ui-mode)
|
||||||
(lsp-ui-mode . flycheck-mode))
|
;; (lsp-ui-mode . flycheck-mode))
|
||||||
|
|
||||||
(def-package! company-lsp
|
;; (def-package! company-lsp
|
||||||
:after (lsp-mode lsp-ui)
|
;; :after (lsp-mode lsp-ui)
|
||||||
:config
|
;; :config
|
||||||
(setq company-backends '(company-lsp))
|
;; (setq company-backends '(company-lsp))
|
||||||
(setq company-lsp-async t))
|
;; (setq company-lsp-async t))
|
||||||
|
|
||||||
(def-package! lsp-haskell
|
;; (def-package! lsp-haskell
|
||||||
:after (lsp-mode lsp-ui haskell-mode)
|
;; :after (lsp-mode lsp-ui haskell-mode)
|
||||||
:hook
|
;; :hook
|
||||||
(haskell-mode . lsp-haskell-enable)
|
;; (haskell-mode . lsp-haskell-enable)
|
||||||
:config
|
;; :config
|
||||||
(setq lsp-haskell-process-path-hie "/home/griffin/.local/bin/hie-wrapper"))
|
;; (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
|
;; (def-package! lsp-imenu
|
||||||
:after (lsp-mode lsp-ui)
|
;; :after (lsp-mode lsp-ui)
|
||||||
:hook
|
;; :hook
|
||||||
(lsp-after-open . lsp-enable-imenu))
|
;; (lsp-after-open . lsp-enable-imenu))
|
||||||
|
|
||||||
(def-package! evil-magit
|
(def-package! evil-magit
|
||||||
:after (magit))
|
:after (magit))
|
||||||
|
@ -548,7 +738,3 @@
|
||||||
`(agda2-highlight-termination-problem-face ((t (:background ,orange :foreground ,base03))))
|
`(agda2-highlight-termination-problem-face ((t (:background ,orange :foreground ,base03))))
|
||||||
`(agda2-highlight-incomplete-pattern-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))))))
|
`(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
|
emacs-lisp ; drown in parentheses
|
||||||
;ess ; emacs speaks statistics
|
;ess ; emacs speaks statistics
|
||||||
;go ; the hipster dialect
|
;go ; the hipster dialect
|
||||||
;(haskell +intero) ; 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
|
;; haskell ; a language that's lazier than I am
|
||||||
;hy ; readability of scheme w/ speed of python
|
;hy ; readability of scheme w/ speed of python
|
||||||
;(java +meghanada) ; the poster child for carpal tunnel syndrome
|
;(java +meghanada) ; the poster child for carpal tunnel syndrome
|
||||||
javascript ; all(hope(abandon(ye(who(enter(here))))))
|
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
|
;; and additional ex commands for evil-mode. Use it as a reference for
|
||||||
;; your own modules.
|
;; your own modules.
|
||||||
(default +bindings +snippets +evil-commands))
|
(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)
|
(package! graphql-mode)
|
||||||
|
|
||||||
;; Haskell
|
;; Haskell
|
||||||
(package! lsp-mode)
|
;; (package! lsp-mode)
|
||||||
(package! lsp-ui)
|
;; (package! lsp-ui)
|
||||||
(package! lsp-haskell)
|
;; (package! lsp-haskell)
|
||||||
(package! company-lsp)
|
;; (package! company-lsp)
|
||||||
(package! lsp-imenu)
|
;; (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
Reference in a new issue