有人在用最新的 flymake 吗?

我也经常遇到,不过好像flycheck也有这种情况

配了会儿没搞明白,于是继续用着 flycheck。除非发现它有什么杀手锏级别的应用出现再考虑用它。

1 个赞

我觉得是eglot的问题,不过eglot又不支持flycheck,难说

这个感觉不像是flymake的锅

flymake感觉就没标对过位置,而且,一标就是一大片,毫无准确性可言。另外,开始的时候我也纠结过多个checker的问题。后来发现pylnit实在比flake8慢太多了,flycheck这种add-next-checker的机制,正好缓解了这个问题。。

语言:python

考慮lsp-mode lsp-ui

yyoncho加了flymake支援後我改成預設flymake是基於兩個原因

(defcustom lsp-prefer-flymake t
  "Auto-configure to prefer `flymake' over `lsp-ui' if both are present."
  :type 'boolean
  :group 'lsp-mode)
  1. flycheck有滯留diagnostics問題: [lsp-ui-flycheck] Clear overlays before calling (flycheck-buffer) by MaskRay · Pull Request #214 · emacs-lsp/lsp-ui · GitHub 調用 (flycheck-clear t)能緩解。但作者有疑慮,需要更多data points

  2. flycheck性能問題 lsp-ui-flycheck is (sometimes) slow · Issue #45 · emacs-lsp/lsp-ui · GitHub 不知道現在是否改善了

但我用flymake也碰到問題。lingering diagnostics可能有時仍然存在(需要更多data points)

預設開啓的flymake-proc會創建臨時檔案a_flymake.cc等,很煩: (setq-default flymake-diagnostic-functions nil)

沒有flymake-posframe,我自己隨手塗了一個 Config/config.el at master · MaskRay/Config · GitHub

2 个赞

这有个

看来大家用 flymake 都遇到了困难。有人配置检查 elisp 成功的吗?其他语言可以用 lsp-mode 解决,但最基本的 elisp 检查我都用不起来真是郁闷。

我也只是通过 lsp 用 flymake,自己没有配过,也不太会配置。

这里有一个对比,稍微看了一下最大的区别是语言的支持数量,不过随着 lsp 的普及,这方面的差距会慢慢变小吧。

http://www.flycheck.org/en/latest/user/flycheck-versus-flymake.html

Flycheck Flymake
Supports Emacs versions 24.3+ 26.1+
Built-in no [1] yes
Supported languages >50 >4
Automatic syntax checking built-in manual
Checks after save, newline, change save, newline, change
Checks asynchronously yes yes
Automatic syntax checker selection by major mode and custom predicates user-defined [2]
Manual syntax checker selection yes yes
Multiple syntax checkers per buffer yes yes
Checking remote files via Tramp said to work, but not officially supported [3] partly?
Definition of new syntax checkers single declarative function/macro function definition [4]
Error levels errors, warnings, infos, custom levels errors, warnings, notes, custom levels
Error identifiers yes no
Error parsing helpers for regexp, JSON and XML none
Error highlighting in buffers yes yes
Fringe icons for errors yes yes
Error message display tooltip, echo area, fully customizable tooltip, echo area
List of all errors yes; filterable by error level yes
1 个赞

嗨,您好。

这不成立,http://www.flycheck.org/en/27/_downloads/flycheck.html#Applying-multiple-checkers:

Frequently, we would like to use multiple syntax checkers in a buffer. For instance, we might want to check the syntax of a script with sh-zsh from the previous section, and then use Shellcheck to check for questionable code such as unquoted variable expansions, if there are no syntax errors. Flycheck supports this scenario by chaining syntax checkers.

它是用把checkers chain在一起,只有第一个完全没有error了,才会跳到第二个去check。

似乎不是啊。我用 flycheck 检查 python 文件的截图,好像两个都起作用了。

你这两个warning不都是lsp-ui checker的吗?如果你吧这两个warning 解决了,你看看其他的checker的内容会不会多出来

add-next-checker的时候不是可以指定level吗

RIP,好像还真是,把level设置成t就可以一起用了~多谢

解决(require)报错的问题:

(setq elisp-flymake-byte-compile-load-path
                  (append elisp-flymake-byte-compile-load-path load-path))
2 个赞

这flymake居然不用自己的前缀定义变量,很勇哦? :joy:

1 个赞

elisp-flymake-byte-compile-load-path 是27里的变量吗?26.1里好像找不到呀。

flymake 是直接在elisp-mode.el里加东西,真是无语

那应该是了,我用的是27。


built-in 包就是可以为所欲为 :joy:

elisp-flymake-byte-compile-load-path 是最近才加的:

是 eglot 作者加的,虽然是大佬,但我感觉这家伙有点冒进,之前还要求把他开发没几天的 eglot 纳入到 elpa。

1 个赞