Visual Studio Code的智能换行

3

我很烦恼在VScode中需要水平滚动,所以我设置了以下设置来启用自动换行:

"editor.wordWrap": "on",
"editor.wrappingIndent": "indent"

然而,我发现它在我不想要的地方换行,比如像这样的函数调用:

myLongNameFunc(longNameVarA, longNameVarB);

它会像这样包装它,然后在分号处拆分它:
myLongNameFunc(longNameVarA, longNameVarB)
    ;

我更希望看到这样的东西:

myLongNameFunc(longNameVarA, 
    longNameVarB);

有没有办法设置这个配置?如果可能的话,例如允许在空格处换行?

谢谢。


你可以尝试从以下设置中删除分号: // 在执行与单词相关的导航或操作时将用作单词分隔符的字符 "editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\|;:'",.<>/?", 但这可能会对其他导航产生影响。你需要进行实验来确定是否可以解决在分号处断开的问题。 - Mark
1
谢谢尝试,但不起作用。我用以下代码覆盖了我的设置:"editor.wordSeparators": " _%/*-=+,."但我仍然发现我的函数调用在分号之前被拆分了。你还有其他的想法吗? - Dani S.
1个回答

0

已经有一段时间了...但是我看到v1.42将会有一个新的包装策略选项,这个选项可以为我解决你的问题:

编辑器:包装策略

选择 高级

控制计算换行点的算法。

  • 简单:假设所有字符都具有相同的宽度。这是一种快速算法,适用于等宽字体和某些脚本(如拉丁字符),其中字形具有相等的宽度。

  • 高级:将换行点计算委托给浏览器。这是一种缓慢的算法,可能会导致大文件卡顿,但在所有情况下都能正确工作。

正如设置所警告的那样,高级 可能会对大文件产生不利影响,但它确实可以正确地包装您的示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接