Closed Nephyrin closed 8 years ago
Possibly relevant: Observing rdm's output, --wait is passed to rp for the periodic reparses if and only if enable-unsaved-reparsing set.
I also hit this issue. I wonder @Andersbakken if the current implementation is correct/as intended:
(defun rtags-reparse-file (&optional buffer force)
"WAIT-REPARSING : t to wait for reparsing to finish, nil for async (no waiting)."
because the actual invocation of the external rc
command is always sync when rtags-enable-unsaved-reparsing
is enabled:
(rtags-call-rc :path file
:timeout rtags-reparse-timeout
:unsaved buffer
"--silent"
"-V" file
(if rtags-enable-unsaved-reparsing "--wait")))
thus elisp is blocked. Also I wonder @cslux about the implementation of
(defun flycheck-rtags--start (checker callback)
(let ((buffer (current-buffer)))
(rtags-diagnostics)
(funcall callback 'finished (flycheck-rtags--build-error checker buffer))))
I thought an async reparsing should be started here. And the callback should be called when the actual parsing finished and not immediately. :question:
Sorry about the long delay.
I agree. No reason to wait for the periodic reparse. I think it should be fixed now. Thanks
On Emacs 25.0.93 (git c6077bf), using settings:
The periodic reparses will constantly freeze emacs while in progress. Disabling either setting will fix it -- the issue only arises when both are enabled.
Possibly relevant: Observing rdm's output,
--wait
is passed to rp for the periodic reparses if and only if enable-unsaved-reparsing set.