annotate lisp/cedet/semantic/java.el @ 104489:25e047f7f6a2

Synch to Eric Ludlam's upstream CEDET repository. * cedet/semantic/wisent/java-tags.el: * cedet/semantic/wisent/javat-wy.el: New files. * cedet/semantic/wisent/java.el: * cedet/semantic/wisent/java-wy.el: Files removed. * cedet/semantic/java.el (semantic-java-prototype-function) (semantic-java-prototype-variable, semantic-java-prototype-type): Doc fix (java-mode::semantic-format-tag-prototype): Renamed from semantic-format-prototype-tag, which didn't match the overloadable function. * cedet/semantic/bovine/c.el (semantic-c-dereference-namespace-alias): Deal correctly with nested namespaces. Make sure type actually exists in original namespace. * cedet/semantic/lex-spp.el (semantic-lex-spp-hack-depth): New. (semantic-lex-spp-lex-text-string): Use above to enable recursion. * cedet/semantic/format.el: Whitespace cleanup. (semantic-test-all-format-tag-functions): Move to end. (semantic-format-tag-prototype, semantic-format-tag-name) (semantic-format-tag-name-default): Revert to original upstream positions. * cedet/semantic/elp.el: File removed. * cedet/semantic/analyze.el (semantic-adebug-analyze): New function, moved here from semantic/adebug. * cedet/semantic/adebug.el: Declare external semanticdb functions. (semantic-adebug-analyze, semantic-adebug-edebug-expr): Deleted. * emacs-lisp/eieio.el (eieio-unbound): Default value is now robust to recompile. * emacs-lisp/eieio-datadebug.el: Add eieio objects to the list of data debug things to recognize. * emacs-lisp/eieio-comp.el: Synch to upstream. * cedet/data-debug.el: Don't require eieio and semantic/tag. If eieio is loaded, require eieio-datadebug. (data-debug-insert-ring-button): Do not be specific about the ring contents. (data-debug-thing-alist): Remove eieio and semantic specific entries. (data-debug-add-specialized-thing): New function. * cedet/cedet.el: Update commentary. * cedet/cedet-edebug.el: Require edebug and debug.
author Chong Yidong <cyd@stupidchicken.com>
date Sun, 13 Sep 2009 15:58:30 +0000
parents ce081012a7d6
children 7f4c7f5c0eba
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
104469
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
1 ;;; semantic/java.el --- Semantic functions for Java
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
2
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
3 ;;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
4 ;;; 2007, 2008, 2009 Free Software Foundation, Inc.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
5
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
6 ;; Author: David Ponce <david@dponce.com>
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
7
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
9
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
10 ;; GNU Emacs is free software: you can redistribute it and/or modify
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
12 ;; the Free Software Foundation, either version 3 of the License, or
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
13 ;; (at your option) any later version.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
14
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
18 ;; GNU General Public License for more details.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
19
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
21 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
22
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
23 ;;; Commentary:
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
24 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
25 ;; Common function for Java parsers.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
26
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
27 ;;; Code:
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
28 (require 'semantic)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
29 (require 'semantic/ctxt)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
30 (require 'semantic/doc)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
31 (require 'semantic/format)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
32
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
33 (eval-when-compile
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
34 (require 'semantic/find)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
35 (require 'semantic/dep))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
36
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
37
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
38 ;;; Lexical analysis
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
39 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
40 (defconst semantic-java-number-regexp
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
41 (eval-when-compile
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
42 (concat "\\("
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
43 "\\<[0-9]+[.][0-9]+\\([eE][-+]?[0-9]+\\)?[fFdD]?\\>"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
44 "\\|"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
45 "\\<[0-9]+[.][eE][-+]?[0-9]+[fFdD]?\\>"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
46 "\\|"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
47 "\\<[0-9]+[.][fFdD]\\>"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
48 "\\|"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
49 "\\<[0-9]+[.]"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
50 "\\|"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
51 "[.][0-9]+\\([eE][-+]?[0-9]+\\)?[fFdD]?\\>"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
52 "\\|"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
53 "\\<[0-9]+[eE][-+]?[0-9]+[fFdD]?\\>"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
54 "\\|"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
55 "\\<0[xX][0-9a-fA-F]+[lL]?\\>"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
56 "\\|"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
57 "\\<[0-9]+[lLfFdD]?\\>"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
58 "\\)"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
59 ))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
60 "Lexer regexp to match Java number terminals.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
61 Following is the specification of Java number literals.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
62
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
63 DECIMAL_LITERAL:
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
64 [1-9][0-9]*
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
65 ;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
66 HEX_LITERAL:
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
67 0[xX][0-9a-fA-F]+
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
68 ;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
69 OCTAL_LITERAL:
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
70 0[0-7]*
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
71 ;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
72 INTEGER_LITERAL:
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
73 <DECIMAL_LITERAL>[lL]?
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
74 | <HEX_LITERAL>[lL]?
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
75 | <OCTAL_LITERAL>[lL]?
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
76 ;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
77 EXPONENT:
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
78 [eE][+-]?[09]+
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
79 ;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
80 FLOATING_POINT_LITERAL:
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
81 [0-9]+[.][0-9]*<EXPONENT>?[fFdD]?
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
82 | [.][0-9]+<EXPONENT>?[fFdD]?
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
83 | [0-9]+<EXPONENT>[fFdD]?
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
84 | [0-9]+<EXPONENT>?[fFdD]
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
85 ;")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
86
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
87 ;;; Parsing
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
88 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
89 (defsubst semantic-java-dim (id)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
90 "Split ID string into a pair (NAME . DIM).
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
91 NAME is ID without trailing brackets: \"[]\".
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
92 DIM is the dimension of NAME deduced from the number of trailing
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
93 brackets, or 0 if there is no trailing brackets."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
94 (let ((dim (string-match "\\(\\[]\\)+\\'" id)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
95 (if dim
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
96 (cons (substring id 0 dim)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
97 (/ (length (match-string 0 id)) 2))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
98 (cons id 0))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
99
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
100 (defsubst semantic-java-type (tag)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
101 "Return the type of TAG, taking care of array notation."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
102 (let ((type (semantic-tag-type tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
103 (dim (semantic-tag-get-attribute tag :dereference)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
104 (when dim
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
105 (while (> dim 0)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
106 (setq type (concat type "[]")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
107 dim (1- dim))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
108 type))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
109
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
110 (defun semantic-java-expand-tag (tag)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
111 "Expand compound declarations found in TAG into separate tags.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
112 TAG contains compound declarations when its class is `variable', and
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
113 its name is a list of elements (NAME START . END), where NAME is a
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
114 compound variable name, and START/END are the bounds of the
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
115 corresponding compound declaration."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
116 (let* ((class (semantic-tag-class tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
117 (elts (semantic-tag-name tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
118 dim type dim0 elt clone start end xpand)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
119 (cond
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
120 ((and (eq class 'function)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
121 (> (cdr (setq dim (semantic-java-dim elts))) 0))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
122 (setq clone (semantic-tag-clone tag (car dim))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
123 xpand (cons clone xpand))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
124 (semantic-tag-put-attribute clone :dereference (cdr dim)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
125 ((eq class 'variable)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
126 (or (consp elts) (setq elts (list (list elts))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
127 (setq dim (semantic-java-dim (semantic-tag-get-attribute tag :type))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
128 type (car dim)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
129 dim0 (cdr dim))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
130 (while elts
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
131 ;; For each compound element, clone the initial tag with the
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
132 ;; name and bounds of the compound variable declaration.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
133 (setq elt (car elts)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
134 elts (cdr elts)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
135 start (if elts (cadr elt) (semantic-tag-start tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
136 end (if xpand (cddr elt) (semantic-tag-end tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
137 dim (semantic-java-dim (car elt))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
138 clone (semantic-tag-clone tag (car dim))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
139 xpand (cons clone xpand))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
140 (semantic-tag-put-attribute clone :type type)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
141 (semantic-tag-put-attribute clone :dereference (+ dim0 (cdr dim)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
142 (semantic-tag-set-bounds clone start end)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
143 )
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
144 xpand))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
145
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
146 ;;; Environment
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
147 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
148 (defcustom-mode-local-semantic-dependency-system-include-path
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
149 java-mode semantic-java-dependency-system-include-path
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
150 ;; @todo - Use JDEE to get at the include path, or something else?
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
151 nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
152 "The system include path used by Java langauge.")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
153
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
154 ;; Local context
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
155 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
156 (define-mode-local-override semantic-ctxt-scoped-types
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
157 java-mode (&optional point)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
158 "Return a list of type names currently in scope at POINT."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
159 (mapcar 'semantic-tag-name
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
160 (semantic-find-tags-by-class
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
161 'type (semantic-find-tag-by-overlay point))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
162
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
163 ;; Prototype handler
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
164 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
165 (defun semantic-java-prototype-function (tag &optional parent color)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
166 "Return a function (method) prototype for TAG.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
167 Optional argument PARENT is a parent (containing) item.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
168 Optional argument COLOR indicates that color should be mixed in.
104489
25e047f7f6a2 Synch to Eric Ludlam's upstream CEDET repository.
Chong Yidong <cyd@stupidchicken.com>
parents: 104469
diff changeset
169 See also `semantic-format-tag-prototype'."
104469
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
170 (let ((name (semantic-tag-name tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
171 (type (semantic-java-type tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
172 (tmpl (semantic-tag-get-attribute tag :template-specifier))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
173 (args (semantic-tag-function-arguments tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
174 (argp "")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
175 arg argt)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
176 (while args
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
177 (setq arg (car args)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
178 args (cdr args))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
179 (if (semantic-tag-p arg)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
180 (setq argt (if color
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
181 (semantic--format-colorize-text
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
182 (semantic-java-type arg) 'type)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
183 (semantic-java-type arg))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
184 argp (concat argp argt (if args "," "")))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
185 (when color
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
186 (when type
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
187 (setq type (semantic--format-colorize-text type 'type)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
188 (setq name (semantic--format-colorize-text name 'function)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
189 (concat (or tmpl "") (if tmpl " " "")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
190 (or type "") (if type " " "")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
191 name "(" argp ")")))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
192
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
193 (defun semantic-java-prototype-variable (tag &optional parent color)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
194 "Return a variable (field) prototype for TAG.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
195 Optional argument PARENT is a parent (containing) item.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
196 Optional argument COLOR indicates that color should be mixed in.
104489
25e047f7f6a2 Synch to Eric Ludlam's upstream CEDET repository.
Chong Yidong <cyd@stupidchicken.com>
parents: 104469
diff changeset
197 See also `semantic-format-tag-prototype'."
104469
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
198 (let ((name (semantic-tag-name tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
199 (type (semantic-java-type tag)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
200 (concat (if color
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
201 (semantic--format-colorize-text type 'type)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
202 type)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
203 " "
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
204 (if color
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
205 (semantic--format-colorize-text name 'variable)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
206 name))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
207
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
208 (defun semantic-java-prototype-type (tag &optional parent color)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
209 "Return a type (class/interface) prototype for TAG.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
210 Optional argument PARENT is a parent (containing) item.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
211 Optional argument COLOR indicates that color should be mixed in.
104489
25e047f7f6a2 Synch to Eric Ludlam's upstream CEDET repository.
Chong Yidong <cyd@stupidchicken.com>
parents: 104469
diff changeset
212 See also `semantic-format-tag-prototype'."
104469
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
213 (let ((name (semantic-tag-name tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
214 (type (semantic-tag-type tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
215 (tmpl (semantic-tag-get-attribute tag :template-specifier)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
216 (concat type " "
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
217 (if color
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
218 (semantic--format-colorize-text name 'type)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
219 name)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
220 (or tmpl ""))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
221
104489
25e047f7f6a2 Synch to Eric Ludlam's upstream CEDET repository.
Chong Yidong <cyd@stupidchicken.com>
parents: 104469
diff changeset
222 (define-mode-local-override semantic-format-tag-prototype
104469
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
223 java-mode (tag &optional parent color)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
224 "Return a prototype for TOKEN.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
225 Optional argument PARENT is a parent (containing) item.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
226 Optional argument COLOR indicates that color should be mixed in."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
227 (let ((f (intern-soft (format "semantic-java-prototype-%s"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
228 (semantic-tag-class tag)))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
229 (funcall (if (fboundp f)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
230 f
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
231 'semantic-format-tag-prototype-default)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
232 tag parent color)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
233
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
234 (semantic-alias-obsolete 'semantic-java-prototype-nonterminal
104489
25e047f7f6a2 Synch to Eric Ludlam's upstream CEDET repository.
Chong Yidong <cyd@stupidchicken.com>
parents: 104469
diff changeset
235 'semantic-format-tag-prototype-java-mode)
104469
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
236
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
237 ;; Include Tag Name
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
238 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
239
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
240 ;; Thanks Bruce Stephens
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
241 (define-mode-local-override semantic-tag-include-filename java-mode (tag)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
242 "Return a suitable path for (some) Java imports"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
243 (let ((name (semantic-tag-name tag)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
244 (concat (mapconcat 'identity (split-string name "\\.") "/") ".java")))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
245
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
246
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
247 ;; Documentation handler
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
248 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
249 (defsubst semantic-java-skip-spaces-backward ()
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
250 "Move point backward, skipping Java whitespaces."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
251 (skip-chars-backward " \n\r\t"))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
252
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
253 (defsubst semantic-java-skip-spaces-forward ()
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
254 "Move point forward, skipping Java whitespaces."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
255 (skip-chars-forward " \n\r\t"))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
256
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
257 (define-mode-local-override semantic-documentation-for-tag
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
258 java-mode (&optional tag nosnarf)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
259 "Find documentation from TAG and return it as a clean string.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
260 Java have documentation set in a comment preceeding TAG's definition.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
261 Attempt to strip out comment syntactic sugar, unless optional argument
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
262 NOSNARF is non-nil.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
263 If NOSNARF is 'lex, then return the semantic lex token."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
264 (when (or tag (setq tag (semantic-current-tag)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
265 (with-current-buffer (semantic-tag-buffer tag)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
266 (save-excursion
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
267 ;; Move the point at token start
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
268 (goto-char (semantic-tag-start tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
269 (semantic-java-skip-spaces-forward)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
270 ;; If the point already at "/**" (this occurs after a doc fix)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
271 (if (looking-at "/\\*\\*")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
272 nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
273 ;; Skip previous spaces
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
274 (semantic-java-skip-spaces-backward)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
275 ;; Ensure point is after "*/" (javadoc block comment end)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
276 (condition-case nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
277 (backward-char 2)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
278 (error nil))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
279 (when (looking-at "\\*/")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
280 ;; Move the point backward across the comment
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
281 (forward-char 2) ; return just after "*/"
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
282 (forward-comment -1) ; to skip the entire block
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
283 ))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
284 ;; Verify the point is at "/**" (javadoc block comment start)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
285 (if (looking-at "/\\*\\*")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
286 (let ((p (point))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
287 (c (semantic-doc-snarf-comment-for-tag 'lex)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
288 (when c
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
289 ;; Verify that the token just following the doc
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
290 ;; comment is the current one!
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
291 (goto-char (semantic-lex-token-end c))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
292 (semantic-java-skip-spaces-forward)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
293 (when (eq tag (semantic-current-tag))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
294 (goto-char p)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
295 (semantic-doc-snarf-comment-for-tag nosnarf)))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
296 ))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
297
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
298 ;;; Javadoc facilities
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
299 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
300
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
301 ;; Javadoc elements
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
302 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
303 (defvar semantic-java-doc-line-tags nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
304 "Valid javadoc line tags.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
305 Ordered following Sun's Tag Convention at
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
306 <http://java.sun.com/products/jdk/javadoc/writingdoccomments/index.html>")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
307
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
308 (defvar semantic-java-doc-with-name-tags nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
309 "Javadoc tags which have a name.")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
310
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
311 (defvar semantic-java-doc-with-ref-tags nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
312 "Javadoc tags which have a reference.")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
313
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
314 ;; Optional javadoc tags by classes of semantic tag
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
315 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
316 (defvar semantic-java-doc-extra-type-tags nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
317 "Optional tags used in class/interface documentation.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
318 Ordered following Sun's Tag Convention.")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
319
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
320 (defvar semantic-java-doc-extra-function-tags nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
321 "Optional tags used in method/constructor documentation.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
322 Ordered following Sun's Tag Convention.")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
323
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
324 (defvar semantic-java-doc-extra-variable-tags nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
325 "Optional tags used in field documentation.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
326 Ordered following Sun's Tag Convention.")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
327
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
328 ;; All javadoc tags by classes of semantic tag
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
329 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
330 (defvar semantic-java-doc-type-tags nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
331 "Tags allowed in class/interface documentation.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
332 Ordered following Sun's Tag Convention.")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
333
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
334 (defvar semantic-java-doc-function-tags nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
335 "Tags allowed in method/constructor documentation.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
336 Ordered following Sun's Tag Convention.")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
337
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
338 (defvar semantic-java-doc-variable-tags nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
339 "Tags allowed in field documentation.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
340 Ordered following Sun's Tag Convention.")
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
341
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
342 ;; Access to Javadoc elements
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
343 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
344 (defmacro semantic-java-doc-tag (name)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
345 "Return doc tag from NAME.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
346 That is @NAME."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
347 `(concat "@" ,name))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
348
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
349 (defsubst semantic-java-doc-tag-name (tag)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
350 "Return name of the doc TAG symbol.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
351 That is TAG `symbol-name' without the leading '@'."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
352 (substring (symbol-name tag) 1))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
353
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
354 (defun semantic-java-doc-keyword-before-p (k1 k2)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
355 "Return non-nil if javadoc keyword K1 is before K2."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
356 (let* ((t1 (semantic-java-doc-tag k1))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
357 (t2 (semantic-java-doc-tag k2))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
358 (seq1 (and (semantic-lex-keyword-p t1)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
359 (plist-get (semantic-lex-keyword-get t1 'javadoc)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
360 'seq)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
361 (seq2 (and (semantic-lex-keyword-p t2)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
362 (plist-get (semantic-lex-keyword-get t2 'javadoc)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
363 'seq))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
364 (if (and (numberp seq1) (numberp seq2))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
365 (<= seq1 seq2)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
366 ;; Unknown tags (probably custom ones) are always after official
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
367 ;; ones and are not themselves ordered.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
368 (or (numberp seq1)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
369 (and (not seq1) (not seq2))))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
370
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
371 (defun semantic-java-doc-keywords-map (fun &optional property)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
372 "Run function FUN for each javadoc keyword.
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
373 Return the list of FUN results. If optional PROPERTY is non nil only
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
374 call FUN for javadoc keyword which have a value for PROPERTY. FUN
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
375 receives two arguments: the javadoc keyword and its associated
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
376 'javadoc property list. It can return any value. Nil values are
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
377 removed from the result list."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
378 (delq nil
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
379 (mapcar
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
380 #'(lambda (k)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
381 (let* ((tag (semantic-java-doc-tag k))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
382 (plist (semantic-lex-keyword-get tag 'javadoc)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
383 (if (or (not property) (plist-get plist property))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
384 (funcall fun k plist))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
385 semantic-java-doc-line-tags)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
386
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
387
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
388 ;;; Mode setup
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
389 ;;
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
390
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
391 (defun semantic-java-doc-setup ()
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
392 "Lazy initialization of javadoc elements."
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
393 (or semantic-java-doc-line-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
394 (setq semantic-java-doc-line-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
395 (sort (mapcar #'semantic-java-doc-tag-name
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
396 (semantic-lex-keywords 'javadoc))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
397 #'semantic-java-doc-keyword-before-p)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
398
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
399 (or semantic-java-doc-with-name-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
400 (setq semantic-java-doc-with-name-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
401 (semantic-java-doc-keywords-map
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
402 #'(lambda (k p)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
403 k)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
404 'with-name)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
405
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
406 (or semantic-java-doc-with-ref-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
407 (setq semantic-java-doc-with-ref-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
408 (semantic-java-doc-keywords-map
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
409 #'(lambda (k p)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
410 k)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
411 'with-ref)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
412
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
413 (or semantic-java-doc-extra-type-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
414 (setq semantic-java-doc-extra-type-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
415 (semantic-java-doc-keywords-map
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
416 #'(lambda (k p)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
417 (if (memq 'type (plist-get p 'usage))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
418 k))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
419 'opt)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
420
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
421 (or semantic-java-doc-extra-function-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
422 (setq semantic-java-doc-extra-function-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
423 (semantic-java-doc-keywords-map
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
424 #'(lambda (k p)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
425 (if (memq 'function (plist-get p 'usage))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
426 k))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
427 'opt)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
428
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
429 (or semantic-java-doc-extra-variable-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
430 (setq semantic-java-doc-extra-variable-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
431 (semantic-java-doc-keywords-map
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
432 #'(lambda (k p)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
433 (if (memq 'variable (plist-get p 'usage))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
434 k))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
435 'opt)))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
436
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
437 (or semantic-java-doc-type-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
438 (setq semantic-java-doc-type-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
439 (semantic-java-doc-keywords-map
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
440 #'(lambda (k p)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
441 (if (memq 'type (plist-get p 'usage))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
442 k)))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
443
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
444 (or semantic-java-doc-function-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
445 (setq semantic-java-doc-function-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
446 (semantic-java-doc-keywords-map
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
447 #'(lambda (k p)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
448 (if (memq 'function (plist-get p 'usage))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
449 k)))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
450
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
451 (or semantic-java-doc-variable-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
452 (setq semantic-java-doc-variable-tags
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
453 (semantic-java-doc-keywords-map
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
454 #'(lambda (k p)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
455 (if (memq 'variable (plist-get p 'usage))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
456 k)))))
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
457
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
458 )
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
459
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
460 (provide 'semantic/java)
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
461
ce081012a7d6 lisp/cedet/semantic/java.el: File moved here from bovine/ subdirectory.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
462 ;;; semantic/java.el ends here