indent-region 对当前mode无效的原因是什么?

我这里给出两种语言的代码,用上 indent-region 的时候不一定有效,各位可以试试

int main(){
                               cout << "Hello World" << endl;
}
function main() 
                        println("Hello World")
end

代码里的空格是我故意弄成这样的,选中代码块,执行 indent-region 看看对哪个缩进有效
在我的电脑上只对 julia-mode 无效,无法调整缩进,我也不知道为什么,哪位能解答一下


发现了这个错误 LSP :: No formatting changes provided

  1. emacs -Q 看是否 Emacs 本身的问题。
  2. 用二分法定位配置或包的问题。
1 个赞

遇到问题多先自己调试下,直接说问题,emacs配置文件太复杂,别人没法答

找了下错误信息,发现了这个解决方法
you should set lsp-enable-indentiation to nil before starting lsp-mode
问题来源是 emacs-lsp/lsp-mode - Gitter
修改 init-lsp

(use-package lsp-mode
  :hook
  ((c++-mode python-mode clojure-mode typescript-mode web-mode julia-mode) . lsp)
  :config
  (setq lsp-enable-snippet nil
	lsp-eslint-enable nil
	lsp-idle-delay 0.8
	;; STUB add some config, risky
	lsp-log-io nil
	lsp-enable-symbol-highlighting t
	lsp-restart 'auto-restart
	lsp-file-watch-threshold 1000
	lsp-enable-indentation nil
	)
  (add-to-list 'lsp-file-watch-ignored-directories "node_modules/")
  :commands lsp)