1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-04 11:00:45 -08:00
emacs/lisp/progmodes
Alan Mackenzie 29ec1e4888 Improve C++ raw string fontification.
Integrate the handling of raw string and ordinary string fontification.

* lisp/progmodes/cc-defs.el (c-font-lock-flush)
(c-search-forward-char-property-without-value-on-char): new macros.
(c-point): In the 'eoll arm, check for eobp.
(c-search-forward-char-property-with-value-on-char): Handle the &optional
limit argument being nil.
(c-clear-char-property-with-value-on-char-function)
(c-clear-char-property-with-value-on-char): Return the position of the first
cleared property.

* lisp/progmodes/cc-engine.el (c-find-decl-prefix-search): Don't spuriously
recognize the change of face at a ) as the start of a string (a
"pseudo match").
(c-old-beg-rs c-old-end-rs): New variables.
(c-raw-string-pos): Analyze raw string delimiters more carefully.
(c-raw-string-in-end-delim): New function.
(c-depropertize-raw-string): Largely rewritten.
(c-before-change-check-raw-strings): New functionality: only remove the
syntax-table text properties from raw strings whose delimiters are about to
change.
(c-propertize-raw-string-id): New function.
(c-after-change-re-mark-raw-strings): Remove, incorporating functionality into
other functions.
(c-propertize-raw-string-opener): Largely rewritten.
(c-after-change-re-mark-raw-strings): Removed.
(c-after-change-unmark-raw-strings, c-after-change-unmark-raw-strings): New
functions.

* lisp/progmodes/cc-fonts.el (c-font-lock-raw-strings): Largely rewritten.

* lisp/progmodes/cc-langs.el (c-before-font-lock-functions): Replace
c-after-change-re-mark-unbalanced-strings by
c-after-change-mark-abnormal-strings in the t, c+objc, c++ and java sections.
Add c-after-change-unmark-raw-strings and remove
c-after-change-re-mark-raw-strings from the c++ section.

