emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/eglot 66a1704 22/26: Scratch/use elpa flymake (#178)


From: João Távora
Subject: [elpa] externals/eglot 66a1704 22/26: Scratch/use elpa flymake (#178)
Date: Sun, 9 Dec 2018 19:11:29 -0500 (EST)

branch: externals/eglot
commit 66a1704622228757dca70d2788ac89bd69d3a346
Author: João Távora <address@hidden>
Commit: GitHub <address@hidden>

    Scratch/use elpa flymake (#178)
    
    Use GNU ELPA's Flymake
    
    * eglot.el (Package-Requires): require Flymake 1.0.2.
    (version< emacs-version "27.0"): Remove horrible hack
    
    * Makefile (ELPADEPS): Renamed from JSONRPC.
    (%.elc): Use it.
    (eglot-check): Use it.
---
 Makefile | 13 ++++++++-----
 eglot.el | 36 +-----------------------------------
 2 files changed, 9 insertions(+), 40 deletions(-)

diff --git a/Makefile b/Makefile
index 637deb7..9f4ed1a 100644
--- a/Makefile
+++ b/Makefile
@@ -10,16 +10,19 @@ LOAD_PATH=-L .
 ELFILES := eglot.el eglot-tests.el
 ELCFILES := $(ELFILES:.el=.elc)
 
-JSONRPC ?=--eval '(package-initialize)'                                \
-          --eval '(package-refresh-contents)'                  \
-          --eval '(package-install (quote jsonrpc))'
+ELPADEPS ?=--eval '(package-initialize)'                       \
+           --eval '(package-refresh-contents)'                 \
+           --eval '(package-install (quote jsonrpc))'          \
+           --eval '(package-install                            \
+                      (cadr (assoc (quote flymake)             \
+                                   package-archive-contents)))'
 
 all: compile
 
 # Compilation
 #
 %.elc: %.el
-       $(EMACS) -Q  $(JSONRPC) $(LOAD_PATH) --batch -f batch-byte-compile $<
+       $(EMACS) -Q $(ELPADEPS) $(LOAD_PATH) --batch -f batch-byte-compile $<
 
 compile: $(ELCFILES)
 
@@ -27,7 +30,7 @@ compile: $(ELCFILES)
 #
 eglot-check: compile
        $(EMACS) -Q --batch                                             \
-               $(JSONRPC)                                              \
+               $(ELPADEPS)                                             \
                $(LOAD_PATH)                                            \
                -l eglot                                                \
                -l eglot-tests                                          \
diff --git a/eglot.el b/eglot.el
index 0286f75..4552930 100644
--- a/eglot.el
+++ b/eglot.el
@@ -7,7 +7,7 @@
 ;; Maintainer: João Távora <address@hidden>
 ;; URL: https://github.com/joaotavora/eglot
 ;; Keywords: convenience, languages
-;; Package-Requires: ((emacs "26.1") (jsonrpc "1.0.6"))
+;; Package-Requires: ((emacs "26.1") (jsonrpc "1.0.6") (flymake "1.0.2"))
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
@@ -2400,40 +2400,6 @@ If SKIP-SIGNATURE, don't try to send 
textDocument/signatureHelp."
   "Eclipse JDT breaks spec and replies with edits as arguments."
   (mapc #'eglot--apply-workspace-edit arguments))
 
-
-;; FIXME: A horrible hack of Flymake's insufficient API that must go
-;; into Emacs master, or better, 26.2
-(when (version< emacs-version "27.0")
-  (cl-defstruct (eglot--diag (:include flymake--diag)
-                             (:constructor eglot--make-diag-1))
-    data-1)
-  (defsubst eglot--make-diag (buffer beg end type text data)
-    (let ((sym (alist-get type eglot--diag-error-types-to-old-types)))
-      (eglot--make-diag-1 :buffer buffer :beg beg :end end :type sym
-                          :text text :data-1 data)))
-  (defsubst eglot--diag-data (diag)
-    (and (eglot--diag-p diag) (eglot--diag-data-1 diag)))
-  (defvar eglot--diag-error-types-to-old-types
-    '((eglot-error . :error)
-      (eglot-warning . :warning)
-      (eglot-note . :note)))
-  (advice-add
-   'flymake--highlight-line :after
-   (lambda (diag)
-     (when (eglot--diag-p diag)
-       (let ((ov (cl-find diag
-                          (overlays-at (flymake-diagnostic-beg diag))
-                          :key (lambda (ov)
-                                 (overlay-get ov 'flymake-diagnostic))))
-             (overlay-properties
-              (get (car (rassoc (flymake-diagnostic-type diag)
-                                eglot--diag-error-types-to-old-types))
-                   'flymake-overlay-control)))
-         (cl-loop for (k . v) in overlay-properties
-                  do (overlay-put ov k v)))))
-   '((name . eglot-hacking-in-some-per-diag-overlay-properties))))
-
-
 (provide 'eglot)
 ;;; eglot.el ends here
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]