(cc-require 'cc-defs)
(cc-require 'cc-vars)
+;; This file is not always loaded. See note above.
+(cc-external-require 'cl)
+
\f
;;; Setup for the `c-lang-defvar' system.
not contain a \\| operator at the top level."
t nil
c++ "::"
+ ;; Java has "." to concatenate identifiers but it's also used for
+ ;; normal indexing. There's special code in the Java font lock
+ ;; rules to fontify qualified identifiers based on the standard
+ ;; naming conventions. We still define "." here to make
+ ;; `c-forward-name' move over as long names as possible which is
+ ;; necessary to e.g. handle throws clauses correctly.
java "\\."
idl "::"
pike "\\(::\\|\\.\\)")
(c-lang-defvar c-brace-list-key (c-lang-const c-brace-list-key))
(c-lang-defconst c-other-block-decl-kwds
- "Keywords where the following block (if any) contain another
+ "Keywords where the following block (if any) contains another
declaration level that should not be considered a class.
If any of these also are on `c-type-list-kwds', `c-ref-list-kwds',
Note: Use `c-typeless-decl-kwds' for keywords followed by a function
or variable identifier (that's being defined)."
t '("struct" "union" "enum")
- (c c++ awk) nil
+ (c awk) nil
+ c++ '("operator")
objc (append '("@class" "@interface" "@implementation" "@protocol")
(c-lang-const c-type-list-kwds))
java '("class" "import" "interface" "new" "extends" "implements" "throws")