• Alan Mackenzie's avatar
    Fix C++ fontification problems 500 bytes after typing a space, and other bugs · ef7df187
    Alan Mackenzie authored
    Also implement the "asymmetric space" rule for fontifying otherwise
    ambiguous
    declarations/expressions.
    
    * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Don't set
    c-new-BEG or c-new-END when there is no need.
    (c-forward-decl-or-cast-1): Add "CASE 17.5" to implement the "asymmetric
    space" rule.
    
    * lisp/progmodes/cc-fonts.el (c-get-fontification-context): New function,
    extracted from c-font-lock-declarations.  Add to this function processing to
    make `context' 'decl for lines contained within parens when these are also
    declarations.
    (c-font-lock-declarations): Call the newly extracted function above in place
    of inline code.
    
    * lisp/progmodes/cc-mode.el (c-fl-decl-start): Set point before calling
    c-literal-start.
    
    * lisp/progmodes/cc-vars.el (c-asymmetry-fontification-flag): New user option.
    
    * doc/misc/cc-mode.texi (Misc Font Locking): New node documenting the new
    "asymmetric fontification" rule, including the variable
    c-asymmetric-fontification-flag.
    ef7df187
cc-vars.el 76 KB