当前位置: 首页 > news >正文

使用vscode编写插件-php语言

https://blog.csdn.net/qq_45701130/article/details/125206645

一、环境搭建

1、安装 Visual Studio Code
2、安装 Node.js
3、安装 Git
4、安装生产插件代码的工具:npm install -g yo generator-code

二、创建工程

yo code

在这里插入图片描述

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

在这里插入图片描述
extension.js 插件入口
package.json 注册插件的事件和设置触发时间

结果展示
  • 1、项目按F5或者vscode菜单栏:“运行–启动调试”,之后会开启一个新的工作区窗口(意思就是在这个新的窗口中安装了你的插件,然后可以来测试,但是不是真的安装了,所以需要手动来触发事件,也就是下面的这一点)
  • 2、快捷键Ctrl+shift+p,输入hello word,就会弹出对应的内容

在这里插入图片描述
在这里插入图片描述

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

首先,package.json

"contributes": {"commands": [{"command": "php-extension-classes.helloWorld","title": "Hello World"},{"command": "php-extension-classes.showNumber","title": "show number"}]
},

然后,extension.js

function activate(context) {......// 统计选中代码的字符数let showNumber = vscode.commands.registerCommand('php-extension-classes.showNumber', function () {let editor = vscode.window.activeTextEditor; // 获取编辑器编辑区if (!editor) { return; }let selection = editor.selection;// 获取选择let text = editor.document.getText(selection);// 显示通知vscode.window.showInformationMessage('选择的字数:' + text.length);});context.subscriptions.push(showNumber);
}

测试,按 F5打开新窗口,随便打开一个项目,打开一个文件,选中一些字符,然后ctrl+shift+p 输入show number,点击运行之
在这里插入图片描述

activationEvents 插件被激活的事件

https://code.visualstudio.com/api/get-started/your-first-extension

https://code.visualstudio.com/api/language-extensions/overview

https://code.visualstudio.com/api/references/vscode-api

http://www.lryc.cn/news/133874.html

相关文章:

  • 【笔记】Spark3 AQE(Adaptive Query Execution)
  • 【雷达】接收和去噪L波段雷达接收到的信号研究(Matlab代码实现)
  • 【云原生】Docker Cgroups资源控制管理
  • k8s部署prometheus
  • 飞书小程序开发
  • Revit 3D高效处理:cad exchanger sdk 3.21 Crack
  • 【已解决】Linux中启动docker 出现 ‘ Failed to start docker.service: Unit not found. ’ 错误
  • 【学习日记】【FreeRTOS】时间片的实现
  • CentOS Docker仓库和代理配置
  • Lnton羚通算法算力云平台在环境配置中Windows10终端和VSCode下如何打开Anaconda-Prompt
  • Python web实战之细说Django的集成测试
  • Laravel 模型的作用域 模型的访问器和修改器 ⑨
  • 每日一学——交换机
  • 数学建模大全及优缺点解读
  • C++简介
  • 【广州华锐互动】3D空间编辑器:一款简洁易用的VR/3D在线编辑工具
  • golang云原生项目☞redis配置
  • C++ malloc/free/new/delete详解(内存管理)
  • SpringBoot中Mapper.xml的入参方式
  • 回归预测 | MATLAB实现WOA-RBF鲸鱼优化算法优化径向基函数神经网络多输入单输出回归预测(多指标,多图)
  • 浅析Python爬虫ip程序延迟和吞吐量影响因素
  • 【100天精通python】Day43:python网络爬虫开发_爬虫基础(urlib库、Beautiful Soup库、使用代理+实战代码)
  • Linux:安全技术与防火墙
  • Confluent kafka 异常退出rd_tmpabuf_alloc0: rd kafka topic info_new_with_rack
  • 最新ChatGPT网站程序源码+AI系统+详细图文搭建教程/支持GPT4.0/AI绘画/H5端/Prompt知识库
  • chatGPT-对话柏拉图
  • Java项目-苍穹外卖-Day04
  • SQL递归获取完整的树形结构数据
  • 如何使用营销活动,提升小程序用户的参与度
  • IDEA中使用Docker插件构建镜像并推送至私服Harbor