X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/4e171a5b7e29031a2d40db14f05e7a945d8b08a5..23a624ca1d40fa9cefd7229ac6152b79278a6517:/packages/ada-mode/gpr-mode.el diff --git a/packages/ada-mode/gpr-mode.el b/packages/ada-mode/gpr-mode.el old mode 100755 new mode 100644 index cd9ddd640..798964a6d --- a/packages/ada-mode/gpr-mode.el +++ b/packages/ada-mode/gpr-mode.el @@ -36,6 +36,7 @@ ;; we reuse several ada-mode functions (require 'ada-mode) +(require 'cl-lib) (defvar gpr-mode-map (let ((map (make-sparse-keymap))) @@ -77,8 +78,9 @@ ["------" nil nil] ["Find and select project ..." ada-build-prompt-select-prj-file t] ["Select project ..." ada-prj-select t] - ["Set as current project" gpr-set-as-project t] + ["Parse and select current file" gpr-set-as-project t] ["Show current project" ada-prj-show t] + ["Show project search path" ada-prj-show-path t] ["Next compilation error" next-error t] ["Show secondary error" ada-show-secondary-error t] ["Show last parse error" gpr-show-parse-error t] @@ -208,6 +210,13 @@ of the package or project point is in or just after, or nil.") (defun gpr-set-as-project (&optional file) "Set FILE (default current buffer file) as Emacs project file." (interactive) + (save-some-buffers t) + ;; Kill sessions to catch changed env vars + ;; FIXME: need dispatching kill single session + (cl-ecase ada-xref-tool + (gnat_xref nil) + (gpr_query (gpr-query-kill-all-sessions)) + ) (ada-parse-prj-file (or file (buffer-file-name))) (ada-select-prj-file (or file (buffer-file-name)))) @@ -237,7 +246,7 @@ of the package or project point is in or just after, or nil.") ((?\_ . "w")))) (gpr-set-ff-special-constructs) - (setq ff-search-directories 'ada-project-search-path) + (setq ff-search-directories 'compilation-search-path);; includes project search path (set (make-local-variable 'add-log-current-defun-function) 'gpr-add-log-current-function)