diff --git a/CHANGES_CURRENT.md b/CHANGES_CURRENT.md index 602add5121..4475d1a75c 100644 --- a/CHANGES_CURRENT.md +++ b/CHANGES_CURRENT.md @@ -6,6 +6,7 @@ - #3007 - Extensions: Show 'missing dependency' activation error to user - #3011 - Vim: Visual Block - Handle 'I' and 'A' in visual block mode (fixes #1633) - #3016 - Extensions: Fix memory leak in extension host language features (fixes #3009) +- #3019 - Extensions: Fix activation error for Ionide.Ionide-fsharp extension (fixes #2974) ### Performance diff --git a/src/Exthost/Extension/InitData.re b/src/Exthost/Extension/InitData.re index bf9d4d73af..adec9af8f4 100644 --- a/src/Exthost/Extension/InitData.re +++ b/src/Exthost/Extension/InitData.re @@ -13,6 +13,20 @@ module Identifier = { }; module Hacks = { + let patchIonideDependencies = (dependencies: list(Yojson.Safe.t)) => { + dependencies + |> List.map( + fun + | `String(str) => + if (str == "ms-dotnettools.csharp") { + `String("muhammad-sammy.csharp"); + } else { + `String(str); + } + | json => json, + ); + }; + // TEMPORARY workarounds for external bugs blocking extensions let hacks = [ // Workaround for https://github.com/open-vsx/publish-extensions/issues/106 @@ -25,6 +39,17 @@ module Hacks = { | _ => Some(`String("2020-08-04")), ), ), + ( + // Workaround for https://github.com/onivim/oni2/issues/2974 + "ionide.ionide-fsharp", + Utility.JsonEx.update( + "extensionDependencies", + fun + | Some(`List(dependencies)) => + Some(`List(dependencies |> patchIonideDependencies)) + | json => json, + ), + ), ]; let apply = (~extensionId, initDataJson) => {