Lisp: Enable #p completion.
parent
25669b4223
commit
dab3bfe980
|
@ -23,4 +23,28 @@
|
|||
(with-eval-after-load 'slime
|
||||
(require 'init-slime))
|
||||
|
||||
;; #p completion. See https://github.com/joaotavora/sly/issues/405.
|
||||
(with-eval-after-load 'company
|
||||
(defcustom ambrevar/complete-cl-file-prefix "./"
|
||||
"Prefix for `ambrevar/complete-cl-file'."
|
||||
:type 'string)
|
||||
|
||||
(defun ambrevar/complete-cl-file (action &rest _)
|
||||
(interactive (list 'interactive))
|
||||
(cl-case action
|
||||
(interactive (company-begin-backend #'ambrevar/complete-cl-file))
|
||||
(candidates
|
||||
(cond ((and (save-excursion (looking-back "#p" (- (point) 2)))
|
||||
(not (looking-at-p "\"")))
|
||||
(insert "\"")
|
||||
(save-excursion (insert "\""))
|
||||
(company-files 'candidates ambrevar/complete-cl-file-prefix))
|
||||
((save-excursion (looking-back "#p\"" (- (point) 3)))
|
||||
(company-files 'candidates ambrevar/complete-cl-file-prefix))))
|
||||
(prefix "")
|
||||
(t (company-files action))))
|
||||
|
||||
(add-to-list 'company-backends 'ambrevar/complete-cl-file)
|
||||
(setq company-backends (cons 'company-files (delete 'company-files company-backends))))
|
||||
|
||||
(provide 'init-lisp)
|
||||
|
|
Loading…
Reference in New Issue