]> git.eshelyaron.com Git - emacs.git/commitdiff
Simplify eglot-code-actions
authorAndrii Kolomoiets <andreyk.mad@gmail.com>
Wed, 13 May 2020 07:48:26 +0000 (10:48 +0300)
committerJoão Távora <joaotavora@gmail.com>
Sat, 30 May 2020 23:53:49 +0000 (00:53 +0100)
If no region is active, ask for code actions at point, even if there
are no diagnostics at point.

Co-authored-by: João Távora <joaotavora@gmail.com>
* eglot.el (eglot-code-actions): Simplify.

GitHub-reference: close https://github.com/joaotavora/eglot/issues/473

lisp/progmodes/eglot.el

index 8bb610bb4edd76dace0dce1df8905aec0a8dca54..4b25368d735ed8bdc5229540f0be9e02db03f2f0 100644 (file)
@@ -2563,15 +2563,13 @@ documentation.  Honour `eglot-put-doc-in-help-buffer',
    current-prefix-arg))
 
 
-(defun eglot-code-actions (&optional beg end)
-  "Get and offer to execute code actions between BEG and END."
+(defun eglot-code-actions (beg &optional end)
+  "Offer to execute code actions between BEG and END.
+Interactively, if a region is active, BEG and END are its bounds,
+else BEG is point and END is nil, which results in a request for
+code actions at point"
   (interactive
-   (let (diags)
-     (cond ((region-active-p) (list (region-beginning) (region-end)))
-           ((setq diags (flymake-diagnostics (point)))
-            (list (cl-reduce #'min (mapcar #'flymake-diagnostic-beg diags))
-                  (cl-reduce #'max (mapcar #'flymake-diagnostic-end diags))))
-           (t (list (point-min) (point-max))))))
+   (if (region-active-p) `(,(region-beginning) ,(region-end)) `(,(point) nil)))
   (unless (eglot--server-capable :codeActionProvider)
     (eglot--error "Server can't execute code actions!"))
   (let* ((server (eglot--current-server-or-lose))