1. 31 1月, 2015 1 次提交
  2. 15 1月, 2015 1 次提交
  3. 14 1月, 2015 1 次提交
  4. 07 1月, 2015 3 次提交
  5. 07 10月, 2014 1 次提交
    • J
      Make much of the Workspaces layer Portable. · e76a29a4
      jasonmalinowski 提交于
      This change splits the Workspaces layer into two parts, mirroring the Portable/Desktop split that the compilers did. The core parts of the Workspaces layer (managing documents and projects, formatting, some refactoring, code fixes) is kept in the portable subset, with a few non-portable pieces remaining, notably MSBuild support.
      
      This change has a major impact on how MEF now works in Roslyn. Traditional MEF (“MEFv1”) is not portable, and so we must move the Workspaces layer over to using the Microsoft.Composition NuGet package (“MEFv2”) which is. The APIs are distinct in that each has its own namespace, but the concepts are more or less identical. It requires some care though: the workspaces layer is simple in that it only references MEFv2, but higher layers have to reference both versions to use metadata attributes. Exports using metadata attributes from the editor (say, ContentTypeAttribute) must use MEFv1 attributes to export, whereas exports for the workspaces layer must use MEFv2 attributes. The rule is subtle and yet simple, and so a diagnostic is provided which catches any offenses to prevent confusion.
      
      This also has some impact in how we create MEF hosts: if you wish to host just the base workspaces layer, we can use MEFv2 to compose everything. The HostServices implementation (MefV1HostServices) that consumes a MEFv1 ExportProvider. If you’re in Visual Studio, you can use this implementation to get the full set of host services provided in Visual Studio.
      
      Otherwise, most of the changes in here are minor: we react to some APIs that have been moved/renamed in the portable subset we are targeting, and also align our various exception helper utilities with the compiler’s precedent. (changeset 1349276)
      e76a29a4
  6. 10 9月, 2014 1 次提交
    • S
      Simplify type name should work inside crefs for both languages and should... · da262b04
      shyamn 提交于
      Simplify type name should work inside crefs for both languages and should honor the PreferIntrinsicTypeKeywordInMemberAccess setting in both.
      
      There were a couple of issues around the PreferIntrinsicTypeKeyword* settings inside crefs.
      
      - C# was honoring these settings in some cases inside crefs but not all. In addition, C# would allow the simplification to predefined type names inside cref to happen if either one of PreferIntrinsicTypeKeywordInMemberAccess  or PreferIntrinsicTypeKeywordInDeclarations was set. So to disable simplification to predefined type names inside crefs, one had to turn off both settings.
      
      - VB wasn't honoring either of these settings - it would never allow simplification to predefined type names inside crefs (regardless of the settings).
      
      In reality, the cref context is neither 'declaration' nor 'member access'. However, we felt that the cref context is more a 'member access' (or 'member reference') than a 'declaration'. We therefore decided to allow the PreferIntrinsicTypeKeywordInMemberAccess setting to control what should happen for simplify type names inside crefs (and ignore the PreferIntrinsicTypeKeywordInDeclarations setting here). (changeset 1324762)
      da262b04
  7. 01 4月, 2014 1 次提交
    • B
      Bugfix 653601 · 9414444c
      Basoundr_ms 提交于
      GetSpeculativeSymbolInfo for Cref in C# was not used in the Simplifier Engine. This change adds the ability to reduce CrefSyntax in C#
      
      For Eg:
      1. ClassFoo.MethodBar() reduces to MethodBar()
      2. NamespaceBaz.ClassFoo reduces to ClassFoo
      
      as long the semantic meaning holds after the reduction as well. (changeset 1219194)
      9414444c
  8. 19 3月, 2014 1 次提交