emacs-devel
[Top][All Lists]
Advanced

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

Re: emacs-27 60c84ad: ; * etc/TODO: Fix last change.


From: Robert Pluim
Subject: Re: emacs-27 60c84ad: ; * etc/TODO: Fix last change.
Date: Mon, 02 Mar 2020 16:06:17 +0100

>>>>> On Mon, 02 Mar 2020 16:36:11 +0200, Eli Zaretskii <address@hidden> said:

    >> Date: Mon, 02 Mar 2020 16:24:30 +0200
    >> From: Eli Zaretskii <address@hidden>
    >> Cc: address@hidden
    >> 
    >> You could run regexp-opt in a separate emacs invocation, then write
    >> the results to a file, and load that, I guess.

    Eli> On second thought: why do you need regexp-opt in this case?  None of
    Eli> the other composition rules we have (search lisp/language/*.el for
    Eli> composition-function-table) use that, so why is Emoji different?

The ones in lisp/language/*.el were presumably written by hand, unlike
the Emoji ones.

Hereʼs an example of the patterns we want to match for U+1F3C3 (there
are longer ones):

 "\N{U+1F3C3}\N{U+200D}\N{U+2640}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+200D}\N{U+2642}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FB}\N{U+200D}\N{U+2640}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FB}\N{U+200D}\N{U+2642}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FC}\N{U+200D}\N{U+2640}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FC}\N{U+200D}\N{U+2642}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FD}\N{U+200D}\N{U+2640}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FD}\N{U+200D}\N{U+2642}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FE}\N{U+200D}\N{U+2640}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FE}\N{U+200D}\N{U+2642}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FF}\N{U+200D}\N{U+2640}\N{U+FE0F}"
 "\N{U+1F3C3}\N{U+1F3FF}\N{U+200D}\N{U+2642}\N{U+FE0F}"

Now we could add 12 rules here, one for each pattern, or 1 rule with
all the patterns as alternatives, or we could run regexp-opt and add
one optimized pattern.

Or we could take a leaf out of FE0F's book, and just do:

 "\N{U+1F3C3}...?\N{U+FE0F}"

but I thought that since this runs inside redisplay, we should strive
to make the patterns as specific as possible.

Robert



reply via email to

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