Distinguish the two meanings of Java's keyword "default". Fixes bug #22358.
* lisp/progmodes/cc-engine.el (c-guess-basic-syntax CASE 14): Check the context of case labels (including "default") more rigorously. (c-guess-basic-syntax CASE 15): Consequential amendment. * lisp/progmodes/cc-langs.el (c-modifier-kwds): Add "default" to Java's value.
This commit is contained in:
parent
76045f7d6f
commit
a1865bcf96
2 changed files with 16 additions and 3 deletions
|
@ -10072,7 +10072,19 @@ comment at the start of cc-engine.el for more info."
|
||||||
paren-state)))
|
paren-state)))
|
||||||
|
|
||||||
;; CASE 14: A case or default label
|
;; CASE 14: A case or default label
|
||||||
((looking-at c-label-kwds-regexp)
|
((save-excursion
|
||||||
|
(and (looking-at c-label-kwds-regexp)
|
||||||
|
(or (c-major-mode-is 'idl-mode)
|
||||||
|
(and
|
||||||
|
containing-sexp
|
||||||
|
(goto-char containing-sexp)
|
||||||
|
(eq (char-after) ?{)
|
||||||
|
(progn (c-backward-syntactic-ws) t)
|
||||||
|
(eq (char-before) ?\))
|
||||||
|
(c-go-list-backward)
|
||||||
|
(progn (c-backward-syntactic-ws) t)
|
||||||
|
(c-simple-skip-symbol-backward)
|
||||||
|
(looking-at c-block-stmt-2-key)))))
|
||||||
(if containing-sexp
|
(if containing-sexp
|
||||||
(progn
|
(progn
|
||||||
(goto-char containing-sexp)
|
(goto-char containing-sexp)
|
||||||
|
@ -10088,6 +10100,7 @@ comment at the start of cc-engine.el for more info."
|
||||||
((save-excursion
|
((save-excursion
|
||||||
(back-to-indentation)
|
(back-to-indentation)
|
||||||
(and (not (looking-at c-syntactic-ws-start))
|
(and (not (looking-at c-syntactic-ws-start))
|
||||||
|
(not (looking-at c-label-kwds-regexp))
|
||||||
(c-forward-label)))
|
(c-forward-label)))
|
||||||
(cond (containing-decl-open
|
(cond (containing-decl-open
|
||||||
(setq placeholder (c-add-class-syntax 'inclass
|
(setq placeholder (c-add-class-syntax 'inclass
|
||||||
|
|
|
@ -1980,8 +1980,8 @@ will be handled."
|
||||||
;; In CORBA CIDL:
|
;; In CORBA CIDL:
|
||||||
"bindsTo" "delegatesTo" "implements" "proxy" "storedOn")
|
"bindsTo" "delegatesTo" "implements" "proxy" "storedOn")
|
||||||
;; Note: "const" is not used in Java, but it's still a reserved keyword.
|
;; Note: "const" is not used in Java, but it's still a reserved keyword.
|
||||||
java '("abstract" "const" "final" "native" "private" "protected" "public"
|
java '("abstract" "const" "default" "final" "native" "private" "protected"
|
||||||
"static" "strictfp" "synchronized" "transient" "volatile")
|
"public" "static" "strictfp" "synchronized" "transient" "volatile")
|
||||||
pike '("final" "inline" "local" "nomask" "optional" "private" "protected"
|
pike '("final" "inline" "local" "nomask" "optional" "private" "protected"
|
||||||
"public" "static" "variant"))
|
"public" "static" "variant"))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue