summaryrefslogtreecommitdiff
path: root/lisp/cedet/srecode/table.el
diff options
context:
space:
mode:
authorEric M. Ludlam <zappo@gnu.org>2010-09-21 18:11:23 -0400
committerChong Yidong <cyd@stupidchicken.com>2010-09-21 18:11:23 -0400
commitb9749554532876da8bc15e10bc3fb8bd8c0f32ea (patch)
tree0d00b9800e8eb95e8466ab322fde1879e378fddb /lisp/cedet/srecode/table.el
parentfbb3da770f233a8e0cf99d5f053b0c31cbbc8db4 (diff)
downloademacs-b9749554532876da8bc15e10bc3fb8bd8c0f32ea.tar.gz
Synch SRecode to CEDET 1.0.
* lisp/cedet/cedet.el (cedet-version): * lisp/cedet/srecode.el (srecode-version): Bump version to 1.0. * lisp/cedet/pulse.el (pulse-momentary-highlight-overlay): If pulse-flag is 'never, disable all pulsing. * lisp/cedet/srecode/compile.el (srecode-compile-templates): Fix directory compare of built-in templates. Give built-ins lower piority. Support special variable "project". (srecode-compile-template-table): Set :project slot of new tables. (srecode-compile-one-template-tag): Use srecode-create-dictionaries-from-tags. * lisp/cedet/srecode/cpp.el (srecode-cpp): New defgroup. (srecode-cpp-namespaces): New option. (srecode-semantic-handle-:using-namespaces) (srecode-cpp-apply-templates): New functions. (srecode-semantic-apply-tag-to-dict): Handle template parameters by calling `srecode-cpp-apply-templates'. * lisp/cedet/srecode/dictionary.el (srecode-dictionary-add-template-table): Do not add variables in tables not for the current project. (srecode-compound-toString): Handle cases where the default value is another compound value. (srecode-dictionary-lookup-name): New optional argument NON-RECURSIVE, which inhibits visiting dictionary parents. (srecode-dictionary-add-section-dictionary) (srecode-dictionary-merge): New optional argument FORCE adds values even if an identically named entry exists. (srecode-dictionary-add-entries): New method. (srecode-create-dictionaries-from-tags): New function. * lisp/cedet/srecode/fields.el (srecode-fields-exit-confirmation): New option. (srecode-field-exit-ask): Use it. * lisp/cedet/srecode/find.el (srecode-template-get-table) (srecode-template-get-table-for-binding) (srecode-all-template-hash): Skip if not in current project. (srecode-template-table-in-project-p): New method. * lisp/cedet/srecode/getset.el (srecode-insert-getset): Force tag table update. Don't query the class if it is empty. * lisp/cedet/srecode/insert.el (srecode-insert-fcn): Merge template dictionary before resolving arguments. (srecode-insert-method-helper): Add error checking to make sure that we only have dictionaries. (srecode-insert-method): Check template nesting depth when using point inserter override. (srecode-insert-method): Install override with depth limit. * lisp/cedet/srecode/map.el (srecode-map-update-map): Make map loading more robust. * lisp/cedet/srecode/mode.el (srecode-bind-insert): Call srecode-load-tables-for-mode. (srecode-minor-mode-templates-menu): Do not list templates that are not in the current project. (srecode-menu-bar): Add binding for srecode-macro-help. * lisp/cedet/srecode/table.el (srecode-template-table): Add :project slot. (srecode-dump): Dump it. * lisp/cedet/srecode/texi.el (srecode-texi-insert-tag-as-doc): New function. (semantic-insert-foreign-tag): Use it.
Diffstat (limited to 'lisp/cedet/srecode/table.el')
-rw-r--r--lisp/cedet/srecode/table.el13
1 files changed, 13 insertions, 0 deletions
diff --git a/lisp/cedet/srecode/table.el b/lisp/cedet/srecode/table.el
index 3d22922d551..2c95d4f6412 100644
--- a/lisp/cedet/srecode/table.el
+++ b/lisp/cedet/srecode/table.el
@@ -31,6 +31,7 @@
(require 'srecode)
(declare-function srecode-load-tables-for-mode "srecode/find")
+(declare-function srecode-template-table-in-project-p "srecode/find")
;;; Code:
@@ -74,6 +75,12 @@ Emacs Lisp code to fill in the dictionary.")
When there are multiple template files with similar names, templates with
the highest priority are scanned last, allowing them to override values in
previous template files.")
+ (project :initarg :project
+ :type (or null string)
+ :documentation
+ "Scope some project files to a specific project.
+The value is a directory which forms the root of a particular project,
+or a subset of a particular project.")
;;
;; Parsed Data from the template file
;;
@@ -224,6 +231,12 @@ Use PREDICATE is the same as for the `sort' function."
(when (oref tab :application)
(princ "\nApplication: ")
(princ (oref tab :application)))
+ (when (oref tab :project)
+ (require 'srecode/find) ; For srecode-template-table-in-project-p
+ (princ "\nProject Directory: ")
+ (princ (oref tab :project))
+ (when (not (srecode-template-table-in-project-p tab))
+ (princ "\n ** Not Usable in this file. **")))
(princ "\n\nVariables:\n")
(let ((vars (oref tab variables)))
(while vars