vscode ```php PHP格式化输入 ```

btxsgosb  于 4个月前  发布在  Vscode
关注(0)|答案(4)|浏览(65)

这个问题可能是由于VS Code的某个扩展或者设置导致的。你可以尝试以下方法来解决这个问题:

  1. 禁用所有扩展,然后逐个启用,以找出导致问题的扩展。你可以通过点击左侧边栏的扩展图标,然后在已安装的扩展列表中禁用和启用它们。

  2. 重置VS Code的设置。你可以通过点击左上角的文件(File)> 首选项(Preferences)> 设置(Settings),然后搜索并重置与问题相关的设置。

  3. 如果以上方法都无法解决问题,你可以尝试卸载并重新安装VS Code。在卸载之前,请确保备份你的设置和扩展。

2wnc66cl

2wnc66cl1#

作为解决方法,你可以将 editor.autoIndent 设置为小于 "Full" 的任何值。

k5ifujac

k5ifujac2#

在这里,.php文件继承了html的缩进规则,而decreaseIndentPattern显然被应用了两次。@alexdima我进行了一些调试,我认为这可能是decreaseIndentPattern应用于继承规则时的一个问题?

lc8prwob

lc8prwob3#

在这里,我们从ScopedLineTokens中查找语言的缩进规则支持
vscode/src/vs/editor/common/languages/autoIndent.ts
第411行
| | constindentRulesSupport=languageConfigurationService.getLanguageConfiguration(scopedLineTokens.languageId).indentRulesSupport; |
这是一个正确的HTML。但是当我们从上一行找出继承的缩进时,我们使用模型的语言来查找它
vscode/src/vs/editor/common/languages/autoIndent.ts
第84行
| | constindentRulesSupport=languageConfigurationService.getLanguageConfiguration(model.tokenization.getLanguageId()).indentRulesSupport; |
这是一个不正确的PHP。所以它认为这一行没有缩进,因此当前行的缩进超出了前一行的范围。
不知道修复方法是什么,也许还要为前一行计算一个ScopedLineTokens

tvz2xvvm

tvz2xvvm4#

看起来 advanced 是下一个较小的级别。将选项设置为该级别会从 PHP 文件中的 HTML 中删除所有自动缩进。现在我又回到了 Notepad++ 提供的级别。
我还需要为 HTML 文件设置这个选项,因为它也有不期望的副作用。粘贴一个需要在另一个缩进级别的多行元素时,它会正确地缩进,但会错误地缩进粘贴行下方的关闭标签。我从未打算编辑那一行,但它变得更糟了。
VSCode 是否有可能正确地缩进 HTML(无论是 HTML 还是 PHP 文件)?我需要安装任何扩展才能使其正常工作吗,还是说它应该默认就可以工作?

相关问题