diff --git a/core/autoload/debug.el b/core/autoload/debug.el index cfe956e55..f4676ac9a 100644 --- a/core/autoload/debug.el +++ b/core/autoload/debug.el @@ -50,7 +50,9 @@ ready to be pasted in a bug report on github." (or (cl-loop with cat = nil for key being the hash-keys of doom-modules if (or (not cat) (not (eq cat (car key)))) - do (setq cat (car key)) and collect cat + do (setq cat (car key)) + and collect cat + and collect (cdr key) else collect (let ((flags (doom-module-get cat (cdr key) :flags))) (if flags diff --git a/core/autoload/projects.el b/core/autoload/projects.el index 6662b9863..bc1c911b0 100644 --- a/core/autoload/projects.el +++ b/core/autoload/projects.el @@ -62,7 +62,7 @@ they are absolute." "Fuzzy-find a file under DIR." (without-project-cache! (let* ((default-directory (file-truename dir)) - (projectile-project-root default-directory)) + projectile-project-root) (call-interactively ;; completion modules may remap this command (or (command-remapping #'projectile-find-file) diff --git a/modules/completion/ivy/autoload/ivy.el b/modules/completion/ivy/autoload/ivy.el index 331b52b42..cac15e279 100644 --- a/modules/completion/ivy/autoload/ivy.el +++ b/modules/completion/ivy/autoload/ivy.el @@ -341,7 +341,7 @@ ones." ;;;###autoload (autoload '+ivy/grep "completion/ivy/autoload/ivy") ;;;###autoload (autoload '+ivy/grep-from-cwd "completion/ivy/autoload/ivy") -(dolist (engine (cl-remove-duplicates +ivy-project-search-engines :from-end t)) +(dolist (engine `(,@(cl-remove-duplicates +ivy-project-search-engines :from-end t) grep)) (defalias (intern (format "+ivy/%s" engine)) (lambda (all-files-p &optional query directory) (interactive "P") diff --git a/modules/feature/evil/autoload/folds.el b/modules/feature/evil/autoload/folds.el index 2de7bc0c5..cbbf53009 100644 --- a/modules/feature/evil/autoload/folds.el +++ b/modules/feature/evil/autoload/folds.el @@ -164,6 +164,8 @@ Otherwise, jump to the matching delimiter with `evilmi-jump-items'." (call-interactively (cond ((derived-mode-p 'magit-mode) #'magit-section-toggle) + ((derived-mode-p 'deadgrep-mode) + #'deadgrep-toggle-file-results) ((+evil-from-eol (invisible-p (point))) #'+evil/fold-toggle) (#'evilmi-jump-items))))) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index f9b4e31b0..ff0bcbd0c 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -16,6 +16,7 @@ (set-lookup-handlers! 'clojure-mode :definition #'cider-browse-ns-find-at-point :documentation #'cider-browse-ns-doc-at-point) + (add-hook 'cider-mode-hook #'eldoc-mode) :config (setq nrepl-log-messages nil nrepl-hide-special-buffers t @@ -27,55 +28,57 @@ cider-repl-use-pretty-printing t cider-repl-wrap-history nil cider-repl-history-display-duplicates nil + cider-repl-history-file (concat doom-cache-dir "cider-repl-history") cider-stacktrace-default-filters '(tooling dup) cider-repl-use-clojure-font-lock t) ;; TODO: Add mode-local labels when general support is in. - (map! :map cider-mode-map - :localleader - :n "'" #'cider-jack-in - :n "\"" #'cider-jack-in-clojurescript - ;; eval - (:prefix "e" - :n "d" #'cider-eval-defun-at-point - :n "D" #'cider-insert-defun-in-repl - :n "e" #'cider-eval-last-sexp - :n "E" #'cider-insert-last-sexp-in-repl - :n "r" #'cider-eval-region - :n "R" #'cider-insert-region-in-repl - :n "u" #'cider-undef) - ;; go/jump - (:prefix "g" - :n "b" #'cider-pop-back - :n "g" #'cider-find-var - :n "n" #'cider-find-ns) - ;; help - (:prefix "h" - :n "n" 'cider-find-ns - :n "a" 'cider-apropos - :n "d" 'cider-doc - :n "g" 'cider-grimoire-web - :n "j" 'cider-javadoc) - ;; inspect - (:prefix "i" - :n "i" 'cider-inspect - :n "r" 'cider-inspect-last-result) - ;; macro - (:prefix "m" - :n "e" 'cider-macroexpand-1 - :n "E" 'cider-macroexpand-al) - ;; namespace - (:prefix "n" - :n "n" 'cider-browse-ns - :n "N" 'cider-browse-ns-all) - ;; repl - (:prefix "r" - :n "n" 'cider-repl-set-ns - :n "q" 'cider-quit - :n "r" 'cider-refresh - :n "R" 'cider-restart - :n "B" #'cider-switch-to-repl-buffer - :n "c" #'cider-repl-clear-buffer)) + (map! :localleader + (:map clojure-mode-map + :n "'" #'cider-jack-in + :n "\"" #'cider-jack-in-clojurescript) + (:map cider-mode-map + ;; eval + (:prefix "e" + :n "d" #'cider-eval-defun-at-point + :n "D" #'cider-insert-defun-in-repl + :n "e" #'cider-eval-last-sexp + :n "E" #'cider-insert-last-sexp-in-repl + :n "r" #'cider-eval-region + :n "R" #'cider-insert-region-in-repl + :n "u" #'cider-undef) + ;; go/jump + (:prefix "g" + :n "b" #'cider-pop-back + :n "g" #'cider-find-var + :n "n" #'cider-find-ns) + ;; help + (:prefix "h" + :n "n" 'cider-find-ns + :n "a" 'cider-apropos + :n "d" 'cider-doc + :n "g" 'cider-grimoire-web + :n "j" 'cider-javadoc) + ;; inspect + (:prefix "i" + :n "i" 'cider-inspect + :n "r" 'cider-inspect-last-result) + ;; macro + (:prefix "m" + :n "e" 'cider-macroexpand-1 + :n "E" 'cider-macroexpand-al) + ;; namespace + (:prefix "n" + :n "n" 'cider-browse-ns + :n "N" 'cider-browse-ns-all) + ;; repl + (:prefix "r" + :n "n" 'cider-repl-set-ns + :n "q" 'cider-quit + :n "r" 'cider-refresh + :n "R" 'cider-restart + :n "B" #'cider-switch-to-repl-buffer + :n "c" #'cider-repl-clear-buffer))) (when (featurep! :feature evil +everywhere) (add-hook 'cider-repl-mode-hook #'evil-normalize-keymaps))) diff --git a/modules/lang/common-lisp/config.el b/modules/lang/common-lisp/config.el index c844bc6e1..ab9dd2fdf 100644 --- a/modules/lang/common-lisp/config.el +++ b/modules/lang/common-lisp/config.el @@ -3,7 +3,8 @@ (add-hook 'lisp-mode-hook #'rainbow-delimiters-mode) (after! sly - (setq inferior-lisp-program "sbcl") + (setq inferior-lisp-program "sbcl" + sly-mrepl-history-file-name (concat doom-cache-dir "sly-mrepl-history")) (set-popup-rules! '(("^\\*sly-mrepl" :vslot 2 :quit nil :ttl nil) diff --git a/modules/lang/coq/README.org b/modules/lang/coq/README.org index 680555966..57459aa7e 100644 --- a/modules/lang/coq/README.org +++ b/modules/lang/coq/README.org @@ -1,3 +1,6 @@ #+TITLE: :lang coq -This module adds [[https://coq.inria.fr][coq]] support, powered by [[https://proofgeneral.github.io][Proof General]], with code completion via [[https://github.com/cpitclaudel/company-coq][company-coq]]. +This module adds [[https://coq.inria.fr][coq]] support, powered by [[https://proofgeneral.github.io][Proof General]]. + ++ Code completion ([[https://github.com/cpitclaudel/company-coq][company-coq]]) ++ [[https://github.com/hlissner/emacs-snippets/tree/master/coq-mode][Snippets]] diff --git a/modules/lang/coq/config.el b/modules/lang/coq/config.el index 1ff5cc560..eebd75636 100644 --- a/modules/lang/coq/config.el +++ b/modules/lang/coq/config.el @@ -3,6 +3,8 @@ ;; `coq' (setq proof-electric-terminator-enable t) +(setq coq-mode-abbrev-table '()) + (after! company-coq (set-lookup-handlers! 'company-coq-mode :definition #'company-coq-jump-to-definition diff --git a/modules/lang/go/README.org b/modules/lang/go/README.org index 3447c530e..827d0ce25 100644 --- a/modules/lang/go/README.org +++ b/modules/lang/go/README.org @@ -51,7 +51,7 @@ This module requires a valid ~GOPATH~, and the following Go packages: export GOPATH=~/work/go go get -u github.com/motemen/gore -go get -u github.com/nsf/gocode +go get -u github.com/mdempsky/gocode go get -u golang.org/x/tools/cmd/godoc go get -u golang.org/x/tools/cmd/goimports go get -u golang.org/x/tools/cmd/gorename diff --git a/modules/lang/haskell/+intero.el b/modules/lang/haskell/+intero.el index e1985fc23..8d796726d 100644 --- a/modules/lang/haskell/+intero.el +++ b/modules/lang/haskell/+intero.el @@ -15,6 +15,7 @@ This is necessary because `intero-mode' doesn't do its own error checks." :config (setq haskell-compile-cabal-build-command "stack build --fast") (set-lookup-handlers! 'intero-mode :definition #'intero-goto-definition) + (set-company-backend! 'intero-mode 'intero-company) (when (featurep! :feature syntax-checker) (flycheck-add-next-checker 'intero '(warning . haskell-hlint))) diff --git a/modules/lang/javascript/autoload.el b/modules/lang/javascript/autoload.el index 00bf9d692..260767c10 100644 --- a/modules/lang/javascript/autoload.el +++ b/modules/lang/javascript/autoload.el @@ -117,4 +117,5 @@ prioritize project-local packages over global ones." (or tide-project-root (or (locate-dominating-file default-directory "tsconfig.json") (locate-dominating-file default-directory "jsconfig.json")) - (doom-project-root))) + (or (doom-project-root) + default-directory))) diff --git a/modules/lang/latex/config.el b/modules/lang/latex/config.el index aeaebf900..b6dbab64a 100644 --- a/modules/lang/latex/config.el +++ b/modules/lang/latex/config.el @@ -11,7 +11,7 @@ enabling unicode symbols in math regions. This requires the unicode-math latex package to be installed.") -(defconst +latex-viewers `(skim zathura okular pdf-tools) +(defvar +latex-viewers `(skim zathura okular pdf-tools) "A list of enabled latex viewers to use, in this order. If they don't exist, they will be ignored. Recognized viewers are skim, zathura, okular and pdf-tools. diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index eb98fe121..aad01f167 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -52,6 +52,17 @@ :after org-agenda :config (evil-org-agenda-set-keys))) +(def-package! org-pdfview + :when (featurep! :tools pdf) + :commands (org-pdfview-open) + :init + (after! org + (delete '("\\.pdf\\'" . default) org-file-apps) + ;; org links to pdf files are opened in pdf-view-mode + (add-to-list 'org-file-apps '("\\.pdf\\'" . (lambda (_file link) (org-pdfview-open link)))) + ;; support for links to specific pages + (add-to-list 'org-file-apps '("\\.pdf::\\([[:digit:]]+\\)\\'" . (lambda (_file link) (org-pdfview-open link)))))) + ;; ;; Bootstrap diff --git a/modules/lang/org/packages.el b/modules/lang/org/packages.el index 2bb2260fa..c3d5abedd 100644 --- a/modules/lang/org/packages.el +++ b/modules/lang/org/packages.el @@ -11,6 +11,9 @@ (when (featurep! :feature evil) (package! evil-org)) +(when (featurep! :tools pdf) + (package! org-pdfview)) + (when (featurep! +attach) (package! org-download)) diff --git a/modules/lang/purescript/config.el b/modules/lang/purescript/config.el index 686ec691b..4372a8743 100644 --- a/modules/lang/purescript/config.el +++ b/modules/lang/purescript/config.el @@ -3,7 +3,10 @@ (after! purescript-mode (add-hook! 'purescript-mode-hook #'(purescript-indentation-mode - rainbow-delimiters-mode))) + rainbow-delimiters-mode)) + (set-lookup-handlers! 'purescript-mode + :definition #'psc-ide-goto-definition + :documentation #'purescript-pursuit)) ;; (def-package! flycheck-purescript diff --git a/modules/ui/doom-dashboard/config.el b/modules/ui/doom-dashboard/config.el index a309d3501..c53a018f6 100644 --- a/modules/ui/doom-dashboard/config.el +++ b/modules/ui/doom-dashboard/config.el @@ -196,8 +196,6 @@ PLIST can have the following properties: (add-hook 'window-size-change-functions #'+doom-dashboard|resize) (add-hook 'kill-buffer-query-functions #'+doom-dashboard|reload-on-kill) (add-hook 'doom-enter-buffer-hook #'+doom-dashboard|reload-on-kill) - (unless (daemonp) - (add-hook 'after-make-frame-functions #'+doom-dashboard|make-frame)) ;; `persp-mode' integration: update `default-directory' when switching (add-hook 'persp-created-functions #'+doom-dashboard|record-project) (add-hook 'persp-activated-functions #'+doom-dashboard|detect-project) @@ -220,11 +218,6 @@ If this is the dashboard buffer, reload the dashboard." (let (+doom-dashboard-inhibit-refresh) (ignore-errors (+doom-dashboard-reload)))))) -(defun +doom-dashboard|make-frame (frame) - "Reload the dashboard after a brief pause. This is necessary for new frames, -whose dimensions may not be fully initialized by the time this is run." - (run-with-timer 0.1 nil #'+doom-dashboard/open frame)) - (defun +doom-dashboard|resize (&rest _) "Recenter the dashboard, and reset its margins and fringes." (let ((windows (get-buffer-window-list (doom-fallback-buffer) nil t))) diff --git a/modules/ui/pretty-code/autoload.el b/modules/ui/pretty-code/autoload.el index 22bb3536b..7d8ef4614 100644 --- a/modules/ui/pretty-code/autoload.el +++ b/modules/ui/pretty-code/autoload.el @@ -88,19 +88,18 @@ Pretty symbols can be unset for emacs-lisp-mode with: (set-pretty-symbols! 'emacs-lisp-mode nil)" (declare (indent defun)) - (dolist (mode (doom-enlist modes)) - (if (null (car-safe rest)) - (delq (assq mode +pretty-code-symbols-alist) - +pretty-code-symbols-alist) - (let (results merge key) - (while rest - (setq key (pop rest)) - (pcase key - (:merge (setq merge (pop rest))) - (:alist (setq results (append (pop rest) results))) - (_ - (when-let* ((char (plist-get +pretty-code-symbols key))) - (push (cons (pop rest) char) results))))) + (if (null (car-safe rest)) + (delq (assq mode +pretty-code-symbols-alist) + +pretty-code-symbols-alist) + (let (results merge key) + (while rest + (pcase (setq key (pop rest)) + (:merge (setq merge (pop rest))) + (:alist (setq results (append (pop rest) results))) + (_ + (when-let* ((char (plist-get +pretty-code-symbols key))) + (push (cons (pop rest) char) results))))) + (dolist (mode (doom-enlist modes)) (unless merge (delq (assq mode +pretty-code-symbols-alist) +pretty-code-symbols-alist))