Visual Studio Code Flutter 格式不适用于我的缩进空间值

Posted

技术标签:

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

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


"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并启用 【参考方案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】:
    打开设置 (json) 找到 [dart] 并添加“editor.tabSize”:4

【讨论】:

以上是关于Visual Studio Code Flutter 格式不适用于我的缩进空间值的主要内容,如果未能解决你的问题,请参考以下文章

visual studio code报错误怎么解决

visual studio code怎么新建vue工程

visual studio 和visual studio code 的区别

visual studio code怎么运行代码

visual studio 和visual studio code 的区别

开发环境Ubuntu 安装 Visual Studio Code 开发环境 ( 下载 Visual Studio Code 安装器 | Ubuntu 安装 deb 包 )