lsp-format-buffer 格式化空格问题

各位大神,最近用doom-emacs中lsp一直有个问题,lsp-format-buffer 总是选择2个空格缩进。我习惯用4个空格。如果修改实现呢?indent-buffer没问题。c-basic-offset=4 服务端用的是ccls,不知道是不是它的设置问题。

lsp-format-buffer对应的ccls会读取本地的.clang-format文件,不如在当前项目下重新生成一个新的看看

lisp基本编译运行我是会的。但是lsp 里边我message大衣了edite信息,发现全为空(也可能无法读取)。 你们的lsp format 格式是如何修改的呢?

lsp-format-buffer格式化使用的tab大小是

(if (bound-and-true-p c-buffer-is-cc-mode)
      c-basic-offset
tab-width)

可以尝试设置这两个值

https://clang.llvm.org/docs/ClangFormat.html

在project root執行clang-format -style=llvm -dump-config > .clang-format 即是2空格。

要更換的話,設定 IndentWidth:

2 个赞

message 打印了,就是这个edit 打不出来,应该是替换后的值和行数吧。我还看了上班有个format_parameter的。有个push_list。搞不定

已经尝试过,而且标题上已经说明c-basic_offset和tab_width 都是4 。然并卵— 一开始lsp还会改变indent_region的缩进(c-basic-offset = 4 对它也不起作用了)。但论坛有人给出了配置,恢复正常。

我并没有安装clang-format ,大神的意思是clang本身的影响?

另外,还有个问题请问下大神,我就不新开帖子了。 在doom-emacs中 ,每次只有执行一次doom refresh之后才正常,否则启动时间60s+。 而且重启后需要重新之心 doom refresh才正常。(但其实doom 只是重新rebuild 执行了一次,并无其他提示)

没有去尝试,觉得和message效果应该差不多,稍后试一下。感谢

你说的是对的。的确是clang-format的问题。请问你知道clang-format默认值如何修改吗? 不想每次都看见一个.clang-format

Ths MaskRay 大神。问题解决了。不过**clang-format能修改默认值吗?**还有上一个doom-emacs 每次必须“”doom refresh“” 不然启动超慢的问题,有解吗?

实际clang-format会搜寻 .clang-format 文件的,当前项目里没有会从 ~/.clang-format 里读取的。 把用户目录下的.clang-format里的 IndentWidth 项修改一下

1 个赞

好的,感谢………………