diff options
| author | Glenn Morris | 2013-02-06 22:23:54 -0800 |
|---|---|---|
| committer | Glenn Morris | 2013-02-06 22:23:54 -0800 |
| commit | 8c4b24b2ab14be6d33d4e979f3de6fb85eff6518 (patch) | |
| tree | 836d8403be35fe8842cdcbd72b0bf7a232257bc6 /doc | |
| parent | 925baaa91d731fba2d3d9bf16c8af29735f1999c (diff) | |
| parent | e364bc673cfb92194c7d4a034e3c65ea9137d7ff (diff) | |
| download | emacs-8c4b24b2ab14be6d33d4e979f3de6fb85eff6518.tar.gz emacs-8c4b24b2ab14be6d33d4e979f3de6fb85eff6518.zip | |
Merge from emacs-24; up to 2012-12-14T15:22:24Z!monnier@iro.umontreal.ca
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/misc/ChangeLog | 20 | ||||
| -rw-r--r-- | doc/misc/cl.texi | 5 | ||||
| -rw-r--r-- | doc/misc/ede.texi | 104 |
3 files changed, 94 insertions, 35 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index d4dde056461..05f53257fa8 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,23 @@ | |||
| 1 | 2013-02-07 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * cl.texi (Equality Predicates): Mention memql. | ||
| 4 | |||
| 5 | 2013-02-07 Eric Ludlam <zappo@gnu.org> | ||
| 6 | |||
| 7 | * doc/misc/ede.texi (Creating a project): Make ede-new doc less | ||
| 8 | specific, and only about items it supports, indicating that there | ||
| 9 | might be more. Remove refs to simple project and direct automake | ||
| 10 | from ede new. | ||
| 11 | (Simple projects): Re-write to not talk about ede-simple-project | ||
| 12 | which is deprecated, and instead use the term to mean projects | ||
| 13 | that don't do much management, just project wrapping. Add | ||
| 14 | ede-generic-project link. | ||
| 15 | (ede-generic-project): New node (bug#11441). | ||
| 16 | |||
| 17 | 2013-02-07 Glenn Morris <rgm@gnu.org> | ||
| 18 | |||
| 19 | * cl.texi (Equality Predicates): Fix eq/eql pedantry. | ||
| 20 | |||
| 1 | 2013-02-01 Glenn Morris <rgm@gnu.org> | 21 | 2013-02-01 Glenn Morris <rgm@gnu.org> |
| 2 | 22 | ||
| 3 | * calc.texi (Help Commands): Update calc-view-news description. | 23 | * calc.texi (Help Commands): Update calc-view-news description. |
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index c3657415078..8da6032d728 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi | |||
| @@ -817,8 +817,9 @@ not compare strings against vectors of integers. | |||
| 817 | Also note that the Common Lisp functions @code{member} and @code{assoc} | 817 | Also note that the Common Lisp functions @code{member} and @code{assoc} |
| 818 | use @code{eql} to compare elements, whereas Emacs Lisp follows the | 818 | use @code{eql} to compare elements, whereas Emacs Lisp follows the |
| 819 | MacLisp tradition and uses @code{equal} for these two functions. | 819 | MacLisp tradition and uses @code{equal} for these two functions. |
| 820 | In Emacs, use @code{memq} (or @code{cl-member}) and @code{assq} (or | 820 | The functions @code{cl-member} and @code{cl-assoc} use @code{eql}, |
| 821 | @code{cl-assoc}) to get functions which use @code{eql} for comparisons. | 821 | as in Common Lisp. The standard Emacs Lisp functions @code{memq} and |
| 822 | @code{assq} use @code{eq}, and the standard @code{memql} uses @code{eql}. | ||
| 822 | 823 | ||
| 823 | @node Control Structure | 824 | @node Control Structure |
| 824 | @chapter Control Structure | 825 | @chapter Control Structure |
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi index cadd815025c..ddee7e6b5d5 100644 --- a/doc/misc/ede.texi +++ b/doc/misc/ede.texi | |||
| @@ -450,9 +450,11 @@ ede-new}, or click on the @samp{Create Project} item in the | |||
| 450 | 450 | ||
| 451 | The @command{ede-new} command prompts for the type of project you | 451 | The @command{ede-new} command prompts for the type of project you |
| 452 | would like to create. Each project type has its own benefits or | 452 | would like to create. Each project type has its own benefits or |
| 453 | language specific enhancements. @ede{} supports four different | 453 | language specific enhancements. Not all projects that @ede{} supports |
| 454 | project types: @samp{Make}, @samp{Automake}, @samp{direct Automake}, | 454 | also allow creating a new project. Projects such as @code{emacs} |
| 455 | and @samp{Simple}. | 455 | or @code{linux} are designed to recognize existing projects only. |
| 456 | Project types such as @samp{Make} and @samp{Automake} do support | ||
| 457 | creating new project types with @command{ede-new}. | ||
| 456 | 458 | ||
| 457 | @itemize | 459 | @itemize |
| 458 | @item | 460 | @item |
| @@ -468,21 +470,6 @@ Unlike a @samp{Make} project, this project autogenerates a | |||
| 468 | @file{Makefile.am} file. @ede{} handles the Automake bootstrapping | 470 | @file{Makefile.am} file. @ede{} handles the Automake bootstrapping |
| 469 | routines, which import and maintain a @file{configure.am} script and | 471 | routines, which import and maintain a @file{configure.am} script and |
| 470 | other required files. | 472 | other required files. |
| 471 | |||
| 472 | @item | ||
| 473 | For the @samp{direct Automake} project type, @ede{} reads directly | ||
| 474 | from the Automake files. | ||
| 475 | |||
| 476 | You cannot create direct Automake projects with the @command{ede-new} | ||
| 477 | command. Instead, when you visit a project with existing Automake | ||
| 478 | files, @ede{} automatically detects them. | ||
| 479 | |||
| 480 | @item | ||
| 481 | The @samp{Simple} project type provides light-weight constructs for | ||
| 482 | identifying a project root and looking up files. If you already have | ||
| 483 | a non-@ede{} project infrastructure, you can use a @samp{Simple} | ||
| 484 | project to provide other Emacs packages, such as Semantic, with some | ||
| 485 | information about the project. @xref{Simple projects}. | ||
| 486 | @end itemize | 473 | @end itemize |
| 487 | 474 | ||
| 488 | A subproject is merely a project in a subdirectory of another project. | 475 | A subproject is merely a project in a subdirectory of another project. |
| @@ -795,24 +782,19 @@ able to find your SDK and compile your programs. | |||
| 795 | @node Simple projects | 782 | @node Simple projects |
| 796 | @section Simple Projects | 783 | @section Simple Projects |
| 797 | 784 | ||
| 798 | There is a wide array of Simple projects. The root for simple | 785 | There is a wide array of simple projects. In this case a simple |
| 799 | projects is the class @code{ede-simple-project}. This handles the | 786 | project is one that detects, or is directed to identify a directory as |
| 800 | infrastructure of storing a .ede file if needed. | 787 | belonging to a project, but doesn't provide many features of a typical |
| 801 | 788 | @ede{} project. Having the project however allows tools such as | |
| 802 | The class @code{ede-simple-project} is designed to be subclassed. | 789 | @semantic{} to find sources and perform project level completions. |
| 803 | Then key @ede{} methods can be overridden to provide a quick wrapper | ||
| 804 | over any project. | ||
| 805 | 790 | ||
| 806 | A second project type is @code{ede-cpp-root}. This project type is | ||
| 807 | designed to be created for a directory hierarchy full of C/C++ code. | ||
| 808 | It can be configured with minimal lisp knowledge to do header file | ||
| 809 | lookup for @semantic{}, improving code completion performance. | ||
| 810 | 791 | ||
| 811 | @menu | 792 | @menu |
| 812 | * ede-cpp-root:: This project marks the root of a C/C++ code project. | 793 | * ede-cpp-root:: This project marks the root of a C/C++ code project. |
| 813 | * ede-java-root:: This project marks the root of a Java project. | 794 | * ede-java-root:: This project marks the root of a Java project. |
| 814 | * ede-emacs:: A project for working with Emacs. | 795 | * ede-emacs:: A project for working with Emacs. |
| 815 | * ede-linux:: A project for working with Linux kernels. | 796 | * ede-linux:: A project for working with Linux kernels. |
| 797 | * ede-generic-project:: A project type for wrapping build systems with EDE. | ||
| 816 | * Custom Locate:: Customizing how to locate files in a simple project | 798 | * Custom Locate:: Customizing how to locate files in a simple project |
| 817 | @end menu | 799 | @end menu |
| 818 | 800 | ||
| @@ -1045,7 +1027,7 @@ tree, and enables EDE project mode for it. | |||
| 1045 | It pre-populates the C Preprocessor symbol map for correct parsing, | 1027 | It pre-populates the C Preprocessor symbol map for correct parsing, |
| 1046 | and has an optimized include file identification function. | 1028 | and has an optimized include file identification function. |
| 1047 | 1029 | ||
| 1048 | @node ede-linux, Custom Locate, ede-emacs, Simple projects | 1030 | @node ede-linux, ede-generic-project, ede-emacs, Simple projects |
| 1049 | @subsection ede-linux | 1031 | @subsection ede-linux |
| 1050 | 1032 | ||
| 1051 | The @code{ede-linux} project will automatically identify a Linux | 1033 | The @code{ede-linux} project will automatically identify a Linux |
| @@ -1054,7 +1036,60 @@ Kernel source tree, and enable EDE project mode for it. | |||
| 1054 | It pre-populates the C Preprocessor symbol map for reasonable parsing, | 1036 | It pre-populates the C Preprocessor symbol map for reasonable parsing, |
| 1055 | and has an optimized include file identification function. | 1037 | and has an optimized include file identification function. |
| 1056 | 1038 | ||
| 1057 | @node Custom Locate, , ede-linux, Simple projects | 1039 | @node ede-generic-project, Custom Locate, ede-linux, Simple projects |
| 1040 | @subsection ede-generic-project | ||
| 1041 | |||
| 1042 | The @code{ede-generic-project} is a project system that makes it easy | ||
| 1043 | to wrap up different kinds of build systems as an EDE project. | ||
| 1044 | Projects such as @ref{ede-emacs} require coding skills to create. | ||
| 1045 | Generic projects also require writing Emacs Lisp code, but the | ||
| 1046 | requirements are minimal. You can then use | ||
| 1047 | @command{customize-project} to configure build commands, includes, and | ||
| 1048 | other options for that project. The configuration is saved in | ||
| 1049 | @file{EDEConfig.el}. | ||
| 1050 | |||
| 1051 | Generic projects are disabled by default because they have the | ||
| 1052 | potential to interfere with other projects. To use the generic | ||
| 1053 | project sytem to start detecting projects, you need to enable it. | ||
| 1054 | |||
| 1055 | @deffn Command ede-enable-generic-projects | ||
| 1056 | Enable generic project loaders. | ||
| 1057 | |||
| 1058 | This enables generic loaders for projects that are detected using | ||
| 1059 | either a @file{Makefile}, @file{SConstruct}, or @file{CMakeLists}. | ||
| 1060 | |||
| 1061 | You do not need to use this command if you create your own generic | ||
| 1062 | project type. | ||
| 1063 | @end deffn | ||
| 1064 | |||
| 1065 | If you want to create your own generic project loader, you need to | ||
| 1066 | define your own project and target classes, and create an autoloader. | ||
| 1067 | The example for Makefiles looks like this: | ||
| 1068 | |||
| 1069 | @example | ||
| 1070 | ;;; MAKEFILE | ||
| 1071 | |||
| 1072 | (defclass ede-generic-makefile-project (ede-generic-project) | ||
| 1073 | ((buildfile :initform "Makefile") | ||
| 1074 | ) | ||
| 1075 | "Generic Project for makefiles.") | ||
| 1076 | |||
| 1077 | (defmethod ede-generic-setup-configuration ((proj ede-generic-makefile-project) config) | ||
| 1078 | "Setup a configuration for Make." | ||
| 1079 | (oset config build-command "make -k") | ||
| 1080 | (oset config debug-command "gdb ") | ||
| 1081 | ) | ||
| 1082 | |||
| 1083 | (ede-generic-new-autoloader "generic-makefile" "Make" | ||
| 1084 | "Makefile" 'ede-generic-makefile-project) | ||
| 1085 | @end example | ||
| 1086 | |||
| 1087 | This example project will detect any directory with the file | ||
| 1088 | @file{Makefile} in it as belonging to this project type. | ||
| 1089 | Customization of the project will allow you to make build and debug | ||
| 1090 | commands more precise. | ||
| 1091 | |||
| 1092 | @node Custom Locate, , ede-generic-project, Simple projects | ||
| 1058 | @subsection Custom Locate | 1093 | @subsection Custom Locate |
| 1059 | 1094 | ||
| 1060 | The various simple project styles all have one major drawback, which | 1095 | The various simple project styles all have one major drawback, which |
| @@ -1062,8 +1097,6 @@ is that the files in the project are not completely known to EDE@. | |||
| 1062 | When the EDE API is used to try and file files by some reference name | 1097 | When the EDE API is used to try and file files by some reference name |
| 1063 | in the project, then that could fail. | 1098 | in the project, then that could fail. |
| 1064 | 1099 | ||
| 1065 | @@TODO - Add ID Utils and CScope examples | ||
| 1066 | |||
| 1067 | @ede{} can therefore use some external locate commands, such as the unix | 1100 | @ede{} can therefore use some external locate commands, such as the unix |
| 1068 | ``locate'' command, or ``GNU Global''. | 1101 | ``locate'' command, or ``GNU Global''. |
| 1069 | 1102 | ||
| @@ -1093,6 +1126,11 @@ You can add your own locate tool but subclassing from | |||
| 1093 | methods. See the code in @file{ede-locate.el} for GNU Global as a | 1126 | methods. See the code in @file{ede-locate.el} for GNU Global as a |
| 1094 | simple example. | 1127 | simple example. |
| 1095 | 1128 | ||
| 1129 | @@TODO - Add ID Utils and CScope examples | ||
| 1130 | |||
| 1131 | More on idutils and cscope is in the CEDET manual, and they each have | ||
| 1132 | their own section. | ||
| 1133 | |||
| 1096 | @node Extending EDE, GNU Free Documentation License, Miscellaneous commands, Top | 1134 | @node Extending EDE, GNU Free Documentation License, Miscellaneous commands, Top |
| 1097 | @chapter Extending @ede{} | 1135 | @chapter Extending @ede{} |
| 1098 | 1136 | ||