diff options
author | Alan Mackenzie <acm@muc.de> | 2021-10-23 09:29:26 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2021-10-23 09:29:26 +0000 |
commit | 32d8a4870926b0b3d0f6f075d231102288b5b28c (patch) | |
tree | b450a1f20b10322d9a7f37be6a297e84c039f8d9 /lisp/progmodes/cc-mode.el | |
parent | ad7fd3cb47fbc8406504a13e8e4d64f650b514ce (diff) | |
download | emacs-32d8a4870926b0b3d0f6f075d231102288b5b28c.tar.gz emacs-32d8a4870926b0b3d0f6f075d231102288b5b28c.tar.bz2 emacs-32d8a4870926b0b3d0f6f075d231102288b5b28c.zip |
Revert "CC Mode: Fontify "found types" which are recognized after being ..."
This reverts commit 51719617eb19833056618ebac403cdcaf711551a. The commit
caused a hang at start-up with a big desktop.
Diffstat (limited to 'lisp/progmodes/cc-mode.el')
-rw-r--r-- | lisp/progmodes/cc-mode.el | 81 |
1 files changed, 4 insertions, 77 deletions
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 80909380ebd..c9b7a95df60 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el @@ -129,10 +129,6 @@ ; ' (require 'cc-fonts) ;) -(defvar c-type-finder-timer nil) -;; The variable which holds the repeating idle timer which triggers off the -;; background type finding search. - ;; The following three really belong to cc-fonts.el, but they are required ;; even when cc-fonts.el hasn't been loaded (this happens in XEmacs when ;; font-lock-mode is nil). @@ -183,17 +179,6 @@ (when c-buffer-is-cc-mode (save-restriction (widen) - (let ((lst (buffer-list))) - (catch 'found - (dolist (b lst) - (if (and (not (eq b (current-buffer))) - (with-current-buffer b - c-buffer-is-cc-mode)) - (throw 'found nil))) - (remove-hook 'post-command-hook 'c-post-command) - (and c-type-finder-timer - (progn (cancel-timer c-type-finder-timer) - (setq c-type-finder-timer nil))))) (c-save-buffer-state () (c-clear-char-properties (point-min) (point-max) 'category) (c-clear-char-properties (point-min) (point-max) 'syntax-table) @@ -589,12 +574,6 @@ preferably use the `c-mode-menu' language constant directly." ;; currently no such text property. (make-variable-buffer-local 'c-max-syn-tab-mkr) -;; `c-type-finder-pos' is a marker marking the current place in a CC Mode -;; buffer which is due to be searched next for "found types", or nil if the -;; searching is complete. -(defvar c-type-finder-pos nil) -(make-variable-buffer-local 'c-type-finder-pos) - (defun c-basic-common-init (mode default-style) "Initialize the syntax handling routines and the line breaking/filling code. Intended to be used by other packages that embed CC Mode. @@ -766,15 +745,6 @@ that requires a literal mode spec at compile time." ;; would do since font-lock uses a(n implicit) depth of 0) so we don't need ;; c-after-font-lock-init. (add-hook 'after-change-functions 'c-after-change nil t) - (add-hook 'post-command-hook 'c-post-command) - (setq c-type-finder-pos - (save-restriction - (widen) - (move-marker (make-marker) (point-min)))) - (or c-type-finder-timer - (setq c-type-finder-timer - (run-at-time - t c-type-finder-repeat-time #'c-types-finder-timer-func))) (when (boundp 'font-lock-extend-after-change-region-function) (set (make-local-variable 'font-lock-extend-after-change-region-function) 'c-extend-after-change-region))) ; Currently (2009-05) used by all @@ -1980,43 +1950,6 @@ Note that this is a strict tail, so won't match, e.g. \"0x....\".") ;; confused by already processed single quotes. (narrow-to-region (point) (point-max)))))) -;; The next two variables record the bounds of an identifier currently being -;; typed in. These are used to prevent such a partial identifier being -;; recorded as a found type by c-add-type. -(defvar c-new-id-start nil) -(make-variable-buffer-local 'c-new-id-start) -(defvar c-new-id-end nil) -(make-variable-buffer-local 'c-new-id-end) -;; The next variable, when non-nil, records that the previous two variables -;; define a type. -(defvar c-new-id-is-type nil) -(make-variable-buffer-local 'c-new-id-is-type) - -(defun c-update-new-id (end) - ;; Note the bounds of any identifier that END is in or just after, in - ;; `c-new-id-start' and `c-new-id-end'. Otherwise set these variables to - ;; nil. - (save-excursion - (goto-char end) - (let ((id-beg (c-on-identifier))) - (setq c-new-id-start id-beg - c-new-id-end (and id-beg - (progn (c-end-of-current-token) (point))))))) - - -(defun c-post-command () - ;; If point was inside of a new identifier and no longer is, record that - ;; fact. - (when (and c-buffer-is-cc-mode - c-new-id-start c-new-id-end - (or (> (point) c-new-id-end) - (< (point) c-new-id-start))) - (when c-new-id-is-type - (c-add-type-1 c-new-id-start c-new-id-end)) - (setq c-new-id-start nil - c-new-id-end nil - c-new-id-is-type nil))) - (defun c-before-change (beg end) ;; Function to be put on `before-change-functions'. Primarily, this calls ;; the language dependent `c-get-state-before-change-functions'. It is @@ -2036,16 +1969,11 @@ Note that this is a strict tail, so won't match, e.g. \"0x....\".") (unless (c-called-from-text-property-change-p) (save-restriction (widen) - ;; Clear the list of found types if we make a change at the start of the - ;; buffer, to make it easier to get rid of misspelled types and - ;; variables that have gotten recognized as types in malformed code. - (when (eq beg (point-min)) - (c-clear-found-types)) (if c-just-done-before-change - ;; We have two consecutive calls to `before-change-functions' - ;; without an intervening `after-change-functions'. An example of - ;; this is bug #38691. To protect CC Mode, assume that the entire - ;; buffer has changed. + ;; We have two consecutive calls to `before-change-functions' without + ;; an intervening `after-change-functions'. An example of this is bug + ;; #38691. To protect CC Mode, assume that the entire buffer has + ;; changed. (setq beg (point-min) end (point-max) c-just-done-before-change 'whole-buffer) @@ -2223,7 +2151,6 @@ Note that this is a strict tail, so won't match, e.g. \"0x....\".") c->-as-paren-syntax) (c-clear-char-property-with-value beg end 'syntax-table nil))) - (c-update-new-id end) (c-trim-found-types beg end old-len) ; maybe we don't ; need all of these. (c-invalidate-sws-region-after beg end old-len) |