Visual Studio Code 編輯JavaScript:制作另類的消息打印輸出

我們從一個(gè)例子開始:

/*
* @file index.js
*/

let x,y,z;
x = 10;
y = 20;
z = 5;

console.log(x)
// 終端輸出:10

接著我們改一下console.log()的內(nèi)容:

console.log(__filename+":10:10 x=> "+x)
// 終端輸出:f:\test\index.js:10:10 x=> 10

因Visual Studio Code 的集成終端支持路徑訪問,故輸出的f:\test\index.js:10:10 是可以通過Ctrl+點(diǎn)擊鼠標(biāo)左鍵跳轉(zhuǎn)到文件f:\test\index.js的第10行第10列激率。

這樣的處理使我們能通過路徑精確定位到這條消息所在的源碼位置,方便我們識(shí)別并定位輸出該消息的變量位置。當(dāng)我們的項(xiàng)目下有多個(gè)JS文件而且有多個(gè)console.log()/console.warn()等時(shí),加上路徑及上下文坐標(biāo)方便我們準(zhǔn)確定位代碼伪阶。不過每次都這樣寫還是很麻煩的,好在我們可以利用Visual Studio Code 提供的“用戶代碼片段”功能來簡化輸入芬膝。

做成JavaScript用戶代碼片段

大家覺得實(shí)用的話可以參考下面的JavaScript的用戶代碼片段文件JavaScript.json的一個(gè)片段設(shè)置例子:

"devLog":{
    "prefix": "cl",
    "body": "console.log(`    \\${__filename\\}:$TM_LINE_NUMBER:${1}` + '\\033[40;32m ${2} -->\\033[0m ' + ${2})",
    "description": "console.log() with link."
}

在代碼片段中,我加了終端消息著色處理字符 :\\033[40;32m\\033[0m(終端字符著色可以參考:http://www.reibang.com/p/cca3e72c3ba7)形娇。

舉一反三

其實(shí)锰霜,不止JavaScript 類代碼可以這么干,其他的語言也可以的桐早,例如 Python 的 print() 這類的癣缅。我們終究只是增加了輸出的內(nèi)容而已厨剪,只要不會(huì)導(dǎo)致語法錯(cuò)誤和導(dǎo)致BUG且不太麻煩就可以。

需要注意的問題

在Node.js的項(xiàng)目中因有__filename的支持友存,用起來比較方便祷膳,但其他項(xiàng)目中想打印完整路徑,需要做轉(zhuǎn)義處理:
$TM_FILEPATH 需要做這樣的處理:${TM_FILEPATH/(\\\\)/\\\\\\\\/g} ——把“\”替換為“\\”屡立。

上面的例子處理之后為:

"devLog":{
        "prefix": "cl",
        "body": "console.log(`    ${TM_FILEPATH/(\\\\)/\\\\\\\\/g}:$TM_LINE_NUMBER:1` + '\\033[40;32m ${2} -->\\033[0m ' + ${2})",
        "description": "console.log() with link."
},
  // ${2} 可以一次輸入兩組相同的字符串直晨,減少鍵入量(技巧:多個(gè)相同的變量可以一次鍵入多組相同字符串)。
  // 本來可以加入列坐標(biāo)膨俐,但不好控制,直接默認(rèn)為1勇皇。

注意:

  1. 這種做法只適合在開發(fā)過程中調(diào)試使用,如果你想保留到實(shí)際成品中焚刺,還請盡可能調(diào)試并保證路徑和行列坐標(biāo)準(zhǔn)確敛摘。因?yàn)殡S著代碼量的增/減,行列坐標(biāo)可定是會(huì)變的乳愉。
  2. Visual Studio Code 支持的代碼片段變量詳見:https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variables
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末兄淫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蔓姚,更是在濱河造成了極大的恐慌捕虽,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赂乐,死亡現(xiàn)場離奇詭異薯鳍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)挨措,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門挖滤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浅役,你說我怎么就攤上這事斩松。” “怎么了觉既?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵惧盹,是天一觀的道長。 經(jīng)常有香客問我瞪讼,道長钧椰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任符欠,我火速辦了婚禮嫡霞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘希柿。我一直安慰自己诊沪,他們只是感情好养筒,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著端姚,像睡著了一般晕粪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上渐裸,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天巫湘,我揣著相機(jī)與錄音,去河邊找鬼橄仆。 笑死剩膘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盆顾。 我是一名探鬼主播怠褐,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼您宪!你這毒婦竟也來了奈懒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤宪巨,失蹤者是張志新(化名)和其女友劉穎磷杏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捏卓,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡极祸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了怠晴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遥金。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蒜田,靈堂內(nèi)的尸體忽然破棺而出稿械,到底是詐尸還是另有隱情,我是刑警寧澤冲粤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布美莫,位于F島的核電站,受9級(jí)特大地震影響梯捕,放射性物質(zhì)發(fā)生泄漏厢呵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一傀顾、第九天 我趴在偏房一處隱蔽的房頂上張望襟铭。 院中可真熱鬧,春花似錦、人聲如沸蝌矛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽入撒。三九已至,卻和暖如春椭岩,著一層夾襖步出監(jiān)牢的瞬間茅逮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工判哥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留献雅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓塌计,卻偏偏與公主長得像挺身,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锌仅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容