VSCode单双引号自动替换

时间:2018-02-19 11:16:26

标签: visual-studio-code electron vscode-settings

当我在Vue Component.vue文件上执行Format Document命令时,VSCode用双引号字符串替换所有单引号字符串。

在我的特定情况下,此规则与需要单引号的electron-vue lint配置冲突。

我没有安装更漂亮的扩展程序(在我的设置中没有prettier.singleQuote)

如何自定义vscode以避免这种情况?

25 个答案:

答案 0 :(得分:75)

我没有安装prettier扩展程序,但在阅读possible duplicate回答后,我已在我的用户设置(UserSetting.json,Ctrl +,快捷方式)中从头开始添加:

"prettier.singleQuote": true

部分绿色警告(Unknown configuration setting)单引号不再被替换。

我怀疑更漂亮的扩展程序不可见,但嵌入在Vetur扩展程序中。

答案 1 :(得分:27)

好吧,就像提到的那个人(@ user2982122)一样,但是要代替文件,请转到代码->首选项->设置,然后寻找报价,选择更漂亮并选中两个框

enter image description here enter image description here

答案 2 :(得分:17)

请考虑使用.editorconfig覆盖所有内容,请使用:

[*]
quote_type = single

答案 3 :(得分:12)

对我有用的是设置 .prettierrc.json 配置文件。使用如下示例配置将其放入项目的根目录:

{
  "singleQuote": true,
  "trailingComma": "all",
  "tabWidth": 2,
  "semi": true,
  "arrowParens": "always"
}

触发格式化文档命令后,一切都按预期工作。

附注:这个解决方案的好处是,由于当前的配置文件,每个团队成员都能获得相同的格式输出。

答案 4 :(得分:8)

安装更漂亮的扩展并将以下代码粘贴到VSCode settings.json文件中

 "prettier.useEditorConfig": false,
 "prettier.singleQuote": true

这将忽略您的.editorconfig文件设置。

答案 5 :(得分:6)

对于像我这样的新手:

从顶部的导航栏菜单:选择文件->首选项->设置。 在搜索文本框中,输入Quote 在下面显示的过滤列表中,找到齿轮图标及其旁边的“漂亮”。单击复选框以启用“更漂亮:单引号”

答案 6 :(得分:6)

只有适用于我的解决方案: 并且仅适用于Angular项目:

只需进入您的项目“ .editorconfig”文件,然后粘贴“ quote_type = single”。 希望它也对您有用。

答案 7 :(得分:6)

尝试以下解决方案之一

  1. 在vscode settings.json文件中添加此条目 "prettier.singleQuote": true
  2. 在vscode中,如果您有.editorconfig文件,请将此行添加到根[*]符号quote_type = single
  3. 在vscode中,如果您有.prettierrc文件,请添加此行
{
    "singleQuote": true,
    "vetur.format.defaultFormatterOptions": {
        "prettier": {
            "singleQuote": true
        }
    }
}

答案 8 :(得分:6)

我在vscode中遇到了同样的问题。只需在根目录中创建一个 .prettierrc 文件,然后添加以下json。 对于单引号,请添加:

{
  "singleQuote": true
}

对于双引号,请添加:

  {
      "singleQuote": false
  }

答案 9 :(得分:6)

此问题似乎是一个打开的错误:Prettier Bug

以上解决方案均不适合我。 唯一有效的方法是,在package.json中添加以下代码行:

"prettier": {
    "singleQuote": true
  },

答案 10 :(得分:6)

如@attdona所述,Vetur扩展名更漂亮。

虽然您可以根据接受的答案更改更漂亮的设置,但也可以更改vue组件特定区域的格式化程序。

例如,在这里,我将Vetur设置为使用vscode-typescript格式化程序,因为默认情况下它使用单引号:

vscode vetur settings

答案 11 :(得分:5)

正确的解决方案:

我在主根项目中添加了.prettierrc.js文件 并写

module.exports = {
    singleQuote: true
  };

答案 12 :(得分:5)

quote_type = single

在 .editorconfig 中添加这个

# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = false
quote_type = single

答案 13 :(得分:4)

对于默认情况下使用.editorconfig文件的项目。格式化程序将忽略设置中的规则,并使用.editorconfig中的规则,然后您可以:

  • 删除.editorconfig文件,并使用VSCode设置。
  • quote_type = single添加到.editorconfig文件中,以了解您的文件类型。您还可以将quote_type的值设置为doubleauto

答案 14 :(得分:3)

我使用的是打字稿,对我而言,通过在更漂亮的设置下(“ vscode”首选项)检查“ Tslint集成”标志可以解决该问题:

vscode settings for prettier, fixing double quote auto formatting issue

答案 15 :(得分:3)

在.prettierrc中添加

{
  "arrowParens": "avoid",
  "semi": false,
  "singleQuote": true
}

答案 16 :(得分:2)

对于JSX,使用:

{"jsxSingleQuote": false}

答案 17 :(得分:2)

就我而言,问题出在字符串中转义的 \ 字符上:

message = 'Error argument is not an object, it\'s ' + typeof error

打开 avoidEscape 选项并对该字符串使用双引号解决了问题:

message = "Error argument is not an object, it's " + typeof error

.eslintrc.js

module.exports = {
  rules : {
    // Other rules...
    'quotes' : ['error', 'single', {'avoidEscape' : true}],
  }
}

答案 18 :(得分:1)

在vuejs / vetur问题页面https://github.com/vuejs/vetur/issues/986#中 这个解决方案对我有用。

在VSCodes settings.json文件中添加此条目

"vetur.format.defaultFormatterOptions": {
    "prettier": {
        "singleQuote": true
    }
},

答案 19 :(得分:1)

我也可以在Prettier中查看单引号 tslint.autoFixOn另存为 true

enter image description here

enter image description here

答案 20 :(得分:1)

对我来说这两个选项都解决了这个问题:

  1. 通过在 .prettierrc 中添加 - "singleQuote": true

  2. 或者通过在 package.json 中添加以下内容 -> “更漂亮”:{ “单引号”:真 }

虽然我也尝试添加 .prettierrc.js 并有以下内容

module.exports = { singleQuote: 真 };

这没有用。

答案 21 :(得分:0)

我在项目文件夹中添加了名为.prettierrc的文件。 文件内容:

{
    "singleQuote": true,
    "vetur.format.defaultFormatterOptions": {
        "prettier": {
            "singleQuote": true
        }
    }
}

答案 22 :(得分:0)

使用此扩展名。

https://marketplace.visualstudio.com/items?itemName=BriteSnow.vscode-toggle-quotes

cmd'(在Win / Linux上为ctrl')将在'“`

之间循环

答案 23 :(得分:0)

您可以在settings.json中使用它

"javascript.preferences.quoteStyle": "single"

答案 24 :(得分:0)

这对我有用: 尝试右键单击当前文档 并选择“格式化文档”, 并为文档选择您自己的格式扩展名。 :)