Company error in the ekg-capture buffer
Gleek opened this issue · comments
The (company-capf)
command seems to error out when running in the ekg-capture buffer.
Following is the error backtrace I receive when this error happens:
Debugger entered--Lisp error: (args-out-of-range #<buffer *EKG Capture (note 33775668291)*> 26 25)
company-capf(prefix)
apply(company-capf prefix)
company-call-backend-raw(prefix)
company--force-sync(company-call-backend-raw (prefix) company-capf)
company-call-backend(prefix)
company--begin-new()
company--perform()
company-auto-begin()
The issue seems to be with the ekg--transclude-titled-note-completion
function when the ">t" is not present in the line.
Having a minor check to validate the value of begin
fixes it in my case.
Here's the updated function I use:
(defun ekg--transclude-titled-note-completion ()
"Completion function for file transclusion."
(let ((begin (save-excursion
(search-backward ">t" (line-beginning-position) t)
(+ 1 (point))))
(end (point)))
(unless (> begin end)
(list begin end
(completion-table-dynamic (lambda (_)
(mapcar (lambda (title-cons)
(cons (cdr title-cons)
(car title-cons)))
(ekg-document-titles))))
:exclusive t :exit-function #'ekg--transclude-cap-exit))))
My emacs is built from the master branch on 11th May 2023 and I'm using the latest stable ekg version (v0.3.3)
Thank you for the bug report and suggested fix! I'm not sure why company is different, but your code makes sense. I altered it slightly to clarify it and checked in a fix in the develop branch. I'm anticipating releasing the new version in the next month.