资讯专栏INFORMATION COLUMN

VS Code插件开发介绍(二)

muddyway / 2402人阅读

摘要:一前言在上一篇文章里,我简要介绍了插件开发的基本流程,同时讲解了如何获取文件夹绝对路径和用户输入的方法。了一圈,发现介绍这方面的文章很少,特此记录一下,希望对有类似需求的人有一些帮助。

一、前言

在上一篇文章里,我简要介绍了 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(/
?
/);

第三步,写文件。由于没法逐行替换文件内容,只能现将原来的文件清空,再一行一行添加回去。

fs.truncateSync(currentlyOpenTabfilePath);

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

    fs.appendFileSync(currentlyOpenTabfilePath, content + ((index == contentLength - 1) ? "" : "
"));
})

四、总结

其实这个需求实现起来还是蛮简单的,主要是要根据 VSCode 的特点将思路理顺,再一步步实现。如果有更好的实现方式,请务必留言给我

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100489.html

相关文章

  • VS Code插件开发介绍(一)

    摘要:发布插件插件开发完后就可以发布了,需要安装安装完后,需要去注册并生成一个。总结本文介绍了插件开发的基本流程,实现了一个简单的插件。更多的开发技巧,可以看这个系列的第二篇插件开发介绍二 前言 前段时间做了一个基于命令行的效率工具,可以自动生成组件的模板代码。自己用起来还觉得挺好,但在组内案例几次后大家都不愿意用,究其原因还是命令行工具使用起来门槛有点高,不方便。由于组内已经统一使用VS ...

    thursday 评论0 收藏0
  • # vs code Settings Sync 插件的详细介绍

    摘要:插件的详细介绍由于越来越卡,有时敲一个回车都要一秒,实在是受不了,继而转向,用了一段时间发现在前端开发并不比差,而且又是微软开发,感觉很有前途,最重要的是,打开速度非常快,即使打开大文件,也不会卡。 vs code Settings Sync 插件的详细介绍 由于webstorm越来越卡,有时敲一个回车都要一秒,实在是受不了,继而转向vs code,用了一段时间发现vs code在前端...

    Me_Kun 评论0 收藏0
  • vs code 插件折腾记(

    摘要:插件折腾记一接上文更新一个可以更好的区分代码嵌套关系的插件使用相同的颜色标识匹配同一组括号允许窥视与类字符串作为从文件到相应的定义,功能十分强大内联加载文件并在那里进行快速编辑直接跳转到文件或在新编辑器中打开它用鼠标悬停在符号上显示定义搜索 vs code 插件折腾记(一)接上文更新 6.Bracket Pair Colorizer showImg(https://segmentfa...

    Jioby 评论0 收藏0
  • vs code 插件折腾记(

    摘要:插件折腾记一接上文更新一个可以更好的区分代码嵌套关系的插件使用相同的颜色标识匹配同一组括号允许窥视与类字符串作为从文件到相应的定义,功能十分强大内联加载文件并在那里进行快速编辑直接跳转到文件或在新编辑器中打开它用鼠标悬停在符号上显示定义搜索 vs code 插件折腾记(一)接上文更新 6.Bracket Pair Colorizer showImg(https://segmentfa...

    villainhr 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<