在 VSCode 1.60.2 中,我正在研究分布式系統并使用日志來幫助除錯。除錯時,多個行程各自創建自己的日志。我已經很好地格式化了散布在我的代碼中的輸出,指定如下:
// non-debugging code
foo();
for (...)
write(...);
////// DEBUGGING CHUNK
write(...);
for (...) write(...);
write(...);
////// END DEBUGGING CHUNK
// non-debugging code
bar();
for (...)
if (...)
write(...);
////// DEBUGGING CHUNK
...
////// END DEBUGGING CHUNK
// non-debugging code
baz();
行程相互作用,執行速度會影響它們的一些輸出。因此,在某些情況下,我想通過在沒有寫入的情況下運行代碼來最大限度地減少偷聽。上面的偽代碼可能看起來像:
// non-debugging code
foo();
for (...)
write(...);
// ////// DEBUGGING CHUNK
// write(...);
// for (...) write(...);
// write(...);
// ////// END DEBUGGING CHUNK
// non-debugging code
bar();
for (...)
if (...)
write(...);
// ////// DEBUGGING CHUNK
// ...
// ////// END DEBUGGING CHUNK
// non-debugging code
baz();
我一直在手動檢查我的檔案以一次一個評論/取消評論塊(突出顯示塊,Ctrl /),但這需要一段時間。由于我的塊有標準格式(開始和結束格式;不一定是大小),我希望可能有一種方法可以同時注釋和取消注釋所有它們。
為了找到一個簡單的解決方案,我嘗試查看擴展,但主要是顏色突出顯示和注釋模板插入。
我也考慮過使用內置的替換功能,但不確定這會有什么幫助。我看到兩個問題:(1)除錯塊內部和外部的一些陳述句匹配,所以不能做簡單的替換,以及(2)我需要能夠撤消可能來自正則運算式匹配替換的間距更改(只有“替換內容”欄位采用正則運算式;似乎我不能用匹配的組替換)。
uj5u.com熱心網友回復:
假設//是一個行注釋,您可以通過幾個擴展來做到這一點。您將需要像
正則運算式可能會有改進。也許在不久的將來,將不再需要 Find and Transform 擴展,因為將其某些功能合并到 vscode 中的作業已經合并。
uj5u.com熱心網友回復:
使用擴展Select By和multi-command,您可以multiCommand在您的settings.json
- 轉到檔案頂部
- 選擇第一次出現
////// DEBUGGING CHUNK - 選擇所有其他事件
- 標記選擇的開始
- 將游標移動到匹配的結尾
////// END DEBUGGING CHUNK - 創建從標記位置到當前位置的選擇
- 切換行注釋
- 洗掉多游標(轉到頂部)
{
"command": "multiCommand.toggleDebugComment",
"sequence": [
"cursorTop",
{ "command": "selectby.regex", "args": { "forward": "(?=(////// DEBUGGING CHUNK))", "forwardInclude": false, "forwardNext": "{{1}}", "forwardNextInclude": true } },
"editor.action.selectHighlights",
{ "command": "selectby.mark", "args": { "first": true } },
{ "command": "moveby.regex", "args": { "regex": "////// END DEBUGGING CHUNK", "properties": ["next", "end"] } },
"selectby.mark",
"editor.action.commentLine",
"cursorTop"
]
}
編輯
在 v1.9.0 中,Select By我已將first引數添加到selectby.mark
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349279.html
