【问题标题】:Visual Studio Code Flutter Format is Not Working with My Indent Space ValueVisual Studio Code Flutter 格式不适用于我的缩进空间值
【发布时间】:2020-03-30 20:12:57
【问题描述】:

我浪费了一整天,我不明白发生了什么。我正在使用 Visual Studio Code 1.40.2,我正在学习 Flutter 3.60。有时,由于缩进空间,Flutter 代码变得不可读。我只想创建更多空间(缩进空间),但是当我使用格式选项时,选项卡大小再次变为 2。我查看了太多网站,包括 Stackoverflow,不幸的是我没有找到解决方案。它变得烦人。这是我的配置文件:(感谢帮助)

{
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
"editor.fontSize": 18,
"editor.fontFamily": "Consolas, 'Courier New', monospace, ",
"dart.openDevTools": "flutter",
"workbench.colorTheme": "Night Owl (No Italics)",
"workbench.iconTheme": "material-icon-theme",
"editor.fastScrollSensitivity": 8,
"editor.tabSize": 8,
"editor.insertSpaces": true,
"editor.wordWrap": "on",
"editor.smoothScrolling": true,
"editor.cursorBlinking": "expand",
"editor.cursorSmoothCaretAnimation": true,
"editor.fontWeight": "400",
"outline.showFields": false,

"[dart]": {
    "editor.tabSize": 6,
    "editor.insertSpaces": true,
    "editor.detectIndentation": false,
},

}

  • 我将 editor.insertSpaces 更改为 false 和 true,但没有任何变化。
  • editor.detectIndentation true 或 false 不起作用。
  • 我添加了这个块但是没有用。

    "[颤动]": { “editor.tabSize”:6, “editor.insertSpaces”:是的, “editor.detectIndentation”:假, },

这是我的简单代码:

import 'package:flutter/material.dart';

class GridListe extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GridView.count(
        crossAxisCount: 3,
        primary: false,
        padding: EdgeInsets.all(10),
        crossAxisSpacing: 20,
        mainAxisSpacing: 40,
        children: <Widget>[
            Container(
                alignment: Alignment.center,
                color: Colors.teal,
                child: Text(
                "Salam",
                textAlign: TextAlign.center,
                ),
            ),
        ],
    );
  }
}

当我使用格式代码 (Shift + alt + p) 代码缩进空间或制表符大小变成 2 时,它会让我发疯。

import 'package:flutter/material.dart';

class GridListe extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GridView.count(
      crossAxisCount: 3,
      primary: false,
      padding: EdgeInsets.all(10),
      crossAxisSpacing: 20,
      mainAxisSpacing: 40,
      children: <Widget>[
        Container(
          alignment: Alignment.center,
          color: Colors.teal,
          child: Text(
            "Salam",
            textAlign: TextAlign.center,
          ),
        ),
      ],
    );
  }
}

【问题讨论】:

  • dartfmt 总是打算使用 2 个空格 - 你无法控制。
  • 有时我看教程,当他们使用 Android Studio 时,他们有更多的缩进空间......我认为问题在于 VSC 设置。
  • @BurakİbrahimÜnal 不幸的是,这不仅仅是设置 - 请参阅下面的答案。 Android Studio/IntelliJ 确实有更多选择,因为它们自己解析 Dart 代码并从 IDE 框架中获得很多功能 - VS Code 并非如此,因此我们只有 SDK 提供的格式。
  • 在设置中搜索formatOnSave并启用

标签: flutter dart visual-studio-code indentation


【解决方案1】:

VS Code 的 Dart 扩展使用来自 Dart SDK (dart_style) 的格式化程序,它不支持自定义缩进选项(按设计),因此它将始终使用 2 个空格。

如果您希望手动格式化,可以禁用内置格式化程序,并且其他 VS Code 扩展也可以为 Dart 提供格式化程序 - 尽管据我所知(还)没有创建(虽然我已经提供了帮助 in this issue 如果有人有兴趣创建一个 VS Code 扩展来执行此操作)。

【讨论】:

    【解决方案2】:

    在你的 settings.json 文件中添加这个

    "[dart]": {
       "editor.defaultFormatter": "Dart-Code.dart-code",
       "editor.formatOnSave": true
    },
    

    【讨论】:

    • 我也输入了这行...没有任何改变。我已经在上面写了。不幸的是 dart sdk 不支持更改缩进空间。
    • 在此解决方案中删除 "[dart]": 对我有用。
    【解决方案3】:

    只需在您的ProjectDir/ProjectName/.vscode/settings.json 中添加以下代码

       {
            "editor.defaultFormatter": "Dart-Code.dart-code",
            "editor.formatOnSave": true
     }
    

    【讨论】:

    • 对我来说非常棒的工作
    【解决方案4】:
    1. 打开设置 (json)
    2. 找到 [dart] 并添加“editor.tabSize”:4

    【讨论】:

      猜你喜欢
      • 2016-09-05
      • 2016-07-15
      • 2020-11-09
      • 2022-08-10
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      相关资源
      最近更新 更多