]> code.delx.au - gnu-emacs/blobdiff - lisp/progmodes/cc-langs.el
(compilation-next-error-function):
[gnu-emacs] / lisp / progmodes / cc-langs.el
index 0eb009dd6221b218823e8841d5dff2fe5ed7e523..94d58c66061620c3bf287034d3665c7c5fdaf449 100644 (file)
 (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.
 
@@ -374,6 +377,12 @@ identifiers, or nil in languages that don't have such things.  Does
 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 "\\(::\\|\\.\\)")
@@ -1177,7 +1186,7 @@ will be handled."
 (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',
@@ -1362,7 +1371,8 @@ too.
 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")