Subject: bug#24861: [PATCH] Fix annoying "Parsing...done" message in c++-mode

From: Eli Zaretskii <[email-masked]>
Date: Sat, 19 Nov 2016 09:50:40 +0200

> Cc: [email-masked]
> From: Hong Xu <[email-masked]>
> Date: Fri, 18 Nov 2016 11:55:28 -0800
> 
> Allow users to customize the maximum frequency that
> `cpp-progress-message' prints messages.
> 
> 	* progmodes/cpp.el (cpp-message-min-time-interval)
> 	(cpp-progress-message): Add variable
> 	`cpp-message-min-time-interval' to indicate the minimum time
> 	interval in seconds that `cpp-progress-message' prints messages.
> 
> 	* progmodes/cpp.el (cpp-progress-time): Initialize to '(0 0 0 0) instead of
> 	0 and improve the documentation.
> 
> 	* progmodes/cpp.el (cpp-highlight-buffer): Use
> 	`cpp-progress-message' instead of `message'.

Thanks, but there are still left-overs:

> +(defcustom cpp-message-min-time-interval 1.0
> +  "Indicate the minimum time interval in seconds that
> +`cpp-progress-message' should print messages.

This should be one line, so the sentence should be shorter to fit.  If
you drop the redundant "Indicate the" part, it will come close.

> -(defvar cpp-progress-time 0)
> -;; Last time we issued a progress message.
> +(defvar cpp-progress-time '(0 0 0 0)

You could leave it at 0, no need to have a list here.

> +  "Indicate the last time `cpp-progress-message' issued a
> +  progress message.")

This should be a single line.  Once again, please drop the uneeded
"Indicate" part.

>  (defun cpp-progress-message (&rest args)
> -  ;; Report progress at most once a second.  Take same ARGS as `message'.
> -  (let ((time (nth 1 (current-time))))
> -    (if (= time cpp-progress-time)
> -	()
> -      (setq cpp-progress-time time)
> -      (apply 'message args))))
> +  "Report progress by printing messages at most once every
> +`cpp-message-min-time-interval' seconds for functions whose names
> +start with \"cpp-\".  If `cpp-message-min-time-interval' is nil,
> +it prints no message.  The ARGS are the same as in `message'."

The first sentence of the doc string should take only one line.