国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九)

這篇具有很好參考價(jià)值的文章主要介紹了【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?? 個(gè)人主頁(yè):不叫貓先生,公眾號(hào):前端舵手
???♂? 作者簡(jiǎn)介:前端領(lǐng)域優(yōu)質(zhì)作者、阿里云專家博主,共同學(xué)習(xí)共同進(jìn)步,一起加油呀!
?優(yōu)質(zhì)專欄:VS Code插件開發(fā)極速入門
?? 資料領(lǐng)取:前端進(jìn)階資料可以找我免費(fèi)領(lǐng)取

【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九),git,vscode,插件,自定義指令

我們通常會(huì)通過小烏龜、SourceTree、終端等實(shí)現(xiàn) git 的相關(guān)操作,VS Code 開發(fā)工具也提供了 git 相關(guān)的操作 ,那么在VS Code中如何通過自定義命令實(shí)現(xiàn) git 的相關(guān)操作?本文主要介紹了git clonegit add、 git commitgit push等命令的實(shí)現(xiàn)。

創(chuàng)建終端

  1. 異步函數(shù)聲明:

    async function executeGitCommand(command, options) {
    

    用于執(zhí)行 Git 命令。command 參數(shù)表示要執(zhí)行的 Git 命令字符串,options 參數(shù)是一個(gè)對(duì)象,包含了執(zhí)行命令的選項(xiàng)。

  2. 檢查終端是否存在:

    if (!terminal){
        terminal = vscode.window.createTerminal(terminalOptions);
    }
    

    檢查全局變量 terminal 是否存在,如果不存在則創(chuàng)建一個(gè)新的終端。vscode.window.createTerminal 方法用于創(chuàng)建一個(gè)終端,terminalOptions 可能是在代碼的其他地方定義的終端選項(xiàng)。

  3. 獲取終端進(jìn)程 ID:

    const pid = await terminal.processId;
    

    使用 await 關(guān)鍵字獲取終端的進(jìn)程 ID。這樣可以在需要時(shí)使用進(jìn)程 ID 進(jìn)行其他操作,例如監(jiān)控或結(jié)束進(jìn)程。

  4. 發(fā)送 Git 命令到終端:

    terminal.sendText(command);
    

    使用 terminal.sendText 方法將 Git 命令發(fā)送到終端。這使得可以通過代碼自動(dòng)執(zhí)行一系列 Git 命令。

  5. 顯示終端:

    terminal.show();
    

    最后,使用 terminal.show 方法顯示終端。這確保用戶可以看到終端中執(zhí)行的命令輸出。

總體而言,這個(gè)函數(shù)的作用是在 VSCode 中執(zhí)行 Git 命令,并通過終端顯示命令的執(zhí)行結(jié)果。該函數(shù)假設(shè) terminal 是一個(gè)在全局范圍內(nèi)定義的終端變量,并在需要時(shí)創(chuàng)建。

async function executeGitCommand(command, options) {
    if (!terminal){
        terminal = vscode.window.createTerminal(terminalOptions);
    }
    const pid = await terminal.processId;
    terminal.sendText(command);
    terminal.show();
}

創(chuàng)建終端的命令再后續(xù)執(zhí)行g(shù)it命令時(shí)需要用到。

git add .

注冊(cè)gitAdd命令

async function activate(context) {
    vscode.commands.registerCommand('wxRead.gitAdd', () => {
        executeGitCommand('git add .', { name: 'Git Add' });
    })
}

command + shift +p 之后選擇gitAdd

【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九),git,vscode,插件,自定義指令
之后控制臺(tái)就會(huì)出現(xiàn)下圖:
【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九),git,vscode,插件,自定義指令

