首页 > 其他分享 >HbuilderX 插件开发-模板创建

HbuilderX 插件开发-模板创建

时间:2024-11-16 19:18:04浏览次数:3  
标签:插件 extension let HbuilderX vue2 SL 模板 editor

实现思路

  • 使用HbuilderX 打开某个文档时右键
  • 点击的时候获取当前打开的文档内容
  • 使用 API 替换为自己的模板

示例

  • package.json
{
	"id": "SL-HbuilderX-Tool",
	"name": "SL-HbuilderX-Tool",
	"description": "快速创建html,vue2模板",
	"displayName": "SL-HbuilderX-Tool",
	"version": "1.0.1",
	"publisher": "SL",
	"engines": {
		"HBuilderX": "^3.8.0"
	},
	"categories": [
		"Other"
	],
	"keywords": [
        "html",
        "vue2",
        "template"
    ],
	"main": "./extension",
	"activationEvents": [
		"onCommand:extension.html",
		"onCommand:extension.vue2"
	],
	"contributes": {
		"commands": [{
			"command": "extension.html",
			"title": "创建HTML模板"
		},{
			"command": "extension.vue2",
			"title": "创建VUE2模板"
		}],
		"menus": {
			"editor/context": [{
					"id": "foo",
					"title": "SL-HbuilderX-Tool",
					"group": "goto"
				},
				{
					"command": "extension.html",
					"group": "foo@1",
					"when": "editorTextFocus"
				},
				{
					"command": "extension.vue2",
					"group": "foo@1",
					"when": "editorTextFocus"
				},
				{
					"group": "goto"
				}
			]
		}
	},
	"extensionDependencies": [
		"plugin-manager"
	],
	"dependencies": {}
}
  • extension.js
var hx = require("hbuilderx");

let htmlTemp = `<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
</head>
<body>
	<div>Hello World!!!</div>
</body>
</html>`
let vue2Temp = `<template>
  <div>Hello World!!!</div>
</template>

<script>
export default {
  name: "Index",
  props: {},
  watch:{},
  computed:{},
  data() {
    return {}
  },
  beforeCreate() {
  },
  created() {
  },
  beforeMount() {
  },
  mounted() {
  },
  beforeDestroy() {
  },
  destroyed() {
  },
  methods: {}
}
</script>

<style scoped>

</style>`


//该方法将在插件激活的时候调用
function activate(context) {
	let htmldisposable = hx.commands.registerCommand('extension.html', () => {

		let activeEditor = hx.window.getActiveTextEditor();
		activeEditor.then(function(editor) { 
			let text = editor.document.getText({});
 
			editor.edit(editBuilder => {
				editBuilder.replace({start:0,end:text.length}, htmlTemp);
			});
		});
	});
	let vue2disposable = hx.commands.registerCommand('extension.vue2', () => {

		let activeEditor = hx.window.getActiveTextEditor();
		activeEditor.then(function(editor) { 

			let text = editor.document.getText({});
 
			editor.edit(editBuilder => {
				editBuilder.replace({start:0,end:text.length}, vue2Temp);
			});
		});
	});
	//订阅销毁钩子,插件禁用的时候,自动注销该command。
	context.subscriptions.push(htmldisposable);
	context.subscriptions.push(vue2disposable);
}
//该方法将在插件禁用的时候调用(目前是在插件卸载的时候触发)
function deactivate() {

}



module.exports = {
	activate,
	deactivate
}

源代码

SL-HbuilderX-Tool

标签:插件,extension,let,HbuilderX,vue2,SL,模板,editor
From: https://blog.csdn.net/weixin_45381071/article/details/143821649

相关文章

  • 江苏科技大学大二《数据结构》课内实验报告模板答案
    江苏科技大学《数据结构》实验报告(2024/2025学年第1学期)学生姓名:学生学号:院系:计算机学院专业:考核得分:2024年12月实验一线性表的操作一、实验目的掌握线性表的基本操作在存储结构上的实现,其中以单链表的操作作为重点。二、实验题目1.以单......
  • PostgreSQL WALMINER 插件的安装和数据恢复
    我们说数据恢复是数据库DBA在日常数据库维护过程中一项难点技能,也是标志一个人是否达到DBA的重要指标。其他关系型数据库比如常用的MySQLSQLServerOracle等都有一些比较成熟的产品可以直接恢复。但是PostgreSQL比较特殊一些,不好直接解析WAL日志。或者直接解析也是......
  • 大数据可视化模板免费分享 | 11种类别
    引言随着大数据技术在企业管理、金融分析、运营监控等领域的深入应用,越来越多的开发者和企业需要专业的大数据模板。本篇文章整理了多个高质量的大数据模板合集,帮助用户轻松上手、快速构建属于自己的数据分析系统。模板合集概览本次分享的大数据模板包含了11类,分别是金融类......
  • 【Vue】环境配置(必备插件含vue开发者工具)
    目录必备插件Vue的HelloWorld程序setup函数安装Vue开发者工具​编辑数据响应式响应式函数reactive ​编辑响应式函数refreactive与ref的选择必备插件1、Vue-Offical提供Vue文件的语法高亮支持Vue文件的智能感知和自动完成提供Vue文件的格式化工具2、Vue3S......
  • chainWebpack: config => { // 移除 preload(预载) 插件 config.plugins.dele
    在VueCLI项目中,chainWebpack是一个用于自定义Webpack配置的钩子。通过chainWebpack,你可以对Webpack配置进行更细粒度的控制。你提到的代码片段的作用是移除preload和prefetch插件。下面是对这段代码的详细解释:代码解析chainWebpack:config=>{//移除preload......
  • 【模板进阶】std::is_union、std::is_class、std::integral_constant
    一、std::is_unionstd::is......
  • 【模板】Runs
    学习资料:Lyndon&Runs-洛谷专栏。yyc讲的太好了啊,我就不抄了。做Lyndon分解的Duval算法在Runs的求解中出现次数非常高,请一定记住它。if(tl+tr>=r-l+1)这一行是算的刚刚好的,这里对应的LyndonRoot是\([l,r)\),然后求出lcp,lcs分别是\(tl,tr\),则这个ru......
  • 【Axure模板素材】白蓝灰配色精美后台 M2
    【Axure】白蓝灰配色精美后台M2AxureMost官网【Axure】白蓝灰配色精美后台M2-AxureMost模版定位致力于实用的移动端、桌面端模版,拿到即可开展工作。没有多余的杂乱页面移动端我们会采集国内市面上100+的界面进行行业划分和汇总页面,复刻物美的UI界面进行模版制作......
  • 无插件H5播放器EasyPlayer.js网页web无插件播放器选择全屏时,视频区域并没有全屏问题的
    EasyPlayer.jsH5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS、WEBRTC、FMP4视频直播与视频点播等多种协议,支持H.264、H.265、AAC、G711A、MP3等多种音视频编码格式,支持MSE、WASM、WebCodec等多种解码方式,支持Windows、Linux、Android、iOS全平台终端的H5播放器,使用简单......
  • 金蝶云插件:列表插件单元格格式化事件FormatCellValue --- 采购申请单--列表自动刷新即
    region<<版本注释>>采购申请单--列表自动刷新即时库存/*===================================================类名称:PUR_Requisition_ListJSKCQTY类描述:采购申请单--列表自动刷新即时库存创建人:luohong创建时间:2024/11/1514:59:47电子邮箱:it_luo@finecables......