标签: mpf

如何从VSPackage订阅解决方案和项目事件

我正在通过VSPackage为Visual Studio开发语言服务.每当从解决方案的项目中添加/删除文件时,我都需要更新我的解析数据.

我想订阅解决方案和项目活动.

我尝试如下,但是当我向解决方案添加/删除项目或向项目添加/删除项目时,这些事件都不会被触发.

DTE dte = (DTE)languageService.GetService(typeof(DTE));
if (dte == null)
    return;

((Events2)dte.Events).SolutionEvents.ProjectAdded += SolutionEvents_ProjectAdded;
((Events2)dte.Events).SolutionEvents.ProjectRemoved += SolutionEvents_ProjectRemoved;
((Events2)dte.Events).ProjectItemsEvents.ItemAdded += ProjectItemsEvents_ItemAdded;
((Events2)dte.Events).ProjectItemsEvents.ItemRemoved += ProjectItemsEvents_ItemRemoved;
Run Code Online (Sandbox Code Playgroud)

从VSPackage订阅这些事件的最佳方法是什么?任何帮助赞赏!

mpf vspackage visual-studio-extensions

16
推荐指数
3
解决办法
4980
查看次数

如何mpf数组?

我有:

import numpy as np
from mpmath import *

mpf(np.array(range(0,600)))
Run Code Online (Sandbox Code Playgroud)

但它不会让我这样做:

TypeError: cannot create mpf from array
Run Code Online (Sandbox Code Playgroud)

那我该怎么办?

基本上我将使用这个数组,并根据环境(例如1.35626567e10846.2345252e-2732)因此需要mpf ,以元素方式乘以非常大或令人难以置信的小数.

更具体地说,我将使用besseli和besselk函数创建令人难以置信的大而令人难以置信的小值.

如何获得一个mpf数组来保存这些数字?

python arrays numpy mpf mpmath

10
推荐指数
1
解决办法
5307
查看次数

Visual Studio 2010可扩展性,MPF和语言服务

我正在尝试扩展Visual Studio 2010 RC以便能够使用自定义编程语言.

我尝试做的前两件事是语法高亮/ Intellisense功能(很容易完成,感谢来自PDC09的"Ook!"样本)以及创建新项目模板的可能性(即能够打开*.myproj文件) .

对于第二个任务,我找不到任何简单的教程或示例.大多数示例适用于Visual Studio 2008(与IronPython集成)或甚至VS2003.可用于VS2010的少量样本不起作用(包括MPFProj)或不编译,并且太难理解.

是否有任何易于理解的示例,使用MPFProj或独立解决方案,展示如何在Visual Studio 2010中集成自定义语言的模板?

visual-studio-2010 mpf languageservice vs-extensibility

8
推荐指数
1
解决办法
2755
查看次数

Visual Studio 2017 的托管包框架

我正在关注本教程,了解如何创建新的 Visual Studio 项目类型。其中显示“导入托管包框架的源代码文件”。Google 引导我找到此链接,其中包含 MPF 2013 套餐的链接。在第一个链接中,他们说要查找ProjectBase.files第二个链接下载中不存在的文件。

问题:

  1. Visual Studio 2017 的正确 MPF 下载在哪里?
  2. 将来当我们转向 Visual Studio 2019 时,我是否需要下载新的 2019 MPF?

c# mpf visual-studio-extensions

7
推荐指数
1
解决办法
567
查看次数

如何使用MPF创建继承自c#的自定义项目?

使用Visual Studio的托管包框架,如何从C#继承,以便我可以拥有C#属性页和C#项目项?我已经尝试制作一个风味项目,但它在制作我们自己的自定义节点和自定义文件属性方面受到限制.但是,在使用MPF时,我似乎无法获得随着调味项目提供的那些C#属性.

谢谢

c# vsx extensibility mpf subtype

6
推荐指数
1
解决办法
639
查看次数

VS可扩展性体系结构(包API/Visual Studio库)

MSDN可扩展性平台描述

最近我在microsoft上找到了上面显示的Visual Studio可扩展性平台图表.

大多数事情对我来说都很清楚.但是,我想知道Package API和VSL(Visual Studio库).

我试图找到更多,但无法找到任何信息.

我不太明白的事情:
- Package API究竟是什么?
- 究竟什么是VSL?
- InteropAssemblies/VSL和Package API之间的关系是什么?InteropAssemblies是否包装对Package API的访问?
- 为什么在实现本机包时应该使用VSL?有什么好处?

有没有人有关于这些主题的更多信息或有人知道一些资源?

visual-studio-2010 mpf vspackage visual-studio vs-extensibility

6
推荐指数
1
解决办法
505
查看次数

VS2010 MPF:为自定义项目填充"添加 - >新项目..."列表

我已经创建了一个自定义语言包,它扩展了ProjectPackage.我可以正确地创建新项目.我希望能够使用Add-> New Item ...(Ctrl + Shift + A)菜单项将新的源文件添加到项目中.但是,当我单击此时,可用模板列表为空.我想将自己的自定义模板添加到此项目类型的可用模板菜单中.是否有一些文件来完成这个?我见过的唯一提到的就是注册表黑客攻击,但我必须想办法以编程方式进行.

我可以覆盖一个特定的方法来填充列表吗?我是否真的需要制作模板,或者我可以只显示"模板名称","图标"并提供正确的文件扩展名(文件在创建时应该为空,所以我认为模板很大程度上浪费在我想要的东西上去做).

这是我到目前为止走过的路.我想我可以在我的自定义.vproj文件中设置我的项目类型和GUID(.vproj是我的自定义项目注册的文件扩展名).我以为我可以使用与我的.vproj文件相同的ProjectType快速创建项目模板.

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <Icon>VerilogSource.ico</Icon>
    <DefaultName>module.v</DefaultName>
    <Name>Basic Verilog Module</Name>
    <Description>
      A basic Verilog module for quickly adding new files to the project.
    </Description>
    <ProjectType>VerilogProject</ProjectType>
  </TemplateData>
  <TemplateContent>
    <ProjectItem TargetFileName="$fileinputname$.v"
        ReplaceParameters="true">module.v</ProjectItem>
  </TemplateContent>
</VSTemplate>
Run Code Online (Sandbox Code Playgroud)

唉,这个模板根本没有出现,即使我已经将它包含在VSIX中并将其复制到输出目录中.如果我将此模板放在与我的.vproj相同的文件夹中,它将显示为用于创建新项目的模板(错误!),但仍然不会出现在我的新项目列表中.这可能都源于我不使用VSTemplate来创建我的项目.相反,我使用[ProvideProjectFactoryAttribute]让VS2010知道我的vproj文件在哪里,并且它将使用vproj文件(我猜你可以调用模板,但它不是VSTemplate,它是一个项目)来建立新的项目.

这是我到目前为止所处的位置,我将继续尝试新事物.我希望有人可能有我想要的答案.谢谢,

Giawa

c# extensibility visual-studio-2010 mpf visual-studio

6
推荐指数
1
解决办法
1204
查看次数

Visual Studio 2010 MEF与MPF?

我正在考虑为visual sudio 2010添加一种新的编程语言,我对最佳方法感到困惑.

我查看了MPF并找到了一些关于如何进行语法高亮,链接外部解析器等的示例,这看起来非常简单.

然后我读到了一些名为MEF的东西以及它如何成为visual studio的新扩展性模型.我已经玩过它了,我的语法突出显示了一些样本的工作.现在,对于MEF,我迷失了如何在我的解析器中链接我的语言,就像使用ParseSOurce的MPF一样,等等.我正在使用ANTLR btw.

MEF仅用于编辑器的视觉方面,如突出显示,装饰等......还是可以/建议用它来实现语言服务?

从我收集的内容来看,MEF是一种新的推荐方法,但创建一种新语言似乎比使用常规MPF更难.强积金仍然是一个好方法吗?

c# mef mpf visual-studio vs-extensibility

6
推荐指数
1
解决办法
1260
查看次数

VSIX 中自定义命令的异步实现

在 VSIX 项目中添加模板自定义命令时,Visual Studio 生成的脚手架代码包括以下常规结构:

\n
    /// <summary>\n    /// Initializes a new instance of the <see cref="GenerateConfigSetterCommand"/> class.\n    /// Adds our command handlers for menu (commands must exist in the command table file)\n    /// </summary>\n    /// <param name="package">Owner package, not null.</param>\n    /// <param name="commandService">Command service to add command to, not null.</param>\n    private GenerateConfigSetterCommand(AsyncPackage package, OleMenuCommandService commandService)\n    {\n        this.package = package ?? throw new ArgumentNullException(nameof(package));\n        commandService = commandService ?? throw new ArgumentNullException(nameof(commandService));\n\n        var menuCommandID = new CommandID(CommandSet, CommandId);\n        var menuItem = …
Run Code Online (Sandbox Code Playgroud)

c# mpf visual-studio vsix async-await

5
推荐指数
1
解决办法
1448
查看次数

使用托管包框架实现语言服务

我已经按照步骤(http://msdn.microsoft.com/en-us/library/bb166360.aspx)中列出的步骤来实现和注册LanguageService,但我根本无法使用它.

我的包正确加载,我可以添加功能菜单项和选项页,但我无法打开注册到我的服务的文件.当我附加一个调试器时,我可以看到我的VSPackage被构造,加载,并且它的FDoIdle方法被调用了两次.在那之后,实验性的Visual Studio会话进入杂草并且似乎陷入无限循环.如果我尝试将.txt文件保存为我的文件类型,则文件会正确保存,但不会在Visual Studio中加载,我会收到Object null异常.

我可以看到我在这个问题中提到的问题:Visual Studio 2010着色剂,智能感知和其他.从哪儿开始!

解决方案似乎是不使用Managed Package Framework而是使用Manage Extensibility Framework.这很好,但是我真的很想知道我的MPF语言服务实现有什么问题.

有没有人使用MPF成功创建了LanguageService?任何人都可以指导我一个工作示例或演练吗?

问题解决了!:

我做了一些进一步的调试,并注意到实验性的Visual Studio实例被卡住后重复调用:

Microsoft.VisualStudio.Editor.Implementation.VsFontsAndColorsInformation.TryGetIndexForNativeItem(String name,IVsColorTable colorTable,Int32&colorTableIndex)

在预感中,我在ProvideLanguageServiceAttribute中将RequestStockColors参数指定为true,现在我可以打开我的文件类型.我的简单扫描仪甚至还有工作语法着色!

c# mef mpf languageservice walkthrough

3
推荐指数
1
解决办法
1097
查看次数

C# WPF 风格:一键鼠标悬停 - 一键保持图像

我有 2 个按钮,其中一个应该在鼠标悬停时更改背景颜色。当鼠标悬停时,另一个人也应该保留他的背景图像。

我的问题是第二个也获得了鼠标悬停效果并且图像被覆盖了:(

    <Window.Resources>
      <Style x:Key="hover" TargetType="Button">
        <Setter Property="Background" Value="#FF2598CE" />
        <Style.Triggers>
             <Trigger Property="IsMouseOver" Value="True">
                 <Setter Property="Background" Value="#FF24779D" />
             </Trigger>
        </Style.Triggers>
      </Style>
    </Window.Resources>
Run Code Online (Sandbox Code Playgroud)

1.按钮

<Button Content="0" Name="num0" Foreground="White" Background="#FF2598CE" BorderBrush="#FF24779D" Style="{StaticResource hover}" />
Run Code Online (Sandbox Code Playgroud)

2.按钮

<Button Content="" Name="up" BorderBrush="#FF24779D">
    <Button.Background>
       <ImageBrush ImageSource="/Rechner;component/Images/btn_up.jpg" />
    </Button.Background>
</Button>
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

c# styles mouseover button mpf

2
推荐指数
1
解决办法
6937
查看次数