vscode 中 格式化 vue 如何不自动换行

问题对人有帮助,内容完整,我也想知道答案4问题没有实际价值,缺少关键内容,没有改进余地

目前格式化的时候经常会自动换行
eg:

return wepy.chooseImage({
    count: 1,
    sizeType: "original"
}).then(res => res.tempFilePaths[0]);

会被格式化为

return wepy
    .chooseImage({
        count: 1,
        sizeType: "original"
    })
    .then(res => res.tempFilePaths[0]);

 

答案对人有帮助,有参考价值5答案没帮助,是错误的答案,答非所问

楼上的配置已经失效。
看看我js的自动格式化

  this.xjLink =
    h5 +
    '/aaa/bbb/home?token=' +
    token +
    '';

看的我尴尬癌都犯了,真心受不了,这开发不是哪抽疯了。
真实原因是:默认对JS使用了prettier.
user config 增加以下解决
{

"vetur.format.defaultFormatter.js": "vscode-typescript",

}

答案对人有帮助,有参考价值2答案没帮助,是错误的答案,答非所问

// 对属性进行换行。
// - auto: 仅在超出行长度时才对属性进行换行。
// - force: 对除第一个属性外的其他每个属性进行换行。
// - force-aligned: 对除第一个属性外的其他每个属性进行换行,并保持对齐。
// - force-expand-multiline: 对每个属性进行换行。
// - aligned-multiple: 当超出折行长度时,将属性进行垂直对齐。

  "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
            "wrap_attributes": "auto",
        }
     },
  •  

答案对人有帮助,有参考价值1答案没帮助,是错误的答案,答非所问

"vetur.format.defaultFormatter.html": "js-beautify-html",
"vetur.format.defaultFormatter.js": "vscode-typescript",
  •  

答案对人有帮助,有参考价值1答案没帮助,是错误的答案,答非所问

2019/1/2 最新解决办法 (版本1.30.1) :

    "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
            "wrap_attributes": "aligned-multiple"
        },
        "prettyhtml": {
            "printWidth": 100,
            "singleQuote": false,
            "wrapAttributes": false,
            "sortAttributes": false
        }
    },
    "vetur.format.defaultFormatter.html": "js-beautify-html",

即可使得 vue 元素不再折行 ;

关于 "vetur.format.defaultFormatterOptions" 与 "vetur.format.defaultFormatter.html" , 在楼上其他大神的答案中已有讲解, 这里就不再啰嗦 ;

  •  

答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问

 

答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问

这是因为在VSCode1.7.2中替换了内置格式化插件。解决办法是在VScode设置(setting.json)中,配置如下规则

{
   "prettier.singleQuote": true,
   "prettier.semi": false,
   "vetur.format.defaultFormatter.html": "js-beautify-html",
   "vetur.format.defaultFormatterOptions": {
      "wrap_attributes": "force-aligned"
    }
}

 

答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问

其实去看下prettier的设置就好,不需要将vetur.format.defaultFormatter.js改成vscode-typescript

"prettier.singleQuote": true, // 用单引号
"prettier.semi": true, // 句末加分号
"prettier.printWidth": 200, // 换行字符串阈值
"prettier.trailingComma": "none", // 最后一个对象元素加逗号
"prettier.arrowParens": "avoid", // (x) => {} 是否要有小括号
"prettier.proseWrap": "preserve", // 是否要换行
"vetur.format.defaultFormatter.js": "prettier", // vetur 使用 prettier格式化代码
  •  

答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问

图片描述

有点受不了了,
能不能让他 不管 换行呢。
我把 prettier.printWidth 设置 短了 他就 换行我不想换行的,
我把 prettier.printWidth 设置 长了 他给我来个 一行
受不鸟了。
谁来帮帮我

  •  

答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问

设置 printWidth: 500 可以

"prettyhtml": {
            "printWidth": 500,
            "singleQuote": false,
            "wrapAttributes": false,
            "sortAttributes": true,
            "useTabs": true,
            "proseWrap": "preserve",
        }
Logo

前往低代码交流专区

更多推荐