diff options
author | Sandy Armstrong <sandy@xamarin.com> | 2019-06-26 07:19:51 +0300 |
---|---|---|
committer | Sandy Armstrong <sandy@xamarin.com> | 2019-06-26 07:19:51 +0300 |
commit | 625d894ddede8c2ca21332721f9fd267a62d122a (patch) | |
tree | fc0a284d8a4718bc69e23d4873e61dbb6369e12f /main/src | |
parent | 254a5ebb82bbc90847bfa6558b674c8d460bcfe1 (diff) |
Legacy Editor: Use feature service to disable async completion
See https://github.com/dotnet/roslyn/pull/36584
Diffstat (limited to 'main/src')
4 files changed, 14 insertions, 25 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 |