diff --git a/PowerShellEditorServices.build.ps1 b/PowerShellEditorServices.build.ps1 index 48599e10c..fbd126708 100644 --- a/PowerShellEditorServices.build.ps1 +++ b/PowerShellEditorServices.build.ps1 @@ -216,7 +216,7 @@ namespace Microsoft.PowerShell.EditorServices.Hosting { public static readonly string BuildVersion = "$buildVersion"; public static readonly string BuildOrigin = "$buildOrigin"; - public static readonly string BuildCommit= "$buildCommit"; + public static readonly string BuildCommit = "$buildCommit"; public static readonly System.DateTime? BuildTime = System.DateTime.Parse("$buildTime", CultureInfo.InvariantCulture.DateTimeFormat); } } diff --git a/src/PowerShellEditorServices.Hosting/BuildInfo.cs b/src/PowerShellEditorServices.Hosting/BuildInfo.cs index 1149b7cee..78953ca18 100644 --- a/src/PowerShellEditorServices.Hosting/BuildInfo.cs +++ b/src/PowerShellEditorServices.Hosting/BuildInfo.cs @@ -4,10 +4,9 @@ namespace Microsoft.PowerShell.EditorServices.Hosting { public static class BuildInfo { - // TODO: Include a Git commit hash in this. public static readonly string BuildVersion = ""; public static readonly string BuildOrigin = ""; - public static readonly string BuildCommit= ""; + public static readonly string BuildCommit = ""; public static readonly System.DateTime? BuildTime = System.DateTime.Parse("2019-12-06T21:43:41", CultureInfo.InvariantCulture.DateTimeFormat); } } diff --git a/src/PowerShellEditorServices.Hosting/EditorServicesLoader.cs b/src/PowerShellEditorServices.Hosting/EditorServicesLoader.cs index b55d7a70a..59956df1a 100644 --- a/src/PowerShellEditorServices.Hosting/EditorServicesLoader.cs +++ b/src/PowerShellEditorServices.Hosting/EditorServicesLoader.cs @@ -269,6 +269,7 @@ private void LogHostInformation() == Build Details == - Editor Services version: {BuildInfo.BuildVersion} - Build origin: {BuildInfo.BuildOrigin} +- Build commit: {BuildInfo.BuildCommit} - Build time: {BuildInfo.BuildTime} "); diff --git a/src/PowerShellEditorServices/Extensions/EditorObject.cs b/src/PowerShellEditorServices/Extensions/EditorObject.cs index aa678cdc0..b88f41f84 100644 --- a/src/PowerShellEditorServices/Extensions/EditorObject.cs +++ b/src/PowerShellEditorServices/Extensions/EditorObject.cs @@ -137,7 +137,7 @@ public EditorContext GetEditorContext() internal void SetAsStaticInstance() { EditorObject.Instance = this; - s_editorObjectReady.SetResult(true); + s_editorObjectReady.TrySetResult(true); } } } diff --git a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs index 11c604ccc..eee266e0f 100644 --- a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs +++ b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs @@ -86,7 +86,7 @@ internal static string GetUniqueIdFromDiagnostic(Diagnostic diagnostic) private readonly ConfigurationService _configurationService; - private readonly WorkspaceService _workplaceService; + private readonly WorkspaceService _workspaceService; private readonly int _analysisDelayMillis; @@ -115,7 +115,7 @@ public AnalysisService( _logger = loggerFactory.CreateLogger(); _languageServer = languageServer; _configurationService = configurationService; - _workplaceService = workspaceService; + _workspaceService = workspaceService; _analysisDelayMillis = 750; _mostRecentCorrectionsByFile = new ConcurrentDictionary(); _analysisEngineLazy = new Lazy(InstantiateAnalysisEngine); @@ -223,9 +223,10 @@ public async Task GetCommentHelpText(string functionText, string helpLoc /// /// The URI string of the file to get code actions for. /// A threadsafe readonly dictionary of the code actions of the particular file. - public async Task> GetMostRecentCodeActionsForFileAsync(ScriptFile scriptFile) + public async Task> GetMostRecentCodeActionsForFileAsync(DocumentUri uri) { - if (!_mostRecentCorrectionsByFile.TryGetValue(scriptFile, out CorrectionTableEntry corrections)) + if (!_workspaceService.TryGetFile(uri, out ScriptFile file) + || !_mostRecentCorrectionsByFile.TryGetValue(file, out CorrectionTableEntry corrections)) { return null; } @@ -334,7 +335,7 @@ private bool TryFindSettingsFile(out string settingsFilePath) return false; } - settingsFilePath = _workplaceService.ResolveWorkspacePath(configuredPath); + settingsFilePath = _workspaceService.ResolveWorkspacePath(configuredPath); if (settingsFilePath == null || !File.Exists(settingsFilePath)) @@ -349,7 +350,7 @@ private bool TryFindSettingsFile(out string settingsFilePath) private void ClearOpenFileMarkers() { - foreach (ScriptFile file in _workplaceService.GetOpenedFiles()) + foreach (ScriptFile file in _workspaceService.GetOpenedFiles()) { ClearMarkers(file); } diff --git a/src/PowerShellEditorServices/Services/TextDocument/Handlers/CodeActionHandler.cs b/src/PowerShellEditorServices/Services/TextDocument/Handlers/CodeActionHandler.cs index 5c2529225..062a312ff 100644 --- a/src/PowerShellEditorServices/Services/TextDocument/Handlers/CodeActionHandler.cs +++ b/src/PowerShellEditorServices/Services/TextDocument/Handlers/CodeActionHandler.cs @@ -52,13 +52,13 @@ public override async Task Handle(CodeActionParams { if (cancellationToken.IsCancellationRequested) { - _logger.LogDebug("CodeAction request canceled at range: {0}", request.Range); + _logger.LogDebug($"CodeAction request canceled at range: {request.Range}"); return Array.Empty(); } - // On Windows, VSCode still gives us file URIs like "file:///c%3a/...", so we need to escape them IReadOnlyDictionary corrections = await _analysisService.GetMostRecentCodeActionsForFileAsync( - _workspaceService.GetFile(request.TextDocument.Uri)).ConfigureAwait(false); + request.TextDocument.Uri) + .ConfigureAwait(false); if (corrections == null) { diff --git a/src/PowerShellEditorServices/Services/Workspace/Handlers/ConfigurationHandler.cs b/src/PowerShellEditorServices/Services/Workspace/Handlers/ConfigurationHandler.cs index 073c176cb..b89c3d127 100644 --- a/src/PowerShellEditorServices/Services/Workspace/Handlers/ConfigurationHandler.cs +++ b/src/PowerShellEditorServices/Services/Workspace/Handlers/ConfigurationHandler.cs @@ -156,6 +156,12 @@ await _powerShellContextService.SetWorkingDirectoryAsync( private void SendFeatureChangesTelemetry(LanguageServerSettingsWrapper incomingSettings) { + if (incomingSettings is null) + { + this._logger.LogTrace("Incoming settings were null"); + return; + } + var configChanges = new Dictionary(); // Send telemetry if the user opted-out of ScriptAnalysis if (incomingSettings.Powershell.ScriptAnalysis.Enable == false && diff --git a/src/PowerShellEditorServices/Services/Workspace/WorkspaceService.cs b/src/PowerShellEditorServices/Services/Workspace/WorkspaceService.cs index 8ea3b77f5..b999da6c4 100644 --- a/src/PowerShellEditorServices/Services/Workspace/WorkspaceService.cs +++ b/src/PowerShellEditorServices/Services/Workspace/WorkspaceService.cs @@ -192,6 +192,7 @@ public bool TryGetFile(DocumentUri documentUri, out ScriptFile scriptFile) { // List supported schemes here case "file": + case "inmemory": case "untitled": case "vscode-notebook-cell": break;