diff --git a/src/QsCompiler/LanguageServer/EditorState.cs b/src/QsCompiler/LanguageServer/EditorState.cs index 4fd5599701..1297609b14 100644 --- a/src/QsCompiler/LanguageServer/EditorState.cs +++ b/src/QsCompiler/LanguageServer/EditorState.cs @@ -111,14 +111,19 @@ internal bool QsProjectLoader(Uri projectFile, out ProjectInformation info) : AssemblyConstants.RuntimeCapabilities.Unknown; var sourceFiles = GetItemsByType(projectInstance, "QsharpCompile"); + var csharpFiles = GetItemsByType(projectInstance, "Compile").Where(file => !file.EndsWith(".g.cs")); var projectReferences = GetItemsByType(projectInstance, "ProjectReference"); var references = GetItemsByType(projectInstance, "Reference"); var version = projectInstance.GetPropertyValue("QsharpLangVersion"); var isExecutable = "QsharpExe".Equals(projectInstance.GetPropertyValue("ResolvedQsharpOutputType"), StringComparison.InvariantCultureIgnoreCase); var loadTestNames = "true".Equals(projectInstance.GetPropertyValue("ExposeReferencesViaTestNames"), StringComparison.InvariantCultureIgnoreCase); + var defaultSimulator = projectInstance.GetPropertyValue("DefaultSimulator")?.Trim(); - var telemetryMeas = new Dictionary { ["sources"] = sourceFiles.Count() }; + var telemetryMeas = new Dictionary(); + telemetryMeas["sources"] = sourceFiles.Count(); + telemetryMeas["csharpfiles"] = csharpFiles.Count(); + telemetryProps["defaultSimulator"] = defaultSimulator; this.SendTelemetry("project-load", telemetryProps, telemetryMeas); // does not send anything unless the corresponding flag is defined upon compilation info = new ProjectInformation(version, outputPath, runtimeCapabilities, isExecutable, loadTestNames, sourceFiles, projectReferences, references); return true;