Path: blob/main/extensions/javascript/javascript-language-configuration.json
3311 views
{1// Note that this file should stay in sync with 'typescript-language-basics/language-configuration.json'2"comments": {3"lineComment": "//",4"blockComment": [5"/*",6"*/"7]8},9"brackets": [10[11"${",12"}"13],14[15"{",16"}"17],18[19"[",20"]"21],22[23"(",24")"25]26],27"autoClosingPairs": [28{29"open": "{",30"close": "}"31},32{33"open": "[",34"close": "]"35},36{37"open": "(",38"close": ")"39},40{41"open": "'",42"close": "'",43"notIn": [44"string",45"comment"46]47},48{49"open": "\"",50"close": "\"",51"notIn": [52"string"53]54},55{56"open": "`",57"close": "`",58"notIn": [59"string",60"comment"61]62},63{64"open": "/**",65"close": " */",66"notIn": [67"string"68]69}70],71"surroundingPairs": [72[73"{",74"}"75],76[77"[",78"]"79],80[81"(",82")"83],84[85"'",86"'"87],88[89"\"",90"\""91],92[93"`",94"`"95],96[97"<",98">"99]100],101"autoCloseBefore": ";:.,=}])>` \n\t",102"folding": {103"markers": {104"start": "^\\s*//\\s*#?region\\b",105"end": "^\\s*//\\s*#?endregion\\b"106}107},108"wordPattern": {109"pattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\@\\!\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>/\\?\\s]+)",110},111"indentationRules": {112"decreaseIndentPattern": {113"pattern": "^\\s*[\\}\\]\\)].*$"114},115"increaseIndentPattern": {116"pattern": "^.*(\\{[^}]*|\\([^)]*|\\[[^\\]]*)$"117},118// e.g. * ...| or */| or *-----*/|119"unIndentedLinePattern": {120"pattern": "^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$|^(\\t|[ ])*[ ]\\*/\\s*$|^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$"121},122"indentNextLinePattern": {123"pattern": "^((.*=>\\s*)|((.*[^\\w]+|\\s*)((if|while|for)\\s*\\(.*\\)\\s*|else\\s*)))$"124}125},126"onEnterRules": [127{128// e.g. /** | */129"beforeText": {130"pattern": "^\\s*/\\*\\*(?!/)([^\\*]|\\*(?!/))*$"131},132"afterText": {133"pattern": "^\\s*\\*/$"134},135"action": {136"indent": "indentOutdent",137"appendText": " * "138}139},140{141// e.g. /** ...|142"beforeText": {143"pattern": "^\\s*/\\*\\*(?!/)([^\\*]|\\*(?!/))*$"144},145"action": {146"indent": "none",147"appendText": " * "148}149},150{151// e.g. * ...|152"beforeText": {153"pattern": "^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$"154},155"previousLineText": {156"pattern": "(?=^(\\s*(/\\*\\*|\\*)).*)(?=(?!(\\s*\\*/)))"157},158"action": {159"indent": "none",160"appendText": "* "161}162},163{164// e.g. */|165"beforeText": {166"pattern": "^(\\t|[ ])*[ ]\\*/\\s*$"167},168"action": {169"indent": "none",170"removeText": 1171},172},173{174// e.g. *-----*/|175"beforeText": {176"pattern": "^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$"177},178"action": {179"indent": "none",180"removeText": 1181},182},183{184"beforeText": {185"pattern": "^\\s*(\\bcase\\s.+:|\\bdefault:)$"186},187"afterText": {188"pattern": "^(?!\\s*(\\bcase\\b|\\bdefault\\b))"189},190"action": {191"indent": "indent"192}193},194{195// Decrease indentation after single line if/else if/else, for, or while196"previousLineText": "^\\s*(((else ?)?if|for|while)\\s*\\(.*\\)\\s*|else\\s*)$",197// But make sure line doesn't have braces or is not another if statement198"beforeText": "^\\s+([^{i\\s]|i(?!f\\b))",199"action": {200"indent": "outdent"201}202},203// Indent when pressing enter from inside ()204{205"beforeText": "^.*\\([^\\)]*$",206"afterText": "^\\s*\\).*$",207"action": {208"indent": "indentOutdent",209"appendText": "\t",210}211},212// Indent when pressing enter from inside {}213{214"beforeText": "^.*\\{[^\\}]*$",215"afterText": "^\\s*\\}.*$",216"action": {217"indent": "indentOutdent",218"appendText": "\t",219}220},221// Indent when pressing enter from inside []222{223"beforeText": "^.*\\[[^\\]]*$",224"afterText": "^\\s*\\].*$",225"action": {226"indent": "indentOutdent",227"appendText": "\t",228}229},230// Add // when pressing enter from inside line comment231{232"beforeText": "(?<!\\\\|\\w:)\/\/\\s*\\S",233"afterText": "^(?!\\s*$).+",234"action": {235"indent": "none",236"appendText": "// "237}238},239]240}241242243