VSコードプラグインの開発紹介(二)


  • 、前言
  • 前の記事において、VCodeプラグインの開発の基本的な流れを簡単に紹介しながら、フォルダの絶対パスとユーザ入力の方法を説明した.最近また新しいプラグインが開発されました.主な用途は現在の編集ファイルの内容を置き換えることです.googleは一周して、この方面を紹介する文章が少ないことを発見しました.ここでメモしてみます.似たようなニーズがある人に助けを求めています.
  • 、需要
  • 必要は簡単です.次の書類の内容を教えてください.
    export default {
        add_member#
        manage_member_card#
        member_setting#
        search_member#
        edit_member#
        delete_member#
        assign_consultant#
        add_member_tag#
        import_member#
        modify_member_point#
    };
    置換文字列:
    export default {
        add_member: 'ce0',
        manage_member_card: 'ce1',
        member_setting: 'ce2',
        search_member: 'ce3',
        edit_member: 'ce4',
        delete_member: 'ce5',
        assign_consultant: 'ce6',
        add_member_tag: 'ce7',
        import_member: 'ce8',
        modify_member_point: 'ce9',
    };
    簡単な自動化番号ツールとして理解できます.その中で解決すべき問題は主に以下の三つがあります.
  • は、現在のファイルパス
  • を取得する.
  • ファイルの内容を読み取る
  • 書類の内容を書く
  • どうやって実現するかを紹介します.
  • を実現します.
    最初はVCodeに既存のAPIがあり、現在のファイルの内容が取れると思いましたが、一週間探しましたが、見つけられませんでした.迂回して実現するしかないです.
    ステップ1で、現在のファイルのパスを取得します.
    const currentlyOpenTabfilePath = vscode.window.activeTextEditor.document.fileName;
    第二のステップは、ファイルの内容を読み込み、配列に分割します.
    const fs = require('fs');
    
    const fileContentArr = fs.readFileSync(currentlyOpenTabfilePath, 'utf8').split(/\r?
    /);
    ステップ3で、ファイルを書きます.ファイルの内容を逐行に置き換えることができませんでしたので、元のファイルを空にして、もう1行を追加します.
    fs.truncateSync(currentlyOpenTabfilePath);
    
    fileContentArr.forEach( (line, index) => {
        let content = line;
        if (line.slice(-1) == '#') {
            content = xxxxx;
        } 
    
        fs.appendFileSync(currentlyOpenTabfilePath, content + ((index == contentLength - 1) ? '' : '
    ')); })
  • 、まとめ
  • 実はこの需要は実現しますか?それともとても簡単です.主にVCodeの特徴によって考え方を合理化して、もう一歩実現します.より良い実現方法があれば、ぜひメッセージをください.