-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
Provide a helper or source generator to automatically create a Visual Studio Options page for telemetry configuration. Allows users to configure telemetry settings through the standard VS Options dialog.
Current State
Extensions must manually create an Options page to let users configure telemetry, requiring:
- DialogPage subclass
- Registration attributes
- Property grid setup
- Settings persistence
Proposed Solution
Option 1: Base Class
// Inherit from provided base class
[Guid("...")]
public class MyTelemetryOptionsPage : TelemetryOptionsPageBase
{
// Automatically provides UI for:
// - Enable/disable telemetry
// - OTLP endpoint configuration
// - Console exporter toggle
// - Sampling rate
// - Custom endpoint headers
// Override to add extension-specific options
protected override void AddCustomOptions(PropertyGrid grid)
{
// Add your own settings
}
}Option 2: Source Generator
// Attribute triggers generation
[GenerateTelemetryOptionsPage]
public partial class MyExtensionPackage : AsyncPackage
{
// Options page automatically generated and registered
}Option 3: Runtime Registration
// In package initialization
VsixTelemetry.RegisterOptionsPage(this, new TelemetryOptionsConfig
{
PageName = "My Extension Telemetry",
Category = "My Extension",
AllowEndpointConfiguration = true,
AllowSamplingConfiguration = true
});Generated UI
The options page would include:
- Enable Telemetry (checkbox)
- OTLP Endpoint (text field, validated URL)
- Use HTTP (checkbox, vs gRPC)
- Sampling Rate (slider 0-100%)
- Enable Console Output (checkbox, for debugging)
- Custom Headers (key-value grid)
Benefits
- Consistent telemetry UI across extensions
- Reduces boilerplate significantly
- Users get familiar settings location
- Settings automatically persisted
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request