(defun gk-roam-insert-file ()
"Insert a gk-roam file at point"
(interactive)
(let* ((filenames (directory-files gk-roam-directory nil (rx (+ (in num)) "-" (+ anychar) ".org" eow)))
(filename (completing-read "Choose a file: " filenames nil t))
(file (concat gk-roam-directory filename)))
(insert (gk-roam--format-link file))
(gk-roam-update-reference file)))
如上代码:
(insert (gk-roam--format-link file))
会在当前光标下插入’file’的文件链接。
(gk-roam-update-reference file)
会启动一个rg进程搜索目录下所有引用了‘file’的文件链接的条目,处理后插入 ‘file’ 的底部。
现在的问题的:刚刚被插入的文件链接,无法被搜索到并插入到文件中。
我猜测的原因是:因为在同一个函数中,插入操作和rg进程搜索间隔的时间太短了。所以我想,延迟更新reference函数的执行应该可以解决问题。
不知我的理解是否正确,不知道有没有好的解决方案?烦请大佬赐教!