From deab46e0d7e92585e3196deb0c80f2065988bcf2 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Tue, 9 Jun 2009 18:39:29 +0000 Subject: [PATCH] * ada-mode.texi (Installation, Compile commands) (Project File Overview, No project files, Set compiler options) (Use GNAT project file, Use multiple GNAT project files) (Identifier completion): Use @samp for menu items, and @kbd for key sequences. --- doc/misc/ChangeLog | 8 +++++ doc/misc/ada-mode.texi | 82 +++++++++++++++++++++--------------------- 2 files changed, 49 insertions(+), 41 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index fe048ee67d5..dee3ea17ea3 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,11 @@ +2009-06-09 Chong Yidong + + * ada-mode.texi (Installation, Compile commands) + (Project File Overview, No project files, Set compiler options) + (Use GNAT project file, Use multiple GNAT project files) + (Identifier completion): Use @samp for menu items, and @kbd for key + sequences (Bug#3504). + 2009-06-04 Daiki Ueno * gnus.texi (Security): Fix wording; add a link to epa.info. diff --git a/doc/misc/ada-mode.texi b/doc/misc/ada-mode.texi index 274bdcb1ae0..8a2f10239e4 100644 --- a/doc/misc/ada-mode.texi +++ b/doc/misc/ada-mode.texi @@ -111,7 +111,7 @@ separate distribution may be more recent. For installing the separate distribution, see the @file{README} file in the distribution. -To see what version of Ada mode you have installed, do @key{M-x +To see what version of Ada mode you have installed, do @kbd{M-x ada-mode-version}. The following files are provided with the Ada mode distribution: @@ -256,7 +256,7 @@ the GNAT compiler for simple projects (single files, or several files in a single directory). Even when no project file is used, the GUI project editor (menu -@key{Ada | Project | Edit}) shows the settings of the various project +@samp{Ada | Project | Edit}) shows the settings of the various project file variables referenced here. @menu @@ -310,7 +310,7 @@ buffer. This runs @code{run_cmd} from the current project. The execution buffer allows for interactive input/output. To modify the run command, in particular to provide or change the -command line arguments, type @key{C-u} before invoking the command. +command line arguments, type @kbd{C-u} before invoking the command. This command is not available for a cross-compilation toolchain. @@ -320,7 +320,7 @@ It is important when using these commands to understand how Build runs 'gnatmake' on the main unit. During a typical edit/compile session, this is the only command you need to invoke, which is why it -is bound to @key{C-c C-c}. It will compile all files needed by the +is bound to @kbd{C-c C-c}. It will compile all files needed by the main unit, and display compilation errors in any of them. Note that Build can be invoked from any Ada buffer; typically you will @@ -328,22 +328,22 @@ be fixing errors in files other than the main, but you don't have to switch back to the main to invoke the compiler again. Novices and students typically work on single-file Ada projects. In -this case, @key{C-c C-m} will normally be the only command needed; it +this case, @kbd{C-c C-m} will normally be the only command needed; it will build the current file, rather than the last-built main. There are three ways to change @code{main}: @enumerate @item -Invoke @key{Ada | Set main and Build}, which sets @code{main} to +Invoke @samp{Ada | Set main and Build}, which sets @code{main} to the current file. @item -Invoke @key{Ada | Project | Edit}, edit @code{main} and -@code{main}, and click @key{[save]} +Invoke @samp{Ada | Project | Edit}, edit @code{main} and +@code{main}, and click @samp{[save]} @item -Invoke @key{Ada | Project | Load}, and load a project file that specifies @code{main} +Invoke @samp{Ada | Project | Load}, and load a project file that specifies @code{main} @end enumerate @@ -440,12 +440,12 @@ This algorithm always sets @code{ada-prj-default-project-file}, even when the file does not actually exist. To change the project file before or after the first one is found, -invoke @key{Ada | Project | Load ...}. +invoke @samp{Ada | Project | Load ...}. Or, in lisp, evaluate @code{(ada-set-default-project-file "/path/file.adp")}. This sets @code{ada-prj-default-project-file}, and reads the project file. -You can also specify a GNAT project file to @key{Ada | Project | Load +You can also specify a GNAT project file to @samp{Ada | Project | Load ...} or @code{ada-set-default-project-file}. Emacs Ada mode checks the file extension; if it is @code{.gpr}, the file is treated as a GNAT project file. Any other extension is treated as an Emacs Ada mode @@ -727,7 +727,7 @@ end Hello_Pkg; Yes, this is missing the keyword @code{body}; another compiler error example. -In buffer @file{hello.adb}, invoke @key{Ada | Check file}. You should +In buffer @file{hello.adb}, invoke @samp{Ada | Check file}. You should get a @code{*compilation*} buffer containing something like (the directory paths will be different): @@ -744,7 +744,7 @@ gnatmake: "c:/Examples/Example_1/hello.adb" compilation error If you have enabled font-lock, the lines with actual errors (starting with @file{hello.adb}) are highlighted, with the file name in red. -Now type @key{C-x `} (on a PC keyboard, @key{`} is next to @key{1}). +Now type @kbd{C-x `} (on a PC keyboard, @key{`} is next to @key{1}). Or you can click the middle mouse button on the first error line. The compilation buffer scrolls to put the first error on the top line, and point is put at the place of the error in the @file{hello.adb} buffer. @@ -755,9 +755,9 @@ To fix the error, change the line to be Ada.Text_IO.Put_Line ("hello from hello.adb"); @end example -Now invoke @key{Ada | Show main}; this displays @file{Ada mode main: hello}. +Now invoke @samp{Ada | Show main}; this displays @samp{Ada mode main: hello}. -Now (in buffer @file{hello.adb}), invoke @key{Ada | Build}. You are +Now (in buffer @file{hello.adb}), invoke @samp{Ada | Build}. You are prompted to save the file (if you haven't already). Then the compilation buffer is displayed again, containing: @@ -772,7 +772,7 @@ gnatlink hello.ali -o hello.exe -g The compilation has succeeded without errors; @file{hello.exe} now exists in the same directory as @file{hello.adb}. -Now invoke @key{Ada | Run}. A @file{*run*} buffer is displayed, +Now invoke @samp{Ada | Run}. A @file{*run*} buffer is displayed, containing @example @@ -784,7 +784,7 @@ Process run finished That completes the first part of this example. Now we will compile a multi-file project. Open the file -@file{hello_2.adb}, and invoke @key{Ada | Set main and Build}. This +@file{hello_2.adb}, and invoke @samp{Ada | Set main and Build}. This finds an error in @file{hello_pkg.adb}: @example @@ -801,39 +801,39 @@ unless you use an Emacs Ada mode project file to specify the other directories; @xref{Set source search path}, or a GNAT project file; @ref{Use GNAT project file}. -Invoke @key{Ada | Show main}; this displays @file{Ada mode main: hello_2}. +Invoke @samp{Ada | Show main}; this displays @file{Ada mode main: hello_2}. -Move to the error with @key{C-x `}, and fix the error by adding @code{body}: +Move to the error with @kbd{C-x `}, and fix the error by adding @code{body}: @example package body Hello_Pkg is @end example -Now, while still in @file{hello_pkg.adb}, invoke @key{Ada | Build}. +Now, while still in @file{hello_pkg.adb}, invoke @samp{Ada | Build}. gnatmake successfully builds @file{hello_2}. This demonstrates that Emacs has remembered the main file, in the project variable @code{main}, and used it for the Build command. -Finally, again while in @file{hello_pkg.adb}, invoke @key{Ada | Run}. +Finally, again while in @file{hello_pkg.adb}, invoke @samp{Ada | Run}. The @code{*run*} buffer displays @code{Hello from hello_pkg.adb}. One final point. If you switch back to buffer @file{hello.adb}, and -invoke @key{Ada | Run}, @file{hello_2.exe} will be run. That is +invoke @samp{Ada | Run}, @file{hello_2.exe} will be run. That is because @code{main} is still set to @code{hello_2}, as you can -see when you invoke @key{Ada | Project | Edit}. +see when you invoke @samp{Ada | Project | Edit}. There are three ways to change @code{main}: @enumerate @item -Invoke @key{Ada | Set main and Build}, which sets @code{main} to +Invoke @samp{Ada | Set main and Build}, which sets @code{main} to the current file. @item -Invoke @key{Ada | Project | Edit}, edit @code{main}, and click @key{[save]} +Invoke @samp{Ada | Project | Edit}, edit @code{main}, and click @samp{[save]} @item -Invoke @key{Ada | Project | Load}, and load a project file that specifies @code{main} +Invoke @samp{Ada | Project | Load}, and load a project file that specifies @code{main} @end enumerate @@ -844,7 +844,7 @@ This example illustrates using an Emacs Ada mode project file to set a compiler option. If you have files from @file{Example_1} open in Emacs, you should -close them so you don't get confused. Use menu @key{File | Close +close them so you don't get confused. Use menu @samp{File | Close (current buffer)}. In directory @file{Example_2}, create these files: @@ -872,10 +872,10 @@ comp_opt=-gnatyt This tells the GNAT compiler to check for token spacing; in particular, there must be a space preceding a parenthesis. -In buffer @file{hello.adb}, invoke @key{Ada | Project | Load...}, and +In buffer @file{hello.adb}, invoke @samp{Ada | Project | Load...}, and select @file{Example_2/hello.adp}. -Then, again in buffer @file{hello.adb}, invoke @key{Ada | Set main and +Then, again in buffer @file{hello.adb}, invoke @samp{Ada | Set main and Build}. You should get a @code{*compilation*} buffer containing something like (the directory paths will be different): @@ -956,10 +956,10 @@ comp_opt=-I.. Note that there must be no trailing spaces. -In buffer @file{hello_3.adb}, invoke @key{Ada | Project | Load...}, and +In buffer @file{hello_3.adb}, invoke @samp{Ada | Project | Load...}, and select @file{Example_3/Other/other.adp}. -Then, again in @file{hello_3.adb}, invoke @key{Ada | Set main and +Then, again in @file{hello_3.adb}, invoke @samp{Ada | Set main and Build}. You should get a @code{*compilation*} buffer containing something like (the directory paths will be different): @@ -976,7 +976,7 @@ Compare the @code{-cargs} option to the compiler output in @ref{Set compiler options}; this shows that @file{other.adp} is being used to set the compiler options. -Move to the error with @key{C-x `}. Ada mode searches the list of +Move to the error with @kbd{C-x `}. Ada mode searches the list of directories given by @code{src_dir} for the file mentioned in the compiler error message. @@ -1039,10 +1039,10 @@ Project Hello_4 is end Hello_4; @end example -In buffer @file{hello_4.adb}, invoke @key{Ada | Project | Load...}, and +In buffer @file{hello_4.adb}, invoke @samp{Ada | Project | Load...}, and select @file{Example_4/Gnat_Project/hello_4.gpr}. -Then, again in @file{hello_4.adb}, invoke @key{Ada | Set main and +Then, again in @file{hello_4.adb}, invoke @samp{Ada | Set main and Build}. You should get a @code{*compilation*} buffer containing something like (the directory paths will be different): @@ -1106,10 +1106,10 @@ Project Hello_5 is end Hello_5; @end example -In buffer @file{hello_5.adb}, invoke @key{Ada | Project | Load...}, and +In buffer @file{hello_5.adb}, invoke @samp{Ada | Project | Load...}, and select @file{Example_5/hello_5.adp}. -Then, again in @file{hello_5.adb}, invoke @key{Ada | Set main and +Then, again in @file{hello_5.adb}, invoke @samp{Ada | Set main and Build}. You should get a @code{*compilation*} buffer containing something like (the directory paths will be different): @@ -1122,7 +1122,7 @@ hello_pkg.adb:2:08: keyword "body" expected here [see file name] gnatmake: "c:\examples\example_4\hello_pkg.adb" compilation error @end example -Now type @key{C-x `}. @file{Example_4/hello_pkg.adb} is shown, +Now type @kbd{C-x `}. @file{Example_4/hello_pkg.adb} is shown, demonstrating that @file{hello_5.gpr} and @file{hello_4.gpr} are being used to set the compilation search path. @@ -1196,17 +1196,17 @@ are the only words starting with @samp{my} in any of the opened files, then you will have this scenario: @example -You type: my@key{M-/} +You type: my@kbd{M-/} Emacs inserts: @samp{my_identifier} -If you press @key{M-/} once again, Emacs replaces @samp{my_identifier} with +If you press @kbd{M-/} once again, Emacs replaces @samp{my_identifier} with @samp{my_subprogram}. -Pressing @key{M-/} once more will bring you back to @samp{my_identifier}. +Pressing @kbd{M-/} once more will bring you back to @samp{my_identifier}. @end example This is a very fast way to do completion, and the casing of words will also be respected. -The second method (@key{C-TAB}) is specific to Ada mode and the GNAT +The second method (@kbd{C-@key{TAB}}) is specific to Ada mode and the GNAT compiler. Emacs will search the cross-information for possible completions. -- 2.39.2