diff --git a/config.json b/config.json index 344d668..fb14ee7 100644 --- a/config.json +++ b/config.json @@ -2,7 +2,7 @@ "taps": [ "buo/cask-upgrade", "homebrew/cask-fonts", - "railwaycat/emacsmacport" + "d12frosted/emacs-plus" ], "brew": [ "bash", @@ -10,7 +10,7 @@ "coreutils", "curl", "direnv", - "emacs-mac", + "emacs-plus@27", "fd", "gawk", "git", @@ -21,16 +21,12 @@ "jq", "libnotify", "neovim", - "osquery", "parallel", "pkg-config", "ripgrep", - "terminal-notifier", - "texinfo", "the_silver_searcher", "tmux", "vim", - "watchman", "wget", "xsv", "yarn", @@ -41,69 +37,65 @@ "alfred", {"name": "arq", "when": "home"}, "bettertouchtool", - "brave-browser", "dash", {"name": "epic-games", "when": "home"}, - "fantastical", "firefox", "font-fira-code", "font-fira-mono", {"name": "gog-galaxy", "when": "home"}, "hammerspoon", - "iina", - {"name": "iridient-developer", "when": "home"}, - {"name": "java8", "when": "home"}, - "keka", - {"name": "keybase", "when": "home"}, "lunchy", - {"name": "openemu", "when": "home"}, "osxfuse", "racket", {"name": "signal", "when": "home"}, "skim", {"name": "steam", "when": "home"}, - {"name": "transmission", "when": "home"}, "virtualbox", - {"name": "vmware-fusion", "when": "home"}, "xquartz" ], "mas": [ "Xcode", "Paprika Recipe Manager 3", "Pixelmator", - "Kindle", - "Time Out", "1Password 7", "Things" ], "sources": { - "https://github.com/larkery/zsh-histdb.git": "~/.zsh-histdb/", - "https://github.com/asdf-vm/asdf.git": { - "destination": "~/.asdf", - "post-install": "cd ~/.asdf && git checkout \"$(git describe --abbrev=0 --tags)\"" - }, - "https://github.com/tarjoilija/zgen": { - "symlinks": { - "zgen.zsh": "~/.zgen.zsh", - "_zgen": "~/.zsh/_zgen" - } - }, - "https://github.com/scottwhudson/Lunette.git": { - "symlinks": { - "Lunette.spoon": "~/.hammerspoon/Spoons/" - } - } + "https://github.com/plexus/chemacs.git": { + "destination": "~/Documents/Projects/chemacs", + "post-install": "cd ~/Documents/Projects/chemacs && ./install.sh" + }, + "https://github.com/hlissner/doom-emacs.git": { + "destination": "~/Documents/Projects/doom-emacs" + }, + "https://github.com/larkery/zsh-histdb.git": "~/.zsh-histdb/", + "https://github.com/asdf-vm/asdf.git": { + "destination": "~/.asdf", + "post-install": "cd ~/.asdf && git checkout \"$(git describe --abbrev=0 --tags)\"" + }, + "https://github.com/tarjoilija/zgen": { + "symlinks": { + "zgen.zsh": "~/.zgen.zsh", + "_zgen": "~/.zsh/_zgen" + } + }, + "https://github.com/scottwhudson/Lunette.git": { + "symlinks": { + "Lunette.spoon": "~/.hammerspoon/Spoons/" + } + } }, "symlinks": { - "dots/.*": "~/", - "zsh/*": "~/.config/zsh/config.sh", - "bin/*": "~/.local/bin/", - "config/*": "~/.config/", - "launchagents/*.plist":"~/Library/LaunchAgents/", - "hammerspoon/*": "~/.hammerspoon/" + "dots/.*": "~/", + "doom.d/*": "~/.doom.d/", + "zsh/*": "~/.config/zsh/config.sh", + "bin/*": "~/.local/bin/", + "config/*": "~/.config/", + "launchagents/*.plist":"~/Library/LaunchAgents/", + "hammerspoon/*": "~/.hammerspoon/" }, "post-install": [ - "brew cleanup", - "find ~/Library/LaunchAgents -name '*.plist' | xargs launchctl load" + "brew cleanup", + "find ~/Library/LaunchAgents -name '*.plist' | xargs launchctl load" ] } diff --git a/doom.d/config.el b/doom.d/config.el index 17977ac..31b28e3 100644 --- a/doom.d/config.el +++ b/doom.d/config.el @@ -53,41 +53,44 @@ ;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how ;; they are implemented. -(setq lsp-file-watch-ignored - '( - "[/\\\\]\\.direnv$" - "[/\\\\]\\.gems$" +(after! lsp + (setq lsp-file-watch-ignored + '( + "[/\\\\]\\.direnv$" + "[/\\\\]\\.gems$" ; SCM tools - "[/\\\\]\\.git$" - "[/\\\\]\\.hg$" - "[/\\\\]\\.bzr$" - "[/\\\\]_darcs$" - "[/\\\\]\\.svn$" - "[/\\\\]_FOSSIL_$" + "[/\\\\]\\.git$" + "[/\\\\]\\.hg$" + "[/\\\\]\\.bzr$" + "[/\\\\]_darcs$" + "[/\\\\]\\.svn$" + "[/\\\\]_FOSSIL_$" ; IDE tools - "[/\\\\]\\.idea$" - "[/\\\\]\\.vscode$" - "[/\\\\]\\.ensime_cache$" - "[/\\\\]\\.eunit$" - "[/\\\\]node_modules$" - "[/\\\\]\\.fslckout$" - "[/\\\\]\\.tox$" - "[/\\\\]\\.stack-work$" - "[/\\\\]\\.bloop$" - "[/\\\\]\\.metals$" - "[/\\\\]target$" - "[/\\\\]dist$" + "[/\\\\]\\.idea$" + "[/\\\\]\\.vscode$" + "[/\\\\]\\.ensime_cache$" + "[/\\\\]\\.eunit$" + "[/\\\\]node_modules$" + "[/\\\\]\\.fslckout$" + "[/\\\\]\\.tox$" + "[/\\\\]\\.stack-work$" + "[/\\\\]\\.bloop$" + "[/\\\\]\\.metals$" + "[/\\\\]target$" + "[/\\\\]dist$" ; Autotools output - "[/\\\\]\\.deps$" - "[/\\\\]build-aux$" - "[/\\\\]autom4te.cache$" - "[/\\\\]\\.reference$" + "[/\\\\]\\.deps$" + "[/\\\\]build-aux$" + "[/\\\\]autom4te.cache$" + "[/\\\\]\\.reference$" ; Assorted state dirs - "[/\\\\]\\.terraform$" - "[/\\\\]\\.vagrant$" - "[/\\\\]vendor$" - )) + "[/\\\\]\\.terraform$" + "[/\\\\]\\.vagrant$" + "[/\\\\]vendor$" + )) + ) + ;; Yank-pop (after! hydra @@ -257,4 +260,15 @@ _s-k_: Kill all buffers _p_: sw (after! envrc (envrc-global-mode)) -(map!) +(setq avy-keys '(?a ?o ?e ?u ?i ?d ?h ?t ?n ?s)) + +; Some handy leader bindings from my old custom config +(map! :leader + :desc "Switch to buffer" "d" #'switch-to-buffer + :desc "Find file" "e" #'counsel-find-file + :desc "Window controls" "t" #'hydra-windows/body + :desc "Resume last ivy search" "r" #'ivy-resume + ) + +(provide 'config.el) +;;; config.el ends here diff --git a/doom.d/snippets/go-mode/apn b/doom.d/snippets/go-mode/apn new file mode 100644 index 0000000..afb2415 --- /dev/null +++ b/doom.d/snippets/go-mode/apn @@ -0,0 +1,4 @@ +# name: append +# key: apn +# -- +$1 = append($1, $2) \ No newline at end of file diff --git a/doom.d/snippets/go-mode/cdif b/doom.d/snippets/go-mode/cdif new file mode 100644 index 0000000..5ca6760 --- /dev/null +++ b/doom.d/snippets/go-mode/cdif @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: cmp.Diff +# key: cdif +# -- +if diff := cmp.Diff($1, $2); diff != "" { + t.Errorf("$3() mismatch (-want +got):\n%s", diff) +} diff --git a/doom.d/snippets/go-mode/elerr b/doom.d/snippets/go-mode/elerr new file mode 100644 index 0000000..9ad8362 --- /dev/null +++ b/doom.d/snippets/go-mode/elerr @@ -0,0 +1,9 @@ +# name: log an error using logrus +# key: elerr +# group: logrus +# -- +if err != nil { + ${1:log}.WithFields(log.Fields{ + "err": err, + }).Error("$2") +} \ No newline at end of file diff --git a/doom.d/snippets/go-mode/elfat b/doom.d/snippets/go-mode/elfat new file mode 100644 index 0000000..95a5c2d --- /dev/null +++ b/doom.d/snippets/go-mode/elfat @@ -0,0 +1,6 @@ +# name: log a fatal error using logrus +# key: elfat +# -- +if $1 != nil { + ${2:log}.WithError($1).Fatal("$3") +} \ No newline at end of file diff --git a/doom.d/snippets/go-mode/erc b/doom.d/snippets/go-mode/erc new file mode 100644 index 0000000..fffd3d5 --- /dev/null +++ b/doom.d/snippets/go-mode/erc @@ -0,0 +1,6 @@ +# name: check for an error +# key: erc +# -- +if err != nil { + $0 +} \ No newline at end of file diff --git a/doom.d/snippets/go-mode/ginkgo-after b/doom.d/snippets/go-mode/ginkgo-after new file mode 100644 index 0000000..ecc61a9 --- /dev/null +++ b/doom.d/snippets/go-mode/ginkgo-after @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: ginkgo after +# key: gaft +# -- +AfterEach(func(){ + $0 +}) \ No newline at end of file diff --git a/doom.d/snippets/go-mode/ginkgo-before b/doom.d/snippets/go-mode/ginkgo-before new file mode 100644 index 0000000..f48cfe1 --- /dev/null +++ b/doom.d/snippets/go-mode/ginkgo-before @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: ginkgo before +# key: gb4 +# -- +BeforeEach(func(){ + $0 +}) \ No newline at end of file diff --git a/doom.d/snippets/go-mode/ginkgo-context b/doom.d/snippets/go-mode/ginkgo-context new file mode 100644 index 0000000..c0ce5d0 --- /dev/null +++ b/doom.d/snippets/go-mode/ginkgo-context @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: ginkgo Context +# key: gct +# -- + +Context("$1", func() { + $0 +}) \ No newline at end of file diff --git a/doom.d/snippets/go-mode/ginkgo-scaffold b/doom.d/snippets/go-mode/ginkgo-scaffold new file mode 100644 index 0000000..c502261 --- /dev/null +++ b/doom.d/snippets/go-mode/ginkgo-scaffold @@ -0,0 +1,20 @@ +# -*- mode: snippet -*- +# name: ginkgo scaffolding +# key: gscaf +# -- + +var _ = Describe("$1", func() { + var ( + ctrl *gomock.Controller + $2 + ) + BeforeEach(func() { + ctrl = gomock.NewController(GinkgoT()) + $3 + }) + + AfterEach(func() { + ctrl.Finish() + }) + $0 +}) \ No newline at end of file diff --git a/doom.d/snippets/go-mode/gmock b/doom.d/snippets/go-mode/gmock new file mode 100644 index 0000000..3e23fc7 --- /dev/null +++ b/doom.d/snippets/go-mode/gmock @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: new go mock +# key: gmock +# -- + +//go:generate mockgen -self_package github.com/BishopFox/`(directory-file-name (file-relative-name (file-name-directory (buffer-file-name)) "/Users/tdeeb-swihart/Documents/Projects/mss"))` -package `(file-name-nondirectory (directory-file-name (file-name-directory (buffer-file-name)) ))` -destination `(file-name-base (buffer-file-name))`_mock.go github.com/BishopFox/`(directory-file-name (file-relative-name (file-name-directory (buffer-file-name)) "/Users/tdeeb-swihart/Documents/Projects/mss/") )` $1 \ No newline at end of file diff --git a/doom.d/snippets/go-mode/goblin-describe b/doom.d/snippets/go-mode/goblin-describe new file mode 100644 index 0000000..67fd978 --- /dev/null +++ b/doom.d/snippets/go-mode/goblin-describe @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: goblin describe +# key: gdesc +# -- + +Describe("$1", func() { + $0 +}) \ No newline at end of file diff --git a/doom.d/snippets/go-mode/goblin-it b/doom.d/snippets/go-mode/goblin-it new file mode 100644 index 0000000..ec6bfde --- /dev/null +++ b/doom.d/snippets/go-mode/goblin-it @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: goblin It +# key: gi +# -- + +It("should $1", func() { + $0 +}) \ No newline at end of file diff --git a/doom.d/snippets/go-mode/gomega-expect b/doom.d/snippets/go-mode/gomega-expect new file mode 100644 index 0000000..cf1b109 --- /dev/null +++ b/doom.d/snippets/go-mode/gomega-expect @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: gomega expect +# key: gexp +# -- +Expect($1).Should($0) \ No newline at end of file diff --git a/doom.d/snippets/go-mode/ibf b/doom.d/snippets/go-mode/ibf new file mode 100644 index 0000000..0dccf63 --- /dev/null +++ b/doom.d/snippets/go-mode/ibf @@ -0,0 +1,4 @@ +# name: import bishopfox pkg +# key: ibf +# -- +"github.com/BishopFox/$1/$2" \ No newline at end of file diff --git a/doom.d/snippets/go-mode/iferr b/doom.d/snippets/go-mode/iferr new file mode 100644 index 0000000..3ba1f57 --- /dev/null +++ b/doom.d/snippets/go-mode/iferr @@ -0,0 +1,8 @@ +# name: run a function and check for an error +# key: iferr +# -- +if ${1:err} = $2; err != nil { + $3 +} else { + $4 +} \ No newline at end of file diff --git a/doom.d/snippets/go-mode/json-tag b/doom.d/snippets/go-mode/json-tag new file mode 100644 index 0000000..7affa2e --- /dev/null +++ b/doom.d/snippets/go-mode/json-tag @@ -0,0 +1,4 @@ +# name: json tag +# key: jj +# -- +\`json:"$1"\` \ No newline at end of file diff --git a/doom.d/snippets/go-mode/logwf b/doom.d/snippets/go-mode/logwf new file mode 100644 index 0000000..a31b60f --- /dev/null +++ b/doom.d/snippets/go-mode/logwf @@ -0,0 +1,7 @@ +# name: log(rus) with fields +# key: lwf +# group: logrus +# -- +${1:log}.WithFields(log.Fields{ + "$2": $3, +}).${4:Info}($5) \ No newline at end of file diff --git a/doom.d/snippets/go-mode/megamock b/doom.d/snippets/go-mode/megamock new file mode 100644 index 0000000..79b884b --- /dev/null +++ b/doom.d/snippets/go-mode/megamock @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: wrap a gomega matcher for use with gomock +# key: megamock +# -- + +func WrapGomega(m types.GomegaMatcher) interface{} { + return mock.MatchedBy(func(actual interface{}) bool { + return Expect(actual).To(m) + }) +} \ No newline at end of file diff --git a/doom.d/snippets/go-mode/ntest b/doom.d/snippets/go-mode/ntest new file mode 100644 index 0000000..9546bc1 --- /dev/null +++ b/doom.d/snippets/go-mode/ntest @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: new test +# key: ntest +# -- +func Test_$1_$2(t *testing.T) { + t.Errorf("FIXME") + $0 +} \ No newline at end of file diff --git a/doom.d/snippets/go-mode/sep b/doom.d/snippets/go-mode/sep new file mode 100644 index 0000000..2732e5f --- /dev/null +++ b/doom.d/snippets/go-mode/sep @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: subendpoint +# key: sep +# -- + + $1.Subendpoint(res, req, func($2) { + $0 + }) \ No newline at end of file diff --git a/doom.d/snippets/lua-mode/ifend b/doom.d/snippets/lua-mode/ifend new file mode 100644 index 0000000..2b88fef --- /dev/null +++ b/doom.d/snippets/lua-mode/ifend @@ -0,0 +1,4 @@ +# name: if-then-end +# key: ifend +# -- +if $1 then $2 end \ No newline at end of file diff --git a/doom.d/snippets/lua-mode/ite b/doom.d/snippets/lua-mode/ite new file mode 100644 index 0000000..7370daa --- /dev/null +++ b/doom.d/snippets/lua-mode/ite @@ -0,0 +1,8 @@ +# name: if-then-else +# key: ite +# -- +if $1 then + $2 +else + $3 +end \ No newline at end of file diff --git a/doom.d/snippets/org-mode/nsrc b/doom.d/snippets/org-mode/nsrc new file mode 100644 index 0000000..d3adab2 --- /dev/null +++ b/doom.d/snippets/org-mode/nsrc @@ -0,0 +1,7 @@ +# name: named src block +# key: ($2) \ No newline at end of file diff --git a/doom.d/snippets/org-mode/todo_schedule b/doom.d/snippets/org-mode/todo_schedule new file mode 100644 index 0000000..0dbbfe1 --- /dev/null +++ b/doom.d/snippets/org-mode/todo_schedule @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: todo_schedule +# key: ts +# -- +m\n${1:4}|`(make-string (org-current-level) ?*)` TODO $2 %(+ x 1)\nSCHEDULED: <%(date "${3:today}" (* x 7))> \ No newline at end of file diff --git a/doom.d/snippets/prog-mode/esle b/doom.d/snippets/prog-mode/esle new file mode 100644 index 0000000..a4977d8 --- /dev/null +++ b/doom.d/snippets/prog-mode/esle @@ -0,0 +1,4 @@ +# name: else mispelling +# key: esle +# -- +else \ No newline at end of file diff --git a/doom.d/snippets/racket-mode/define b/doom.d/snippets/racket-mode/define new file mode 100644 index 0000000..32f431e --- /dev/null +++ b/doom.d/snippets/racket-mode/define @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: defi +# key: defi +# -- +(define $1 $2) diff --git a/doom.d/snippets/racket-mode/defm b/doom.d/snippets/racket-mode/defm new file mode 100644 index 0000000..2dd968e --- /dev/null +++ b/doom.d/snippets/racket-mode/defm @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: define macro +# key: defm +# -- +(define-macro ($1 $2) + $0) \ No newline at end of file diff --git a/doom.d/snippets/racket-mode/defmc b/doom.d/snippets/racket-mode/defmc new file mode 100644 index 0000000..a9b0340 --- /dev/null +++ b/doom.d/snippets/racket-mode/defmc @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: define macro cases +# key: defmc +# -- +(define-macro-cases $1 + [($1 $2) $3] + [($1 $4) $5] + $0) \ No newline at end of file diff --git a/doom.d/snippets/racket-mode/defn b/doom.d/snippets/racket-mode/defn new file mode 100644 index 0000000..5e0fad5 --- /dev/null +++ b/doom.d/snippets/racket-mode/defn @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: define function +# key: defn +# -- +(define ($1 $2) + $0) \ No newline at end of file diff --git a/doom.d/snippets/racket-mode/defp b/doom.d/snippets/racket-mode/defp new file mode 100644 index 0000000..050fa1c --- /dev/null +++ b/doom.d/snippets/racket-mode/defp @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: define function and provide it +# key: defp +# -- +(define ($1 $2) + $0) +(provide $1) \ No newline at end of file diff --git a/doom.d/snippets/racket-mode/qlang b/doom.d/snippets/racket-mode/qlang new file mode 100644 index 0000000..064f709 --- /dev/null +++ b/doom.d/snippets/racket-mode/qlang @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: racket lang br/quicklang +# key: qlang +# -- +#lang br/quicklang diff --git a/doom.d/snippets/ruby-mode/rgive b/doom.d/snippets/ruby-mode/rgive new file mode 100644 index 0000000..73525fb --- /dev/null +++ b/doom.d/snippets/ruby-mode/rgive @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: rspec Given +# key: rgiven +# -- + + +Given(/$1/) do + $0 +end \ No newline at end of file diff --git a/doom.d/snippets/ruby-mode/rthen b/doom.d/snippets/ruby-mode/rthen new file mode 100644 index 0000000..632d159 --- /dev/null +++ b/doom.d/snippets/ruby-mode/rthen @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: rspec Then +# key: rthen +# -- + + +Then(/$1/) do + $0 +end \ No newline at end of file diff --git a/doom.d/snippets/ruby-mode/rwhen b/doom.d/snippets/ruby-mode/rwhen new file mode 100644 index 0000000..af4a2d2 --- /dev/null +++ b/doom.d/snippets/ruby-mode/rwhen @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: rspec When +# key: rwhen +# -- + + +When(/$1/) do + $0 +end \ No newline at end of file diff --git a/doom.d/snippets/rust-mode/implnew b/doom.d/snippets/rust-mode/implnew new file mode 100644 index 0000000..73651f5 --- /dev/null +++ b/doom.d/snippets/rust-mode/implnew @@ -0,0 +1,8 @@ +# name: implnew +# key: implnew +# -- +impl $1 { + fn new($2) -> Self { + $1 { $0 } + } +} diff --git a/doom.d/snippets/rust-mode/mopt b/doom.d/snippets/rust-mode/mopt new file mode 100644 index 0000000..a2ed3bb --- /dev/null +++ b/doom.d/snippets/rust-mode/mopt @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: match result +# key: mres +# -- +match $1 { + Ok($2) => $3, + Err($4) => $5, +} \ No newline at end of file diff --git a/doom.d/snippets/rust-mode/test b/doom.d/snippets/rust-mode/test new file mode 100644 index 0000000..e63fb72 --- /dev/null +++ b/doom.d/snippets/rust-mode/test @@ -0,0 +1,7 @@ +# name: test +# key: tst +# -- +#[test] +fn test_$1() { + $2 +} diff --git a/doom.d/snippets/terraform-mode/tv b/doom.d/snippets/terraform-mode/tv new file mode 100644 index 0000000..fed5663 --- /dev/null +++ b/doom.d/snippets/terraform-mode/tv @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: new terraform var +# key: tv +# -- + +variable "$1" { + description = "$2" + type = $3 + default = $4 +}$0 \ No newline at end of file diff --git a/dots/.emacs-profiles.el b/dots/.emacs-profiles.el new file mode 100644 index 0000000..4785688 --- /dev/null +++ b/dots/.emacs-profiles.el @@ -0,0 +1,2 @@ +(("default" . ((user-emacs-directory . "~/Documents/Projects/doom-emacs"))) + ("personal" . ((user-emacs-directory . "~/Documents/Projects/my-emacs"))))