十分钟实现自己动手写一个vscode插件,实现插件自由!

一、环境搭建

1、安装Visual Studio Code
2、安装Node.js
3、安装Git
4、安装生产插件代码的工具:Yeoman和VSCode Extension generator

  • 打开cmd命令行工具,执行以下命令安装Yeoman和VSCode Extension generator
npm install -g yo generator-code

二、创建工程

1、在cmd命令行中执行以下命令,自动生成一个工程的基本代码

yo code

在这里插入图片描述

2、选择项解释:

  • 选择编写扩展的语言,我选择的是JavaScript
  • 输入扩展名称
  • 输入一个标志(我直接选择的默认)
  • 输入对这个扩展的描述
  • 在 jsconfig.json 中是否启用 javascript 类型检查
  • 是否绑定git仓库
  • 使用哪个包管理器(我选择的npm)

3、目录说明
在这里插入图片描述
4、结果展示

  • 项目按F5或者vscode菜单栏:“运行–启动调试”,之后会开启一个新的工作区窗口
  • 快捷键Ctrl+shift+p,输入hello word,就会弹出对应的内容
    在这里插入图片描述

在这里插入图片描述

三、修改代码,做一个统计选择代码的字符数

1、在package.json中添加相关代码
在这里插入图片描述
2、在extension.js文件中添加相关代码
在这里插入图片描述
3、外部文件wordCounter.js文件

class WordCounter {
    constructor(_vscode) { 
    	//构造函数,传入vscode对象
        this.vscode = _vscode;
        this.init();
    }

    init() { //初始化
        var vscode = this.vscode;
        var StatusBarAlignment = vscode.StatusBarAlignment;
        var window = this.vscode.window;

        //statusBar,是需要手动释放的
        this.statusBar = window.createStatusBarItem(StatusBarAlignment.Left);

        //跟注册事件相配合的数组,事件的注册,也是需要释放的
        var disposable = [];
        //事件在注册的时候,会自动填充一个回调的dispose到数组
        window.onDidChangeTextEditorSelection(this.updateText, this, disposable);

        //保存需要释放的资源
        this.disposable = vscode.Disposable.from(disposable);

        this.updateText();
        this.statusBar.show();
    }

    updateText() { 
        var window = this.vscode.window;
        this.editor = window.activeTextEditor;
        var content = this.editor.document.getText();
        var len = content.replace(/[\r\n\s]+/g, '').length;
        this.statusBar.text = `已经敲了${len}个字符了`;
    }

    dispose() { //实现dispose方法
        this.disposable.dispose();
        this.statusBar.dispose();
    }
}

module.exports = WordCounter;
  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现这个功能,你可以在前端页面的提交按钮上添加一个倒计时功能,当用户点击提交后按钮变为不可用状态,并开始倒计时。在倒计时结束前用户无法再次提交。 下面是一个简单的实现示例: 1. 安装倒计时库 ``` npm install react-countdown ``` 2. 在提交按钮上添加倒计时组件 ``` import React, { useState } from 'react'; import Countdown from 'react-countdown'; const SubmitButton = () => { const [isSubmitting, setIsSubmitting] = useState(false); const handleSubmit = () => { // 处理提交逻辑 setIsSubmitting(true); }; return ( <div> <button onClick={handleSubmit} disabled={isSubmitting}> 提交 </button> {isSubmitting && ( <Countdown date={Date.now() + 600000} // 10分钟倒计时 onComplete={() => setIsSubmitting(false)} renderer={({ minutes, seconds }) => ( <span style={{ color: 'gray' }}> {minutes}:{seconds} </span> )} /> )} </div> ); }; export default SubmitButton; ``` 在上面的代码中,我们使用了 `useState` 来管理提交按钮的状态,当用户点击提交时,`isSubmitting` 变为 `true`,按钮就会变成不可用状态。同时,我们在倒计时组件中设置了 `date` 属性为当前时间加上十分钟的时间戳,以及一个 `onComplete` 回调函数,用来在倒计时结束后将 `isSubmitting` 设置为 `false`,使得用户可以再次提交。`renderer` 属性用来自定义倒计时组件的显示格式。 这样,当用户点击提交后,按钮就会变成不可用状态,并开始倒计时,十分钟后按钮就会重新变成可用状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值