Refactor +lookup/file & update :file handlers
+ Removed idris-mode's file handler. It doesn't do what I thought it did. + Fix markdown-follow-thing-at-point file handler creating empty buffer.
This commit is contained in:
parent
22bf716e43
commit
eca387d670
3 changed files with 12 additions and 29 deletions
|
@ -4,8 +4,7 @@
|
||||||
(add-hook 'idris-mode-hook #'turn-on-idris-simple-indent)
|
(add-hook 'idris-mode-hook #'turn-on-idris-simple-indent)
|
||||||
(set-repl-handler! 'idris-mode 'idris-pop-to-repl)
|
(set-repl-handler! 'idris-mode 'idris-pop-to-repl)
|
||||||
(set-lookup-handlers! 'idris-mode
|
(set-lookup-handlers! 'idris-mode
|
||||||
:documentation #'idris-docs-at-point
|
:documentation #'idris-docs-at-point)
|
||||||
:file #'idris-load-file)
|
|
||||||
(map! :localleader
|
(map! :localleader
|
||||||
:map idris-mode-map
|
:map idris-mode-map
|
||||||
"r" #'idris-load-file
|
"r" #'idris-load-file
|
||||||
|
|
|
@ -46,7 +46,9 @@ capture, the end position, and the output buffer.")
|
||||||
(set-flyspell-predicate! '(markdown-mode gfm-mode)
|
(set-flyspell-predicate! '(markdown-mode gfm-mode)
|
||||||
#'+markdown-flyspell-word-p)
|
#'+markdown-flyspell-word-p)
|
||||||
(set-lookup-handlers! '(markdown-mode gfm-mode)
|
(set-lookup-handlers! '(markdown-mode gfm-mode)
|
||||||
:file #'markdown-follow-thing-at-point)
|
;; `markdown-follow-thing-at-point' may open an external program or a
|
||||||
|
;; buffer. No good way to tell, so pretend it's async.
|
||||||
|
:file '(markdown-follow-thing-at-point :async t))
|
||||||
|
|
||||||
(setq-hook! 'markdown-mode-hook
|
(setq-hook! 'markdown-mode-hook
|
||||||
fill-nobreak-predicate (cons #'markdown-code-block-at-point-p
|
fill-nobreak-predicate (cons #'markdown-code-block-at-point-p
|
||||||
|
|
|
@ -281,34 +281,16 @@ Otherwise, falls back on `find-file-at-point'."
|
||||||
(if ffap-url-regexp "Find file or URL: " "Find file: ")
|
(if ffap-url-regexp "Find file or URL: " "Find file: ")
|
||||||
(doom-thing-at-point-or-region))))))
|
(doom-thing-at-point-or-region))))))
|
||||||
(require 'ffap)
|
(require 'ffap)
|
||||||
(cond ((not path)
|
(cond ((and path
|
||||||
(call-interactively #'find-file-at-point))
|
buffer-file-name
|
||||||
|
(file-equal-p path buffer-file-name)
|
||||||
|
(user-error "Already here")))
|
||||||
|
|
||||||
((ffap-url-p path)
|
((+lookup--jump-to :file path))
|
||||||
(find-file-at-point path))
|
|
||||||
|
|
||||||
((not (+lookup--jump-to :file path))
|
((stringp path) (find-file-at-point path))
|
||||||
(let ((fullpath (doom-path path)))
|
|
||||||
(when (and buffer-file-name (file-equal-p fullpath buffer-file-name))
|
((call-interactively #'find-file-at-point))))
|
||||||
(user-error "Already here"))
|
|
||||||
(let* ((insert-default-directory t)
|
|
||||||
(project-root (doom-project-root))
|
|
||||||
(ffap-file-finder
|
|
||||||
(cond ((not (doom-glob fullpath))
|
|
||||||
#'find-file)
|
|
||||||
((ignore-errors (file-in-directory-p fullpath project-root))
|
|
||||||
(lambda (dir)
|
|
||||||
(let* ((default-directory dir)
|
|
||||||
projectile-project-name
|
|
||||||
projectile-project-root
|
|
||||||
(projectile-project-root-cache (make-hash-table :test 'equal))
|
|
||||||
(file (projectile-completing-read "Find file: "
|
|
||||||
(projectile-current-project-files)
|
|
||||||
:initial-input path)))
|
|
||||||
(find-file (expand-file-name file (doom-project-root)))
|
|
||||||
(run-hooks 'projectile-find-file-hook))))
|
|
||||||
(#'doom-project-browse))))
|
|
||||||
(find-file-at-point path))))))
|
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue