Subject: 25.2; Composed charater colon slows down Emacs performance while you in buffer with this character

From: Oleksandr Gavenko <[email-masked]>
Date: Thu, 21 Sep 2017 13:35:28 +0300

In GNU Emacs 25.2.1 (i686-w64-mingw32)
 of 2017-04-24 built on LAPHROAIG
Windowing system distributor 'Microsoft Corp.', version 10.0.16288

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS

Important settings:
  value of $LANG: en_US.utf8
  locale-coding-system: cp1252

With composed two colon characters Emacs become extremely slow.

I figured that out when enabled cfengin3-mode and two colons :: was shown as
single composed character.

With runemacs -Q it slows down when you cross that character by moving
pointer.

Here's info in cfengine-mode buffer for composition:

               position: 110 of 136 (80%), column: 7
              character: : (displayed as :) (codepoint 58, #o72, #x3a)
      preferred charset: ascii (ASCII (ISO646 IRV))
  code point in charset: 0x3A
                 script: latin
                 syntax: . 	which means: punctuation
               category: .:Base, a:ASCII, l:Latin, r:Roman
               to input: type "C-x 8 RET 3a" or "C-x 8 RET COLON"
            buffer code: #x3A
              file code: #x3A (encoded by coding system undecided-dos)
                display: composed to form "::" (see below)

  Composed with the following character(s) ":" by the rule:
      (?∷)
  The component character(s) are displayed by these fonts (glyph codes):
   ∷: uniscribe:-outline-MS Gothic-normal-normal-normal-mono-13-*-*-*-c-*-gb2312.1980-0 (#x49D)
  See the variable ‘reference-point-alist’ for the meaning of the rule.

  Character code properties: customize what to show
    name: COLON
    general-category: Po (Punctuation, Other)
    decomposition: (58) (':')

  There are text properties here:
    composition          [Show]
    fontified            t
    prettify-symbols-end 112
    prettify-symbols-start 110

Here's info about character that represent composition:

              character: ∷ (displayed as ∷) (codepoint 8759, #o21067, #x2237)
      preferred charset: unicode (Unicode (ISO10646))
  code point in charset: 0x2237
                 script: symbol
                 syntax: . 	which means: punctuation
               category: .:Base, c:Chinese
               to input: type "C-x 8 RET 2237" or "C-x 8 RET PROPORTION"
            buffer code: #xE2 #x88 #xB7
              file code: #xE2 #x88 #xB7 (encoded by coding system utf-8-emacs-dos)
                display: composed to form "∷" (see below)

  Composed by the rule:
      (TAB ?∷ TAB)
  The component character(s) are displayed by these fonts (glyph codes):
   ∷: uniscribe:-outline-MS Gothic-normal-normal-normal-mono-13-*-*-*-c-*-gb2312.1980-0 (#x49D)
  See the variable ‘reference-point-alist’ for the meaning of the rule.

  Character code properties: customize what to show
    name: PROPORTION
    general-category: Sm (Symbol, Math)
    decomposition: (8759) ('∷')

  There are text properties here:
    composition          [Show]
    fontified            t

Composition [Show] expanded to:

(4 1
   [9 8759 9])

-- 
http://defun.work/