fringe边缘出现白色块挡住代码的问题

现象

使用flymake/flycheck的时候,在fringe上有标记的地方,旁边会出现白色的区块挡住代码,如图:

关闭flymake/flycheck:

off

打开:(vsms两个变量被遮住了

on

用region选中看得更清楚些:

region

point移到字母v上能看到字母,说明不是childframe:

v

describe-char结果:

             position: 565 of 830 (68%), column: 4
            character: v (displayed as v) (codepoint 118, #o166, #x76)
              charset: ascii (ASCII (ISO646 IRV))
code point in charset: 0x76
               script: latin
               syntax: w 	which means: word
             category: .:Base, L:Left-to-right (strong), a:ASCII, l:Latin, r:Roman
             to input: type "C-x 8 RET 76" or "C-x 8 RET LATIN SMALL LETTER V"
          buffer code: #x76
            file code: #x76 (encoded by coding system undecided-unix)
              display: by this font (glyph code)
    mac-ct:-*-SF Mono-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1 (#x2DB)

Character code properties: customize what to show
  name: LATIN SMALL LETTER V
  general-category: Ll (Letter, Lowercase)
  decomposition: (118) ('v')

There are text properties here:
  face                 font-lock-variable-name-face
  fontified            t

[back]

displayed as v那个地方,显示正常(而不是白色)

display

总结

describe-char的结果表明也不是overlay或者text property的问题。另外能看到白色区块并不是以字母为单位(比如有的地方遮住一半的字母),也说明不是overlay/text property,而是更底层的问题。但是(visible-frame-list)只返回了一个frame,加上之前的分析也表明不是childframe。这样一来似乎只能是redisplay的问题了,然而我对emacsredisplay了解基本为零。

有谁遇到过这个问题或是了解么可能的原因的么?

重现

emacs -q
(打开elisp文件)
M-x flymake-mode

Emacs 版本: GNU Emacs 26.1.90 (build 1, x86_64-apple-darwin18.2.0, NS appkit-1671.20 Version 10.14.3 (Build 18D109)) of 2019-06-07

系统:macOS 10.14.3 (18D109)

有没有可能是和theme的冲突,不加载任何theme试一下?缩小问题范围。我经常排查半天,发现不是我想的那个包的问题,而是theme相关的bug,很是脑壳疼

不加载主题还是有问题。不过我又想到一个细节,见一楼更新

官方原始代码还是打过补丁?

https://emacsformacosx.com/ 下载的 Emacs 26.1 无此现象