vs插件开发 驼峰示例
-
确保安装了vs扩展开发工具
-
创建插件项目
-
添加command
-
在.vsct文件中将添加的命令调整到编辑菜单中
-
实现具体的逻辑
逻辑可以在Command中的Execute方法内实现 -
获取vs中选中的文本
var dte = await this.ServiceProvider.GetServiceAsync(typeof(DTE)) as DTE;
Document doc = dte.ActiveDocument;
var x = doc.Selection.ToString();
TextSelection textSelection = doc.Selection as TextSelection;
- 修改选中的文本
textSelection.Text = GenName(textSelection.Text);
设置快捷键
命令可以同时具有与之关联的单键绑定和双键绑定。 单个键绑定的一个示例是 "保存 + "命令 的Ctrl S。 双键绑定需要两个连续的键组合来触发命令。 双键绑定的一个示例是 Ctrl+K、Ctrl+K 来设置书签。
属性 | 说明 |
---|---|
guid | 必需。 |
id | 必需。 |
编辑器 | 必需。 编辑器 GUID 指示此键盘快捷方式将处于活动状态的编辑上下文。 全局绑定范围值为"guidVSStd97"。 |
key1 | 必需。 有效值包括所有可键入的字母数字,以及前面带有 0x 和 VK_constants的两位数十六进制VK_constants。 |
mod1 | 可选。 控件 、Alt****和 Shift 的任意组合 ,用 空格分隔。 |
key2 | 可选。 有效值包括所有可键入的字母数字,以及前面带有 0x 和 VK_constants的两位数十六进制VK_constants。 |
mod2 | 可选。 控件 、Alt****和 Shift 的任意组合 ,用 空格分隔。 |
emulator | 可选。 |
条件 | 可选。 请参阅 条件属性。 |
设置对应的功能对应的guid和id,
<KeyBinding guid="guidFormatExtPackageCmdSet" id="cmdidFromatSelectionCommand" editor="guidVSStd97" key1="B" key2="x" mod1="Alt" mod2="Alt" />
其他
获取解决方案名称及解决方案路径
using EnvDTE;
using EnvDTE80;
using Microsoft.VisualStudio.Shell;
using System.IO;
var dte2 = Package.GetGlobalService(typeof(DTE)) as DTE2;
var solution = dte2.Solution;
var SolutionName = Path.GetFileName(solution.FullName); //解决方案名称
var SolutionPath = Path.GetDirectoryName(solution.FullName);//解决方案路径
var dte2 = Package.GetGlobalService(typeof(DTE)) as DTE2;
var projects = (UIHierarchyItem[])dte2?.ToolWindows.SolutionExplorer.SelectedItems;
var project = projects[0].Object as Project;
示例代码
KeyBinding 元素
Virtual-Key 代码
Visual Studio 菜单的 guid 和 id
快捷键
VS插件(VSIX获取解决方案和项目信息)
留待后查,同时方便他人
联系我:renhanlinbsl@163.com
联系我:renhanlinbsl@163.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!