git commit

  1. 命令注冊(cè):
    vscode.commands.registerCommand('wxRead.gitCommit', async () => {
    

使用 registerCommand 方法注冊(cè)一個(gè)名為 'wxRead.gitCommit' 的命令。當(dāng)用戶執(zhí)行這個(gè)命令時(shí),將觸發(fā)后面的回調(diào)函數(shù)。

  1. 創(chuàng)建輸入框:

    const defaultCommitMessage = "Your default commit message here";
    const input = await vscode.window.createInputBox();
    input.prompt = "Enter your commit message";
    input.value = defaultCommitMessage;
    input.show();
    

    創(chuàng)建一個(gè)輸入框,用于用戶輸入提交消息。設(shè)置輸入框的提示信息為 "Enter your commit message",并將默認(rèn)值設(shè)置為 "Your default commit message here"。最后,通過 input.show() 顯示輸入框。
    【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九),git,vscode,插件,自定義指令

  2. 監(jiān)聽輸入框的 Accept 事件:

    input.onDidAccept(() => {
    

    使用 onDidAccept 事件監(jiān)聽器,當(dāng)用戶按下確認(rèn)鍵(Enter)時(shí)觸發(fā)。

  3. 獲取提交消息:

    const commitMessage = input.value;
    

    獲取用戶在輸入框中輸入的提交消息。

  4. 銷毀輸入框:

    input.dispose();
    

    在獲取提交消息后,銷毀輸入框,以避免占用資源。

  5. 執(zhí)行 Git Commit 命令:

    if (commitMessage) {
        const commitCommand = `git commit -m "${commitMessage}"`;
        executeGitCommand(commitCommand, { name: 'Git Commit' });
    }
    

    檢查用戶是否輸入了提交消息,如果有則構(gòu)建 git commit 命令,并調(diào)用 executeGitCommand 函數(shù)執(zhí)行該命令。傳遞的第二個(gè)參數(shù)是一個(gè)對(duì)象,包含了執(zhí)行命令的名稱,這里設(shè)置為 'Git Commit'。

完整代碼如下:

vscode.commands.registerCommand('wxRead.gitCommit', async () => {
        const defaultCommitMessage = "Your default commit message here";
        const input = await vscode.window.createInputBox();
        input.prompt = "Enter your commit message";
        input.value = defaultCommitMessage;
        input.show();
        input.onDidAccept(() => {
            const commitMessage = input.value;
            input.dispose();
            if (commitMessage) {
                const commitCommand = `git commit -m "${commitMessage}"`;
                executeGitCommand(commitCommand, { name: 'Git Commit' });
            }
        });
    })

git clone

  1. 注冊(cè)gitClone命令后,在擴(kuò)展程序中 command + shift +p (我是mac)之后選擇wxRead.gitClone
    【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九),git,vscode,插件,自定義指令

  2. 彈出輸入框獲取 Git 倉(cāng)庫(kù) URL

    vscode.window.showInputBox({ prompt: 'Enter Git repository URL' }).then((gitRepoUrl) => {
    

    這一部分代碼使用 showInputBox 方法彈出一個(gè)輸入框,提示用戶輸入 Git 倉(cāng)庫(kù)的 URL。一旦用戶輸入完成,該輸入的內(nèi)容將作為參數(shù)傳遞給 then 函數(shù)中的回調(diào)函數(shù),并存儲(chǔ)在 gitRepoUrl 變量中。這里輸入我的開源項(xiàng)目:https://github.com/zbsguilai/kedaxunfei.git
    【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九),git,vscode,插件,自定義指令

  3. 隨后會(huì)出現(xiàn)一個(gè)彈框,會(huì)讓你選擇一個(gè)文件作為項(xiàng)目的目錄

  4. 顯示進(jìn)度條并執(zhí)行克隆操作:

    vscode.window.withProgress({
        location: vscode.ProgressLocation.Notification,
        title: 'Cloning Git Repository',
        cancellable: false
    }, async (progress, token) => {
    

    使用 withProgress 方法顯示一個(gè)進(jìn)度條,該進(jìn)度條位于通知區(qū)域,標(biāo)題為 ‘Cloning Git Repository’。這個(gè)進(jìn)度條將在克隆操作期間顯示。async (progress, token) => {...} 是一個(gè)異步函數(shù),用于處理進(jìn)度和取消操作。

  5. 檢查 Git 倉(cāng)庫(kù) URL 是否存在:

    if (gitRepoUrl) {
    

    確保用戶提供了有效的 Git 倉(cāng)庫(kù) URL。

  6. 彈出文件夾選擇框:

    vscode.window.showOpenDialog({
        canSelectFolders: true,
        canSelectFiles: false,
        openLabel: 'Select Destination Folder'
    }).then((folders) => {
    

    使用 showOpenDialog 方法彈出一個(gè)文件夾選擇框,允許用戶選擇目標(biāo)文件夾。選定的文件夾將在 folders 變量中。

  7. 執(zhí)行 Git Clone 操作:

    const gitCloneProcess = spawn('git', ['clone', gitRepoUrl, cloneDirectory]);
    

    使用 Node.js 的 spawn 方法創(chuàng)建一個(gè)子進(jìn)程,執(zhí)行 git clone 命令。gitRepoUrl 是用戶輸入的 Git 倉(cāng)庫(kù) URL,cloneDirectory 是用戶選擇的目標(biāo)文件夾。

  8. 處理 Git 命令輸出:

    gitCloneProcess.stdout.on('data', (data) => {
        console.log(data.toString());
    });
    gitCloneProcess.stderr.on('data', (data) => {
        console.error(data.toString());
    });
    

    將 Git 命令的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出打印到控制臺(tái),以便在調(diào)試時(shí)查看執(zhí)行的詳細(xì)信息。

  9. 處理 Git Clone 完成事件:

    gitCloneProcess.on('close', (code) => {
        console.log('Git clone process exited with code:', code);
        if (code === 0) {
            vscode.window.showInformationMessage('Git clone completed successfully.');
        } else {
            vscode.window.showErrorMessage('Git clone failed. Please check the URL and try again.');
        }
    });
    

    當(dāng) Git Clone 進(jìn)程完成時(shí),檢查其退出碼。如果退出碼為 0,顯示成功消息;否則,顯示錯(cuò)誤消息。

完整代碼如下:

 vscode.commands.registerCommand('wxRead.gitClone', () => {
        // 彈出輸入框以獲取用戶提供的 Git 倉(cāng)庫(kù) URL
        vscode.window.showInputBox({ prompt: 'Enter Git repository URL' }).then((gitRepoUrl) => {
            vscode.window.withProgress({
                location: vscode.ProgressLocation.Notification,
                title: 'Cloning Git Repository',
                cancellable: false
            }, async (progress, token) => {
                if (gitRepoUrl) {
                    if (gitRepoUrl) {
                        // 使用 QuickPick 來(lái)讓用戶選擇目標(biāo)文件夾
                        vscode.window.showOpenDialog({
                            canSelectFolders: true,
                            canSelectFiles: false,
                            openLabel: 'Select Destination Folder'
                        }).then((folders) => {
                            if (folders && folders[0]) {
                                const cloneDirectory = folders[0].fsPath;
                                // 執(zhí)行 git clone 命令,將代碼克隆到選定的目錄
                                const gitCloneProcess = spawn('git', ['clone', gitRepoUrl, cloneDirectory]);
                                // 處理 Git 命令的輸出
                                gitCloneProcess.stdout.on('data', (data) => {
                                    console.log(data.toString());
                                });
                                gitCloneProcess.stderr.on('data', (data) => {
                                    console.error(data.toString());
                                });
                                gitCloneProcess.on('close', (code) => {
                                    console.log('Git clone process exited with code:', code); // 添加這行用于調(diào)試
                                    if (code === 0) {
                                        vscode.window.showInformationMessage('Git clone completed successfully.');
                                    }
                                    else {
                                        vscode.window.showErrorMessage('Git clone failed. Please check the URL and try again.');
                                    }
                                });
                            }
                        });
                    }
                }
            });
        });
    }));

git push

注冊(cè)wxRead.gitPush命令,在擴(kuò)展程序中 command + shift +p (我是mac)之后選擇wxRead.gitPush

 vscode.commands.registerCommand('wxRead.gitPush', () => {
        executeGitCommand('git push', { name: 'Git Push' });
    })

好書推薦

TypeScript+React Web應(yīng)用開發(fā)實(shí)戰(zhàn) :京東直達(dá)

本書適應(yīng)于當(dāng)今前端開發(fā)的流行趨勢(shì),注重理論與實(shí)戰(zhàn)相結(jié)合的思想,配合大量的、基礎(chǔ)且實(shí)用的代碼實(shí)例,幫助讀者學(xué)習(xí)基于TypeScript語(yǔ)言規(guī)范的React框架開發(fā)的相關(guān)知識(shí)。全書內(nèi)容通俗易懂、覆蓋面廣、充分翔實(shí)、重點(diǎn)突出,涵蓋了TypeScript語(yǔ)言規(guī)范和React框架開發(fā)的方方面面。

全書內(nèi)容共10章,TypeScript語(yǔ)言部分包括TypeScript語(yǔ)言基礎(chǔ)與開發(fā)環(huán)境的搭建、TypeScript項(xiàng)目開發(fā)與配置、TypeScript語(yǔ)法規(guī)范和TypeScript語(yǔ)法高級(jí)特性等方面的內(nèi)容;React框架部分包括React框架基礎(chǔ)與開發(fā)環(huán)境的搭建,React語(yǔ)法、組件、狀態(tài)與生命周期,React框架高級(jí)指引和React Hook新特性等方面的內(nèi)容。同時(shí),為了突出本書項(xiàng)目實(shí)戰(zhàn)的特點(diǎn),針對(duì)性地開發(fā)了兩個(gè)Web項(xiàng)目應(yīng)用,以幫助讀者深入學(xué)習(xí)基于TypeScript + React技術(shù)的開發(fā)流程。

本書是學(xué)習(xí)基于TypeScript + React技術(shù)開發(fā)的實(shí)戰(zhàn)圖書,全書內(nèi)容簡(jiǎn)明、代碼精練、實(shí)例豐富。希望本書的內(nèi)容能夠幫助前端開發(fā)的初學(xué)者快速入門,盡快提高Web應(yīng)用程序開發(fā)的技術(shù)水平。

【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九),git,vscode,插件,自定義指令文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-839649.html

到了這里,關(guān)于【VS Code插件開發(fā)】自定義指令實(shí)現(xiàn) git 命令 (九)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MCUXpresso for VS Code -- 基于VSCode開發(fā)RT1176

    MCUXpresso for VS Code -- 基于VSCode開發(fā)RT1176

    MCUXpresso for VS Code 是nxp推出插件,旗下MCX LPC, Kinetis和i.MX rt等MCU,都能在VS Code平臺(tái)進(jìn)行嵌入式開發(fā)。功能框圖如下: 前期準(zhǔn)備: 軟件環(huán)境: CMake下載地址 Download | CMake Ninja下載地址 Ninja, a small build system with a focus on speed (ninja-build.org) MCUXpresso IDE 下載地址 MCUXpresso IDE 解壓安裝后

    2024年02月14日
    瀏覽(25)
  • VS Code開發(fā)插件使用 pnpm 打包異常的解決姿勢(shì)

    VS Code開發(fā)插件使用 pnpm 打包異常的解決姿勢(shì)

    剛剛準(zhǔn)備發(fā)一個(gè)插件,發(fā)現(xiàn)用 pnpm 打出一個(gè)本地插件包直接撲街了。 這里只聚焦錯(cuò)誤問題的解決,不是發(fā)插件的教程。。 聊點(diǎn)背景信息,vscode 的插件命令行的是 vsce 這個(gè)模塊提供的 cli 能力去做的 pnpm : 8.x 本地打包的命令: vsce package version -m \\\"message\\\" vsce package --help 可以看到

    2024年04月10日
    瀏覽(35)
  • Visual Studio Code 常見的配置、常用好用插件以及【vsCode 開發(fā)相應(yīng)項(xiàng)目推薦安裝的插件】

    把插件的更新也一起取消了 字體對(duì)開發(fā)也很重要,不同字體,字母形態(tài)都不太一樣,尤其是標(biāo)點(diǎn)符號(hào),逗號(hào)和分號(hào)的區(qū)分,有的字體看著這兩者就很像 這樣打開了很多個(gè)文件,就不會(huì)導(dǎo)致有的打開的文件被隱藏 相當(dāng)于idea 查看當(dāng)前類或接口的結(jié)構(gòu) Structure 支持快捷鍵與鼠標(biāo)右

    2023年04月16日
    瀏覽(60)
  • Mac 開發(fā) Tang Nano FPGA 指南(使用終端和使用 VS Code 和插件,適用所有 Gowin FPGA)

    Mac 開發(fā) Tang Nano FPGA 指南(使用終端和使用 VS Code 和插件,適用所有 Gowin FPGA)

    最近收到了一個(gè) Tang nano 9K FPGA開發(fā)板,就想借此機(jī)會(huì)研究一下。 官方文檔里介紹如果想使用高云的 FPGA,就需要使用 GOWIN IDE,但是需要申請(qǐng) license 提交一堆資料,我是別人送的就不太方便讓別人弄。加上 IDE 其實(shí)并不是很適合學(xué)習(xí)和投入生產(chǎn),因?yàn)?IDE 忽略了很多細(xì)節(jié),以及

    2024年02月12日
    瀏覽(65)
  • C/C++開發(fā),關(guān)閉vscode中的插件git工具

    C/C++開發(fā),關(guān)閉vscode中的插件git工具

    安裝git后,有g(shù)it配置的路徑,vscode會(huì)通過git進(jìn)行檢測(cè)。關(guān)閉vscode中的插件git工具方法如下:

    2024年02月11日
    瀏覽(27)
  • VS Code好用的插件

    VS Code好用的插件

    VS Code是一個(gè)免費(fèi)且開源的跨平臺(tái)文本編輯器,由Microsoft開發(fā)和維護(hù)。它的主要優(yōu)點(diǎn)和缺點(diǎn)如下: 優(yōu)點(diǎn): 跨平臺(tái)支持:VS Code支持Windows、Linux和Mac OS等多個(gè)操作系統(tǒng),使得它成為一個(gè)非常方便的跨平臺(tái)文本編輯器。 功能強(qiáng)大:VS Code支持代碼補(bǔ)全、語(yǔ)法高亮、代碼片段、調(diào)試器

    2023年04月09日
    瀏覽(23)
  • 在無(wú)公網(wǎng)IP環(huán)境下實(shí)現(xiàn)VS Code遠(yuǎn)程開發(fā)的方法

    在無(wú)公網(wǎng)IP環(huán)境下實(shí)現(xiàn)VS Code遠(yuǎn)程開發(fā)的方法

    哈嘍大家好,我是咕嚕美樂蒂,很高興又見面啦! 隨著云計(jì)算和遠(yuǎn)程協(xié)作的普及,越來(lái)越多的開發(fā)者選擇使用VS Code進(jìn)行遠(yuǎn)程開發(fā)。然而,有時(shí)我們會(huì)發(fā)現(xiàn)自己處于一個(gè)沒有公網(wǎng)IP的網(wǎng)絡(luò)環(huán)境,這可能會(huì)導(dǎo)致無(wú)法直接訪問VS Code的遠(yuǎn)程開發(fā)功能。在本文中,我們將探討一些解決

    2024年01月24日
    瀏覽(26)
  • VS code更改插件安裝位置

    VS code更改插件安裝位置

    VS code插件位置默認(rèn)安裝在C盤用戶目錄下,隨著安裝插件的數(shù)量增加,占用用C盤內(nèi)存較大,我選擇將插件移動(dòng)到D盤。我之前使用過利用mklink來(lái)創(chuàng)建目錄符號(hào)鏈接這種方式,但沒有成功,于是就放棄了。我的步驟分兩步: (極力推薦第3種方式) 將用戶目錄下的插件剪切到D盤

    2024年02月01日
    瀏覽(36)
  • 12.(開發(fā)工具篇vscode+git)vscode 不能識(shí)別npm命令

    12.(開發(fā)工具篇vscode+git)vscode 不能識(shí)別npm命令

    問題描述: 解決方式: (1)右擊VSCode圖標(biāo),選擇以管理員身份運(yùn)行; (2)在終端中執(zhí)行g(shù)et-ExecutionPolicy,顯示Restricted,表示狀態(tài)是禁止的; (3)這時(shí)執(zhí)行set-ExecutionPolicy RemoteSigned; (4)此時(shí)再執(zhí)行g(shù)et-ExecutionPolicy,顯示RemoteSigned,則表示狀態(tài)解禁,可以運(yùn)行 (5)重啟

    2024年02月16日
    瀏覽(19)
  • 一分鐘解決:vscode卡在“設(shè)置SSH主機(jī):VS Code-正在本地下載 VS Code 服務(wù)器”

    一分鐘解決:vscode卡在“設(shè)置SSH主機(jī):VS Code-正在本地下載 VS Code 服務(wù)器”

    問題:vscode之前可正常使用,更新之后,連接服務(wù)器卡住了。 解決:從CMD或者你的終端連接服務(wù)器,進(jìn)入vscode-server目錄下,刪除一些文件夾就行,然后使用vscode重新鏈接,它會(huì)自動(dòng)下載新的遠(yuǎn)程服務(wù)軟件,替換服務(wù)器端可能損壞的文件。 步驟: 1、使用終端進(jìn)入服務(wù)器 2、進(jìn)

    2024年02月04日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包