From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] comment-cache 223d16f 2/3: Apply `comment-depth' text properties when calling `back_comment'. Date: Sat, 12 Mar 2016 21:58:39 +0000 Message-ID: <20160312215839.GC10781@acm.fritz.box> References: <20160308132530.861.91488@vcs.savannah.gnu.org> <20160308183010.GB6269@acm.fritz.box> <20160309174816.GE3948@acm.fritz.box> <56E0805F.3050804@gmx.at> <20160312170839.GE2572@acm.fritz.box> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1457819790 26217 80.91.229.3 (12 Mar 2016 21:56:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 12 Mar 2016 21:56:30 +0000 (UTC) Cc: martin rudalics , emacs-devel@gnu.org To: Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Mar 12 22:56:21 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aerWG-0006Yp-Fn for ged-emacs-devel@m.gmane.org; Sat, 12 Mar 2016 22:56:20 +0100 Original-Received: from localhost ([::1]:33531 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aerWC-0005cz-Ez for ged-emacs-devel@m.gmane.org; Sat, 12 Mar 2016 16:56:16 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55380) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aerW0-0005cT-GV for emacs-devel@gnu.org; Sat, 12 Mar 2016 16:56:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aerVx-0007AP-BX for emacs-devel@gnu.org; Sat, 12 Mar 2016 16:56:04 -0500 Original-Received: from mail.muc.de ([193.149.48.3]:51432) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aerVx-0007AL-2Z for emacs-devel@gnu.org; Sat, 12 Mar 2016 16:56:01 -0500 Original-Received: (qmail 42761 invoked by uid 3782); 12 Mar 2016 21:55:59 -0000 Original-Received: from acm.muc.de (p548A446C.dip0.t-ipconnect.de [84.138.68.108]) by colin.muc.de (tmda-ofmipd) with ESMTP; Sat, 12 Mar 2016 22:55:58 +0100 Original-Received: (qmail 18859 invoked by uid 1000); 12 Mar 2016 21:58:39 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-Delivery-Agent: TMDA/1.1.12 (Macallan) X-Primary-Address: acm@muc.de X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x X-Received-From: 193.149.48.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:201564 Archived-At: Hello, Dmitry. On Sat, Mar 12, 2016 at 10:56:18PM +0200, Dmitry Gutov wrote: > On 03/12/2016 07:08 PM, Alan Mackenzie wrote: > > Now, if only we had a nice fast method of determining whether we were in > > a literal, and then getting out of it ..... :-) > Why not > (save-restriction > (prog-widen) > (let* ((state (syntax-ppss)) > (lit-start (nth 8 state))) > (when lit-start > (goto-char lit-start)))) > ? In a large buffer, this involves scanning on average 10,000 characters with parse-partial-sexp. This is not what I meant by "fast". What I had in mind looks more like (note the recent renaming of `comment-depth' to `literal-cache'): (setq lc (get-text-property (point) 'literal-cache)) (when (not (equal lc '(0 . 0))) (setq start (previous-single-property-change (point) 'literal-cache)) (goto-char start) ;; Move back over opening delimiter(s). ) -- Alan Mackenzie (Nuremberg, Germany).