General refactors & comment revision

This commit is contained in:
Henrik Lissner 2019-12-19 14:49:17 -05:00
parent e3a1b0bbe3
commit a999a0ddd6
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
5 changed files with 41 additions and 23 deletions

View file

@ -93,6 +93,7 @@ Accepts the same arguments as `message'."
ARGS is a list of the last N arguments to pass to FUN. The result is a new
function which does the same as FUN, except that the last N arguments are fixed
at the values with which this function was called."
(declare (pure t) (side-effect-free t))
(lambda (&rest pre-args)
(apply fn (append pre-args args))))
@ -104,7 +105,7 @@ at the values with which this function was called."
"Expands to (lambda () (interactive) ,@body).
A factory for quickly producing interaction commands, particularly for keybinds
or aliases."
(declare (doc-string 1))
(declare (doc-string 1) (pure t) (side-effect-free t))
`(lambda () (interactive) ,@body))
(defalias 'lambda! 'λ!)
@ -112,7 +113,7 @@ or aliases."
"Expands to a command that interactively calls COMMAND with prefix ARG.
A factory for quickly producing interactive, prefixed commands for keybinds or
aliases."
(declare (doc-string 1))
(declare (doc-string 1) (pure t) (side-effect-free t))
(lambda () (interactive)
(let ((current-prefix-arg arg))
(call-interactively command))))
@ -419,10 +420,9 @@ DOCSTRING and BODY are as in `defun'.
where-alist))
`(progn
(defun ,symbol ,arglist ,docstring ,@body)
,(when where-alist
`(dolist (targets (list ,@(nreverse where-alist)))
(dolist (targets (list ,@(nreverse where-alist)))
(dolist (target (cdr targets))
(advice-add target (car targets) #',symbol)))))))
(advice-add target (car targets) #',symbol))))))
(provide 'core-lib)
;;; core-lib.el ends here

View file

@ -44,6 +44,21 @@ Emacs.")
:config
(projectile-mode +1)
;; Projectile runs four functions to determine the root (in this order):
;;
;; + `projectile-root-local' -> consults the `projectile-project-root'
;; variable for an explicit path.
;; + `projectile-root-bottom-up' -> consults
;; `projectile-project-root-files-bottom-up'; searches from / to your
;; current directory for certain files (including .project and .git)
;; + `projectile-root-top-down' -> consults `projectile-project-root-files';
;; searches from the current directory down to / for certain project
;; markers, like package.json, setup.py, or Cargo.toml
;; + `projectile-root-top-down-recurring' -> consults
;; `projectile-project-root-files-top-down-recurring'; searches from the
;; current directory down to / for a directory that has .svn or Makefile but
;; doesn't have a parent with one of those files.
;;
;; In the interest of performance, we reduce the number of project root marker
;; files/directories projectile searches for when resolving the project root.
(setq projectile-project-root-files-bottom-up

View file

@ -320,7 +320,8 @@ treat Emacs as a non-application window."
;; always avoid GUI
(setq use-dialog-box nil)
;; Don't display floating tooltips; display their contents in the echo-area.
(if (bound-and-true-p tooltip-mode) (tooltip-mode -1))
(when (bound-and-true-p tooltip-mode)
(tooltip-mode -1))
;; native linux tooltips are ugly
(when IS-LINUX
(setq x-gtk-use-system-tooltips nil))

View file

@ -238,17 +238,19 @@ If prefix ARG is set, prompt for a directory to search from."
"Conduct a text search in the current project root.
If prefix ARG is set, prompt for a known project to search from."
(interactive "P")
(let ((default-directory
(let* ((disabled-command-function nil)
(default-directory
(if arg
(if-let (projects (projectile-relevant-known-projects))
(completing-read "Search project: " projects
nil t nil nil (doom-project-root))
(user-error "There are no known projects"))
default-directory)))
(call-interactively
default-directory))
(this-command
(cond ((featurep! :completion ivy) #'+ivy/project-search)
((featurep! :completion helm) #'+helm/project-search)
(#'projectile-grep)))))
(#'projectile-ripgrep))))
(call-interactively this-command)))
;;;###autoload
(defun +default/search-other-project ()

View file

@ -9,7 +9,7 @@
;; other windows just to pop up one tiny window).
;; 2. Forcing plugins to use `display-buffer' and `pop-to-buffer' instead of
;; `switch-to-buffer' (which is unaffected by `display-buffer-alist', which
;; this module heavily relies on).
;; we must rely on, heavily).
;; 3. Closing popups (temporarily) before functions that are highly destructive
;; to the illusion of popup control get run (with the use of the
;; `save-popups!' macro).
@ -206,9 +206,9 @@ the command buffer."
(defadvice! +popup--helm-elisp--persistent-help-a (candidate _fun &optional _name)
:before #'helm-elisp--persistent-help
(let (win)
(when (and (helm-attr 'help-running-p)
(and (helm-attr 'help-running-p)
(string= candidate (helm-attr 'help-current-symbol))
(setq win (get-buffer-window (get-buffer (help-buffer)))))
(setq win (get-buffer-window (get-buffer (help-buffer))))
(delete-window win)))))