ReadMe
PowerTools目的是擴(kuò)展VSCode文本處理能力,提供轉(zhuǎn)換大小寫(xiě)、base64編碼解碼晒夹、排序行裆馒,哈希文本姊氓、自定義擴(kuò)展指令等功能。
插件使用&開(kāi)發(fā)交流群:895768531
主要功能
自定義擴(kuò)展指令
文本處理
- 大小寫(xiě)轉(zhuǎn)換
- base64編碼/解碼
- 移除空行
- 移除首尾空格
- 篩選行
行處理
- 按文本排序行
- 按數(shù)字排序行
- 翻轉(zhuǎn)行
其他功能
- 選中文本哈希
- 生成32位隨機(jī)串
- 生成強(qiáng)密碼
- 對(duì)選中文本求和
- 對(duì)選中文本取平均數(shù)字
演示
功能列表截圖
[圖片上傳失敗...(image-852250-1578396407206)]
大小寫(xiě)轉(zhuǎn)換
[圖片上傳失敗...(image-167909-1578396407206)]
行排序
[圖片上傳失敗...(image-d1749c-1578396407206)]
base64編碼
[圖片上傳失敗...(image-719c55-1578396407206)]
求和
[圖片上傳失敗...(image-e96c1d-1578396407206)]
翻轉(zhuǎn)行
[圖片上傳失敗...(image-87684a-1578396407206)]
自定義擴(kuò)展指令
插件支持用戶(hù)通過(guò)加載外部js文件來(lái)達(dá)到擴(kuò)展功能的目的喷好。對(duì)于有自定義擴(kuò)展需求的用戶(hù)翔横,可以參照以下步驟來(lái)實(shí)現(xiàn)。
編寫(xiě)js文件
在本地新建一個(gè)js文件梗搅,復(fù)制以下內(nèi)容:
module.exports.helloWorld = function(context) {
var vscode = context.require('vscode');
vscode.window.showInformationMessage("hello world!");
}
這段代碼的作用是導(dǎo)出一個(gè)名字為helloworld
的自定義指令禾唁。
現(xiàn)在我們看看函數(shù)的實(shí)現(xiàn),可以注意到函數(shù)有一個(gè)context
參數(shù)无切,插件會(huì)在運(yùn)行時(shí)把當(dāng)前上下文對(duì)象注入到該參數(shù)荡短。context
暴露了以下方法供用戶(hù)使用:
function require(module: string): any;
用于加載外部模塊
var vscode = context.require('vscode');
PS: 對(duì)于大部分情況,vscode模塊將會(huì)是最常使用的哆键,相關(guān)vscode-api請(qǐng)點(diǎn)擊這里查看掘托。
function getEditor(): vscode.TextEditor;
獲取當(dāng)前要執(zhí)行指令的編輯器
var editor = context.getEditor();
function getProcessSelection(): vscode.Range;
獲取當(dāng)前待處理區(qū)域。請(qǐng)注意以下兩點(diǎn):
- 當(dāng)沒(méi)有選擇任何文本時(shí)籍嘹,會(huì)選擇整個(gè)文檔內(nèi)容
- 當(dāng)選擇了多個(gè)區(qū)域闪盔,會(huì)返回第一個(gè)
以下代碼會(huì)打印當(dāng)前選擇文本:
var editor = context.getEditor();
var selection = context.getProcessSelection();
var text = editor.document.getText(selection);
context.print(text);
public async edit(changes: [vscode.Range, string][]): Promise<boolean>;
更新指定區(qū)域文本,支持一次更改多個(gè)噩峦,在一個(gè)事務(wù)操作中完成锭沟。
例如以下代碼將每行第一個(gè)字符轉(zhuǎn)成大寫(xiě):
module.exports.toUpper = async function (context) {
var vscode = context.require('vscode');
var editor = context.getEditor();
var changes = new Array();
var document = editor.document;
for (var index = 0; index < document.lineCount; index++) {
var line = document.lineAt(index);
if (line.isEmptyOrWhitespace) {
continue;
}
var range = line.range.with(new vscode.Position(line.lineNumber, 0), new vscode.Position(line.lineNumber, 1));
var changeText = document.getText(range).toUpperCase();
changes.push([range, changeText]);
}
await context.edit(changes);
}
public isColumnBlock(): boolean;
判斷當(dāng)前選擇內(nèi)容是否列模式
var columnBlock = context.isColumnBlock();
context.print(columnBlock);
public print(): void;
打印文本
配置指令文件路徑
1)通過(guò)文件菜單
-> 首選項(xiàng)
-> 設(shè)置
-> 擴(kuò)展
-> PowerTools
,然后點(diǎn)擊在setting.json中編輯
识补。
2)在配置文件末尾加上以下節(jié)點(diǎn):
"powertools.CommandFiles": []
- 支持配置多個(gè)
- 支持配置文件夾族淮,當(dāng)路徑時(shí)文件夾時(shí),自動(dòng)加載該文件夾下所有js文件
操作演示:
[圖片上傳失敗...(image-5f4220-1578396407206)]
Release Notes
1.0.1
支持用戶(hù)自定義擴(kuò)展指令
1.0.0
Initial release
Enjoy!