Path: blob/main/extensions/javascript/javascript-language-configuration.json
5222 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},44{45"open": "'",46"close": "'",47"notIn": [48"string",49"comment"50]51},52{53"open": "\"",54"close": "\"",55"notIn": [56"string"57]58},59{60"open": "`",61"close": "`",62"notIn": [63"string",64"comment"65]66},67{68"open": "/**",69"close": " */",70"notIn": [71"string"72]73}74],75"surroundingPairs": [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"\"",102"\""103],104[105"`",106"`"107],108[109"<",110">"111]112],113"autoCloseBefore": ";:.,=}])>` \n\t",114"folding": {115"markers": {116"start": "^\\s*//\\s*#?region\\b",117"end": "^\\s*//\\s*#?endregion\\b"118}119},120"wordPattern": {121"pattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\@\\!\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>/\\?\\s]+)",122},123"indentationRules": {124"decreaseIndentPattern": {125"pattern": "^\\s*[\\}\\]\\)].*$"126},127"increaseIndentPattern": {128"pattern": "^.*(\\{[^}]*|\\([^)]*|\\[[^\\]]*)$"129},130// e.g. * ...| or */| or *-----*/|131"unIndentedLinePattern": {132"pattern": "^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$|^(\\t|[ ])*[ ]\\*/\\s*$|^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$"133},134"indentNextLinePattern": {135"pattern": "^((.*=>\\s*)|((.*[^\\w]+|\\s*)((if|while|for)\\s*\\(.*\\)\\s*|else\\s*)))$"136}137},138"onEnterRules": [139{140// e.g. /** | */141"beforeText": {142"pattern": "^\\s*/\\*\\*(?!/)([^\\*]|\\*(?!/))*$"143},144"afterText": {145"pattern": "^\\s*\\*/$"146},147"action": {148"indent": "indentOutdent",149"appendText": " * "150}151},152{153// e.g. /** ...|154"beforeText": {155"pattern": "^\\s*/\\*\\*(?!/)([^\\*]|\\*(?!/))*$"156},157"action": {158"indent": "none",159"appendText": " * "160}161},162{163// e.g. * ...|164"beforeText": {165"pattern": "^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$"166},167"previousLineText": {168"pattern": "(?=^(\\s*(/\\*\\*|\\*)).*)(?=(?!(\\s*\\*/)))"169},170"action": {171"indent": "none",172"appendText": "* "173}174},175{176// e.g. */|177"beforeText": {178"pattern": "^(\\t|[ ])*[ ]\\*/\\s*$"179},180"action": {181"indent": "none",182"removeText": 1183},184},185{186// e.g. *-----*/|187"beforeText": {188"pattern": "^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$"189},190"action": {191"indent": "none",192"removeText": 1193},194},195{196"beforeText": {197"pattern": "^\\s*(\\bcase\\s.+:|\\bdefault:)$"198},199"afterText": {200"pattern": "^(?!\\s*(\\bcase\\b|\\bdefault\\b))"201},202"action": {203"indent": "indent"204}205},206{207// Decrease indentation after single line if/else if/else, for, or while208"previousLineText": "^\\s*(((else ?)?if|for|while)\\s*\\(.*\\)\\s*|else\\s*)$",209// But make sure line doesn't have braces or is not another if statement210"beforeText": "^\\s+([^{i\\s]|i(?!f\\b))",211"action": {212"indent": "outdent"213}214},215// Indent when pressing enter from inside ()216{217"beforeText": "^.*\\([^\\)]*$",218"afterText": "^\\s*\\).*$",219"action": {220"indent": "indentOutdent",221"appendText": "\t",222}223},224// Indent when pressing enter from inside {}225{226"beforeText": "^.*\\{[^\\}]*$",227"afterText": "^\\s*\\}.*$",228"action": {229"indent": "indentOutdent",230"appendText": "\t",231}232},233// Indent when pressing enter from inside []234{235"beforeText": "^.*\\[[^\\]]*$",236"afterText": "^\\s*\\].*$",237"action": {238"indent": "indentOutdent",239"appendText": "\t",240}241},242// Add // when pressing enter from inside line comment243{244"beforeText": "(?<!\\\\|\\w:)\/\/\\s*\\S",245"afterText": "^(?!\\s*$).+",246"action": {247"indent": "none",248"appendText": "// "249}250},251]252}253254255