[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs as a translator's tool

From: Emanuel Berg
Subject: Re: Emacs as a translator's tool
Date: Mon, 08 Jun 2020 22:44:02 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Marcin Borkowski wrote:

> What I want is this: I have the source in, say,
> buffer A, and I perform the translation in, say,
> buffer B. The overlay is in buffer A, and I want to
> move it to the next sentence (in buffer A) _without
> moving the point away from buffer B_.

Well, technically, there is a point in every buffer
(and window, so there can be several for one buffer
even), but I understand what you mean:

;;; -*- lexical-binding: t -*-
;;; this file:

(defvar sentence-overlay nil)

(defvar source-buffer nil)

(defun set-source-buffer ()
  (setq source-buffer (current-buffer)) )

(defun remove-highlight ()
  (when (overlayp sentence-overlay)
    (delete-overlay sentence-overlay) ))

(defun highlight-sentence ()
  (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) ))))

(defun highlight-sentence-move (next)
  (if (bufferp source-buffer)
      (with-current-buffer source-buffer
        (forward-sentence (if next 1 -1))
        (highlight-sentence) )
    (error "source-buffer not set") ))

(defun highlight-sentence-next ()
  (highlight-sentence-move t) )

(defun highlight-sentence-prev ()
  (highlight-sentence-move nil) )

underground experts united

reply via email to

[Prev in Thread] Current Thread [Next in Thread]