vscode的配置分享

929 阅读2分钟
{
    // eslint
    "eslint.codeAction.showDocumentation": {
        "enable": true
    },
    "eslint.codeAction.disableRuleComment": {
        "enable": true
    },
    "eslint.validate": ["javascript", "javascriptreact"],
    "eslint.codeActionsOnSave.mode": "all",
    "eslint.run": "onSave",

    /*  prettier的配置 格式化代码 */
    "prettier.printWidth": 100, // 超过最大值换行
    "prettier.tabWidth": 2, // 缩进字节数
    "prettier.useTabs": false, // 缩进不使用tab,使用空格
    "prettier.semi": false, // 句尾添加分号
    "prettier.singleQuote": true, // 使用单引号代替双引号
    "prettier.proseWrap": "preserve", // 默认值。因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行
    "prettier.arrowParens": "avoid", //  (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid:省略括号
    "prettier.bracketSpacing": true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }"
    "prettier.endOfLine": "auto", // 结尾是 \n \r \n\r auto
    "prettier.htmlWhitespaceSensitivity": "ignore",
    "prettier.ignorePath": ".prettierignore", // 不使用prettier格式化的文件填写在项目的.prettierignore文件中
    "prettier.jsxBracketSameLine": false, // 在jsx中把'>' 是否单独放一行
    "prettier.jsxSingleQuote": false, // 在jsx中使用单引号代替双引号
    "prettier.requireConfig": false, // Require a 'prettierconfig' to format prettier
    "prettier.trailingComma": "none", // 在对象或数组最后一个元素后面是否加逗号(在ES5中加尾逗号)

    // 在使用搜索功能时,将这些文件夹/文件排除在外
    "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true,
        "**/target": true,
        "**/logs": true
    },

    // 这些文件将不会显示在工作空间中
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "**/*.js": {
            "when": "$(basename).ts" //ts编译后生成的js文件将不会显示在工作空中
        },
        "**/*.js.map": true,
        "**/node_modules": true
    },

    // 主题颜色
    "workbench.colorTheme": "One Dark Pro",

    // 文件图标
    "workbench.iconTheme": "vscode-icons",

    // 注释配置
    "fileheader.configObj": {
        "autoAdd": false, // 默认开启自动添加头部注释,当文件没有设置头部注释时保存会自动添加
        "autoAlready": false, // 默认开启
        "prohibitAutoAdd": ["json", "md"], // 禁止.json .md文件,自动添加头部注释
        "wideSame": false, // 设置为true开启
        "wideNum": 13, // 字段长度 默认为13
        "CheckFileChange": true, // 每次保存之后,会进行一次diff检查, 如果文件只变更了LastEditors/LastEditTime,该文件将会回滚到本地仓库的最新版本
        "typeParam": true, // 函数注释是否需要type
        "moveCursor": false, // 移动光标到`Description :`所在行
        "atSymbol": ["@", "@"], // 所有文件的头部注释 和 函数注释的默认值
        "colon": [": ", " "] // 所有文件的头部注释 和 函数注释的默认值
    },

    // 文件头部注释
    "fileheader.customMade": {
        "Author": "Your Name",
        "Description": "",
        "Date": "Do not edit",
        "LastEditors": "Your Name",
        "LastEditTime": "Do not Edit"
    },

    //函数注释
    "fileheader.cursorMode": {
        "author": "Your Name",
        "param": "",
        "description": "",
        "return": ""
    },

    // cucumber test, 必要时候可以查看官网配置解说
    // https://github.com/alexkrechik/VSCucumberAutoComplete
    "cucumberautocomplete.steps": ["test/steps/**/*.step.js"],
    "cucumberautocomplete.syncfeatures": "test/features/**/*feature",
    "cucumberautocomplete.strictGherkinCompletion": true,
    "cucumberautocomplete.strictGherkinValidation": true,
    "cucumberautocomplete.smartSnippets": true,
    "cucumberautocomplete.stepsInvariants": true,
    "cucumberautocomplete.customParameters": [
        {
            "parameter": "{ab}",
            "value": "(a|b)"
        },
        {
            "parameter": "/{a.*}/",
            "value": "a"
        }
    ],
    "cucumberautocomplete.pages": {
        "main": "test/pages/page.js"
    },
    "cucumberautocomplete.skipDocStringsFormat": true,
    "cucumberautocomplete.formatConfOverride": {
        "And": 3,
        "But": "relative"
    },
    "cucumberautocomplete.onTypeFormat": true,
    "cucumberautocomplete.gherkinDefinitionPart": "(Given|When|Then)\\(",
    "cucumberautocomplete.stepRegExSymbol": "/",

    // default editor configuration
    "editor.formatOnSave": false,
    "editor.fontSize": 18,
    "editor.wordWrap": "off",
    "editor.detectIndentation": false,
    "editor.quickSuggestions": {
        "comments": false,
        "strings": true,
        "other": true
    },
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": false
    },
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "[typescriptreact]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.formatOnSave": true
    },
    "[javascriptreact]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.formatOnSave": true
    },
    "[typescript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.formatOnSave": true
    },
    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.formatOnSave": true
    },
    "[html]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.formatOnSave": true
    },
    "[json]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.formatOnSave": true
    },
    "[jsonc]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.formatOnSave": true
    },
    "[feature]": {
        "editor.defaultFormatter": "alexkrechik.cucumberautocomplete",
        "editor.formatOnSave": true
    },
    "javascript.updateImportsOnFileMove.enabled": "always",
    // 文件二进制
    "explorer.confirmDragAndDrop": false,
    // emmet 识别 jsx
    "emmet.triggerExpansionOnTab": true,
    "emmet.includeLanguages": {
        "javascript": "javascriptreact"
    },
    // 启用experimentalDecorators, 支持装饰器
    "js/ts.implicitProjectConfig.experimentalDecorators": true,
    // best comments
    "better-comments.tags": [
        {
            "tag": "!",
            "color": "#FF2D00",
            "strikethrough": false,
            "underline": false,
            "backgroundColor": "transparent",
            "bold": false,
            "italic": false
        },
        {
            "tag": "?",
            "color": "#3498DB",
            "strikethrough": false,
            "underline": false,
            "backgroundColor": "transparent",
            "bold": false,
            "italic": false
        },
        {
            "tag": "//",
            "color": "#474747",
            "strikethrough": true,
            "underline": false,
            "backgroundColor": "transparent",
            "bold": false,
            "italic": false
        },
        {
            "tag": "todo",
            "color": "#FF8C00",
            "strikethrough": false,
            "underline": false,
            "backgroundColor": "transparent",
            "bold": false,
            "italic": false
        },
        {
            "tag": "*",
            "color": "#98C379",
            "strikethrough": false,
            "underline": false,
            "backgroundColor": "transparent",
            "bold": false,
            "italic": false
        }
    ],
    "diffEditor.ignoreTrimWhitespace": false,
    // 文件尾缀关联
    "files.associations": {
        "*.tsx": "typescriptreact",
        "*.jsx": "javascriptreact",
        "*.js": "javascript"
    },
    "vsicons.dontShowNewVersionMessage": true,
    "typescript.updateImportsOnFileMove.enabled": "always",
    "terminal.integrated.tabs.enabled": true,
    "explorer.compactFolders": false,
    "editor.tabSize": 2
}