Skip to content

feat(context): add automatic solution and project context enrichment #11

@CalvinAllen

Description

@CalvinAllen

Summary

Automatically capture and attach Visual Studio solution/project context to all telemetry. This enriches spans, metrics, and logs with valuable workspace information without manual instrumentation.

Context to Capture

Solution Context

  • vs.solution.name - Solution file name
  • vs.solution.path - Full path (consider privacy)
  • vs.solution.projects.count - Number of projects
  • vs.solution.guid - Solution GUID for correlation

Project Context (when applicable)

  • vs.project.name - Active/relevant project name
  • vs.project.type - Project type GUID or friendly name
  • vs.project.language - Primary language (C#, VB, F#, etc.)
  • vs.project.framework - Target framework

IDE Context

  • vs.version - Visual Studio version
  • vs.edition - Community/Professional/Enterprise
  • vs.theme - Current theme (Light/Dark/Blue)

Proposed API

// Enable in configuration
var config = new TelemetryConfiguration
{
    IncludeVisualStudioContext = true,  // Already exists
    IncludeSolutionContext = true,      // New
    IncludeProjectContext = true,       // New
    SolutionContextRefreshInterval = TimeSpan.FromSeconds(30)
};

// Or manually refresh context
VsixTelemetry.RefreshWorkspaceContext();

// Access current context
var context = VsixTelemetry.WorkspaceContext;
Console.WriteLine(context.SolutionName);

Implementation Notes

  • Cache context and refresh periodically (solutions don't change often)
  • Subscribe to solution/project events for updates
  • Consider privacy: option to hash paths instead of full paths
  • Handle "no solution open" gracefully

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions