vs插件开发 驼峰示例

  1. 确保安装了vs扩展开发工具

  2. 创建插件项目

  3. 添加command

  4. 在.vsct文件中将添加的命令调整到编辑菜单中

  5. 实现具体的逻辑
    逻辑可以在Command中的Execute方法内实现

  6. 获取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;

获取文本api

  1. 修改选中的文本
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获取解决方案和项目信息)

posted @ 2022-03-01 15:08  Hey,Coder!  阅读(184)  评论(0编辑  收藏  举报