1. 18 3月, 2020 1 次提交
  2. 05 3月, 2020 1 次提交
  3. 04 3月, 2020 1 次提交
  4. 14 2月, 2020 1 次提交
  5. 08 2月, 2020 1 次提交
  6. 29 1月, 2020 1 次提交
    • T
      DiagnosticAnalyzerInfoCache refactorings (#40287) · 4b19656b
      Tomáš Matoušek 提交于
      * Move "is telemetry allowed" flag to DiagnosticAnalyzerInfoCache
      
      * Clean up DiagnosticService
      
      * Fixes
      
      * Remove analyzer exception telemetry reporting.
      
      * Remove reporting analyzer exceptions from SupportedDiagnostics.
      
      The diagnostics will be reported when the compiler runs the analyzer on the compilation.
      
      * Remove unused parameter
      
      * Clean up analyzer telemetry reporting.
      
      * Test fixes
      
      * Feedback
      4b19656b
  7. 23 1月, 2020 1 次提交
  8. 14 1月, 2020 1 次提交
  9. 19 12月, 2019 1 次提交
  10. 18 12月, 2019 1 次提交
  11. 12 12月, 2019 1 次提交
  12. 11 12月, 2019 1 次提交
  13. 06 12月, 2019 2 次提交
  14. 04 12月, 2019 1 次提交
  15. 27 11月, 2019 1 次提交
  16. 13 11月, 2019 1 次提交
  17. 12 11月, 2019 1 次提交
  18. 01 11月, 2019 1 次提交
  19. 04 10月, 2019 1 次提交
  20. 26 9月, 2019 1 次提交
  21. 13 9月, 2019 2 次提交
  22. 23 8月, 2019 1 次提交
    • M
      Do not report an NFW for analyzer exception diagnostic in IDE · 234015bd
      Manish Vasani 提交于
      This seems to cause a noticable UI delay while the NFW gets reported. We already report the AD0001 diagnostic with exception callstack and the analysis context on which exception occurred, so user has enough information to file an actionable bug.
      Fixes #38180
      234015bd
  23. 29 6月, 2019 3 次提交
  24. 08 6月, 2019 1 次提交
  25. 07 6月, 2019 2 次提交
  26. 04 6月, 2019 1 次提交
    • T
      OOP: Remove DiagnosticData.Workspace (#35902) · 075fcfc9
      Tomáš Matoušek 提交于
      * Cleanup style
      
      * Remove BlueSquiggleForBuildDiagnostic
      
      * TableDataSource refactoring
      
      * Remove DiagnosticData.Workspace
      
      * Fix workspace reference
      
      * Simplify GetTrackingPoints
      
      * Simplify deduplication
      
      * EqualsModuloLocation
      
      * Simplify navigate to
      
      * Specialize table item
      
      * Fix assert
      
      * Feedback
      
      * Dedup TryNavigateTo
      
      * Couple of renames
      075fcfc9
  27. 31 5月, 2019 1 次提交
    • M
      Add new analyzer API (DiagnosticSuppressor) to allow programmatic suppression... · f2f7a069
      Manish Vasani 提交于
      Add new analyzer API (DiagnosticSuppressor) to allow programmatic suppression of analyzer and/or compiler non-error diagnostics
      
      Fixes #20242 and #30172
      
      Detailed design proposal [here](https://gist.github.com/mavasani/fcac17a9581b5c54cef8a689eeec954a).
      
      Added public APIs with documentation comments:
      ```cs
      namespace Microsoft.CodeAnalysis.Diagnostics
      {
          /// <summary>
          /// The base type for diagnostic suppressors that can programmatically suppress analyzer and/or compiler non-error diagnostics.
          /// </summary>
          public abstract class DiagnosticSuppressor : DiagnosticAnalyzer
          {
              // Disallow suppressors from reporting diagnostics or registering analysis actions.
              public sealed override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics => ImmutableArray<DiagnosticDescriptor>.Empty;
      
              public sealed override void Initialize(AnalysisContext context) { }
      
              /// <summary>
              /// Returns a set of descriptors for the suppressions that this suppressor is capable of producing.
              /// </summary>
              public abstract ImmutableArray<SuppressionDescriptor> SupportedSuppressions { get; }
      
              /// <summary>
              /// Suppress analyzer and/or compiler non-error diagnostics reported for the compilation.
              /// This may be a subset of the full set of reported diagnostics, as an optimization for
              /// supporting incremental and partial analysis scenarios.
              /// A diagnostic is considered suppressible by a DiagnosticSuppressor if *all* of the following conditions are met:
              ///     1. Diagnostic is not already suppressed in source via pragma/suppress message attribute.
              ///     2. Diagnostic's <see cref="Diagnostic.DefaultSeverity"/> is not <see cref="DiagnosticSeverity.Error"/>.
              ///     3. Diagnostic is not tagged with <see cref="WellKnownDiagnosticTags.NotConfigurable"/> custom tag.
              /// </summary>
              public abstract void ReportSuppressions(SuppressionAnalysisContext context);
          }
      
          /// <summary>
          /// Provides a description about a programmatic suppression of a <see cref="Diagnostic"/> by a <see cref="DiagnosticSuppressor"/>.
          /// </summary>
          public sealed class SuppressionDescriptor : IEquatable<SuppressionDescriptor>
          {
              /// <summary>
              /// An unique identifier for the suppression.
              /// </summary>
              public string Id { get; }
      
              /// <summary>
              /// Identifier of the suppressed diagnostic, i.e. <see cref="Diagnostic.Id"/>.
              /// </summary>
              public string SuppressedDiagnosticId { get; }
      
              /// <summary>
              /// A localizable description about the suppression.
              /// </summary>
              public LocalizableString Description { get; }
          }
      
          /// <summary>
          /// Context for suppressing analyzer and/or compiler non-error diagnostics reported for the compilation.
          /// </summary>
          public struct SuppressionAnalysisContext
          {
              /// <summary>
              /// Suppressible analyzer and/or compiler non-error diagnostics reported for the compilation.
              /// This may be a subset of the full set of reported diagnostics, as an optimization for
              /// supporting incremental and partial analysis scenarios.
              /// A diagnostic is considered suppressible by a DiagnosticSuppressor if *all* of the following conditions are met:
              ///     1. Diagnostic is not already suppressed in source via pragma/suppress message attribute.
              ///     2. Diagnostic's <see cref="Diagnostic.DefaultSeverity"/> is not <see cref="DiagnosticSeverity.Error"/>.
              ///     3. Diagnostic is not tagged with <see cref="WellKnownDiagnosticTags.NotConfigurable"/> custom tag.
              /// </summary>
              public ImmutableArray<Diagnostic> ReportedDiagnostics { get; }
      
              /// <summary>
              /// Report a <see cref="Suppression"/> for a reported diagnostic.
              /// </summary>
              public void ReportSuppression(Suppression suppression);
      
              /// <summary>
              /// Gets a <see cref="SemanticModel"/> for the given <see cref="SyntaxTree"/>, which is shared across all analyzers.
              /// </summary>
              public SemanticModel GetSemanticModel(SyntaxTree syntaxTree);
      
              /// <summary>
              /// <see cref="CodeAnalysis.Compilation"/> for the context.
              /// </summary>
              public Compilation Compilation { get; }
      
              /// <summary>
              /// Options specified for the analysis.
              /// </summary>
              public AnalyzerOptions Options { get; }
      
              /// <summary>
              /// Token to check for requested cancellation of the analysis.
              /// </summary>
              public CancellationToken CancellationToken { get; }
          }
      
          /// <summary>
          /// Programmatic suppression of a <see cref="Diagnostic"/> by a <see cref="DiagnosticSuppressor"/>.
          /// </summary>
          public struct Suppression
          {
              /// <summary>
              /// Creates a suppression of a <see cref="Diagnostic"/> with the given <see cref="SuppressionDescriptor"/>.
              /// </summary>
              /// <param name="descriptor">
              /// Descriptor for the suppression, which must be from <see cref="DiagnosticSuppressor.SupportedSuppressions"/>
              /// for the <see cref="DiagnosticSuppressor"/> creating this suppression.
              /// </param>
              /// <param name="suppressedDiagnostic">
              /// <see cref="Diagnostic"/> to be suppressed, which must be from <see cref="SuppressionAnalysisContext.ReportedDiagnostics"/>
              /// for the suppression context in which this suppression is being created.</param>
              public static Suppression Create(SuppressionDescriptor descriptor, Diagnostic suppressedDiagnostic);
      
              /// <summary>
              /// Descriptor for this suppression.
              /// </summary>
              public SuppressionDescriptor Descriptor { get; }
      
              /// <summary>
              /// Diagnostic suppressed by this suppression.
              /// </summary>
              public Diagnostic SuppressedDiagnostic { get; }
          }
      }
      ```
      
      For batch compilation, suppressors always run after all the analyzer diagnostics have been computed.
      For IDE partial/incremental analysis scenario, we may run the suppressors with partial diagnostics.
      Suppressed diagnostics from diagnostic suppressors are equivalent to source suppressed diagnostics: they show up in the error list with "Suppression State" column as "Suppressed" and are also output to errorlog as suppressed diagnostics.
      f2f7a069
  28. 16 5月, 2019 1 次提交
  29. 14 12月, 2018 1 次提交
  30. 10 12月, 2018 1 次提交
  31. 06 12月, 2018 1 次提交
    • H
      support semantic errors for script files in misc projects. (#31134) · c64963b6
      Heejae Chang 提交于
      * refactor and clean up diagnostic engine code so that it can be re-used stand alone.
      
      code refactored is related to properly set up CompilationWithAnalyzer and compute and return diagnostics
      
      * made default diagnostic analyzer service to share code with VS diagnostic analyzer service on computing diagnostics.
      
      unlike VS diagnostic analyzer, the default one doesn't persist data or calculate diagnostics per a analyzer to improve per analyzer freshes nor compute and maintain per project analyzers and etc.
      
      also, this add ability to calculate semantic diagnostics for script file.
      
      * enable semantic diagnostics for script file for misc workspace.
      
      now, C#/VB script files in misc workspace will get semantic errors as well as syntax errors.
      
      any language such as F# if document is added to misc workspace with SourceCodeKind.Script, they will automatically get semantic errors as well.
      
      this PR doesn't address changes propagations for #load which was never supported for existing C#/VB script support.
      
      * addressed PR feedbacks
      c64963b6
  32. 05 12月, 2018 1 次提交
  33. 04 10月, 2018 1 次提交
  34. 30 5月, 2018 1 次提交
  35. 11 4月, 2018 1 次提交