gpt4 book ai didi

c++ - 如何使 VSCode 缩进不带括号的 if 语句?

转载 作者:行者123 更新时间:2023-12-04 13:51:06 27 4
gpt4 key购买 nike

在以下情况下,当我创建换行符时,我希望 VSCode 自动缩进:

if(statement)
func();
点击换行符时,默认功能会执行以下操作:
if(statement)
func();
这是 VSCode 中长期存在的问题: https://github.com/microsoft/vscode/issues/43244
我很感激可以完成这种行为的任何类型的黑客/扩展。在 github 问题链接中还有其他缩进被破坏的情况,但我只关心这个简单的情况。

最佳答案

弄清楚如何在不安装扩展程序的情况下执行此操作。可能有更好的方法可以在 settings.json 中完成但我找不到。您可以直接从源代码修改语言配置,对我来说是 C:\Program Files\Microsoft VS Code\resources\app\extensions\cpp\language-configuration.json .有一个guide对于这些文件设置。我在我的 C++ 语言配置中添加了以下内容:

"onEnterRules": [
{
"beforeText": "^\\s*(?:if|while)\\(.*\\)\\s*$",
"action": {
"indent": "indent"
}
},
{
"beforeText": "(?=)",
"previousLineText": "^\\s*(?:if|while)\\(.*\\)\\s*$",
"action": {
"indent": "outdent"
}
}
]
这有效,但不幸的是官方的 c++ vscode 扩展 C/C++ for Visual Studio Code由于某种原因打破它。
下面是我最初的方法,它打破了太多有用的东西。
"indentationRules": {
"increaseIndentPattern": "^\\s*if\\(.*\\)\\s*$",
"decreaseIndentPattern": "(?!)"
}
领域 decreaseIndentPattern必须设置(这里正则表达式永远不会捕获任何东西),否则它会忽略 indentationRules字段(我猜他们从来没有测试过是否只设置一个?)请注意,这些编辑需要使用管理权限来完成,我发现 VSCode 制作它们非常方便。此外,这些更改在 VSCode 关闭之前不会生效。
事实证明,我遇到了在此 PR 中提到的相同问题: https://github.com/microsoft/vscode/pull/115454 .此修复破坏了太多其他 vscode 缩进行为,例如在 if 语句中第一个正确缩进的行之后取消缩进。

关于c++ - 如何使 VSCode 缩进不带括号的 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69400313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com