【原創(chuàng)】 新寫(xiě)的 VSCode 插件驯镊,用于擴(kuò)展 VSCode 文本處理能力,提供轉(zhuǎn)換大小寫(xiě)竭鞍、base64 編碼解碼板惑、排序行,哈希文本偎快,自定義擴(kuò)展指令等功能冯乘。 希望大家支持

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!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凭涂,一起剝皮案震驚了整個(gè)濱河市祝辣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌切油,老刑警劉巖蝙斜,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異澎胡,居然都是意外死亡孕荠,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)攻谁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)稚伍,“玉大人,你說(shuō)我怎么就攤上這事戚宦「鍪铮” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵受楼,是天一觀(guān)的道長(zhǎng)垦搬。 經(jīng)常有香客問(wèn)我呼寸,道長(zhǎng),這世上最難降的妖魔是什么猴贰? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任对雪,我火速辦了婚禮,結(jié)果婚禮上糟趾,老公的妹妹穿的比我還像新娘慌植。我一直安慰自己,他們只是感情好义郑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布蝶柿。 她就那樣靜靜地躺著,像睡著了一般非驮。 火紅的嫁衣襯著肌膚如雪交汤。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天劫笙,我揣著相機(jī)與錄音芙扎,去河邊找鬼。 笑死填大,一個(gè)胖子當(dāng)著我的面吹牛戒洼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播允华,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼圈浇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了靴寂?” 一聲冷哼從身側(cè)響起磷蜀,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎百炬,沒(méi)想到半個(gè)月后褐隆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剖踊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年庶弃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片德澈。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡虫埂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出圃验,到底是詐尸還是另有隱情,我是刑警寧澤缝呕,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布澳窑,位于F島的核電站斧散,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏摊聋。R本人自食惡果不足惜鸡捐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一岂膳、第九天 我趴在偏房一處隱蔽的房頂上張望厚者。 院中可真熱鬧盖高,春花似錦赊锚、人聲如沸扼倘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)奥额。三九已至手销,卻和暖如春歇僧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锋拖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工诈悍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兽埃。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓侥钳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親柄错。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舷夺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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