使用vscode编写插件-php语言

news2024/9/24 21:21:56

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.coloradmin.cn/o/908005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker数据管理、网络通信和镜像创建

一、Docker 数据管理1、数据卷2、数据卷容器3、端口映射4、容器互联 二、Docker 镜像的创建1、基于现有的镜像创建1.1 首先启动一个镜像,在容器里做修改1.2 然后将修改后的容器提交为新的镜像,需要使用该容器的 ID 号创建新镜像 2、基于本地的模版创建3、…

RunnerGo中WebSocket、Dubbo、TCP/IP三种协议接口测试详解

大家好,RunnerGo作为一款一站式测试平台不断为用户提供更好的使用体验,最近得知RunnerGo新增对,WebSocket、Dubbo、TCP/IP,三种协议API的测试支持,本篇文章跟大家分享一下使用方法。 WebSocket协议 WebSocket 是一种…

【LeetCode】538.把二叉搜索树转换为累加树

题目 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件…

NAS个人云存储 - 手把手教你搭建Nextcloud个人云盘并实现公网远程访问

文章目录 摘要1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文件共享服…

VSCode好用的插件

文章目录 前言1.Snippet Creator & easy snippet(自定义代码)2.Indent Rainbow(代码缩进)3.Chinese (Simplified) Language Pack(中文包)4.Path Intellisense(路径提示)5.Beauti…

GitKraken 详细图文教程

前言 写这篇文章的原因是组内的产品和美术同学,开始参与到git工作流中,但是网上又没有找到一个比较详细的使用教程,所以干脆就自己写了一个[doge]。文章的内容比较基础,介绍了Git内的一些基础概念和基本操作,适合零基…

游戏反外挂方案解析

近年来,游戏市场高速发展,随之而来的还有图谋利益的游戏黑产。在利益吸引下,游戏黑产扩张迅猛,已发展成具有庞大规模的产业链,市面上游戏受其侵扰的案例屡见不鲜。 据《FairGuard游戏安全2022年度报告》数据统计&…

明星翻包口播介绍产品视频的创意与实践

在当前社交媒体充斥着各种内容的时代,创意而有趣的内容形式成为品牌吸引受众目光的关键。明星翻包口播介绍产品视频,作为一种新颖的内容形式,不仅满足了观众对明星生活的好奇心,还将产品介绍融入其中,为品牌推广带来全…

Spring练习---28 (用户表和角色表分析,角色列表展示,角色层和Dao层的设置,页面展示操作)

84、下面进入我们的业务层面,进入我们的业务层面我们先分析一个东西,我们要分析用户和角色的关系,因为我们只有在分析完用户和角色之间的关系后,我们才知道表的关系,实体的关系 85、现在我们先画一张表,分析…

传统节日民俗文化及民间故事推广系统 微信小程序

傣族节日及民间故事推广小程序是在的数据存储主要通过MySQL。用户在使用应用时产生的数据通过java语言传递给数据库。通过此方式促进傣族节日及民间故事推广信息流动和数据传输效率,提供一个内容丰富、功能多样、易于操作的平台。述了数据库的设计,系统的…

Application of Acrel Earth Leakage Relay in Intell

安科瑞 华楠 Abstract: the necessity of applying residual current relay in intelligent building is analyzed, the main functions, working principle, classification situation of ASJ residual current relay are introduced, and the principles and precautions in…

Everything+cpolar搭建在线资料库,实现随时随地访问

Everythingcpolar搭建在线资料库,实现随时随地访问 文章目录 Everythingcpolar搭建在线资料库,实现随时随地访问前言1.软件安装完成后,打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 &a…

Cesium 模型视角锁定(entity)

需求: 需要将视角锁定在以模型为中心,无论怎么旋转和缩放,都是以模型为中心点的。 方法: //绑定方式 viewer.trackedEntity entity; //解绑方式 viewer.trackedEntity undefined;例子 var model_entity viewer.entities.add…

6个主流的工业3D管道设计软件

3D 管道设计软件是大多数行业工程工作的主要部分,例如: 电力、石油和天然气、石化、炼油厂、纸浆和造纸、化学品和加工业。 全球各工程公司使用了近 50 种工厂或管道设计软件。 每个软件都有优点和缺点,包括价格点。 EPC 和业主部门当前的趋势…

STM32 F103C8T6学习笔记11:RTC实时时钟—OLED手表日历

之前在 学习笔记10文章 做了一个简易的,使用定时器计时的简单时钟,现在使用RTC实时时钟同步代替定时器来实现一下OLED手表日历,接着上个实验文章进行完善~~ 文章提供源码、测试工程下载、测试效果图。 目录 RTC实时时钟: 简介&…

MySQL——基础——内连接

一、内连接查询语法 隐式内连接 SELECT 字段列表 FROM 表1,表2 WHERE 条件...; 显示内连接 SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件...; 内连接查询的是两张表交集的部分 二、内连接演示 1.查询每一个员工的姓名,及关联的部门的名称…

多模双芯LC光纤跳线应用下的光模块方案之争

从40G QSFP SR4光模块产品开始,多模MPO光纤跳线 逐步进入光模块用户的视野。随着新建数据中心的增多,该类光纤跳线也开始普及并被广泛应用。然而,对于不少10G/25G时代就已经建设好的“老旧”机房来说,机房内基本全部部署的是多模L…

[MySQL]主从服务器布置

配置主服务器 配置文件 /etc/my.cnf 在[mysqld]下进行配置 log_binON //启动二进制日志 log-bin mysql-bin //启用二进制日志,用于记录主服务器的更新操作 server-id 1 // 用来表示mysql服务id,保证集成环境中的唯一性 , 范围 [1,2^32) read-only0 // 1表示只…

Java课题笔记~ VUE

1.1 概述 Vue 是一套前端框架,免除原生JavaScript中的DOM操作 我们之前也学习过后端的框架 Mybatis Mybatis 是用来简化 jdbc 代码编写的;而 VUE 是前端的框架,是用来简化 JavaScript 代码编写的。 学习了 VUE 后,这部分代码我…

6.链路追踪-Zipkin

链路追踪(Distributed Tracing)是一种用于监视分布式应用程序的技术,通过收集和展示分布式系统中不同组件之间的调用和交互情况,帮助开发人员和运维团队理解系统中的请求流程、性能瓶颈和异常情况。 1.Zipkin Zipkin 是一个开源的…