Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用户设置不适用于格式化PowerShell代码_Powershell_Visual Studio Code - Fatal编程技术网

用户设置不适用于格式化PowerShell代码

用户设置不适用于格式化PowerShell代码,powershell,visual-studio-code,Powershell,Visual Studio Code,我正在Visual Studio代码用户设置(settings.json)中保存以下内容,并保存、重新启动Visual Studio代码,但它不起作用 “powershell.codeFormatting.openBraceOnSameLine”:false, “editor.formatOnType”:true 我想让它做的是当我键入: if (1) {}Enter 不是这个(默认行为): 这些设置应该足够了,但出于某种原因,它不需要 有什么想法吗 如果我在之后对文档进行格式化(Shift+

我正在Visual Studio代码用户设置(settings.json)中保存以下内容,并保存、重新启动Visual Studio代码,但它不起作用

“powershell.codeFormatting.openBraceOnSameLine”:false,
“editor.formatOnType”:true
我想让它做的是当我键入:

if (1) {}Enter 不是这个(默认行为):

这些设置应该足够了,但出于某种原因,它不需要

有什么想法吗


如果我在之后对文档进行格式化(Shift+Alt+F),它确实会按照上面指定的方式更正文档,但我希望它在类型上自动格式化

是否将powershell.codeFormatting.ignoreOneLineBlock设置为
true
?这是该设置的默认值。

好吧,它会在键入时重新格式化,但需要输入几个条目才能应用它们。在格式化大括号之前,必须看到enter两次

所以你基本上必须这样做:

if (1) { Enter Type Something Enter } 如果(1){ 进入 输入某物 } 在第二个enter键之后,它将为您重新设置大括号的格式


您好,是的,它被设置为此,但即使它为false,也不会改变不需要的格式化行为。不管怎样,谢谢你的建议是的,这似乎对我也不起作用。我已经启用了粘贴格式,即使禁用了忽略一行块,粘贴这样的块也会被忽略。是的,这看起来还是个bug。如果是这样的行为,那到底是什么呢?
“powershell.codeFormatting.ignoreOneLineBlock”
甚至可以做什么?你可以在GitHub上找到关于格式选项的详细问题(现在找不到)。这不是一个bug,只是他们如何实现它。如果您认为编辑器服务必须先看到击键,然后才能启动,因此在执行某些格式时会有延迟。忽略一行块是格式化程序块语句位于一行的地方。它不会扩展这些。我知道设置的含义。我是说
formatOnType
不适用于
ignoreOneLineBlock
。关键是,如果(1){2}+Enter未使用
“powershell.codeFormatting.ignoreOneLineBlock”:false
“editor.formatOnType”:true进行格式化,
。但是,如果
“editor.formatOnPaste”:true
,则粘贴上述代码会对其进行格式化。同样,Shift+Alt+F也将对其进行格式化。那么,如果有两种行为,哪一种是正确的?为什么会有两种不同的行为?FormatOnType和ignore one line block并不意味着要一起工作。它是在你打字时没有效果的一种。它在您使用格式文档或格式选择时生效。“粘贴时使用格式”相当于针对粘贴到编辑器中的内容运行“格式选择”。如果粘贴大量代码,可以看到这种效果,它将在复制时格式化到文件中,并且编辑器需要几毫秒来完成并应用格式化。
if (1){

}
if (1) { Enter Type Something Enter }