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

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

[elpa] externals/javaimp 81f0ed8861 3/3: Move javaimp-visit-project


From: Filipp Gunbin
Subject: [elpa] externals/javaimp 81f0ed8861 3/3: Move javaimp-visit-project
Date: Thu, 5 May 2022 12:42:15 -0400 (EDT)

branch: externals/javaimp
commit 81f0ed88610efdc62402830ec4e2292419450e80
Author: Filipp Gunbin <fgunbin@fastmail.fm>
Commit: Filipp Gunbin <fgunbin@fastmail.fm>

    Move javaimp-visit-project
---
 javaimp.el | 103 ++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 51 insertions(+), 52 deletions(-)

diff --git a/javaimp.el b/javaimp.el
index be1cba3b8a..e29509b90f 100644
--- a/javaimp.el
+++ b/javaimp.el
@@ -129,7 +129,6 @@
 
 (require 'imenu)
 
-
 ;; User options
 
 (defgroup javaimp ()
@@ -242,56 +241,6 @@ 
https://docs.gradle.org/current/userguide/java_library_plugin.html\
     (enum . "en")))
 
 
-;;;###autoload
-(defun javaimp-visit-project (file)
-  "Loads a project and its submodules from FILE.
-FILE should have a handler as per `javaimp-handler-regexp-alist'.
-Interactively, finds suitable files in this directory and parent
-directories, and offers them as completion alternatives for FILE,
-topmost first.
-
-After being processed by this command, the module tree becomes
-known to javaimp and `javaimp-add-import' may be called inside
-any module's source file."
-  (interactive
-   (let ((file-regexp (mapconcat #'car javaimp-handler-regexp-alist "\\|"))
-         (cur-dir (expand-file-name default-directory))
-         files parent)
-     (while (setq files (append (directory-files cur-dir t file-regexp) files)
-                  ;; Prevent infloop on root
-                  parent (file-name-directory (directory-file-name cur-dir))
-                  cur-dir (unless (string= parent cur-dir) parent)))
-     (list (read-file-name "Visit project from file: " nil files t))))
-  (setq file (expand-file-name file))
-  (let ((handler (or (assoc-default (file-name-nondirectory file)
-                                    javaimp-handler-regexp-alist
-                                    #'string-match)
-                     (user-error "No handler for file: %s" file))))
-    ;; Forget previous tree(s) loaded from this build file, if any.
-    ;; Additional project trees (see below) have the same file-orig,
-    ;; so there may be several here.
-    (when-let ((existing-list
-                (seq-filter (lambda (node)
-                              (equal (javaimp-module-file-orig
-                                      (javaimp-node-contents node))
-                                    file))
-                            javaimp-project-forest)))
-      (if (y-or-n-p "Forget already loaded project(s)?")
-          (setq javaimp-project-forest
-                (seq-remove (lambda (node)
-                              (memq node existing-list))
-                            javaimp-project-forest))
-        (user-error "Aborted")))
-    (let ((trees (funcall handler file)))
-      (push (car trees) javaimp-project-forest)
-      (dolist (node (cdr trees))
-        (when (y-or-n-p
-               (format "Include additional project tree rooted at %S?"
-                       (javaimp-module-id (javaimp-node-contents node))))
-          (push node javaimp-project-forest)))
-      (message "Loaded project from %s" file))))
-
-
 ;; Dependencies
 
 (defsubst javaimp--get-file-ts (file)
@@ -1028,7 +977,6 @@ after this group of defuns."
         (when names
           (string-join names "."))))))
 
-
 
 ;; Main
 
@@ -1071,6 +1019,57 @@ using Javaimp facilities.
     (remove-function (local 'add-log-current-defun-function)
                      #'javaimp-add-log-current-defun)))
 
+
+;;;###autoload
+(defun javaimp-visit-project (file)
+  "Loads a project and its submodules from FILE.
+FILE should have a handler as per `javaimp-handler-regexp-alist'.
+Interactively, finds suitable files in this directory and parent
+directories, and offers them as completion alternatives for FILE,
+topmost first.
+
+After being processed by this command, the module tree becomes
+known to javaimp and `javaimp-add-import' may be called inside
+any module's source file."
+  (interactive
+   (let ((file-regexp (mapconcat #'car javaimp-handler-regexp-alist "\\|"))
+         (cur-dir (expand-file-name default-directory))
+         files parent)
+     (while (setq files (append (directory-files cur-dir t file-regexp) files)
+                  ;; Prevent infloop on root
+                  parent (file-name-directory (directory-file-name cur-dir))
+                  cur-dir (unless (string= parent cur-dir) parent)))
+     (list (read-file-name "Visit project from file: " nil files t))))
+  (setq file (expand-file-name file))
+  (let ((handler (or (assoc-default (file-name-nondirectory file)
+                                    javaimp-handler-regexp-alist
+                                    #'string-match)
+                     (user-error "No handler for file: %s" file))))
+    ;; Forget previous tree(s) loaded from this build file, if any.
+    ;; Additional project trees (see below) have the same file-orig,
+    ;; so there may be several here.
+    (when-let ((existing-list
+                (seq-filter (lambda (node)
+                              (equal (javaimp-module-file-orig
+                                      (javaimp-node-contents node))
+                                    file))
+                            javaimp-project-forest)))
+      (if (y-or-n-p "Forget already loaded project(s)?")
+          (setq javaimp-project-forest
+                (seq-remove (lambda (node)
+                              (memq node existing-list))
+                            javaimp-project-forest))
+        (user-error "Aborted")))
+    (let ((trees (funcall handler file)))
+      (push (car trees) javaimp-project-forest)
+      (dolist (node (cdr trees))
+        (when (y-or-n-p
+               (format "Include additional project tree rooted at %S?"
+                       (javaimp-module-id (javaimp-node-contents node))))
+          (push node javaimp-project-forest)))
+      (message "Loaded project from %s" file))))
+
+
 (defun javaimp-forget-visited-projects ()
   "Forget all visited projects."
   (interactive)



reply via email to

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