Visual Studio Code - 拡張機能作成 - 作成


クラウディア 


1. 概要
2. 順番
3. 参考サイト

1. 概要

 前ページまでを準備として。  作成したいのは、検索機能なのです。  もし、検索機能ができたならば、置換まで移行したい。  そもそも「Visual Studio Code」に「検索/置換」機能は、元々あります。  なのに、なぜ作りたいか・・・。  「Visual Studio Code」の検索機能の履歴の扱いが「くそ」だからです。  多くのエディタでは、検索の履歴は、以前に検索したものをもう一度検索すると、履歴の最上位にもってきますが、「Visual Studio Code」は、履歴の順番が変わらないので、以前に検索したものを探すには、新規に入力するか、履歴に表示されるまで、ひたすら上矢印で探さなければならない。  これが「や」なのです。

2. 順番

 参考サイトのいうがままに、ソースを変更します。  まずは、履歴の順番を確認します。

out/extension.js
 を編集します。  まんま、下記を記述します。

import * as vscode from 'vscode';

// 履歴を保持する配列(起動中はメモリに保持されます)
let searchHistory: string[] = ['あ', 'い', 'う'];

export function activate(context: vscode.ExtensionContext) {

    let disposable = vscode.commands.registerCommand('exercise.helloWorld', async () => {

        // QuickPick(選択肢付き入力欄)を表示
        const quickPick = vscode.window.createQuickPick();

        // 履歴をセット(最新が上にくるように表示)
        quickPick.items = searchHistory.map(label => ({ label }));
        quickPick.placeholder = '検索ワードを入力、または履歴から選択してください';

        // 項目が確定(Enter)された時の処理
        quickPick.onDidAccept(() => {
            const selected = quickPick.selectedItems[0]?.label || quickPick.value;

            if (selected) {
                // 【核心ロジック】既存の履歴から削除して、先頭に追加(=最新化)
                searchHistory = [selected, ...searchHistory.filter(item => item !== selected)];

                // 結果を表示(後でここに本物の検索処理を入れます)
                vscode.window.showInformationMessage('「${selected}」で検索します。現在の履歴順: ${searchHistory.join(' > ')}');
            }
            quickPick.hide();
        });

        quickPick.show();
    });

    context.subscriptions.push(disposable);
}
 問題やら、なにやら出てますが、とりあえず、無視。  プロジェクトのフォルダで、コマンド開いて。

npm run compile

> exercise@0.0.1 compile
> tsc -p ./
 終わったら、F5 もしくは、「実行」→「デバッグの開始」  「Visual Studio Code」が開きますので、Ctrl+Shift+P で「Hello World」  検索を模擬したものが表示されます。  「あ」「い」「う」の順になっています。  「う」を選択して Enter

 履歴順が変わったというメッセージが表示されます。


 再度、コマンドで「Hello World」すると、履歴が変わったことが確認できます。


3. 参考サイト

 本ページは、「Gemini」伍長を参考にさせていただきました。

audiobook.jp
AbemaTV 無料体験
JETBOY
5G CONNECT
【usus ウズウズ】
健康サポート特集
アフィリエイトのアクセストレード
葬送のフリーレン Prime Video
薬屋の独り言
ネットオークションの相場、統計、価格比較といえばオークファン
サウンドハウス
ハイスピードプラン
TikTok Shop 【リピート用プログラム】
それがだいじWi-Fi
ベルリッツ
EMEET 1
EaseUS
Amazonギフトカード
U-NEXT
earthcar(アースカー)
損保との違い