VSCode插件开发全攻略(八)代码片段、设置、自定义欢迎页

更多文章请戳VSCode插件开发全攻略系列目录导航

代码片段

代码片段,也叫snippets,相信大家都不陌生,就是输入一个很简单的单词然后一回车带出来很多代码。平时大家也可以直接在vscode中创建属于自己的snippets

创建代码片段

那么如何在扩展中创建snippets呢?

package.json文件新增如下:

"contributes": {
    "snippets": [
        {
            // 代码片段作用于那种语言
            "language": "javascript",
            // 片段文件路径
            "path": "./snippets/javascript.json"
        }
    ]
}

然后创建一个snippets/javascript.json文件,我们这里先简单点,比如创建一个for循环:

{
    "for循环": {
        "prefix": "for",
        "body": [
          "for (const ${2:item} of ${1:array}) {",
          "\t$0",
          "}"
        ],
        "description": "for循环"
    }
}

解释如下:

  • for循环snippets的名字;
  • prefix:输入什么单词触发代码片段;
  • body:一个数组,存放代码片段的内容,每一行一个字符串;
  • description:片段的描述;
  • ${1:xxx}占位符,数字表示光标聚焦的顺序,1表示默认光标落在这里,按下回车或者tab跳到2的位置,以此类推,xxx表示此位置的默认值,可省略,比如直接写$3

效果如下:

示例:ajax

为加深印象我们再来一个ajax的例子:

{
    "ajax": {
        "prefix": "ajax",
        "body": [
            "$.ajax({",
            "    url: '$1',",
            "    method: '${2:POST}',",
            "    datatype: 'json',",
            "    success: data => {",
            "        $3;",
            "    },",
            "    error: err => {",
            "        $4;",
            "    }",
            "})"
        ],
        "description": "ajax模块"
    }
}

效果(图片是直接偷来的,懒得自己截了):

使用TextMate/Sublime Snippets

利用HelloWorld章节中讲到的yo code生成器可以直接将TextMate代码段(.tmSnippets)转换成VScode的Snippets,生成器有一个选项New Code Snippets选项,可让您指向包含多个.tmSnippets文件的文件夹。此外,生成器还支持Sublime片段(.sublime-snippets)。

设置

每一个插件可以创建一个属于自己的专属设置项,这个配置项会出现在系统设置的扩展下面,效果如下:

配置configuration

配置如下:

"contributes": {
    "configuration": {
        "type": "object",
        // 显示在配置页左侧
        "title": "Code插件demo",
        "properties": {
            // 全局唯一的配置ID
            "vscodePluginDemo.yourName": {
                "type": "string",
                "default": "guest",
                "description": "你的名字"
            },
            "vscodePluginDemo.showTip": {
                "type": "boolean",
                "default": true,
                "description": "启动时显示自定义欢迎页"
            }
        }
    }
}

比较简单,就不细讲了。

读取和修改设置

读取:

// 如果没有设置,返回undefined
const result = vscode.workspace.getConfiguration().get('vscodePluginDemo.yourName ');

修改:

// 最后一个参数,为true时表示写入全局配置,为false或不传时则只写入工作区配置
vscode.workspace.getConfiguration().update('vscodePluginDemo.yourName', '前端艺术家', true);

自定义欢迎页

下面结合设置webview2个章节的知识我们来做一个非常简单的自定义欢迎页。

最终效果如下:

要实现欢迎页,肯定要保证插件在VSCode一打开就在运行,所以activationEvents必须设置成*

然后创建一个新的打开欢迎页命令:

context.subscriptions.push(vscode.commands.registerCommand('extension.demo.showWelcome', function (uri) {
    const panel = vscode.window.createWebviewPanel(
        'testWelcome', // viewType
        "自定义欢迎页", // 视图标题
        vscode.ViewColumn.One, // 显示在编辑器的哪个部位
        {
            enableScripts: true, // 启用JS,默认禁用
        }
    );
    let global = { panel};
    panel.webview.html = getWebViewContent(context, 'src/view/custom-welcome.html');
    panel.webview.onDidReceiveMessage(message => {
        if (messageHandler[message.cmd]) {
            messageHandler[message.cmd](global, message);
        } else {
            util.showError(`未找到名为 ${message.cmd} 回调方法!`);
        }
    }, undefined, context.subscriptions);
}));

然后在全局的active方法里面加入以下代码:

const key = 'vscodePluginDemo.showTip';
// 如果设置里面开启了欢迎页显示,启动欢迎页
if (vscode.workspace.getConfiguration().get(key)) {
    vscode.commands.executeCommand('extension.demo.showWelcome');
}

在欢迎页我们加一个选项控制:

<div class="checkbox">
    <label>
        <input type="checkbox" v-model="show"> 启动时显示自定义欢迎页
    </label>
</div>

然后监听show:

watch: {
    show(nv, ov) {
        callVscode({cmd: 'setConfig', key: 'vscodePluginDemo.showTip', value: nv}, null);
    }
}

代码很简单,也没啥太多可以讲的。修改复选框的值后可以去设置里面看一下值是否跟着变了。

参考资料

原文地址:https://www.cnblogs.com/liuxianan/p/vscode-plugin-snippets-and-settings.html

时间: 2024-08-04 09:13:00

VSCode插件开发全攻略(八)代码片段、设置、自定义欢迎页的相关文章

