public AsmViewerUsageCollector()

in src/dotnet/ReSharperPlugin.DotNetDisassembler/Statistics/AsmViewerUsageCollector.cs [39:84]


    public AsmViewerUsageCollector(FeatureUsageLogger featureUsageLogger)
    {
        _group = new EventLogGroup("dotnetdisassembler.plugin.backend", "DotNetDisassembler Backend", 1, featureUsageLogger);

        _contextActionInvoked = _group.RegisterEvent("context_action.invoked", "Context action invoked");

        _disassemblySucceeded = _group.RegisterEvent("disassembly.succeeded", "Disassembly succeeded");

        _sdkTypeField = EventFields.StringValidatedByInlineRegexp("sdk_type", "Project SDK type", FusValidationPatterns.SdkType);
        _targetFrameworkField = EventFields.StringValidatedByInlineRegexp("target_framework", "Target framework", FusValidationPatterns.TargetFramework);
        _projectInfoCollected = _group.RegisterVarargEvent(
            "project.info",
            "Project information",
            _sdkTypeField,
            _targetFrameworkField);

        var errorCodeField = EventFields.Enum<AsmViewerErrorCode>("error_code", "Error code");
        _errorOccurred = _group.RegisterEvent(
            "error.occurred",
            "Error occurred",
            errorCodeField);

        _showAsmCommentsField = EventFields.Boolean("show_asm_comments", "Show ASM comments");
        _useTieredJitField = EventFields.Boolean("use_tiered_compilation", "Use tiered compilation");
        _usePgoField = EventFields.Boolean("use_pgo", "Use PGO");
        _diffableField = EventFields.Boolean("diffable", "Diffable mode");
        _runAppModeField = EventFields.Boolean("run_app_mode", "Run app mode");
        _useNoRestoreField = EventFields.Boolean("use_no_restore", "Use no restore");
        _hasTargetFrameworkOverrideField = EventFields.Boolean("has_target_framework_override", "Has target framework override");
        _compilerField = EventFields.String("compiler", "Compiler", JitCompilerTypes.All);
        _useDotnetPublishField = EventFields.Boolean("use_dotnet_publish", "Use dotnet publish");
        _disassemblyTimeoutSecondsField = EventFields.Int("disassembly_timeout_seconds", "Disassembly timeout seconds");
        _configurationSaved = _group.RegisterVarargEvent(
            "configuration.changed",
            "Configuration changed",
            _showAsmCommentsField,
            _useTieredJitField,
            _usePgoField,
            _diffableField,
            _runAppModeField,
            _useNoRestoreField,
            _hasTargetFrameworkOverrideField,
            _compilerField,
            _useDotnetPublishField,
            _disassemblyTimeoutSecondsField);
    }