diff options
5 files changed, 14 insertions, 35 deletions
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/VSEditor/TextEditorInitializationService.cs b/main/src/addins/MonoDevelop.SourceEditor2/VSEditor/TextEditorInitializationService.cs index e5e07bf5ee..6567740e6b 100644 --- a/main/src/addins/MonoDevelop.SourceEditor2/VSEditor/TextEditorInitializationService.cs +++ b/main/src/addins/MonoDevelop.SourceEditor2/VSEditor/TextEditorInitializationService.cs @@ -66,6 +66,9 @@ namespace Microsoft.VisualStudio.Text.Editor.Implementation internal ITextSearchService2 TextSearchService { get; set; }
[Import]
+ internal IFeatureServiceFactory FeatureServiceFactory { get; set; }
+
+ [Import]
internal ITextStructureNavigatorSelectorService TextStructureNavigatorSelectorService { get; set; }
[Import]
@@ -140,6 +143,8 @@ namespace Microsoft.VisualStudio.Text.Editor.Implementation view.Initialize(viewModel, roles, this.EditorOptionsFactoryService.GlobalOptions, this);
view.Properties.AddProperty(typeof(MonoDevelop.Ide.Editor.TextEditor), textEditor);
+ FeatureServiceFactory.GetOrCreate(view).Disable(PredefinedEditorFeatureNames.AsyncCompletion, EmptyFeatureController.Instance);
+
this.TextViewCreated?.Invoke(this, new TextViewCreatedEventArgs(view));
return view;
@@ -191,5 +196,14 @@ namespace Microsoft.VisualStudio.Text.Editor.Implementation this.OrderedSpaceReservationManagerDefinitions.Add(orderedManagers[i].Metadata.Name, i);
}
}
+
+ sealed class EmptyFeatureController : IFeatureController
+ {
+ internal static readonly EmptyFeatureController Instance = new EmptyFeatureController();
+
+ private EmptyFeatureController()
+ {
+ }
+ }
}
}
diff --git a/main/src/addins/MonoDevelop.TextEditor/MonoDevelop.TextEditor/TextViewContent.cs b/main/src/addins/MonoDevelop.TextEditor/MonoDevelop.TextEditor/TextViewContent.cs index 45214893dc..5618666b3a 100644 --- a/main/src/addins/MonoDevelop.TextEditor/MonoDevelop.TextEditor/TextViewContent.cs +++ b/main/src/addins/MonoDevelop.TextEditor/MonoDevelop.TextEditor/TextViewContent.cs @@ -238,12 +238,6 @@ namespace MonoDevelop.TextEditor textBufferRegistration = IdeServices.TypeSystemService.RegisterOpenDocument (Owner, FilePath, TextBuffer); } - protected override void OnGrabFocus (DocumentView view) - { - DefaultSourceEditorOptions.SetUseAsyncCompletion (true); - base.OnGrabFocus (view); - } - protected override void OnFileNameChanged () { base.OnFileNameChanged (); diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/DefaultSourceEditorOptions.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/DefaultSourceEditorOptions.cs index 2757ac63c8..3d812dfa67 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/DefaultSourceEditorOptions.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/DefaultSourceEditorOptions.cs @@ -993,20 +993,6 @@ namespace MonoDevelop.Ide.Editor } public event EventHandler Changed; - - /// <summary> - /// This is to allow setting UseAsyncCompletion to true for the Cocoa editor and to false for the Gtk editor. - /// Currently Roslyn doesn't allow setting this option per view, so we have to work around. - /// See here for details: https://github.com/dotnet/roslyn/issues/33807 - /// </summary> - internal static void SetUseAsyncCompletion(bool useAsyncCompletion) - { - var asyncCompletionService = Composition.CompositionManager.Instance.GetExportedValue<Microsoft.CodeAnalysis.Editor.IAsyncCompletionService> (); - var field = asyncCompletionService.GetType ().GetField ( - "_newCompletionAPIEnabled", - System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); - field.SetValue (asyncCompletionService, useAsyncCompletion); - } } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditorViewContent.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditorViewContent.cs index a9a219aa0f..886fb47604 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditorViewContent.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/TextEditorViewContent.cs @@ -397,11 +397,6 @@ namespace MonoDevelop.Ide.Editor protected override void OnGrabFocus (DocumentView view) { textEditor.GrabFocus (); - try { - DefaultSourceEditorOptions.SetUseAsyncCompletion (false); - } catch (Exception e) { - LoggingService.LogInternalError ("Error while setting up async completion.", e); - } } } }
\ No newline at end of file diff --git a/main/tests/Ide.Tests/MonoDevelop.Ide.RoslynServices/RoslynServiceTests.cs b/main/tests/Ide.Tests/MonoDevelop.Ide.RoslynServices/RoslynServiceTests.cs index 5736b7bae3..07bcc7770c 100644 --- a/main/tests/Ide.Tests/MonoDevelop.Ide.RoslynServices/RoslynServiceTests.cs +++ b/main/tests/Ide.Tests/MonoDevelop.Ide.RoslynServices/RoslynServiceTests.cs @@ -70,15 +70,5 @@ namespace MonoDevelop.Ide.RoslynServices Assert.AreEqual (2, x); } - - /// <summary> - /// This verifies that the Reflection logic in <see cref="DefaultSourceEditorOptions.SetUseAsyncCompletion(bool)"/> - /// is still compatible with the Roslyn build we're using - /// </summary> - [TestCase] - public void TestAsyncCompletionServiceReflection () - { - DefaultSourceEditorOptions.SetUseAsyncCompletion (true); - } } } |