我在用的一个叫qml-mode的major mode是从js-mode derive出来的
我给js-mode的hook加了lsp之后,在启动qml-mode的时候lsp也会自动打开导致满屏的的flycheck error
试过在qml-mode的hook上把lsp flycheck关掉,但是好像没什么用。 有没有什么好一些的workaround?我现在的临时方案是把js-mode的lsp禁用了
我在用的一个叫qml-mode的major mode是从js-mode derive出来的
我给js-mode的hook加了lsp之后,在启动qml-mode的时候lsp也会自动打开导致满屏的的flycheck error
试过在qml-mode的hook上把lsp flycheck关掉,但是好像没什么用。 有没有什么好一些的workaround?我现在的临时方案是把js-mode的lsp禁用了
我用的方法是
(add-hook 'python-mode-hook
(lambda ()
(unless (string-match "\.sage$" (buffer-file-name))
(eglot-ensure))))
避免python mode derive的sage mode启用lsp。用lsp-mode
的话eglot-ensure
要换成lsp-mode
?(我不用lsp-mode不清楚)
不知道有没有更好的方法。
更新:修复edge case
(add-hook 'python-mode-hook
(lambda ()
(when (and buffer-file-name
(not (string-match "\.sage$" (buffer-file-name))))
(eglot-ensure))))
(defun +js/lsp ()
(unless (member major-mode '(qml-mode))
(lsp)))
(add-hook 'js-mode-hook '+js/lsp)
Cool. 看着挺好的。我回去加上。