微信IDE vscode插件:获取插件位置,并打开文件

devtools/2024/9/20 15:44:20/

背景

有没有觉得在微信开发工具里面添加一些插件可以很方便。因为微信IDE的编辑本身是依赖vscode开发,所以编写vscode插件自然可以在微信IDE使用。这样做好处就是可以满足到自己一些开发使用习惯。

1.获取插件的目录位置

那么如何获取插件里面的目录,并且打开它。代码似乎不复杂,只不过在找资料的时候,发现找了很久才知道这个方法context.extensionPath

我们目的是拿到这个目录,并且实现打开它。首先需要知道对应文件夹的位置。利用上下文获取。看如下代码


async function openFile(context){const fileUri = vscode.Uri.file(path.join(context.extensionPath, 'code.md'));const doc1 = await vscode.workspace.openTextDocument(fileUri );await vscode.window.showTextDocument( doc1, vscode.ViewColumn.Two,true);
}

通过这个方式组装获取对应插件扩展位置context.extensionPath。在activate 激活后,传递了context 就可以通过它拿到对应位置了。

const vscode = require('vscode');
const path = require('path');
function activate(context) {let disposable = vscode.commands.registerCommand('extension.opendfile', function () { openFile(context);//传递上下文});context.subscriptions.push(disposable);
}

拿到插件文件夹目录,组装一个Uri对象提供文档方法openTextDocument打开。最后展示对应IDE里面。

	const fileUri = vscode.Uri.file(path.join(context.extensionPath, 'code.md'));

这个小小的功能,可以可以满足到一些日常小抄的代码片段的过程。只要满足日常使用,在编码过程就可以随时打开对应笔记使用。并且记录下,形成沉淀了。
在这里插入图片描述

2 IDE右键打开一个网页

上述方法很容易。同理我们如果打开一个网页,那样如何弄?

async function openFile(context){const panel = vscode.window.createWebviewPanel('Test', 'Test Code', vscode.ViewColumn.One, );const fileUri = vscode.Uri.file(path.join(context.extensionPath, 'index.html'));const doc1 = await vscode.workspace.openTextDocument(fileUri );panel.webview.html = doc1.getText();//读取对应html文件
}

用这个方法,微信IDE上就可以打开对应插件index.html 网页了。里面网页可以作为IDE 一部分使用。

利用上述功能在微信IDE就可以愉快玩耍了。添加一些小插件帮助我们编码了。


http://www.ppmy.cn/devtools/34322.html

相关文章

Spring IoCDI

一.引言 1.什么是Spring 前面我们说Spring是一个开源框架,它让我们的开发更为简单,它支持广泛的应用场景,有活跃庞大的社区。但这样说还是很抽象。今天我们就对他进行具象的描述 一句话说,Spring就是包含了众多工具的IoC容器。…

通用代码审查清单

通用代码审查清单是一个确保代码质量、可读性、可维护性和遵循最佳实践的重要工具。 以下是一个汇总的审查清单,结合了多个来源的信息,适用于多种编程语言和项目: 功能实现 • 代码是否实现了设计文档或需求规格说明中规定的所有功能&…

Dragonfly 拓扑的路由算法

Dragonfly 拓扑的路由算法 1. Dragonfly 上的路由 (1)最小路由(2)非最小路由 2. 评估 Dragonfly 拓扑的路由算法 John Kim, William J. Dally 等人在 2008 年的 ISCA 中提出技术驱动、高度可扩展的 Dragonfly 拓扑。而文章中也提到了 针对 Dragonfly 拓扑的路由算法。本文对…

还有谁……想知道“线下与线上布局之间的本质区别”

还有谁……想知道 线下与线上布局之间的本质区别 hello,亲爱的你们好.… 我是你们的好朋友,正博,今天是非常特殊的一天,给每一位读者准备了一份特殊的神秘礼物…… 在分享【特殊礼物】之前,请允许我分享一下《线下营销与线上销售的9大核心差异》…… 1、注意力; 2、销…

探索设计模式的魅力:分布式模式让业务更高效、更安全、更稳定

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索分布式模式之旅✨ 在数字化时代,企业面临着前所未有的挑战和机遇。…

(论文阅读-多目标优化器)Multi-Objective Parametric Query Optimization

目录 摘要 一、简介 1.1 State-of-the-Art 1.2 贡献和大纲 二、定义 三、相关工作 四、问题分析 4.1 分析 4.2 算法设计影响 五、通用算法 5.1 算法概述 5.2 完备性证明 六、分段线性代价函数算法 6.1 数据结构 6.2 基本运算实现 6.3 复杂度分析 七、实验评估 …

原来spring也可以AI

最近大模型是相当的火,尤其是在自然语言处理(NLP)、图像识别、语音识别等领域的应用,那对于工程同学来说应该如何接住这波破天的富贵呢? 想啥来啥,前段时间LangChain给我们整了一套钢铁战甲,让…

四工位自动攻丝机自动控制

/**************进料检测********************/ /***缺料无限次循环 手动退出 超时报警*******/ void check_Pon() { zstatus0; //缺料报警计数器归零 Signauto1; //…