VS Code插件开辟引见(二)

  • 一、媒介

上一篇文章里,我扼要引见了 VSCode 插件开辟的基础流程,同时解说了怎样猎取文件夹绝对途径和用户输入的要领。近来又开辟了一个新的插件,主要用途是替代当前编辑文件的内容。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',
};

能够理解为一个简朴的自动化编号东西。个中要处理的题目主要有下面三个:

  • 猎取当前文件途径
  • 读取文件内容
  • 写文件内容

下面引见怎样完成。

  • 三、完成

最先认为 VSCode 有现成的 API 能够取到当前文件内容,但找了一圈搜不到,只能经由过程迂回的体式格局完成。

第一步,猎取当前文件的途径:

const currentlyOpenTabfilePath = vscode.window.activeTextEditor.document.fileName;

第二步,读取文件内容,并拆分为数组

const fs = require('fs');

const fileContentArr = fs.readFileSync(currentlyOpenTabfilePath, 'utf8').split(/\r?\n/);

第三步,写文件。因为没法逐行替代文件内容,只能现将本来的文件清空,再一行一行增加归去。

fs.truncateSync(currentlyOpenTabfilePath);

fileContentArr.forEach( (line, index) => {
    let content = line;
    if (line.slice(-1) == '#') {
        content = xxxxx;
    } 

    fs.appendFileSync(currentlyOpenTabfilePath, content + ((index == contentLength - 1) ? '' : '\n'));
})
  • 四、总结

实在这个需求完成起来照样蛮简朴的,主如果要根据 VSCode 的特点将思绪理顺,再一步步完成。如果有更好的完成体式格局,请务必留言给我

    原文作者:dabai
    原文地址: https://segmentfault.com/a/1190000017541563
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