all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Qiantan Hong <qhong@mit.edu>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Stefan Monnier <monnier@iro.umontreal.ca>,
	"emacs-devel@gnu.org" <emacs-devel@gnu.org>
Subject: Re: Behavior of input method -- crdt.el
Date: Mon, 19 Oct 2020 14:55:31 +0000	[thread overview]
Message-ID: <B63E4593-6EFC-49FB-B556-5D1DFD1A99ED@mit.edu> (raw)
In-Reply-To: <83v9f6p9ut.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 1339 bytes --]

> 
> This isn't limited to input methods, btw: did you try typing several
> characters that are composed together on display into a single
> grapheme cluster (under auto-composition-mode)? what happens if remote
> command arrives in the middle of this sequence and moves point?
Is there variable to detect such usage like “quail-translating”?

> We are talking about Leim input methods, not about the input methods
> your OS supports.  Do such long sequences that produce entire phrases
> happen in our input methods?  If so, can you show an example?
There are input methods written by users using Quail framework.
E.g. https://melpa.org/#/pyim


> Do we have to employ hacks?  Quail input methods tell you when they
> don't expect to be interrupted, by setting quail-translating to a
> non-nil value; why not use that indication to handle this issue in a
> non-hackish way?
For quail input method, remote command will never interrupt the
sequence themselves. Because crdt.el doesn’t assign CRDT IDs
to those pending text, remote change will never resolve in the middle
of such sequence. They are not synchronized to other peers either.
It follows exact the conceptual model “text pending translation
are not in the buffer yet, they’re just displayed there”. They don’t
need to lock the buffer either.

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 1858 bytes --]

  reply	other threads:[~2020-10-19 14:55 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-18  3:47 Behavior of input method -- crdt.el Qiantan Hong
2020-10-18  4:46 ` Eli Zaretskii
2020-10-18 13:26 ` Stefan Monnier
2020-10-18 20:34   ` Qiantan Hong
2020-10-18 20:52     ` Stefan Monnier
2020-10-19  2:28       ` Eli Zaretskii
2020-10-19  2:48         ` Qiantan Hong
2020-10-19  3:07           ` Stefan Monnier
2020-10-19 14:29           ` Eli Zaretskii
2020-10-19 14:55             ` Qiantan Hong [this message]
2020-10-19 15:06               ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B63E4593-6EFC-49FB-B556-5D1DFD1A99ED@mit.edu \
    --to=qhong@mit.edu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.