]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/ada-mode/gnat-core.el
Merge crisp mode from Emacs repository and make it a new ELPA package.
[gnu-emacs-elpa] / packages / ada-mode / gnat-core.el
index 38dd80e101c538fb781f325a6211faea7b46851c..dad377a8c5dcf1f269e725848b776d5fa4824f83 100755 (executable)
@@ -155,8 +155,9 @@ Uses 'gnat list'. Returns new '(src-dirs prj-dirs)."
   (let ((src-dirs (ada-prj-get 'src_dir project))
        (prj-dirs (ada-prj-get 'prj_dir project)))
 
-    ;; FIXME: use a dispatching function instead, to avoid "require" here,
-    ;; which gives "warning: function not known".
+    ;; FIXME: use a dispatching function instead, with autoload, to
+    ;; avoid "require" here, which gives "warning: function not
+    ;; known".
     ;; Using 'require' at top level gives the wrong default ada-xref-tool
     (cl-ecase (ada-prj-get 'xref_tool project)
       ((gnat gnat_inspect)
@@ -165,9 +166,10 @@ Uses 'gnat list'. Returns new '(src-dirs prj-dirs)."
         (setq prj-dirs (cadr res))))
 
       (gpr_query
-       (require 'gpr-query)
-       (setq src-dirs (gpr-query-get-src-dirs src-dirs))
-       (setq prj-dirs (gpr-query-get-prj-dirs prj-dirs)))
+       (when (ada-prj-get 'gpr_file)
+        (require 'gpr-query)
+        (setq src-dirs (gpr-query-get-src-dirs src-dirs))
+        (setq prj-dirs (gpr-query-get-prj-dirs prj-dirs))))
       )
 
     (setq project (plist-put project 'src_dir (reverse src-dirs)))
@@ -224,6 +226,10 @@ src_dir will include compiler runtime."
        )
       buffer)))
 
+(defun ada-gnat-show-run-buffer ()
+  (interactive)
+  (pop-to-buffer (gnat-run-buffer)))
+
 (defun gnat-run (exec command &optional err-msg expected-status)
   "Run a gnat command line tool, as \"EXEC COMMAND\".
 EXEC must be an executable found on `exec-path'.
@@ -411,9 +417,6 @@ list."
     (save-some-buffers t)
     (add-to-list 'opts "-f")
     (with-current-buffer (gnat-run-buffer)
-      ;; FIXME: gnat-run-buffer requires a project, but we don't
-      ;; actually need one. Just use a temp buffer. Same for other
-      ;; uses of gnat-run-no-prj.
       (gnat-run-no-prj
        (append (list "stub") opts (list start-file "-cargs") switches)
        (file-name-directory body-file-name))