Mercurial > emacs
annotate lisp/progmodes/ada-prj.el @ 38957:113b18d8a765
Add Keywords header. From Pavel Janik.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sun, 26 Aug 2001 16:34:04 +0000 |
parents | 7a94f1c588c4 |
children | 539150b68126 |
rev | line source |
---|---|
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
1 ;;; ada-prj.el --- easy editing of project files for the ada-mode |
25901 | 2 |
34304 | 3 ;; Copyright (C) 1998, 1999 Free Software Foundation, Inc. |
25901 | 4 |
5 ;; Author: Emmanuel Briot <briot@gnat.com> | |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
6 ;; Ada Core Technologies's version: $Revision: 1.6 $ |
25901 | 7 ;; Keywords: languages, ada, project file |
8 | |
38361
d42c9135a92d
Say that the file _is_ part of Emacs.
Eli Zaretskii <eliz@gnu.org>
parents:
34304
diff
changeset
|
9 ;; This file is part of GNU Emacs. |
25901 | 10 |
38401 | 11 ;; GNU Emacs is free software; you can redistribute it and/or modify |
25901 | 12 ;; it under the terms of the GNU General Public License as published by |
13 ;; the Free Software Foundation; either version 2, or (at your option) | |
14 ;; any later version. | |
15 | |
38401 | 16 ;; GNU Emacs is distributed in the hope that it will be useful, |
25901 | 17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
38401 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
24 ;; Boston, MA 02111-1307, USA. | |
25901 | 25 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
26 ;;; Commentary: |
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
27 |
25901 | 28 ;;; This package provides a set of functions to easily edit the project |
29 ;;; files used by the ada-mode. | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
30 ;;; The only function publicly available here is `ada-customize'. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
31 ;;; See the documentation of the Ada mode for more information on the project |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
32 ;;; files. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
33 ;;; Internally, a project file is represented as a property list, with each |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
34 ;;; field of the project file matching one property of the list. |
25901 | 35 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
36 ;;; Code: |
25901 | 37 |
38 | |
39 ;; ----- Requirements ----------------------------------------------------- | |
40 | |
41 (require 'cus-edit) | |
42 | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
43 ;; ----- Buffer local variables ------------------------------------------- |
25901 | 44 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
45 (defvar ada-prj-current-values nil |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
46 "Hold the current value of the fields, This is a property list.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
47 (make-variable-buffer-local 'ada-prj-current-values) |
25901 | 48 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
49 (defvar ada-prj-default-values nil |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
50 "Hold the default value for the fields, This is a property list.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
51 (make-variable-buffer-local 'ada-prj-default-values) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
52 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
53 (defvar ada-prj-ada-buffer nil |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
54 "Indicates what Ada source file was being edited.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
55 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
56 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
57 ;; ----- Functions -------------------------------------------------------- |
25901 | 58 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
59 (defun ada-prj-new () |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
60 "Open a new project file" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
61 (interactive) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
62 (let* ((prj |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
63 (if (my-local-variable-if-set-p 'ada-prj-prj-file (current-buffer)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
64 ada-prj-prj-file |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
65 "default.adp")) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
66 (filename (read-file-name "Project file: " |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
67 (if prj "" nil) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
68 nil |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
69 nil |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
70 prj))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
71 (if (not (string= (file-name-extension filename t) ".adp")) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
72 (error "File name extension for project files must be .adp")) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
73 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
74 (ada-customize nil filename))) |
25901 | 75 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
76 (defun ada-prj-edit () |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
77 "Editing the project file associated with the current Ada buffer. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
78 If there is none, opens a new project file" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
79 (interactive) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
80 (let ((file (ada-prj-find-prj-file))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
81 (if file |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
82 (progn |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
83 (ada-reread-prj-file file) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
84 (ada-customize)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
85 (ada-prj-new)))) |
25901 | 86 |
87 (defun ada-prj-add-ada-menu () | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
88 "Add a new submenu to the Ada menu. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
89 The items are added to the menu NAME in map MAP. NAME should be the same |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
90 name as was passed to `ada-create-menu'." |
25901 | 91 (if ada-xemacs |
92 (progn | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
93 (funcall (symbol-function 'add-menu-button) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
94 '("Ada" "Project") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
95 ["Edit" ada-prj-edit t] "Associate") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
96 (funcall (symbol-function 'add-menu-button) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
97 '("Ada" "Project") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
98 ["New..." ada-prj-new t] "Associate")) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
99 (define-key (lookup-key ada-mode-map [menu-bar Ada Project]) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
100 [Edit] '("Edit current" . ada-prj-edit)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
101 (define-key (lookup-key ada-mode-map [menu-bar Ada Project]) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
102 [New] '("New" . ada-prj-new)))) |
25901 | 103 |
104 (defun ada-prj-add-keymap () | |
26227 | 105 "Add new keybindings for ada-prj." |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
106 (define-key ada-mode-map "\C-cu" 'ada-prj-edit)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
107 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
108 (defun ada-prj-initialize-values (symbol ada-buffer &optional filename) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
109 "Set SYMBOL to the property list of the project file FILENAME. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
110 If FILENAME is null, read the file associated with ADA-BUFFER. If no |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
111 project file is found, returns the default values." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
112 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
113 (let ((prj filename)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
114 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
115 (if filename |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
116 ;; If filename is given, reread if first if needed |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
117 (if (file-exists-p filename) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
118 (ada-reread-prj-file)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
119 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
120 ;; Else use the one from the current buffer |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
121 (save-excursion |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
122 (set-buffer ada-buffer) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
123 (set 'prj ada-prj-prj-file))) |
25901 | 124 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
125 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
126 (if (and prj |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
127 (not (string= prj "")) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
128 (assoc prj ada-xref-project-files)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
129 (set symbol (copy-sequence (cdr (assoc prj ada-xref-project-files)))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
130 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
131 ;; Set default values (except for the file name if this was given |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
132 ;; in the buffer |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
133 (ada-xref-set-default-prj-values symbol ada-buffer) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
134 (if (and prj (not (string= prj ""))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
135 (set symbol (plist-put (eval symbol) 'filename prj))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
136 ))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
137 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
138 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
139 (defun ada-prj-save-specific-option (field) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
140 "Returns the string to print in the project file to save FIELD. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
141 If the current value of FIELD is the default value, returns an empty string." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
142 (if (string= (plist-get ada-prj-current-values field) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
143 (plist-get ada-prj-default-values field)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
144 "" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
145 (concat (symbol-name field) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
146 "=" (plist-get ada-prj-current-values field) "\n"))) |
25901 | 147 |
148 (defun ada-prj-save () | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
149 "Save the edited project file." |
25901 | 150 (interactive) |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
151 (let ((file-name (plist-get ada-prj-current-values 'filename)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
152 output) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
153 (set 'output |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
154 (concat |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
155 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
156 ;; Save the fields that do not depend on the current buffer |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
157 ;; only if they are different from the default value |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
158 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
159 (ada-prj-save-specific-option 'comp_opt) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
160 (ada-prj-save-specific-option 'bind_opt) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
161 (ada-prj-save-specific-option 'link_opt) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
162 (ada-prj-save-specific-option 'gnatmake_opt) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
163 (ada-prj-save-specific-option 'cross_prefix) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
164 (ada-prj-save-specific-option 'remote_machine) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
165 (ada-prj-save-specific-option 'comp_cmd) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
166 (ada-prj-save-specific-option 'check_cmd) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
167 (ada-prj-save-specific-option 'make_cmd) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
168 (ada-prj-save-specific-option 'run_cmd) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
169 (ada-prj-save-specific-option 'debug_cmd) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
170 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
171 ;; Always save the fields that depend on the current buffer |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
172 (concat "main=" (plist-get ada-prj-current-values 'main) "\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
173 (concat "main_unit=" (plist-get ada-prj-current-values 'main_unit) "\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
174 (concat "build_dir=" (plist-get ada-prj-current-values 'build_dir) "\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
175 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
176 (ada-prj-set-list "casing" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
177 (plist-get ada-prj-current-values 'casing)) "\n" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
178 (ada-prj-set-list "src_dir" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
179 (plist-get ada-prj-current-values 'src_dir)) "\n" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
180 (ada-prj-set-list "obj_dir" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
181 (plist-get ada-prj-current-values 'obj_dir)) "\n" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
182 )) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
183 |
25901 | 184 (find-file file-name) |
185 (erase-buffer) | |
186 (insert output) | |
187 (save-buffer) | |
188 ;; kill the project buffer | |
189 (kill-buffer nil) | |
190 | |
191 ;; kill the editor buffer | |
192 (kill-buffer "*Customize Ada Mode*") | |
193 | |
194 ;; automatically associates the current buffer with the | |
195 ;; new project file | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
196 (set (make-local-variable 'ada-prj-prj-file) file-name) |
25901 | 197 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
198 ;; force Emacs to reread the project files |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
199 (ada-reread-prj-file file-name) |
25901 | 200 ) |
201 ) | |
202 | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
203 (defun ada-prj-load-from-file (symbol) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
204 "Load SYMBOL value from file. One item per line should be found in the file." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
205 (save-excursion |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
206 (let ((file (read-file-name "File name: " nil nil t)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
207 (buffer (current-buffer)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
208 line |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
209 list) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
210 (find-file file) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
211 (widen) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
212 (goto-char (point-min)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
213 (while (not (eobp)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
214 (set 'line (buffer-substring-no-properties |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
215 (point) (save-excursion (end-of-line) (point)))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
216 (add-to-list 'list line) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
217 (forward-line 1) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
218 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
219 (kill-buffer nil) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
220 (set-buffer buffer) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
221 (set 'ada-prj-current-values |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
222 (plist-put ada-prj-current-values |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
223 symbol |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
224 (append (plist-get ada-prj-current-values symbol) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
225 (reverse list)))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
226 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
227 (ada-prj-display-page 2) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
228 )) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
229 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
230 (defun ada-prj-subdirs-of (dir) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
231 "Returns a list of all the subdirectories of dir, recursively." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
232 (let ((subdirs (directory-files dir t "^[^.].*")) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
233 (dirlist (list dir))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
234 (while subdirs |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
235 (if (file-directory-p (car subdirs)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
236 (let ((sub (ada-prj-subdirs-of (car subdirs)))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
237 (if sub |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
238 (set 'dirlist (append sub dirlist))))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
239 (set 'subdirs (cdr subdirs))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
240 dirlist)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
241 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
242 (defun ada-prj-load-directory (field &optional file-name) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
243 "Append the content of FILE-NAME to FIELD in the current project file. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
244 If FILE-NAME is nil, ask the user for the name." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
245 (unless file-name |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
246 (set 'file-name (read-file-name "Root directory: " nil nil t))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
247 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
248 (set 'ada-prj-current-values |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
249 (plist-put ada-prj-current-values |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
250 field |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
251 (append (plist-get ada-prj-current-values field) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
252 (reverse (ada-prj-subdirs-of |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
253 (expand-file-name file-name)))))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
254 (ada-prj-display-page 2)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
255 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
256 (defun ada-prj-display-page (tab-num) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
257 "Display one of the pages available in the notebook. TAB-NUM should have |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
258 a value between 1 and the maximum number of pages. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
259 The current buffer must be the project editing buffer." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
260 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
261 (let ((inhibit-read-only t)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
262 (erase-buffer)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
263 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
264 ;; Display the tabs |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
265 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
266 (widget-insert "\n Project and Editor configuration.\n |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
267 ___________ ____________ ____________ ____________\n / ") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
268 (widget-create 'push-button :notify |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
269 (lambda (&rest dummy) (ada-prj-display-page 1)) "General") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
270 (widget-insert " \\ / ") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
271 (widget-create 'push-button :notify |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
272 (lambda (&rest dummy) (ada-prj-display-page 2)) "Paths") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
273 (widget-insert " \\ / ") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
274 (widget-create 'push-button :notify |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
275 (lambda (&rest dummy) (ada-prj-display-page 3)) "Switches") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
276 (widget-insert " \\ / ") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
277 (widget-create 'push-button :notify |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
278 (lambda (&rest dummy) (ada-prj-display-page 4)) "Ada Menu") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
279 (widget-insert " \\\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
280 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
281 ;; Display the currently selected page |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
282 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
283 (cond |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
284 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
285 ;; |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
286 ;; First page (General) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
287 ;; |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
288 ((= tab-num 1) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
289 (widget-insert "_/ \\/______________\\/______________\\/______________\\_____\n\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
290 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
291 (widget-insert "Project file name:\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
292 (widget-insert (plist-get ada-prj-current-values 'filename)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
293 (widget-insert "\n\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
294 ; (ada-prj-field 'filename "Project file name" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
295 ; "Enter the name and directory of the project |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
296 ; file. The name of the file should be the |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
297 ; name of the project itself. The extension |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
298 ; must be .adp") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
299 ; (ada-prj-field 'casing "Casing Exceptions Dictionnaries" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
300 ; "List of files that contain casing exception |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
301 ; dictionnaries. All these files contain one |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
302 ; identifier per line, with a special casing. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
303 ; The first file has the highest priority." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
304 ; t) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
305 (ada-prj-field 'main "Executable file name" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
306 "Name of the executable generated when you |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
307 compile your application. This should include |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
308 the full directory name, using ${build_dir} if |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
309 you wish.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
310 (ada-prj-field 'main_unit "File name of the main unit" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
311 "Name of the file to pass to the gnatmake command, |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
312 and that will create the executable. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
313 This should not include any directory specification.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
314 (ada-prj-field 'build_dir "Build directory" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
315 "Reference directory for relative paths in |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
316 src_dir and obj_dir below. This is also the directory |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
317 where the compilation is done.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
318 (ada-prj-field 'remote_machine "Name of the remote machine (if any)" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
319 "If you want to remotely compile, debug and |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
320 run your application, specify the name of a |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
321 remote machine here. This capability requires |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
322 the 'rsh' protocol on the remote machine.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
323 (ada-prj-field 'cross_prefix "Prefix used in for the cross tool chain" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
324 "When working on multiple cross targets, it is |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
325 most convenient to specify the prefix of the |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
326 tool chain here. For instance, on PowerPc |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
327 vxworks, you would enter 'powerpc-wrs-vxworks-'. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
328 To use JGNAT, enter 'j'.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
329 ) |
25901 | 330 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
331 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
332 ;; |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
333 ;; Second page (Paths) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
334 ;; |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
335 ((= tab-num 2) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
336 (widget-insert "_/_____________\\/ \\/______________\\/______________\\_____\n\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
337 (ada-prj-field 'src_dir "Source directories" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
338 "Enter the list of directories where your Ada |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
339 sources can be found. These directories will be |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
340 used for the cross-references and for the default |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
341 compilation commands. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
342 Note that src_dir includes both the build directory |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
343 and the standard runtime." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
344 t t |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
345 (mapconcat (lambda(x) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
346 (concat " " x)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
347 ada-xref-runtime-library-specs-path |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
348 "\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
349 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
350 (widget-insert "\n\n") |
25901 | 351 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
352 (ada-prj-field 'obj_dir "Object directories" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
353 "Enter the list of directories where the GNAT |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
354 library files (ALI files) can be found. These |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
355 files are used for cross-references and by the |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
356 gnatmake command. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
357 Note that obj_dir includes both the build directory |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
358 and the standard runtime." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
359 t t |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
360 (mapconcat (lambda(x) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
361 (concat " " x)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
362 ada-xref-runtime-library-ali-path |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
363 "\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
364 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
365 (widget-insert "\n\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
366 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
367 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
368 ;; |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
369 ;; Third page (Switches) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
370 ;; |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
371 ((= tab-num 3) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
372 (widget-insert "_/_____________\\/______________\\/ \\/______________\\_____\n\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
373 (ada-prj-field 'comp_opt "Switches for the compiler" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
374 "These switches are used in the default |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
375 compilation commands, both for compiling a |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
376 single file and rebuilding the whole project") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
377 (ada-prj-field 'bind_opt "Switches for the binder" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
378 "These switches are used in the default build |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
379 command and are passed to the binder") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
380 (ada-prj-field 'link_opt "Switches for the linker" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
381 "These switches are used in the default build |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
382 command and are passed to the linker") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
383 (ada-prj-field 'gnatmake_opt "Switches for gnatmake" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
384 "These switches are used in the default gnatmake |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
385 command.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
386 ) |
25901 | 387 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
388 ;; |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
389 ;; Fourth page |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
390 ;; |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
391 ((= tab-num 4) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
392 (widget-insert "_/_____________\\/______________\\/______________\\/ \\_____\n\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
393 (widget-insert "All the fields below can use variable substitution\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
394 (widget-insert "The syntax is ${name}, where name is the name that\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
395 (widget-insert "appears after the Help buttons in this buffer.\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
396 (widget-insert "As a special case, ${current} is replaced with the name\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
397 (widget-insert "of the file currently edited, with directory name but\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
398 (widget-insert "no extension.\n\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
399 (widget-insert |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
400 "The environment variables ADA_INCLUDE_PATH and ADA_OBJECTS_PATH\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
401 (widget-insert |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
402 "are set to ${src_dir} and ${obj_dir} before running the compilation\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
403 (widget-insert |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
404 "commands, so that you don't need to specify the -aI and -aO\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
405 (widget-insert |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
406 "switches on the command line\n\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
407 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
408 (ada-prj-field 'check_cmd |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
409 "Check syntax of a single file (menu Ada->Check File)" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
410 "This command is run to check the syntax and semantics of a file. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
411 The file name is added at the end of this command.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
412 (ada-prj-field 'comp_cmd |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
413 "Compiling a single file (menu Ada->Compile File)" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
414 "This command is run when the recompilation |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
415 of a single file is needed. The file name is |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
416 added at the end of this command.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
417 (ada-prj-field 'make_cmd "Rebuilding the whole project (menu Ada->Build)" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
418 "This command is run when you want to rebuild |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
419 your whole application. It is never issues |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
420 automatically and you will need to ask for it. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
421 If remote_machine has been set, this command |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
422 will be executed on the remote machine.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
423 (ada-prj-field 'run_cmd "Running the application (menu Ada->Run)" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
424 "This command specifies how to run the |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
425 application, including any switch you need to |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
426 specify. If remote_machine has been set, this |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
427 command will be executed on the remote host.") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
428 (ada-prj-field 'debug_cmd "Debugging the application" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
429 "Specifies how to debug the application, possibly |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
430 remotely if remote_machine has been set. We |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
431 recommend the following debuggers: |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
432 > gdb |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
433 > gdbtk |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
434 > ddd --tty -fullname -toolbar") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
435 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
436 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
437 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
438 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
439 (widget-insert "______________________________________________________________________\n\n ") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
440 (widget-create 'push-button |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
441 :notify (lambda (&rest ignore) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
442 (ada-xref-set-default-prj-values |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
443 'ada-prj-current-values ada-prj-ada-buffer) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
444 (ada-prj-display-page 1)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
445 "Reset to Default Values") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
446 (widget-insert " ") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
447 (widget-create 'push-button :notify (lambda (&rest ignore) (kill-buffer nil)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
448 "Cancel") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
449 (widget-insert " ") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
450 (widget-create 'push-button :notify (lambda (&rest ignore) (ada-prj-save)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
451 "Save") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
452 (widget-insert "\n\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
453 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
454 (widget-setup) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
455 (beginning-of-buffer) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
456 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
457 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
458 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
459 (defun ada-customize (&optional new-file filename) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
460 "Edit the project file associated with the current buffer. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
461 If there is none or NEW-FILE is non-nil, make a new one. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
462 If FILENAME is given, edit that file." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
463 (interactive) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
464 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
465 (let ((ada-buffer (current-buffer)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
466 (inhibit-read-only t)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
467 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
468 (ada-require-project-file) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
469 |
25901 | 470 (switch-to-buffer "*Customize Ada Mode*") |
471 (kill-all-local-variables) | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
472 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
473 (ada-xref-set-default-prj-values 'ada-prj-default-values ada-buffer) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
474 (ada-prj-initialize-values 'ada-prj-current-values ada-buffer filename) |
25901 | 475 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
476 (set (make-local-variable 'ada-prj-ada-buffer) ada-buffer) |
25901 | 477 |
26227 | 478 (use-local-map (copy-keymap custom-mode-map)) |
25901 | 479 (local-set-key "\C-x\C-s" 'ada-prj-save) |
480 | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
481 (make-local-variable 'widget-keymap) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
482 (define-key widget-keymap "\C-x\C-s" 'ada-prj-save) |
25901 | 483 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
484 (ada-prj-display-page 1) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
485 )) |
25901 | 486 |
487 ;; ---------------- Utilities -------------------------------- | |
488 | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
489 (defun ada-prj-set-list (string ada-dir-list) |
26227 | 490 "Join the strings in ADA-DIR-LIST into a single string. Each name is put |
491 on a separate line that begins with STRING." | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
492 (mapconcat (lambda (x) (concat string "=" (file-name-as-directory x))) |
25901 | 493 ada-dir-list "\n")) |
494 | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
495 |
25901 | 496 (defun ada-prj-get-prj-dir (&optional ada-file) |
26227 | 497 "Returns the directory/name of the project file for ADA-FILE. |
498 If ADA-FILE is nil, returns the project file for the current buffer." | |
25901 | 499 (unless ada-file |
500 (setq ada-file (buffer-file-name))) | |
501 | |
502 (save-excursion | |
503 (set-buffer (get-file-buffer ada-file)) | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
504 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
505 (let ((prj-file (ada-prj-find-prj-file t))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
506 (if (or (not prj-file) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
507 (not (file-exists-p prj-file)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
508 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
509 (setq prj-file |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
510 (concat (file-name-sans-extension ada-file) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
511 ada-project-file-extension))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
512 prj-file) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
513 )) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
514 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
515 (defun ada-prj-field-modified (widget &rest dummy) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
516 "Callback called each time the value of WIDGET is modified. Save the |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
517 change in ada-prj-current-values so that selecting another page and coming |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
518 back keeps the new value." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
519 (set 'ada-prj-current-values |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
520 (plist-put ada-prj-current-values |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
521 (widget-get widget 'prj-field) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
522 (widget-value widget)))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
523 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
524 (defun ada-prj-display-help (widget widget-modified event) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
525 "An help button in WIDGET was clicked on. The parameters are so that |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
526 this function can be used as :notify for the widget." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
527 (let ((text (widget-get widget 'prj-help))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
528 (if event |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
529 ;; If we have a mouse-event, popup a menu |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
530 (widget-choose "Help" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
531 (mapcar (lambda (a) (cons a t)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
532 (split-string text "\n")) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
533 event) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
534 ;; Else display the help string just before the next group of |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
535 ;; variables |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
536 (momentary-string-display |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
537 (concat "*****Help*****\n" text "\n**************\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
538 (save-excursion (forward-line) (beginning-of-line) (point))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
539 ))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
540 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
541 (defun ada-prj-show-value (widget widget-modified event) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
542 (let ((value (plist-get ada-prj-current-values |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
543 (widget-get widget 'prj-field))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
544 (inhibit-read-only t)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
545 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
546 ;; If the other widget is already visible, delete it |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
547 (if (widget-get widget 'prj-other-widget) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
548 (progn |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
549 (widget-delete (widget-get widget 'prj-other-widget)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
550 (widget-put widget 'prj-other-widget nil) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
551 (widget-default-value-set widget "Show Value") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
552 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
553 |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
554 ;; Else create it |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
555 (save-excursion |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
556 (mouse-set-point event) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
557 (forward-line 1) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
558 (beginning-of-line) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
559 (widget-put widget 'prj-other-widget |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
560 (widget-create 'editable-list |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
561 :entry-format "%i%d %v" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
562 :notify 'ada-prj-field-modified |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
563 :help-echo (widget-get widget 'prj-help) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
564 :value value |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
565 (list 'editable-field |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
566 :keymap widget-keymap))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
567 (widget-default-value-set widget "Hide Value") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
568 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
569 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
570 (widget-setup) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
571 )) |
25901 | 572 |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
573 (defun ada-prj-field (field text help-text &optional is-list is-paths after-text) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
574 "Create a widget to edit FIELD in the current buffer. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
575 TEXT is a short explanation of what the field means, whereas HELP-TEXT |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
576 is the text displayed when the user pressed the help button. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
577 If IS-LIST is non-nil, the field contains a list. Otherwise, it contains |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
578 a single string. |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
579 if IS-PATHS is true, some special buttons are added to load paths,... |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
580 AFTER-TEXT is inserted just after the widget." |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
581 (let ((value (plist-get ada-prj-current-values field)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
582 (inhibit-read-only t) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
583 widget) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
584 (unless value |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
585 (set 'value |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
586 (if is-list '() ""))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
587 (widget-insert text) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
588 (widget-insert ":") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
589 (move-to-column 54 t) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
590 (widget-put (widget-create 'push-button |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
591 :notify 'ada-prj-display-help |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
592 "Help") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
593 'prj-help |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
594 help-text) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
595 (widget-insert (concat " (" (symbol-name field) ")\n")) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
596 (if is-paths |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
597 (progn |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
598 (widget-create 'push-button |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
599 :notify |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
600 (list 'lambda '(&rest dummy) '(interactive) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
601 (list 'ada-prj-load-from-file |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
602 (list 'quote field))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
603 "Load From File") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
604 (widget-insert " ") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
605 (widget-create 'push-button |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
606 :notify |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
607 (list 'lambda '(&rest dummy) '(interactive) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
608 (list 'ada-prj-load-directory |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
609 (list 'quote field))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
610 "Load Recursive Directory") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
611 (widget-insert "\n ${build_dir}\n"))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
612 (set 'widget |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
613 (if is-list |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
614 (if (< (length value) 15) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
615 (widget-create 'editable-list |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
616 :entry-format "%i%d %v" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
617 :notify 'ada-prj-field-modified |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
618 :help-echo help-text |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
619 :value value |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
620 (list 'editable-field :keymap widget-keymap)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
621 (let ((w (widget-create 'push-button |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
622 :notify 'ada-prj-show-value |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
623 "Show value"))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
624 (widget-insert "\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
625 (widget-put w 'prj-field field) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
626 (widget-put w 'prj-help help-text) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
627 (widget-put w 'prj-other-widget nil) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
628 w) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
629 ) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
630 (widget-create 'editable-field |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
631 :format "%v" |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
632 :notify 'ada-prj-field-modified |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
633 :help-echo help-text |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
634 :keymap widget-keymap |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
635 value))) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
636 (widget-put widget 'prj-field field) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
637 (if after-text |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
638 (widget-insert after-text)) |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
639 (widget-insert "\n") |
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
640 )) |
25901 | 641 |
642 | |
643 ;; Set the keymap once and for all, so that the keys set by the user in his | |
644 ;; config file are not overwritten every time we open a new file. | |
645 (ada-prj-add-keymap) | |
30410
01ac16657214
Rewritten to show a tabbed-dialog.
Gerd Moellmann <gerd@gnu.org>
parents:
26227
diff
changeset
|
646 (ada-prj-add-ada-menu) |
25901 | 647 |
648 (provide 'ada-prj) | |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
649 |
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38401
diff
changeset
|
650 ;;; ada-prj.el ends here |