* lisp/progmodes/cc-mode.el (c-old-BEG c-old-END): Remove.
(c-old-END-literality): New variable.
(c-depropertize-CPP): Remove syntax-table properties from raw strings within
macros.
(c-before-change-check-unbalanced-strings): Call
c-truncate-semi-nonlit-pos-cache to preserve the integrity of the cache.
(c-before-change-check-unbalanced-strings): Call
c-truncate-semi-nonlit-pos-cache, largely rewritten.
(c-after-change-re-mark-unbalanced-strings): Renamed to
c-after-change-mark-abnormal-strings.  Call c-maybe-re-mark-raw-string.
2019-03-27 11:50:53 +00:00
..
ada-mode.el Fix more regular expression typos 2019-03-18 17:02:29 -07:00
ada-prj.el
ada-stmt.el
ada-xref.el Be safer about "%" in message formats 2019-03-07 09:05:56 -08:00
antlr-mode.el
asm-mode.el
autoconf.el
bat-mode.el
bug-reference.el
cc-align.el Correct the indentation of CC Mode brace lists 2019-03-12 18:33:31 +00:00
cc-awk.el CC Mode: Correct some incorrect regular expressions: 2019-03-09 17:41:11 +00:00
cc-bytecomp.el
cc-cmds.el Don’t assume CURRENT_TIME_LIST 2019-02-13 00:51:15 -08:00
cc-defs.el Improve C++ raw string fontification. 2019-03-27 11:50:53 +00:00
cc-engine.el Improve C++ raw string fontification. 2019-03-27 11:50:53 +00:00
cc-fonts.el Improve C++ raw string fontification. 2019-03-27 11:50:53 +00:00
cc-guess.el
cc-langs.el Improve C++ raw string fontification. 2019-03-27 11:50:53 +00:00
cc-menus.el
cc-mode.el Improve C++ raw string fontification. 2019-03-27 11:50:53 +00:00
cc-styles.el Correct the indentation of CC Mode brace lists 2019-03-12 18:33:31 +00:00
cc-vars.el Correct the indentation of CC Mode brace lists 2019-03-12 18:33:31 +00:00
cfengine.el Fix regular-expression glitches and typos 2019-03-04 18:00:58 -08:00
cmacexp.el
compile.el Do not hardcode "/bin/sh" in compile. Bug#24338, Bug#29723 2019-03-09 16:44:24 +01:00
cperl-mode.el More minor regex cleanup 2019-03-19 18:47:53 -07:00
cpp.el Avoid some double-rounding of Lisp timestamps 2019-02-22 18:33:57 -08:00
cwarn.el
dcl-mode.el Fix regular-expression glitches and typos 2019-03-04 18:00:58 -08:00
ebnf-abn.el
ebnf-bnf.el
ebnf-dtd.el
ebnf-ebx.el
ebnf-iso.el
ebnf-otz.el
ebnf-yac.el Fix more regular expression typos 2019-03-18 17:02:29 -07:00
ebnf2ps.el
ebrowse.el Ebrowse: Use invisibility-spec instead of selective-display 2019-03-18 08:09:42 -04:00
elisp-mode.el
etags.el Fix some ineffective backslashes in string literals 2019-03-16 11:38:58 -07:00
executable.el
f90.el Fix some ineffective backslashes in string literals 2019-03-16 11:38:58 -07:00
flymake-cc.el Avoid occasional confusion of Flymake C/C++ backend 2019-03-25 14:56:09 +00:00
flymake-proc.el Fix more regular expression typos 2019-03-18 17:02:29 -07:00
flymake.el Fix more regular expression typos 2019-03-18 17:02:29 -07:00
fortran.el Fix more regular expression typos 2019-03-18 17:02:29 -07:00
gdb-mi.el Merge from origin/emacs-26 2019-03-09 10:07:46 -08:00
glasses.el
grep.el i18n: Add function ngettext for pluralization. 2019-03-24 23:55:07 +02:00
gud.el Fix regular-expression glitches and typos 2019-03-04 18:00:58 -08:00
hideif.el
hideshow.el
icon.el
idlw-complete-structtag.el Fix more regular expression typos 2019-03-18 17:02:29 -07:00
idlw-help.el
idlw-shell.el
idlw-toolbar.el
idlwave.el Fix more regular expression typos 2019-03-18 17:02:29 -07:00
inf-lisp.el
js.el More minor regex cleanup 2019-03-19 18:47:53 -07:00
ld-script.el
m4-mode.el Fix regular-expression glitches and typos 2019-03-04 18:00:58 -08:00
make-mode.el
mantemp.el More regexp corrections and tweaks 2019-03-08 09:09:40 -08:00
meta-mode.el Fix regular-expression glitches and typos 2019-03-04 18:00:58 -08:00
mixal-mode.el Fix regular-expression glitches and typos 2019-03-04 18:00:58 -08:00
modula2.el
octave.el
opascal.el Fix regular-expression glitches and typos 2019-03-04 18:00:58 -08:00
pascal.el Fix regular-expression glitches and typos 2019-03-04 18:00:58 -08:00
perl-mode.el
prog-mode.el
project.el project--find-regexp-in-files: Use 'grep -E' 2019-03-11 02:30:57 +02:00
prolog.el Fix more regular expression typos 2019-03-18 17:02:29 -07:00
ps-mode.el
python.el * lisp/progmodes/python.el (python-rx-constituents): Fix ordering in or 2019-03-13 13:40:36 -04:00
ruby-mode.el Fix more regular expression typos 2019-03-18 17:02:29 -07:00
scheme.el More regexp corrections and tweaks 2019-03-10 23:11:21 -07:00
sh-script.el
simula.el
sql.el * lisp/progmodes/sql.el Bug#25424 2019-03-22 22:34:41 -04:00
subword.el
tcl.el
vera-mode.el
verilog-mode.el 2019-03-26 regex cleanup 2019-03-26 19:07:21 -07:00
vhdl-mode.el Fix regular-expression glitches and typos 2019-03-04 18:00:58 -08:00
which-func.el which-function: Do not display outdated imenu information 2019-02-22 15:27:06 -06:00
xref.el * lisp/progmodes/xref.el (xref--show-xrefs): Push mark. (Bug#34908) 2019-03-24 23:19:55 +02:00
xscheme.el