1. 28 2月, 2020 1 次提交
    • M
      Move SyntaxFacts service down to CompilerExtensions shared project · 01338f6d
      Manish Vasani 提交于
      Split ISyntaxFactsService into two parts:
      
      1. `ISyntaxFacts`: Pure data interface to query about syntactic facts. This is moved to CompilerExtensions shared project and can be used by analyzers.
      
      2. `ISyntaxFactsService`: Derives from ISyntaxFacts and ILanguageService and is present in the WorkspaceExtensions shared project. This enables Code fixes and Workspaces layer to access the same functionality via a language service, i.e. `GetLanguageService<ISyntaxFactsService>`.
      
      Note that we cannot use a partial declaration for `ISyntaxFactsService` instead of `ISyntaxFacts`. This causes `ISyntaxFacts` to be defined in both the CodeStyle analyzer and CodeStyle fixer assembly (former imports CompilerExtensions and latter imports WorkspaceExtensions), which leads to type conflicts. We also cannot follow the approach taken for `ISyntaxKindsSevice` as it defines the second partial declaration `ISyntaxKindsSevice` which sub-types `ILanguageService` in Workspaces project, leading to the language service not being defined in CodeStyle fixer assembly, which will cause any code fix requesting `GetLanguageService<ISyntaxKindsService>` to fail. The only feasible approach for us to have the functionality available in shared analyzer layer is to split out the pure data query part of the service to a separate type, as done in this PR. I will send a follow-up PR to also split `ISyntaxKindsService` similarly. Hoepfully, these two are the only language services that are commonly used by our analyzers, and we will not require any more such splits.
      01338f6d
  2. 08 2月, 2020 1 次提交
  3. 23 1月, 2020 1 次提交
  4. 07 3月, 2019 1 次提交
  5. 27 11月, 2018 1 次提交
  6. 23 7月, 2018 1 次提交
  7. 17 6月, 2017 1 次提交
  8. 23 2月, 2017 1 次提交
  9. 10 2月, 2017 1 次提交
  10. 11 11月, 2016 1 次提交
  11. 27 1月, 2016 1 次提交
    • B
      Bug Fix 5607: VB Parenthesis overtyping · 9cb4f537
      Balaji Krishnan 提交于
      The bug was that automatic brace completion will not overtype close
      parenthesis if the close parenthesis token was preceded by a numeric
      literal. The bug was in `IsEntirelyWithinStringOrCharOrNumericLiteral`,
      where we were imposing checks meant for chars and strings on numeric
      literals, which was likely introduced in PR #1763. This change addresses
      it by not enforcing checks meant for chars/strings on numeric literals.
      9cb4f537
  12. 13 1月, 2016 1 次提交
  13. 16 12月, 2015 1 次提交
    • A
      PR changes · 35ab0f51
      Artur Spychaj 提交于
      Improves comments around the IsCompleteSubmission.
      Throws argument exception when the syntax is not a submission.
      Uses the Parser.CheckFeatureAvailability to check multiline strings.
      Renames the IsScriptOrInteractive to IsScript.
      Handle incomplete members such as an annotation.
      Do not show completions when inside of a directive.
      Add tests for symbol completion provider.
      35ab0f51
  14. 15 12月, 2015 1 次提交
  15. 12 12月, 2015 1 次提交
  16. 11 12月, 2015 1 次提交
  17. 09 12月, 2015 1 次提交
  18. 08 12月, 2015 1 次提交
  19. 05 12月, 2015 1 次提交
  20. 29 5月, 2015 2 次提交
  21. 03 4月, 2015 1 次提交
  22. 21 3月, 2015 1 次提交
    • B
      Format remainder of VB code base · 15dcad3d
      beep boop 提交于
      Now that the comment formatting issue is fixed in the Formatter type, we can run the formatter on the remainder of the VB code base.
      
      closes #1424
      15dcad3d
  23. 25 2月, 2015 1 次提交
  24. 24 1月, 2015 1 次提交
  25. 15 1月, 2015 1 次提交
  26. 14 1月, 2015 1 次提交
  27. 07 1月, 2015 3 次提交
  28. 29 10月, 2014 1 次提交
  29. 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
  30. 06 10月, 2014 1 次提交
  31. 12 7月, 2014 1 次提交
    • J
      Rationalize our MatchesKind* and IsKind helpers in the VB side of stuff. · 524a03cb
      jasonmalinowski 提交于
      History: A long long time ago, the MatchesKind* helpers were added for checking the kinds of tokens. There were even two variants: one that would allow it to be called on nothing, and one that didn't. Then, we merged our syntax models and so the public IsKind methods were added. Also, the ones that should have thrown didn't, so we had three extension methods that all did the same thing.
      
      This is a silly situation so this change does the following:
      
      1) we use the public IsKind helpers whenever possible
      2) we rename the private helpers that allow for multiple types to IsKind so it's consistent
      3) we delete SyntaxToken.IsParentKind since you can just write SyntaxToken.Parent.IsKind.
      4) we delete other helpers that have no users (changeset 1295518)
      524a03cb
  32. 26 3月, 2014 1 次提交
  33. 19 3月, 2014 1 次提交