欢迎使用 Nox -- 轻量级 LSP 客户端

你要安装 posframe , 要不是没有 posframe-hide 函数。

我之前就在init.el里面修改过digestif的安装地址了,是可以弹出补全菜单,但是有几个问题,如下图:

Screenshot_20200404_113120

每一行最左边显示的都是be,按说这里应该显示每一行最右边的内容,此时按回车的话也有任何相应,无法补全选中项;另外方括号里面总是nil,似乎这里应该是Text或者是Built-in之类;最后在补全的第一项总是会出现一道白色的竖线,也不知是怎么回事。

另外,在单独bib文件中的参考文献也无法补全。

但是好处是,digestif感觉比texbin要更快,用texbin的话,nox和vscode相比就有明显卡顿。

posframe已经装了,只是可能这里没调用,我改完论文再试试

我改成digestif也出现了同样的问题:左侧没补全,右边是nil。用texlab方括号里就是Text。我之前用texlab是因为仓库里有,安装比较方便,使用确实感觉有点绊手。

我elpa安装posframe后使用也是有问题,提示没有posframe-hide函数,然后我就先(require 'posframe)后在(require 'nox) 就好了

1 个赞

最新版Nox已经修复了 posframe-hide 报错的小毛病了。

1 个赞

我记得posframe在native macos全屏模式下不正常,因为全屏模式会把新窗口丢到另一个桌面去

1 个赞

你看我在snails readme写的解决方案

那是mac自己的bug

我在考虑,是不是我应该强制让posframe忽略error

只要你对代码有足够的信心,我觉得可以这样做。

可以省很多事情。

但是代码一旦有问题,到时候就很难调试了,需要用户把你这种ignore-errors去掉

我也担心这个,当时开发posframe纯粹是为了pyim,后来觉得这个玩意其他地方也可能有用,才独立出来,最后发现这他么是个坑,因为经常遇到child-frame那边的问题,我又无能为力,英文水平也不行,在emacs-devel上讨论极其痛苦。。。

4 个赞

childframe坑太多,各个系统上都不一样。

不要把gc-cons-threshold的设置放在nox里面吧…这应该由用户写在自己的配置里头.和lsp无关啊. nox.el 最后:

(defun max-gc-limit ()
  (setq gc-cons-threshold most-positive-fixnum))

(defun reset-gc-limit ()
  (setq gc-cons-threshold 800000))

(add-hook 'minibuffer-setup-hook #'max-gc-limit)
(add-hook 'minibuffer-exit-hook #'reset-gc-limit)

有同样的问题~

这个有益无害的,主要是提升性能用

建议用户自己配置啊

我平时用的20MB的GC阈值,nox这样会在minibuffer-exit-hook给我改成8MB

话说改大这个变量最直接的好处是什么?我没研究过,不太了解

减少反复GC的次数,减轻卡顿。就像当我有无限的内存的时候,最有效的内存管理就是只申请,永不释放。

我一般称之为 Elisp VM调优 :rofl:

1 个赞
;; GC调优
(require 'gcmh)
(gcmh-mode 1)

添加了这个包,但感觉不太明显