Variable: java-font-lock-extra-types

java-font-lock-extra-types is a customizable variable defined in cc-vars.el.gz.

Value

("[[:upper:]]\\sw*[[:lower:]]\\sw")

Documentation

List of extra types (aside from the type keywords) to recognize in Java mode.

Each list item should be a regexp matching a single identifier. For example, a value of ("[[:upper:]]\\\\sw*[[:lower:]]\\\\sw*") means capitalized words are treated as type names (the requirement for a lower case char is to avoid recognizing all-caps constant names).

Note that items on this list that don't include any regexp special characters are automatically optimized using regexp-opt, so you should not use regexp-opt explicitly to build regexps here.

On decoration level 3 (and higher, where applicable), a method is used that finds most types and declarations by syntax alone. This variable is still used as a first step, but other types are recognized correctly anyway in most cases. Therefore this variable should be fairly restrictive and not contain patterns that are uncertain.

Note that this variable is only consulted when the major mode is initialized. If you change it later you have to reinitialize CC Mode by doing M-x java-mode (java-mode).

Despite the name, this variable is not only used for font locking but also elsewhere in CC Mode to tell types from other identifiers.

Probably introduced at or before Emacs version 20.1.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-vars.el.gz
;;;###autoload (put 'objc-font-lock-extra-types 'safe-local-variable #'c-string-list-p)

(defcustom java-font-lock-extra-types
  (list (concat "[" c-upper "]\\sw*[" c-lower "]\\sw"))
  (c-make-font-lock-extra-types-blurb "Java" "java-mode" (concat
"For example, a value of (\"[" c-upper "]\\\\sw*[" c-lower "]\\\\sw*\") means
capitalized words are treated as type names (the requirement for a
lower case char is to avoid recognizing all-caps constant names)."))
  :type 'c-extra-types-widget
  :safe #'c-string-list-p
  :group 'c)