]> git.eshelyaron.com Git - sweep.git/commitdiff
ADDED: make flymake optionally complain about implicit autoloads
authorEshel Yaron <me@eshelyaron.com>
Sat, 26 Nov 2022 14:10:04 +0000 (16:10 +0200)
committerEshel Yaron <me@eshelyaron.com>
Sat, 26 Nov 2022 14:10:04 +0000 (16:10 +0200)
* sweeprolog.el (sweeprolog-note-implicit-autoloads): new user-option.
(sweeprolog-analyze-fragment-flymake): use it.
* README.org ("Managing Dependencies"): mention it.

README.org
sweeprolog.el

index 2e29becc621b6515312fa4a24dcb112f3cceaf41..c85916af60827df3e388d38eabb0eab7fbae8939 100644 (file)
@@ -1157,6 +1157,13 @@ sweeprolog-update-dependencies~ bound to ~C-c C-u~.  This command
 analyzes the current buffer and adds or updates ~autoload/2~ and
 ~use_module/2~ as needed.
 
+#+VINDEX: sweeprolog-note-implicit-autoloads
+By default, when ~flymake~ integration is enabled (see [[#diagnostics][Examining
+diagnostics]]), calls to implicitly autoloaded predicates are detected
+and marked as note-level diagnostics.  To inhibit ~flymake~ from
+diagnosing implicit autoloads, customize the user option
+~sweeprolog-note-implicit-autoloads~ to nil.
+
 * Prolog Help
 :PROPERTIES:
 :CUSTOM_ID: prolog-help
index 4476f0feabeeb3f4b9d42b4788c4da3f3500f6a2..b726e66eb2b5909541c9a09876aba38a09f0b9c8 100644 (file)
@@ -295,6 +295,12 @@ inserted to the input history in `sweeprolog-top-level-mode' buffers."
   :type 'boolean
   :group 'sweeprolog)
 
+(defcustom sweeprolog-note-implicit-autoloads t
+  "If non-nil, `flymake' notes implicitly autoload predicates."
+  :package-version '((sweeprolog "0.9.2"))
+  :type 'boolean
+  :group 'sweeprolog)
+
 (defcustom sweeprolog-enable-eldoc t
   "If non-nil, enable `eldoc' suport in `sweeprolog-mode' buffers."
   :package-version '((sweeprolog "0.4.7"))
@@ -2062,6 +2068,12 @@ resulting list even when found in the current clause."
                 (`("goal" "undefined" ,f ,a)
                  (cons :warning
                        (format "Undefined predicate %s/%s" f a)))
+                (`("goal" ("autoload" . ,file) . ,_)
+                 (when sweeprolog-note-implicit-autoloads
+                   (cons :note
+                         (substitute-command-keys
+                          (format "Implicit autoload from %s, use \\[sweeprolog-update-dependencies] to add dependecy directive"
+                                  file)))))
                 ("instantiation_error"
                  (cons :warning "Instantiation error"))
                 ("type_error"