From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: Emacs as a translator's tool Date: Wed, 10 Jun 2020 03:02:44 +0200 Message-ID: <87d0677mx7.fsf@ebih.ebihd> References: <871rn35lqc.fsf@mbork.pl> <87zh9r45ad.fsf@mbork.pl> <87h7vz2m5g.fsf@ebih.ebihd> <87d06k4rmg.fsf@mbork.pl> <87eeqzmanl.fsf@ebih.ebihd> <877dwmoboq.fsf@mbork.pl> <87bllypckg.fsf@ebih.ebihd> <87tuzpmnuo.fsf@mbork.pl> <87bllu4lx0.fsf@ebih.ebihd> <87blluxfcq.fsf@mbork.pl> <1rmqrrvn.fsf@ebih.ebihd> <87sgf5xry2.fsf@mbork.pl> <87ftb5qodp.fsf@ebih.ebihd> <87ftb4xcf4.fsf@mbork.pl> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="54839"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:YndwDgGJ19Z4pnK+yQUhCONKJaw= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Jun 10 03:03:28 2020 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jip9L-000EAJ-SA for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 10 Jun 2020 03:03:27 +0200 Original-Received: from localhost ([::1]:41394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jip9K-0007yf-Ta for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 09 Jun 2020 21:03:26 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40542) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jip8p-0007yX-WB for help-gnu-emacs@gnu.org; Tue, 09 Jun 2020 21:02:56 -0400 Original-Received: from ciao.gmane.io ([159.69.161.202]:50550) by eggs.gnu.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jip8o-0000UI-Kk for help-gnu-emacs@gnu.org; Tue, 09 Jun 2020 21:02:55 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1jip8j-000DRa-Sv for help-gnu-emacs@gnu.org; Wed, 10 Jun 2020 03:02:49 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=159.69.161.202; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/09 20:12:30 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -8 X-Spam_score: -0.9 X-Spam_bar: / X-Spam_report: (-0.9 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:123291 Archived-At: Marcin Borkowski wrote: > Well, if that code works for you, then great. > But it has two issues from my POV. > > 1. It is inefficient, in the sense that every > overlay belongs to some buffer. No need to keep the > variable `source-buffer'. Ah, now I understand what I mean, well, I don't know if it really makes it more efficient to extract it every time (depends on definition of efficiency) but maybe the code gets prettier that way, so OK: ;;; -*- lexical-binding: t -*- ;;; ;;; this file: ;;; http://user.it.uu.se/~embe8573/emacs-init/incal-ecat.el ;;; https://dataswamp.org/~incal/emacs-init/incal-ecat.el (defvar sentence-overlay nil) (defun remove-highlight () (interactive) (when (overlayp sentence-overlay) (delete-overlay sentence-overlay) )) (defun highlight-sentence () (interactive) (let ((beg (progn (forward-sentence) (point))) (end (progn (forward-sentence -1) (point))) ) (if (overlayp sentence-overlay) (move-overlay sentence-overlay beg end) (let ((overlay (make-overlay beg end))) (overlay-put overlay 'face 'font-lock-comment-face) (setq sentence-overlay overlay) )))) (defalias 'hs-init #'highlight-sentence) (defun highlight-sentence-move (next) (if (overlayp sentence-overlay) (with-current-buffer (overlay-buffer sentence-overlay) (forward-sentence (if next 1 -1)) (highlight-sentence) ) (highlight-sentence) )) (defun highlight-sentence-next () (interactive) (highlight-sentence-move t) ) (defun highlight-sentence-prev () (interactive) (highlight-sentence-move nil) ) > BTW, I like the trick with negative one as argument > to `forward-sentence'. Right, its cool :) -- underground experts united http://user.it.uu.se/~embe8573 https://dataswamp.org/~incal