lspui的doc设置了border颜色没有生效

lsp ui 这里我是这么写的。设置了border的颜色但是没生效

  (use-package lsp-ui
    :after lsp-mode
    :commands lsp-ui-mode
    :config
    (setq lsp-ui-doc-border   "orange"
          lsp-ui-doc-position 'at-point
          lsp-ui-sideline-show-code-actions nil
          lsp-ui-sideline-show-hover nil))

我没有用 lsp,但我猜原因和这个帖子可能是类似的,大致上就是有些变量设定的时候需要运行一个 setter 才能产生效果,而用 setq 时不会触发 setter。解决方法一个是把 setq 全放到 :init 块里,让它们在插件加载之前就设置好;另一个是抄一下我在那个帖子里面发的宏,它类似 setq,但会检测并运行变量的 setter。

我试一下。tks

没用。还是没有border

你用的是mac?mac上的border好像有点问题。而且好像只有childframe没有border,frame就正常…

是mac 现在显示是doc的时候就没有border。。现在是这样的就很难看了

我看到过这个图 也是在mac啊

mac上是没有 border 的,emacs 的 bug。

应该是internal-border没有,普通的frame是有mac窗口的那种border的

这样吗。。那上图是如何做到的有点想要这样的。

换mac port的emacs试试

老哥 给力 成了!!!!

其实这个 outer border 的功能基本上是坏的,来看文档怎么说:

Outer borders are never shown on text terminal frames and on frames generated by GTK+ routines. On MS-Windows, the outer border is emulated with the help of a one pixel wide external border. Non-toolkit builds on X allow to change the color of the outer border by setting the border-color frame parameter.

我在 Linux 上折腾过一些 posframe 之类的插件也有这个问题,后来就不用了(个人经常用终端版 emacs)。想要通用的话其实可以改一下 internal border 的颜色,这样边框会是紧贴着文字外边的。

最新的emacs 28 可以正常显示border了,posframe显示正常,但是lsp-ui-doc还是不行,换mac-port版本就可以,但是posframe又不行了,很是怪异