Make ">>" act as double template ender in C++ Mode.
cc-langs.el (c->-op-cont-tokens): New lang-const split off from c->-op-cont-re. (c->-op-cont-tokens): Change to use the above. (c->-op-without->-cont-regexp): New lang-const. cc-engine.el (c-forward-<>-arglist-recur): Use c->-op-without->-cont-regexp in place of c->-op-cont-tokens.
This commit is contained in:
parent
849abe1dc1
commit
66bb9533fc
3 changed files with 41 additions and 11 deletions
|
@ -1,3 +1,14 @@
|
|||
2014-08-24 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
Make ">>" act as double template ender in C++ Mode.
|
||||
* progmodes/cc-langs.el (c->-op-cont-tokens): New lang-const split
|
||||
off from c->-op-cont-re.
|
||||
(c->-op-cont-tokens): Change to use the above.
|
||||
(c->-op-without->-cont-regexp): New lang-const.
|
||||
* progmodes/cc-engine.el (c-forward-<>-arglist-recur): Use
|
||||
c->-op-without->-cont-regexp in place of c->-op-cont-tokens.
|
||||
|
||||
|
||||
2014-08-23 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
* progmodes/cc-fonts.el (c-font-lock-declarators): Fix infinite
|
||||
|
|
|
@ -5944,7 +5944,7 @@ comment at the start of cc-engine.el for more info."
|
|||
;; Either an operator starting with '>' or the end of
|
||||
;; the angle bracket arglist.
|
||||
|
||||
(if (looking-at c->-op-cont-regexp)
|
||||
(if (looking-at c->-op-without->-cont-regexp)
|
||||
(progn
|
||||
(goto-char (match-end 0))
|
||||
t) ; Continue the loop.
|
||||
|
|
|
@ -1217,22 +1217,41 @@ operators."
|
|||
|
||||
(c-lang-defvar c-<-op-cont-regexp (c-lang-const c-<-op-cont-regexp))
|
||||
|
||||
(c-lang-defconst c->-op-cont-tokens
|
||||
;; A list of second and subsequent characters of all multicharacter tokens
|
||||
;; that begin with ">".
|
||||
t (c-filter-ops (c-lang-const c-all-op-syntax-tokens)
|
||||
t
|
||||
"\\`>."
|
||||
(lambda (op) (substring op 1)))
|
||||
java (c-filter-ops (c-lang-const c-all-op-syntax-tokens)
|
||||
t
|
||||
"\\`>[^>]\\|\\`>>[^>]"
|
||||
(lambda (op) (substring op 1))))
|
||||
|
||||
(c-lang-defconst c->-op-cont-regexp
|
||||
;; Regexp matching the second and subsequent characters of all
|
||||
;; multicharacter tokens that begin with ">".
|
||||
t (c-make-keywords-re nil
|
||||
(c-filter-ops (c-lang-const c-all-op-syntax-tokens)
|
||||
t
|
||||
"\\`>."
|
||||
(lambda (op) (substring op 1))))
|
||||
java (c-make-keywords-re nil
|
||||
(c-filter-ops (c-lang-const c-all-op-syntax-tokens)
|
||||
t
|
||||
"\\`>[^>]\\|\\`>>[^>]"
|
||||
(lambda (op) (substring op 1)))))
|
||||
t (c-make-keywords-re nil (c-lang-const c->-op-cont-tokens)))
|
||||
|
||||
(c-lang-defvar c->-op-cont-regexp (c-lang-const c->-op-cont-regexp))
|
||||
|
||||
(c-lang-defconst c->-op-without->-cont-regexp
|
||||
;; Regexp matching the second and subsequent characters of all
|
||||
;; multicharacter tokens that begin with ">" except for those beginning with
|
||||
;; ">>".
|
||||
t (c-make-keywords-re nil
|
||||
(set-difference
|
||||
(c-lang-const c->-op-cont-tokens)
|
||||
(c-filter-ops (c-lang-const c-all-op-syntax-tokens)
|
||||
t
|
||||
"\\`>>"
|
||||
(lambda (op) (substring op 1)))
|
||||
:test 'string-equal)))
|
||||
|
||||
(c-lang-defvar c->-op-without->-cont-regexp
|
||||
(c-lang-const c->-op-without->-cont-regexp))
|
||||
|
||||
(c-lang-defconst c-stmt-delim-chars
|
||||
;; The characters that should be considered to bound statements. To
|
||||
;; optimize `c-crosses-statement-barrier-p' somewhat, it's assumed to
|
||||
|
|
Loading…
Add table
Reference in a new issue