Windows Socket五种I/O模型——代码全攻略(转)

Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模式.可以通过多线程技术进行处理. 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权.这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误.但功能强大.为了解决这个问题,提出了进行I/O操作的一些I/O模型,下面介绍最常见的三种: Windows Socket五种I/O模型——代码全攻

活水渠 - 云影院之云时代看片全攻略

本文讨论了大数据时代最热门的两大应用之一的云计算(另一应用是物联网)对网络视频观看体验的具体影响,以及在观看方式上区别于传统下载方式的优点. 一.视频门户类网站 此类网站以优酷.乐视等为代表,主营传统网络视频业务,使用浏览器进行直接点击链接进行观看. 优点:电视节目丰富.观看技术手段简单.大型网站服务器稳定 缺点:看不了热门电影,精华视频要收费,免费用户要看广告 解决:浏览器辅助工具或插件解决收费和广告问题,在此基础上还诞生了视频门户网 站的入口集成网站,每天看云帆可免VIP直接观看主流视频门户

战斗bug技巧全攻略

程序员不是有一幅这样的对联吗 上联:一个项目两部电脑三餐盒饭只为四千工资搞得五脏俱损六神无主仍然七点起床八点开会处理九个漏洞十分辛苦: 下联:十年编码九年加班八面无光忙的七窍生烟到头六亲不认五体投地依旧四肢酸软三更加班只为二个臭钱一生孤苦: 横批:苦逼程序员. 其实,程序员职业生涯总结起来就这三件事情Ⅰ理解需求 Ⅱ编码 Ⅲ改bug. 可见,bug是程序员的天敌.bug对于我们自己名誉和产品自身质量影响是不言而喻的.哪么,怎么能够降低bug了. 卡耐基说过,人性的弱点要克服.程序员必须克服一些自身

3D计算机图形学零起点全攻略(转)

3D计算机图形学零起点全攻略 这篇文章不包含任何技术知识,但我的希望它能指明一条从零开始通往3D领域的成功之路.我将罗列我看过的相关经典书籍作为学习文献,阅读规则是每进入下个内容,我都会假设已经完成前面全部的文献研习内容.相信若能按照这条路走到最后,会有所进益. 完成整部分内容需要具备基础: 英语:CET4以上 数学:精通数字加减乘除法. 物理:基本力学. 计算机:了解电脑的基本知识,熟练使用Windows. 电脑配置: CPU:双核1.5以上 显卡:NVIDIA GeForce8400G MS

Moon.Orm3.8技术全攻略

Moon.ORM技术全攻略  一.绪论 本文主要是针对Moon.ORM的技术的讨论及其使用使用指导.如有其它疑问,请留言.本文主要针对Moon.ORM3.9版本,同时将会对4.0做一个技术预览.本文从实际出发解析Moon.ORM.(技术群:21696534)  二.Moon.ORM的特色及优势 ----但凡众多的智慧都是及其简单的,但不为人所知.这也是Moon.ORM的主要特色:大道至简. 1.高性能是Moon.ORM优势之一,也是我架构它的主要目的之一,如以前我说的那样,是为了弥补项目中遇到的

【转载】Google Analytics 使用图文全攻略

转载自:Google Analytics 使用图文全攻略 最近一段时间,因为工作的需要,小励使用GA(GA是Google Analytics的简称)比较频繁,所以花时间研究了一下,从不太了解到会使用(呵,远还没有到精通的地步),发现了很多有价值的地方,今天在这里做个总结和分享.希望大家能扔个砖头什么的. 先简单介绍一下GA,它是GOOGLE在2005年收购了Urchin,在2006年以免费工具的形式发布了Google Analytics.虽然国内有很多站点统计分析的工具,如中国站长站,酷站,太极

前台页面优化全攻略(三)

经过前两篇文章的实践,你的网站加载速度一定有了非常明显的变化.能把实践跟到这篇文章的人想必一定是极客中的极客.如果你仍对网站的加载速度不满意,可以看看再尝试一下本文中几近疯狂的终极优化方案. 你可以对网站进行快速的优化,但网站日常的节食却很难.也许你已经花了很大的力气去优化你的CSS和JavaScript代码,但是你所做的努力马上又会因为老板或客户期望的新功能而付之东流.所以看来不论是人还是网页,减肥都贵在坚持. 这篇终极减肥方案可能不适合所有的网站,但是我相信它可以引起你对网页大小的重视. 1

Linux(CentOS)搭建SVN服务器全攻略

虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装#yum install subversion 1)创建svn用户#groupadd svn#useradd -g sky user//是将user加入到sky組內切换用户#su svn以后代码库的创建维护等,都用这个帐户来操作. 2)创建版本库编辑.bash_profile 加上如下配置SVN_HOME=

从小工到专家 ——读《Java程序员职场全攻略》有感

从小工到专家 ——读<Java程序员职场全攻略>有感   <Java程序员职场全攻略>是以故事的形式,向读者介绍Java程序员的职场经验.作者牛开复在北京从事软件开发,已经是一位业界高人,而书中的主人公蔡佳佳则是一名计算机专业的大三学生,作为师兄的牛开复一步一步指引蔡佳佳从学校走入职场,开始他的职业生涯.书中多采用二人对话的形式,谈到了职场中可能会遇到的各种问题,语言形式也非常轻松活泼,生动有趣,通俗易懂. 初窥门径——行业揭秘 相信很多同学都急切的想了解IT这个行业在国内的现状以