From 3f6b93cd7fa2b949e722408bcecf50e2b7b4322e Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Sun, 23 Dec 2012 11:36:15 +0000 Subject: [PATCH] Speed up fontification where there's large brace blocks. progmodes/cc-fonts.el (c-font-lock-enclosing-decls): Add a limit to a call of c-beginning-of-decl-1. --- lisp/ChangeLog | 6 ++++++ lisp/progmodes/cc-fonts.el | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9de20493749..a0ae8fbc4f8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-12-23 Alan Mackenzie + + Speed up fontification where there's large brace blocks. + * progmodes/cc-fonts.el (c-font-lock-enclosing-decls): Add a limit + to a call of c-beginning-of-decl-1. + 2012-12-21 Chong Yidong * sort.el (sort-subr): Doc fix (Bug#13056). diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 2d116e1ecdc..c29e2220211 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -1591,6 +1591,7 @@ casts and declarations are fontified. Used on level 2 and higher." ;; prevent a repeat invocation. See elisp/lispref page "Search-based ;; Fontification". (let* ((paren-state (c-parse-state)) + (decl-search-lim (c-determine-limit 1000)) decl-context in-typedef ps-elt) ;; Are we in any nested struct/union/class/etc. braces? (while paren-state @@ -1599,7 +1600,7 @@ casts and declarations are fontified. Used on level 2 and higher." (when (and (atom ps-elt) (eq (char-after ps-elt) ?\{)) (goto-char ps-elt) - (setq decl-context (c-beginning-of-decl-1) + (setq decl-context (c-beginning-of-decl-1 decl-search-lim) in-typedef (looking-at c-typedef-key)) (if in-typedef (c-forward-token-2)) (when (and c-opt-block-decls-with-vars-key -- 2.39.5