Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Ungureanu <marius.ungureanu@xamarin.com>2016-01-15 14:24:01 +0300
committerMarius Ungureanu <marius.ungureanu@xamarin.com>2016-01-15 14:24:01 +0300
commitfd387b94d12cda4244df09e2f85e2606e1c0e2d6 (patch)
treebcf2c04d08ce33678c33b2a1a2b443730063ca1e /main/src/addins
parent4ebeb70f0cdd9e9724080d327e6a8f6168af1e90 (diff)
parentcea70d807fd207467097b7c10d86a6260a6a6958 (diff)
Merge remote-tracking branch 'origin/master' into roslyn-dark-skin
Diffstat (limited to 'main/src/addins')
-rw-r--r--main/src/addins/AspNet/Execution/XspOptionsPanel.cs4
-rw-r--r--main/src/addins/AspNet/Projects/AspMvcProjectConfiguration.cs4
-rw-r--r--main/src/addins/AspNet/Projects/AspNetAppProjectConfiguration.cs14
-rw-r--r--main/src/addins/CBinding/Gui/CTextEditorExtension.cs2
-rw-r--r--main/src/addins/CBinding/Gui/CodeGenerationPanel.cs2
-rw-r--r--main/src/addins/CBinding/Gui/CompilerPanel.cs3
-rw-r--r--main/src/addins/CBinding/Gui/GeneralOptionsPanel.cs3
-rw-r--r--main/src/addins/CBinding/Gui/OutputOptionsPanel.cs3
-rw-r--r--main/src/addins/CBinding/Navigation/LanguageItemCommandHandler.cs4
-rw-r--r--main/src/addins/CBinding/Project/CProject.cs8
-rw-r--r--main/src/addins/CBinding/Project/CProjectConfiguration.cs8
-rw-r--r--main/src/addins/CSharpBinding/CSharpBinding.addin.xml1
-rw-r--r--main/src/addins/CSharpBinding/CSharpBinding.csproj2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/AddImport/AbstractAddImportCodeFixProvider.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/FullyQualify/CSharpFullyQualifyCodeFixProvider.cs1
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/GenerateConstructor/AbstractGenerateMemberCodeFixProvider.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/ImplementAbstractClass/ImplementAbstractClassCodeFixProvider.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/GenerateCodeWindow.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.InitializerRewriter.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs3
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/EventCreationCompletionData.cs8
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCodeCompletionFactory.cs6
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCompletionData.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionPanel.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/RemoveUnnecessaryImportsDiagnosticAnalyzerBase.cs12
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/SimplifyTypeNames/SimplifyTypeNamesDiagnosticAnalyzerBase.cs1
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/CodeGeneration/CSharpCodeGenerationService.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/CompletionEngine.cs5
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/AttributeNamedParameterContextHandler.cs6
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/CastCompletionContextHandler.cs12
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/DelegateCreationContextHandler.cs8
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/KeywordContextHandler.cs10
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/OverrideContextHandler.cs21
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PartialContextHandler.cs20
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PreProcessorExpressionContextHandler.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/RegexContextHandler.cs169
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/RoslynRecommendationsCompletionContextHandler.cs6
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/SenderCompletionContextHandler.cs12
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/EncapsulateField/AbstractEncapsulateFieldService.cs1
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpMethodExtractor.CSharpCodeGenerator.MultipleStatementsCodeGenerator.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.StatementResult.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/CommonFormattingHelpers.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/FormattingOptionsFactory.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateFromMembers/GenerateConstructor/AbstractGenerateConstructorService.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateConstructor/AbstractGenerateConstructorService.cs5
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/AbstractGenerateDefaultConstructorsService.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/CSharpGenerateDefaultConstructorsService.cs1
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateEnumMember/AbstractGenerateEnumMemberService.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/AbstractGenerateParameterizedMemberService.cs6
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/CSharpGenerateParameterizedMemberService.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateVariable/AbstractGenerateVariableService.cs5
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateType/AbstractGenerateTypeService.cs10
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ImplementInterface/AbstractImplementInterfaceService.CodeAction_Property.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/IndentEngine/CSharpIndentEngine.cs3
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/SemanticHighlighting/SemanticHighlightingVisitor.cs214
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingPolicyPanel.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs10
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/TypeSystemProvider.cs1
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs11
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CodeGenerationPanel.cs4
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs3
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs5
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CodeGenerationService.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindDerivedSymbolsHandler.cs17
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs3
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Tooltips/LanguageItemTooltipProvider.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs107
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs11
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs2
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp/ProjectSearchCategory.cs41
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.JSon/JSonIndentEngine.cs1
-rw-r--r--main/src/addins/CSharpBinding/Util/ConflictResolver.cs8
-rw-r--r--main/src/addins/CSharpBinding/Util/CrefSyntaxExtensions.cs2
-rw-r--r--main/src/addins/CSharpBinding/Util/IMethodSymbolExtensions.cs3
-rw-r--r--main/src/addins/CSharpBinding/Util/SymbolKeyExtensions.cs2
-rw-r--r--main/src/addins/CSharpBinding/Util/SyntaxNodeExtensions.cs9
-rw-r--r--main/src/addins/CSharpBinding/Util/TaskExtensions.cs2
-rw-r--r--main/src/addins/CSharpBinding/Util/TypeExtensions.cs8
-rw-r--r--main/src/addins/CSharpBinding/gtk-gui/generated.cs5
-rw-r--r--main/src/addins/ChangeLogAddIn/AddLogEntryDialog.cs2
-rw-r--r--main/src/addins/ChangeLogAddIn/ChangeLogAddIn.cs9
-rw-r--r--main/src/addins/ChangeLogAddIn/ProjectOptionPanel.cs4
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/BasicOptionPanel.cs4
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopDisplayBinding.cs2
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopView.cs12
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs9
-rw-r--r--main/src/addins/ILAsmBinding/Gui/CompilerParametersPanelWidget.cs3
-rw-r--r--main/src/addins/MacPlatform/MacInterop/ProcessManager.cs5
-rw-r--r--main/src/addins/MacPlatform/MacPlatform.cs23
-rw-r--r--main/src/addins/MacPlatform/MacPlatform.csproj3
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/AwesomeBar.cs107
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/ButtonBarContainer.cs93
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/CenteringSpace.cs133
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/MainToolbar.cs326
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/RunButton.cs7
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/SearchBar.cs13
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/SelectorView.cs150
-rw-r--r--main/src/addins/MacPlatform/MainToolbar/StatusBar.cs518
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserNavigationPoint.cs5
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContent.cs21
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs1
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DisplayBinding.cs6
-rw-r--r--main/src/addins/MonoDevelop.Autotools/MakefileOptionPanel.cs4
-rw-r--r--main/src/addins/MonoDevelop.Autotools/MakefileProject.cs9
-rw-r--r--main/src/addins/MonoDevelop.Debugger.Soft/MonoDevelop.Debugger.Soft/SoftDebuggerEngine.cs2
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs3
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs21
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs43
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs3
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs8
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs9
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs6
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs13
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs20
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs47
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs40
-rw-r--r--main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Toolbox.cs2
-rw-r--r--main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/DocumentOutlinePad.cs9
-rw-r--r--main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/PropertyPad.cs13
-rw-r--r--main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ToolboxPad.cs7
-rw-r--r--main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/WrapperDesignView.cs69
-rw-r--r--main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/AcronymsPanelWidget.cs3
-rw-r--r--main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/ExpansionsPanelWidget.cs3
-rw-r--r--main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/NoTheReorderingWidget.cs3
-rw-r--r--main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OfTheReorderingWidget.cs3
-rw-r--r--main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OptionsPanelWidget.cs3
-rw-r--r--main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/RulesPanelWidget.cs3
-rw-r--r--main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/CatalogEditorView.cs20
-rw-r--r--main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/GettextEditorDisplayBinding.cs2
-rw-r--r--main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationProject.cs6
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/GtkDesignerOptionsPanelWidget.cs4
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs5
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs2
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs14
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs7
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs77
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderDisplayBinding.cs2
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs4
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs31
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs6
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs4
-rw-r--r--main/src/addins/MonoDevelop.HexEditor/Mono.MHex.Data/Buffer.cs11
-rw-r--r--main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/DisplayBinding.cs2
-rw-r--r--main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs8
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageManagementOptionsPanel.cs7
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageSourcesOptionsPanel.cs3
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/SearchPackagesSearchCategory.cs2
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/AddinInfo.cs1
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/AnalysisCommands.cs1
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/AnalysisOptionsPanel.cs3
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultTooltipProvider.cs3
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs3
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs11
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionPanelWidget.cs3
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeRefactoringDescriptor.cs2
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/ValidCodeDiagnosticAction.cs3
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticFixDescriptor.cs2
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticProvider.cs2
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePanelWidget.cs2
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringOptions.cs4
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs14
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringSymbolInfo.cs6
-rw-r--r--main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj21
-rw-r--r--main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/Commands.cs37
-rw-r--r--main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/RegexToolkitWidget.cs9
-rw-r--r--main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/ValidateActionCodeRefactoringProvider.cs117
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/BehaviorPanel.cs3
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionAppearancePanel.cs3
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionCharactersPanel.cs3
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionOptionsPanel.cs3
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/GeneralOptionsPanel.cs3
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/HighlightingPanel.cs2
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/MarkerPanel.cs3
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs2
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/IndentationTrackerWrapper.cs4
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/SemanticHighlightingSyntaxMode.cs2
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/TooltipProviderWrapper.cs5
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj5
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs2
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs4
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs9
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs7
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/LanguageItemWindow.cs2
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleTextMarker.cs12
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/PinnedWatchWidget.cs2
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs117
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs8
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/LinkMarker.cs67
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/SmartTagMarker.cs17
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/WavedLineMarker.cs2
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/gui.stetic1
-rw-r--r--main/src/addins/NUnit/Gui/TestPad.cs12
-rw-r--r--main/src/addins/NUnit/Gui/TestResultsPad.cs20
-rw-r--r--main/src/addins/NUnit/Project/NUnitAssemblyGroupProject.cs16
-rw-r--r--main/src/addins/VBNetBinding/Gui/ConfigurationOptionsPanel.cs3
-rw-r--r--main/src/addins/VBNetBinding/Gui/ImportsOptionsPanel.cs3
-rw-r--r--main/src/addins/VBNetBinding/Gui/ProjectOptionsPanel.cs4
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/Commands.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/CredentialsDialog.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/EditBranchDialog.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitConfigurationDialog.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanel.cs3
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanelWidget.cs6
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitService.cs20
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/MergeDialog.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/StashManagerDialog.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlGeneralOptionsPanel.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlPolicyPanel.cs4
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlSolutionOptionsPanel.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BaseView.cs105
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BlameView.cs18
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/ComparisonWidget.cs1
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffView.cs18
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffWidget.cs7
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DropDownBox.cs8
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogView.cs26
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs14
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeView.cs20
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs11
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/SubviewAttachmentHandler.cs13
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/BlameCommand.cs7
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Commands.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultBlameViewHandler.cs4
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultDiffViewHandler.cs4
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultLogViewHandler.cs4
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultMergeViewHandler.cs4
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DiffCommand.cs7
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/IVersionControlViewHandler.cs25
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/LogCommand.cs11
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/MergeCommand.cs7
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ResolveConflictsCommand.cs5
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs140
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml8
-rw-r--r--main/src/addins/WindowsPlatform/WindowsPlatform/GdkWin32.cs6
-rw-r--r--main/src/addins/WindowsPlatform/WindowsPlatform/JumpList.cs2
-rw-r--r--main/src/addins/WindowsPlatform/WindowsPlatform/MainToolbar/TitleMenuItem.cs3
-rw-r--r--main/src/addins/WindowsPlatform/WindowsPlatform/WindowsPlatform.cs9
-rw-r--r--main/src/addins/Xml/Editor/BaseXmlEditorExtension.cs2
-rw-r--r--main/src/addins/Xml/Editor/XmlEditorOptionsPanel.cs6
-rw-r--r--main/src/addins/Xml/Editor/XmlSchemasPanel.cs4
-rw-r--r--main/src/addins/Xml/Formatting/XmlFormattingPolicyPanel.cs4
246 files changed, 2238 insertions, 1853 deletions
diff --git a/main/src/addins/AspNet/Execution/XspOptionsPanel.cs b/main/src/addins/AspNet/Execution/XspOptionsPanel.cs
index eea37579a5..5a97bb0c15 100644
--- a/main/src/addins/AspNet/Execution/XspOptionsPanel.cs
+++ b/main/src/addins/AspNet/Execution/XspOptionsPanel.cs
@@ -29,7 +29,7 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.AspNet.Projects;
@@ -39,7 +39,7 @@ namespace MonoDevelop.AspNet.Execution
{
XspOptionsPanelWidget panel;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return panel = new XspOptionsPanelWidget (ConfiguredProject.GetService<AspNetAppProjectFlavor> ());
}
diff --git a/main/src/addins/AspNet/Projects/AspMvcProjectConfiguration.cs b/main/src/addins/AspNet/Projects/AspMvcProjectConfiguration.cs
index 743a6109fc..0043076fd7 100644
--- a/main/src/addins/AspNet/Projects/AspMvcProjectConfiguration.cs
+++ b/main/src/addins/AspNet/Projects/AspMvcProjectConfiguration.cs
@@ -36,9 +36,5 @@ namespace MonoDevelop.AspNet.Projects
public AspMvcProjectConfiguration (string name) : base (name)
{
}
-
- public AspMvcProjectConfiguration () : base ()
- {
- }
}
}
diff --git a/main/src/addins/AspNet/Projects/AspNetAppProjectConfiguration.cs b/main/src/addins/AspNet/Projects/AspNetAppProjectConfiguration.cs
index cc20b7151b..a48276e837 100644
--- a/main/src/addins/AspNet/Projects/AspNetAppProjectConfiguration.cs
+++ b/main/src/addins/AspNet/Projects/AspNetAppProjectConfiguration.cs
@@ -37,20 +37,8 @@ namespace MonoDevelop.AspNet.Projects
{
public class AspNetAppProjectConfiguration : DotNetProjectConfiguration
{
- public AspNetAppProjectConfiguration (string name) : base (name)
+ public AspNetAppProjectConfiguration (string id) : base (id)
{
}
-
- public AspNetAppProjectConfiguration ()
- {
- }
-
- public override void CopyFrom (ItemConfiguration configuration)
- {
- base.CopyFrom (configuration);
- var cfg = configuration as AspNetAppProjectConfiguration;
- if (cfg == null)
- return;
- }
}
}
diff --git a/main/src/addins/CBinding/Gui/CTextEditorExtension.cs b/main/src/addins/CBinding/Gui/CTextEditorExtension.cs
index f31b43b900..4faec18e12 100644
--- a/main/src/addins/CBinding/Gui/CTextEditorExtension.cs
+++ b/main/src/addins/CBinding/Gui/CTextEditorExtension.cs
@@ -645,7 +645,7 @@ namespace CBinding
public event EventHandler<DocumentPathChangedEventArgs> PathChanged;
- public Gtk.Widget CreatePathWidget (int index)
+ public Control CreatePathWidget (int index)
{
PathEntry[] path = CurrentPath;
if (null == path || 0 > index || path.Length <= index) {
diff --git a/main/src/addins/CBinding/Gui/CodeGenerationPanel.cs b/main/src/addins/CBinding/Gui/CodeGenerationPanel.cs
index 6740df3b2e..d67cb97309 100644
--- a/main/src/addins/CBinding/Gui/CodeGenerationPanel.cs
+++ b/main/src/addins/CBinding/Gui/CodeGenerationPanel.cs
@@ -351,7 +351,7 @@ namespace CBinding
{
private CodeGenerationPanel panel;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return panel = new CodeGenerationPanel ();
}
diff --git a/main/src/addins/CBinding/Gui/CompilerPanel.cs b/main/src/addins/CBinding/Gui/CompilerPanel.cs
index 4beaa0e61a..ef7c6a283c 100644
--- a/main/src/addins/CBinding/Gui/CompilerPanel.cs
+++ b/main/src/addins/CBinding/Gui/CompilerPanel.cs
@@ -32,6 +32,7 @@
using System;
using Mono.Addins;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Ide;
@@ -114,7 +115,7 @@ namespace CBinding
{
CompilerPanel panel;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return panel = new CompilerPanel ((CProject)ConfiguredProject);
}
diff --git a/main/src/addins/CBinding/Gui/GeneralOptionsPanel.cs b/main/src/addins/CBinding/Gui/GeneralOptionsPanel.cs
index 5187231f59..2547577a97 100644
--- a/main/src/addins/CBinding/Gui/GeneralOptionsPanel.cs
+++ b/main/src/addins/CBinding/Gui/GeneralOptionsPanel.cs
@@ -34,6 +34,7 @@ using System.Collections.Generic;
using Mono.Addins;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Components;
@@ -184,7 +185,7 @@ namespace CBinding
{
private GeneralOptionsPanel panel;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
panel = new GeneralOptionsPanel ();
return panel;
diff --git a/main/src/addins/CBinding/Gui/OutputOptionsPanel.cs b/main/src/addins/CBinding/Gui/OutputOptionsPanel.cs
index cfa9fead06..f90f629a30 100644
--- a/main/src/addins/CBinding/Gui/OutputOptionsPanel.cs
+++ b/main/src/addins/CBinding/Gui/OutputOptionsPanel.cs
@@ -33,6 +33,7 @@ using System;
using Mono.Addins;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Projects;
using MonoDevelop.Ide.Gui.Dialogs;
@@ -93,7 +94,7 @@ namespace CBinding
{
private OutputOptionsPanel panel;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return panel = new OutputOptionsPanel ();
}
diff --git a/main/src/addins/CBinding/Navigation/LanguageItemCommandHandler.cs b/main/src/addins/CBinding/Navigation/LanguageItemCommandHandler.cs
index 7c25253644..f2a98b2ccd 100644
--- a/main/src/addins/CBinding/Navigation/LanguageItemCommandHandler.cs
+++ b/main/src/addins/CBinding/Navigation/LanguageItemCommandHandler.cs
@@ -39,10 +39,10 @@ namespace CBinding.Navigation
{
public class LanguageItemCommandHandler : NodeCommandHandler
{
- public override void ActivateItem ()
+ public override async void ActivateItem ()
{
LanguageItem item = (LanguageItem)CurrentNode.DataItem;
- Document doc = IdeApp.Workbench.OpenDocument (item.File);
+ Document doc = await IdeApp.Workbench.OpenDocument (item.File);
//bool isMacro = item is Macro;
doc.Editor.CaretLocation = new DocumentLocation ((int)item.Line, 1); // TODO: get column?
diff --git a/main/src/addins/CBinding/Project/CProject.cs b/main/src/addins/CBinding/Project/CProject.cs
index bb475ca9bd..bc99d6d6a4 100644
--- a/main/src/addins/CBinding/Project/CProject.cs
+++ b/main/src/addins/CBinding/Project/CProject.cs
@@ -389,13 +389,9 @@ namespace CBinding
return conf.OutputDirectory.Combine (conf.CompiledOutputName);
}
- protected override SolutionItemConfiguration OnCreateConfiguration (string name, ConfigurationKind kind)
+ protected override SolutionItemConfiguration OnCreateConfiguration (string id, ConfigurationKind kind)
{
- CProjectConfiguration conf = new CProjectConfiguration ();
-
- conf.Name = name;
-
- return conf;
+ return new CProjectConfiguration (id);
}
public Language Language {
diff --git a/main/src/addins/CBinding/Project/CProjectConfiguration.cs b/main/src/addins/CBinding/Project/CProjectConfiguration.cs
index baf48b2a8a..63973e796f 100644
--- a/main/src/addins/CBinding/Project/CProjectConfiguration.cs
+++ b/main/src/addins/CBinding/Project/CProjectConfiguration.cs
@@ -101,6 +101,10 @@ namespace CBinding
[ItemProperty ("PrecompileHeaders", DefaultValue=true)]
private bool precompileHeaders = true;
+
+ public CProjectConfiguration (string id) : base (id)
+ {
+ }
public string Output {
get { return output; }
@@ -205,9 +209,9 @@ namespace CBinding
set { define_symbols = value; }
}
- public override void CopyFrom (ItemConfiguration configuration)
+ protected override void OnCopyFrom (ItemConfiguration configuration, bool isRename)
{
- base.CopyFrom (configuration);
+ base.OnCopyFrom (configuration, isRename);
CProjectConfiguration conf = (CProjectConfiguration)configuration;
output = conf.output;
diff --git a/main/src/addins/CSharpBinding/CSharpBinding.addin.xml b/main/src/addins/CSharpBinding/CSharpBinding.addin.xml
index 2aa367529d..3f584b9f69 100644
--- a/main/src/addins/CSharpBinding/CSharpBinding.addin.xml
+++ b/main/src/addins/CSharpBinding/CSharpBinding.addin.xml
@@ -129,6 +129,7 @@
<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.PathedDocumentTextEditorExtension" />
<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.UnitTestTextEditorExtension" />
<Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.ClassOutline.CSharpOutlineTextEditorExtension" />
+ <Class fileExtensions = ".cs" class = "MonoDevelop.CSharp.CSharpNavigationTextEditorExtension" />
<Class fileExtensions = ".json" class = "MonoDevelop.JSon.JSonTextEditorExtension" />
<Class class = "MonoDevelop.CSharp.Refactoring.CSharpFeaturesTextEditorExtension" />
</Extension>
diff --git a/main/src/addins/CSharpBinding/CSharpBinding.csproj b/main/src/addins/CSharpBinding/CSharpBinding.csproj
index b91a8cab8d..41c4e4b5cd 100644
--- a/main/src/addins/CSharpBinding/CSharpBinding.csproj
+++ b/main/src/addins/CSharpBinding/CSharpBinding.csproj
@@ -782,6 +782,7 @@
<Compile Include="MonoDevelop.CSharp.CodeRefactorings\CSharpSyntaxContext.cs" />
<Compile Include="MonoDevelop.CSharp.CodeRefactorings\TypeGuessing.cs" />
<Compile Include="MonoDevelop.CSharp.CodeRefactorings\Resources.cs" />
+ <Compile Include="MonoDevelop.CSharp\CSharpNavigationTextEditorExtension.cs" />
<Compile Include="MonoDevelop.CSharp.Features\EncapsulateField\AbstractEncapsulateFieldRefactoringProvider.cs" />
<Compile Include="MonoDevelop.CSharp.Features\EncapsulateField\AbstractEncapsulateFieldService.cs" />
<Compile Include="MonoDevelop.CSharp.Features\EncapsulateField\EncapsulateFieldCodeAction.cs" />
@@ -792,6 +793,7 @@
<Compile Include="Util\ConflictResolver.cs" />
<Compile Include="Util\AccessibilityUtilities.cs" />
<Compile Include="Util\Glyph.cs" />
+ <Compile Include="MonoDevelop.CSharp.Features\Completion\ContextHandler\RegexContextHandler.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/AddImport/AbstractAddImportCodeFixProvider.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/AddImport/AbstractAddImportCodeFixProvider.cs
index 1f9da9c11b..eda711eb5d 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/AddImport/AbstractAddImportCodeFixProvider.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/AddImport/AbstractAddImportCodeFixProvider.cs
@@ -72,8 +72,8 @@ namespace MonoDevelop.CSharp.CodeFixes
if (this.CanAddImport(node, cancellationToken))
{
var semanticModel = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false);
- var containingType = semanticModel.GetEnclosingNamedType(node.SpanStart, cancellationToken);
- var containingTypeOrAssembly = containingType ?? (ISymbol)semanticModel.Compilation.Assembly;
+ //var containingType = semanticModel.GetEnclosingNamedType(node.SpanStart, cancellationToken);
+ //var containingTypeOrAssembly = containingType ?? (ISymbol)semanticModel.Compilation.Assembly;
var namespacesInScope = this.GetNamespacesInScope(semanticModel, node, cancellationToken);
var matchingTypesNamespaces = await this.GetNamespacesForMatchingTypesAsync(project, diagnostic, node, semanticModel, namespacesInScope, cancellationToken).ConfigureAwait(false);
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/FullyQualify/CSharpFullyQualifyCodeFixProvider.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/FullyQualify/CSharpFullyQualifyCodeFixProvider.cs
index 520e0578d7..83d779f9b3 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/FullyQualify/CSharpFullyQualifyCodeFixProvider.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/FullyQualify/CSharpFullyQualifyCodeFixProvider.cs
@@ -296,7 +296,6 @@ namespace MonoDevelop.CSharp.CodeFixes.FullyQualify
private static readonly ConditionalWeakTable<INamespaceOrTypeSymbol, IList<string>> s_symbolToNameMap =
new ConditionalWeakTable<INamespaceOrTypeSymbol, IList<string>>();
- private static readonly ConditionalWeakTable<INamespaceOrTypeSymbol, IList<string>>.CreateValueCallback s_getNameParts = GetNameParts;
private static IList<string> GetNameParts(INamespaceOrTypeSymbol symbol)
{
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/GenerateConstructor/AbstractGenerateMemberCodeFixProvider.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/GenerateConstructor/AbstractGenerateMemberCodeFixProvider.cs
index 5de611e013..1c735ea833 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/GenerateConstructor/AbstractGenerateMemberCodeFixProvider.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/GenerateConstructor/AbstractGenerateMemberCodeFixProvider.cs
@@ -47,7 +47,7 @@ namespace MonoDevelop.CSharp.CodeFixes.GenerateConstructor
public sealed override async Task RegisterCodeFixesAsync(CodeFixContext context)
{
// NOTE(DustinCa): Not supported in REPL for now.
- if (context.Document.SourceCodeKind == SourceCodeKind.Interactive)
+ if (context.Document.SourceCodeKind == SourceCodeKind.Script)
{
return;
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/ImplementAbstractClass/ImplementAbstractClassCodeFixProvider.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/ImplementAbstractClass/ImplementAbstractClassCodeFixProvider.cs
index 50f93e61f4..25c8b7f949 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/ImplementAbstractClass/ImplementAbstractClassCodeFixProvider.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeFixes/ImplementAbstractClass/ImplementAbstractClassCodeFixProvider.cs
@@ -63,7 +63,7 @@ namespace MonoDevelop.CSharp.CodeFixes.ImplementAbstractClass
{
var title = GettextCatalog.GetString ("Implement Abstract Class");
var abstractType = model.GetTypeInfo(node, context.CancellationToken).Type;
- var id = GetCodeActionId(abstractType.ContainingAssembly.Name, abstractType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat));
+ //var id = GetCodeActionId(abstractType.ContainingAssembly.Name, abstractType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat));
context.RegisterCodeFix(
new DocumentChangeAction(node.Span, DiagnosticSeverity.Error, title,
(c) => ImplementAbstractClassAsync(context.Document, node, c)),
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/GenerateCodeWindow.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/GenerateCodeWindow.cs
index c6a67ccadc..600d197bab 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/GenerateCodeWindow.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeGeneration/GenerateCodeWindow.cs
@@ -134,10 +134,10 @@ namespace MonoDevelop.CodeGeneration
GetSize (out w, out h);
int myMonitor = Screen.GetMonitorAtPoint (x, y);
- Gdk.Rectangle geometry = DesktopService.GetUsableMonitorGeometry (Screen, myMonitor);
+ Xwt.Rectangle geometry = DesktopService.GetUsableMonitorGeometry (Screen.Number, myMonitor);
if (x + w > geometry.Right)
- x = geometry.Right - w;
+ x = (int)geometry.Right - w;
if (y + h > geometry.Bottom)
y = y - completionContext.TriggerTextHeight - h;
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.InitializerRewriter.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.InitializerRewriter.cs
index e6866a9f25..6ab7a54616 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.InitializerRewriter.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.CodeRefactorings/InlineTemporary/InlineTemporaryCodeRefactoringProvider.InitializerRewriter.cs
@@ -22,13 +22,11 @@ namespace MonoDevelop.CSharp.CodeRefactorings.InlineTemporary
{
private readonly SemanticModel _semanticModel;
private readonly ILocalSymbol _localSymbol;
- private readonly ExpressionSyntax _initializer;
private InitializerRewriter(ExpressionSyntax initializer, ILocalSymbol localSymbol, SemanticModel semanticModel)
{
_semanticModel = semanticModel;
_localSymbol = localSymbol;
- _initializer = initializer;
}
private bool IsReference(SimpleNameSyntax name)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs
index ae54ad6843..dce6229d79 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpCompletionTextEditorExtension.cs
@@ -473,8 +473,7 @@ namespace MonoDevelop.CSharp.Completion
} catch (OperationCanceledException) {
return null;
} catch (AggregateException e) {
- foreach (var inner in e.Flatten ().InnerExceptions)
- LoggingService.LogError ("Error while getting C# recommendations", inner);
+ e.Flatten ().Handle (f => f is OperationCanceledException);
} catch (Exception e) {
LoggingService.LogError ("Error while getting C# recommendations", e);
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/EventCreationCompletionData.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/EventCreationCompletionData.cs
index e642c485ce..c70fbf608c 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/EventCreationCompletionData.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/EventCreationCompletionData.cs
@@ -52,9 +52,7 @@ namespace MonoDevelop.CSharp.Completion
{
readonly RoslynCodeCompletionFactory factory;
readonly ITypeSymbol delegateType;
- readonly INamedTypeSymbol curType;
- readonly string varName;
-
+
public override Task<TooltipInformation> CreateTooltipInformation (bool smartWrap, CancellationToken token)
{
return Task.FromResult (new TooltipInformation ());
@@ -62,8 +60,6 @@ namespace MonoDevelop.CSharp.Completion
public EventCreationCompletionData (ICompletionDataKeyHandler keyHandler, RoslynCodeCompletionFactory factory, ITypeSymbol delegateType, string varName, INamedTypeSymbol curType) : base (keyHandler)
{
- this.curType = curType;
- this.varName = varName;
this.DisplayText = varName;
this.delegateType = delegateType;
this.factory = factory;
@@ -97,7 +93,7 @@ namespace MonoDevelop.CSharp.Completion
var options = new InsertionModeOptions (
GettextCatalog.GetString ("Create new method"),
insertionPoints,
- async point => {
+ point => {
if (!point.Success)
return;
var indent = "\t";
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCodeCompletionFactory.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCodeCompletionFactory.cs
index 201f1e6259..8c02c6a3ab 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCodeCompletionFactory.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCodeCompletionFactory.cs
@@ -75,8 +75,7 @@ namespace MonoDevelop.CSharp.Completion
ISymbolCompletionData ICompletionDataFactory.CreateEnumMemberCompletionData (ICompletionDataKeyHandler keyHandler, ISymbol alias, IFieldSymbol field)
{
- var model = ext.ParsedDocument.GetAst<SemanticModel> ();
- return new RoslynSymbolCompletionData (keyHandler, this, field, RoslynCompletionData.SafeMinimalDisplayString (alias ?? field.Type, model, ext.Editor.CaretOffset, Ambience.NameFormat) + "." + field.Name);
+ return new RoslynSymbolCompletionData (keyHandler, this, field, RoslynCompletionData.SafeMinimalDisplayString (alias ?? field.Type, semanticModel, ext.Editor.CaretOffset, Ambience.NameFormat) + "." + field.Name);
}
class FormatItemCompletionData : RoslynCompletionData
@@ -137,7 +136,6 @@ namespace MonoDevelop.CSharp.Completion
class XmlDocCompletionData : RoslynCompletionData
{
//readonly CSharpCompletionTextEditorExtension ext;
- readonly string title;
/*
#region IListData implementation
@@ -156,7 +154,7 @@ namespace MonoDevelop.CSharp.Completion
public XmlDocCompletionData (ICompletionDataKeyHandler keyHandler, RoslynCodeCompletionFactory ext, string title, string description, string insertText) : base (keyHandler, title, "md-keyword", description, insertText ?? title)
{
// this.ext = ext;
- this.title = title;
+ //this.title = title;
}
// public override TooltipInformation CreateTooltipInformation (bool smartWrap)
// {
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCompletionData.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCompletionData.cs
index 0ff1c133b9..719c867cf6 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCompletionData.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/RoslynCompletionData.cs
@@ -77,7 +77,7 @@ namespace MonoDevelop.CSharp.Completion
return symbol.ToMinimalDisplayString (semanticModel, position, format);
} catch (ArgumentOutOfRangeException) {
try {
- return symbol.ToMinimalDisplayString (semanticModel, 0, format);
+ return symbol.ToMinimalDisplayString (semanticModel, semanticModel.SyntaxTree.Length / 2, format);
} catch (ArgumentOutOfRangeException) {
return symbol.Name;
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionPanel.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionPanel.cs
index e91a6242ba..b71b916792 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionPanel.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/InconsistentNaming/NameConventionPanel.cs
@@ -25,7 +25,7 @@
// THE SOFTWARE.
using System;
using MonoDevelop.Ide.Gui.Dialogs;
-using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Editor;
@@ -47,7 +47,7 @@ namespace MonoDevelop.CSharp.Diagnostics.InconsistentNaming
}
}
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
panel = new NameConventionPanelWidget ();
panel.PolicyChanged += delegate {
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer.cs
index 4ae9b07748..30c1046d09 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/CSharpRemoveUnnecessaryImportsDiagnosticAnalyzer.cs
@@ -32,7 +32,7 @@ namespace MonoDevelop.CSharp.Diagnostics.RemoveUnnecessaryImports
protected override IEnumerable<TextSpan> GetFixableDiagnosticSpans(IEnumerable<SyntaxNode> nodes, SyntaxTree tree, CancellationToken cancellationToken = default(CancellationToken))
{
- var nodesContainingUnnecessaryUsings = new HashSet<SyntaxNode>();
+ //var nodesContainingUnnecessaryUsings = new HashSet<SyntaxNode>();
foreach (var node in nodes) {
yield return node.Span;
// var nodeContainingUnnecessaryUsings = node.GetAncestors().First(n => n is NamespaceDeclarationSyntax || n is CompilationUnitSyntax);
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/RemoveUnnecessaryImportsDiagnosticAnalyzerBase.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/RemoveUnnecessaryImportsDiagnosticAnalyzerBase.cs
index 95e005836b..338c130b6f 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/RemoveUnnecessaryImportsDiagnosticAnalyzerBase.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/RemoveUnnecessaryImports/RemoveUnnecessaryImportsDiagnosticAnalyzerBase.cs
@@ -23,12 +23,12 @@ namespace MonoDevelop.CSharp.Diagnostics.RemoveUnnecessaryImports
// The NotConfigurable custom tag ensures that user can't turn this diagnostic into a warning / error via
// ruleset editor or solution explorer. Setting messageFormat to empty string ensures that we won't display
// this diagnostic in the preview pane header.
- private static readonly DiagnosticDescriptor s_fixableIdDescriptor =
- new DiagnosticDescriptor(DiagnosticFixableId,
- title: "", messageFormat: "", category: "",
- defaultSeverity: DiagnosticSeverity.Hidden,
- isEnabledByDefault: true,
- customTags: WellKnownDiagnosticTags.NotConfigurable);
+ //private static readonly DiagnosticDescriptor s_fixableIdDescriptor =
+ // new DiagnosticDescriptor(DiagnosticFixableId,
+ // title: "", messageFormat: "", category: "",
+ // defaultSeverity: DiagnosticSeverity.Hidden,
+ // isEnabledByDefault: true,
+ // customTags: WellKnownDiagnosticTags.NotConfigurable);
protected abstract LocalizableString GetTitleAndMessageFormatForClassificationIdDescriptor();
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/SimplifyTypeNames/SimplifyTypeNamesDiagnosticAnalyzerBase.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/SimplifyTypeNames/SimplifyTypeNamesDiagnosticAnalyzerBase.cs
index ad6108b386..6734509864 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/SimplifyTypeNames/SimplifyTypeNamesDiagnosticAnalyzerBase.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Diagnostics/SimplifyTypeNames/SimplifyTypeNamesDiagnosticAnalyzerBase.cs
@@ -47,7 +47,6 @@ namespace MonoDevelop.CSharp.Diagnostics.SimplifyTypeNames
isEnabledByDefault: true,
customTags: DiagnosticCustomTags.Unnecessary);
- private OptionSet _lazyDefaultOptionSet;
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
{
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/CodeGeneration/CSharpCodeGenerationService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/CodeGeneration/CSharpCodeGenerationService.cs
index fda0ff8cd7..6f633412fe 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/CodeGeneration/CSharpCodeGenerationService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/CodeGeneration/CSharpCodeGenerationService.cs
@@ -179,7 +179,7 @@ namespace ICSharpCode.NRefactory6.CSharp.CodeGeneration
/// <summary>
/// Returns a newly created event declaration node from the provided event.
- /// </summary
+ /// </summary>
public SyntaxNode CreateEventDeclaration(IEventSymbol @event, CodeGenerationDestination destination = CodeGenerationDestination.Unspecified)
{
try {
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/CompletionEngine.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/CompletionEngine.cs
index dc39adc9e0..2a04fd96f8 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/CompletionEngine.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/CompletionEngine.cs
@@ -59,11 +59,10 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
new ObjectCreationContextHandler(),
new SenderCompletionContextHandler(),
new CastCompletionContextHandler(),
- new PreProcessorExpressionContextHandler()
+ new PreProcessorExpressionContextHandler(),
+ new RegexContextHandler()
};
- static readonly ICompletionDataKeyHandler DefaultKeyHandler = new RoslynRecommendationsCompletionContextHandler ();
-
readonly ICompletionDataFactory factory;
readonly Workspace workspace;
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/AttributeNamedParameterContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/AttributeNamedParameterContextHandler.cs
index 3376e1eda3..6c26f80cec 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/AttributeNamedParameterContextHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/AttributeNamedParameterContextHandler.cs
@@ -86,11 +86,11 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
return nameColonItems.Concat(nameEqualsItems);
}
- protected async Task<bool> IsExclusiveAsync(Document document, int caretPosition, CompletionTriggerInfo triggerInfo, CancellationToken cancellationToken)
+ public override async Task<bool> IsExclusiveAsync(Document document, int position, CompletionTriggerInfo triggerInfo, CancellationToken cancellationToken)
{
var syntaxTree = await document.GetCSharpSyntaxTreeAsync(cancellationToken).ConfigureAwait(false);
- var token = syntaxTree.FindTokenOnLeftOfPosition(caretPosition, cancellationToken)
- .GetPreviousTokenIfTouchingWord(caretPosition);
+ var token = syntaxTree.FindTokenOnLeftOfPosition(position, cancellationToken)
+ .GetPreviousTokenIfTouchingWord(position);
return IsAfterNameColonArgument(token) || IsAfterNameEqualsArgument(token);
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/CastCompletionContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/CastCompletionContextHandler.cs
index 9332cb2ee2..ba003bdc26 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/CastCompletionContextHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/CastCompletionContextHandler.cs
@@ -40,25 +40,25 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
{
class CastCompletionContextHandler : CompletionContextHandler
{
- protected async override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
+ protected override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
{
var position = completionContext.Position;
var document = completionContext.Document;
var syntaxTree = ctx.SyntaxTree;
if (syntaxTree.IsInNonUserCode(position, cancellationToken) ||
syntaxTree.IsPreProcessorDirectiveContext(position, cancellationToken))
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
if (!syntaxTree.IsRightOfDotOrArrowOrColonColon(position, cancellationToken))
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
var ma = ctx.LeftToken.Parent as MemberAccessExpressionSyntax;
if (ma == null)
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
var model = ctx.CSharpSyntaxContext.SemanticModel;
var symbolInfo = model.GetSymbolInfo (ma.Expression);
if (symbolInfo.Symbol == null)
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
var list = new List<CompletionData> ();
var within = model.GetEnclosingNamedTypeOrAssembly(position, cancellationToken);
@@ -78,7 +78,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
}
}
- return list;
+ return Task.FromResult ((IEnumerable<CompletionData>)list);
}
void Analyze (CompletionEngine engine, SyntaxNode node, ITypeSymbol type, ISymbol within, List<CompletionData> list, HashSet<string> addedSymbols, CancellationToken cancellationToken)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/DelegateCreationContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/DelegateCreationContextHandler.cs
index f585ea1e97..80cda00dcf 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/DelegateCreationContextHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/DelegateCreationContextHandler.cs
@@ -71,7 +71,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
return ch == '(' || ch == '[' || ch == ',' || IsTriggerAfterSpaceOrStartOfWordCharacter (text, position);
}
- protected async override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult result, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
+ protected override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult result, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
{
var document = completionContext.Document;
var position = completionContext.Position;
@@ -79,10 +79,10 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
var tree = ctx.SyntaxTree;
var model = ctx.SemanticModel;
if (tree.IsInNonUserCode (position, cancellationToken))
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
if (!ctx.CSharpSyntaxContext.IsAnyExpressionContext)
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
var enclosingType = model.GetEnclosingNamedType (position, cancellationToken);
var memberMethods = enclosingType.GetMembers ().OfType<IMethodSymbol> ().Where (m => m.MethodKind == MethodKind.Ordinary).ToArray ();
@@ -104,7 +104,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
if (list.Count > 0) {
result.AutoSelect = false;
}
- return list;
+ return Task.FromResult ((IEnumerable<CompletionData>)list);
}
void AddCompatibleMethods (CompletionEngine engine, List<CompletionData> list, ITypeSymbol delegateType, IMethodSymbol [] memberMethods, CancellationToken cancellationToken)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/KeywordContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/KeywordContextHandler.cs
index c060cb54dc..c8287f48e7 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/KeywordContextHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/KeywordContextHandler.cs
@@ -201,19 +201,19 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
IsStartingNewWord (text, position);
}
- protected async override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
+ protected override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
{
var model = ctx.SemanticModel;
if (ctx.CSharpSyntaxContext.IsInNonUserCode) {
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
}
if (ctx.TargetToken.IsKind (SyntaxKind.OverrideKeyword))
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
if (info.CompletionTriggerReason == CompletionTriggerReason.CharTyped && info.TriggerCharacter == ' ') {
if (!ctx.CSharpSyntaxContext.IsEnumBaseListContext && !ctx.LeftToken.IsKind (SyntaxKind.EqualsToken) && !ctx.LeftToken.IsKind (SyntaxKind.EqualsEqualsToken))
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
// completionResult.AutoCompleteEmptyMatch = false;
}
@@ -237,7 +237,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
// if (parent.IsKind(SyntaxKind.TypeParameterConstraintClause)) {
// result.Add(factory.CreateGenericData (this, "new()", GenericDataType.PreprocessorKeyword));
// }
- return result;
+ return Task.FromResult ((IEnumerable<CompletionData>)result);
}
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/OverrideContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/OverrideContextHandler.cs
index f26551a91b..f54840e40d 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/OverrideContextHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/OverrideContextHandler.cs
@@ -289,26 +289,23 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
//modifiers = new DeclarationModifiers();
seenAccessibility = Accessibility.NotApplicable;
var overrideToken = default(SyntaxToken);
- bool isUnsafe = false;
- bool isSealed = false;
- bool isAbstract = false;
while (IsOnStartLine(token.SpanStart, text, startLine) && !token.IsKind(SyntaxKind.None))
{
switch (token.Kind())
{
- case SyntaxKind.UnsafeKeyword:
- isUnsafe = true;
- break;
+ //case SyntaxKind.UnsafeKeyword:
+ // isUnsafe = true;
+ //break;
case SyntaxKind.OverrideKeyword:
overrideToken = token;
break;
- case SyntaxKind.SealedKeyword:
- isSealed = true;
- break;
- case SyntaxKind.AbstractKeyword:
- isAbstract = true;
- break;
+ //case SyntaxKind.SealedKeyword:
+ // isSealed = true;
+ //break;
+ //case SyntaxKind.AbstractKeyword:
+ // isAbstract = true;
+ //break;
case SyntaxKind.ExternKeyword:
break;
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PartialContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PartialContextHandler.cs
index b0224681aa..4e1b31e6e8 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PartialContextHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PartialContextHandler.cs
@@ -45,7 +45,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
return IsTriggerAfterSpaceOrStartOfWordCharacter (text, position);
}
- protected async override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
+ protected override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
{
var document = completionContext.Document;
var position = completionContext.Position;
@@ -59,17 +59,17 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
// Only inside classes and structs
if (enclosingSymbol == null || !(enclosingSymbol.TypeKind == TypeKind.Struct || enclosingSymbol.TypeKind == TypeKind.Class)) {
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
}
if (!IsPartialCompletionContext (tree, position, cancellationToken/*, out modifiers*/, out token)) {
if (enclosingSymbol != null && (token.IsKind (SyntaxKind.OpenBraceToken) || token.IsKind (SyntaxKind.CloseBraceToken) || token.IsKind (SyntaxKind.SemicolonToken))) {
- return CreateCompletionData (engine, semanticModel, position, enclosingSymbol, token, false, cancellationToken);
+ return Task.FromResult (CreateCompletionData (engine, semanticModel, position, enclosingSymbol, token, false, cancellationToken));
}
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
}
- return CreateCompletionData (engine, semanticModel, position, enclosingSymbol, token, true, cancellationToken);
+ return Task.FromResult (CreateCompletionData (engine, semanticModel, position, enclosingSymbol, token, true, cancellationToken));
}
protected virtual IEnumerable<CompletionData> CreateCompletionData (CompletionEngine engine, SemanticModel semanticModel, int position, INamedTypeSymbol enclosingType, SyntaxToken token, bool afterPartialKeyword, CancellationToken cancellationToken)
@@ -142,7 +142,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
var token = touchingToken.GetPreviousToken();
bool foundPartial = touchingToken.IsKindOrHasMatchingText(SyntaxKind.PartialKeyword);
- bool foundAsync = false;
+ //bool foundAsync = false;
while (IsOnSameLine(token, touchingToken, tree.GetText(cancellationToken)))
{
@@ -152,10 +152,10 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
return false;
}
- if (token.IsKindOrHasMatchingText(SyntaxKind.AsyncKeyword))
- {
- foundAsync = true;
- }
+ //if (token.IsKindOrHasMatchingText(SyntaxKind.AsyncKeyword))
+ //{
+ // foundAsync = true;
+ //}
foundPartial = foundPartial || token.IsKindOrHasMatchingText(SyntaxKind.PartialKeyword);
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PreProcessorExpressionContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PreProcessorExpressionContextHandler.cs
index 0b6abc3f19..0a9051cec3 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PreProcessorExpressionContextHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/PreProcessorExpressionContextHandler.cs
@@ -42,7 +42,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
return IsTriggerAfterSpaceOrStartOfWordCharacter (text, position);
}
- protected async override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
+ protected override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
{
var model = ctx.SemanticModel;
@@ -53,7 +53,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
result.Add(engine.Factory.CreateGenericData (this, define, GenericDataType.PreprocessorSymbol));
}
}
- return result;
+ return Task.FromResult ((IEnumerable<CompletionData>)result);
}
}
} \ No newline at end of file
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/RegexContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/RegexContextHandler.cs
new file mode 100644
index 0000000000..fa6881727e
--- /dev/null
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/RegexContextHandler.cs
@@ -0,0 +1,169 @@
+//
+// RegexContextHandler.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2015 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using System.Threading;
+using Microsoft.CodeAnalysis.CSharp;
+using System.Linq;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+using Microsoft.CodeAnalysis;
+using MonoDevelop.Ide.CodeCompletion;
+using MonoDevelop.Ide.TypeSystem;
+using Microsoft.CodeAnalysis.Text;
+using ICSharpCode.NRefactory6.CSharp.Analysis;
+
+namespace ICSharpCode.NRefactory6.CSharp.Completion
+{
+ class RegexContextHandler : CompletionContextHandler
+ {
+ public override bool IsTriggerCharacter (Microsoft.CodeAnalysis.Text.SourceText text, int position)
+ {
+ var ch = text [position];
+ return ch == '\\' || base.IsTriggerCharacter (text, position);
+ }
+
+ protected async override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
+ {
+ var document = completionContext.Document;
+ var position = completionContext.Position;
+ var semanticModel = ctx.SemanticModel;
+ if (info.TriggerCharacter == '\\') {
+ if (ctx.TargetToken.Parent != null && ctx.TargetToken.Parent.Parent != null &&
+ ctx.TargetToken.Parent.Parent.IsKind (SyntaxKind.Argument)) {
+ var argument = ctx.TargetToken.Parent.Parent as ArgumentSyntax;
+
+ var symbolInfo = semanticModel.GetSymbolInfo (ctx.TargetToken.Parent.Parent.Parent.Parent);
+ if (symbolInfo.Symbol == null)
+ return Enumerable.Empty<CompletionData> ();
+
+ if (SemanticHighlightingVisitor<int>.IsRegexMatchMethod (symbolInfo)) {
+ if (((ArgumentListSyntax)argument.Parent).Arguments [1] != argument)
+ return Enumerable.Empty<CompletionData> ();
+ completionResult.AutoSelect = false;
+ return GetFormatCompletionData (engine, argument.Expression.ToString () [0] == '@');
+ }
+ if (SemanticHighlightingVisitor<int>.IsRegexConstructor (symbolInfo)) {
+ if (((ArgumentListSyntax)argument.Parent).Arguments [0] != argument)
+ return Enumerable.Empty<CompletionData> ();
+ completionResult.AutoSelect = false;
+ return GetFormatCompletionData (engine, argument.Expression.ToString () [0] == '@');
+ }
+ }
+ } else {
+ var ma = ctx.TargetToken.Parent as MemberAccessExpressionSyntax;
+ if (ma != null) {
+ var symbolInfo = semanticModel.GetSymbolInfo (ma.Expression);
+ var typeInfo = semanticModel.GetTypeInfo (ma.Expression);
+ var type = typeInfo.Type;
+ if (type != null && type.Name == "Match" && type.ContainingNamespace.GetFullName () == "System.Text.RegularExpressions" ) {
+ var items = new List<CompletionData>();
+ foreach (var grp in GetGroups (ctx, symbolInfo.Symbol)) {
+ items.Add (engine.Factory.CreateGenericData (this, "Groups[\"" + grp + "\"]", GenericDataType.Undefined));
+ }
+
+ return items;
+ }
+ }
+ }
+ return Enumerable.Empty<CompletionData> ();
+ }
+
+ IEnumerable<string> GetGroups (SyntaxContext ctx, ISymbol symbol)
+ {
+ var root = ctx.SyntaxTree.GetRoot ();
+ foreach (var decl in symbol.DeclaringSyntaxReferences) {
+ Optional<object> val = null;
+
+ var node = root.FindNode (decl.Span) as VariableDeclaratorSyntax;
+ if (node == null)
+ continue;
+ var invocation = node.Initializer.Value as InvocationExpressionSyntax;
+ var invocationSymbol = ctx.SemanticModel.GetSymbolInfo (invocation).Symbol;
+ if (invocationSymbol.Name == "Match" && SemanticHighlightingVisitor<int>.IsRegexType (invocationSymbol.ContainingType)) {
+ if (invocation.ArgumentList.Arguments.Count == 1) {
+ var memberAccess = invocation.Expression as MemberAccessExpressionSyntax;
+ if (memberAccess == null)
+ continue;
+ var target = ctx.SemanticModel.GetSymbolInfo (memberAccess.Expression).Symbol;
+ if (target.DeclaringSyntaxReferences.Length == 0)
+ continue;
+ var targetNode = root.FindNode (target.DeclaringSyntaxReferences.First ().Span) as VariableDeclaratorSyntax;
+ if (targetNode == null)
+ continue;
+ var objectCreation = targetNode.Initializer.Value as ObjectCreationExpressionSyntax;
+ if (objectCreation == null)
+ continue;
+ var targetNodeSymbol = ctx.SemanticModel.GetSymbolInfo (objectCreation).Symbol;
+ if (SemanticHighlightingVisitor<int>.IsRegexType (targetNodeSymbol.ContainingType)) {
+ if (objectCreation.ArgumentList.Arguments.Count < 1)
+ continue;
+ val = ctx.SemanticModel.GetConstantValue (objectCreation.ArgumentList.Arguments [0].Expression);
+ }
+ } else {
+ if (invocation.ArgumentList.Arguments.Count < 2)
+ continue;
+ val = ctx.SemanticModel.GetConstantValue (invocation.ArgumentList.Arguments [1].Expression);
+ }
+
+ if (!val.HasValue)
+ continue;
+ var str = val.Value.ToString ();
+ int idx = -1;
+ while ((idx = str.IndexOf ("(?<", idx + 1, StringComparison.Ordinal)) >= 0) {
+ var closingIndex = str.IndexOf (">", idx, StringComparison.Ordinal);
+ if (closingIndex >= idx) {
+ yield return str.Substring (idx + 3, closingIndex - idx - 3);
+ idx = closingIndex - 1;
+ }
+ }
+ }
+ }
+ }
+
+ IEnumerable<CompletionData> GetFormatCompletionData (CompletionEngine engine, bool isVerbatimString)
+ {
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"d", "Digit character", null);
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"D", "Non-digit character", null);
+
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"b", "Word boundary", null);
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"B", "Non-word boundary", null);
+
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"w", "Word character", null);
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"W", "Non-word character", null);
+
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"s", "White-space character", null);
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"S", "Non-white-space character", null);
+
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"A", "Start boundary", null);
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"Z", "End boundary", null);
+
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"k<name>", "Named backreference", null);
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"P{name}", "Negative unicode category or unicode block", null);
+ yield return engine.Factory.CreateFormatItemCompletionData(this, (isVerbatimString ? "" : "\\") +"p{name}", "Unicode category or unicode block", null);
+ }
+ }
+} \ No newline at end of file
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/RoslynRecommendationsCompletionContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/RoslynRecommendationsCompletionContextHandler.cs
index c411bd0d8d..30e32c8607 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/RoslynRecommendationsCompletionContextHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/RoslynRecommendationsCompletionContextHandler.cs
@@ -69,14 +69,14 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
return IsException (type.BaseType);
}
- protected async override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
+ protected override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
{
var semanticModel = ctx.SemanticModel;
var result = new List<CompletionData> ();
if (info.TriggerCharacter == ' ') {
var newExpression = ObjectCreationContextHandler.GetObjectCreationNewExpression (ctx.SyntaxTree, completionContext.Position, cancellationToken);
if (newExpression == null && info.CompletionTriggerReason == CompletionTriggerReason.CharTyped && !ctx.LeftToken.IsKind (SyntaxKind.EqualsToken) && !ctx.LeftToken.IsKind (SyntaxKind.EqualsEqualsToken))
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
completionResult.AutoCompleteEmptyMatch = false;
}
@@ -142,7 +142,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
}
addData (newData);
}
- return result;
+ return Task.FromResult ((IEnumerable<CompletionData>)result);
}
protected override async Task<bool> IsSemanticTriggerCharacterAsync(Document document, int characterPosition, CancellationToken cancellationToken)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/SenderCompletionContextHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/SenderCompletionContextHandler.cs
index 635fdf3f0a..8d1ff8733a 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/SenderCompletionContextHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Completion/ContextHandler/SenderCompletionContextHandler.cs
@@ -39,25 +39,25 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
{
class SenderCompletionContextHandler : CompletionContextHandler
{
- protected async override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
+ protected override Task<IEnumerable<CompletionData>> GetItemsWorkerAsync (CompletionResult completionResult, CompletionEngine engine, CompletionContext completionContext, CompletionTriggerInfo info, SyntaxContext ctx, CancellationToken cancellationToken)
{
var position = completionContext.Position;
var document = completionContext.Document;
var syntaxTree = ctx.SyntaxTree;
if (syntaxTree.IsInNonUserCode(position, cancellationToken) ||
syntaxTree.IsPreProcessorDirectiveContext(position, cancellationToken))
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
if (!syntaxTree.IsRightOfDotOrArrowOrColonColon(position, cancellationToken))
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
var ma = ctx.LeftToken.Parent as MemberAccessExpressionSyntax;
if (ma == null)
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
var model = ctx.CSharpSyntaxContext.SemanticModel;
var symbolInfo = model.GetSymbolInfo (ma.Expression);
if (symbolInfo.Symbol == null || symbolInfo.Symbol.Kind != SymbolKind.Parameter)
- return Enumerable.Empty<CompletionData> ();
+ return Task.FromResult (Enumerable.Empty<CompletionData> ());
var list = new List<CompletionData> ();
var within = model.GetEnclosingNamedTypeOrAssembly(position, cancellationToken);
var addedSymbols = new HashSet<string> ();
@@ -70,7 +70,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Completion
Analyze (engine, model, ma.Expression, within, list, ano.ParameterList, symbolInfo.Symbol, addedSymbols, cancellationToken);
}
- return list;
+ return Task.FromResult ((IEnumerable<CompletionData>)list);
}
void Analyze (CompletionEngine engine,SemanticModel model, SyntaxNode node, ISymbol within, List<CompletionData> list, ParameterListSyntax parameterList, ISymbol symbol, HashSet<string> addedSymbols, CancellationToken cancellationToken)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/EncapsulateField/AbstractEncapsulateFieldService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/EncapsulateField/AbstractEncapsulateFieldService.cs
index badf36e8bb..fc9a15363f 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/EncapsulateField/AbstractEncapsulateFieldService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/EncapsulateField/AbstractEncapsulateFieldService.cs
@@ -228,7 +228,6 @@ namespace ICSharpCode.NRefactory6.CSharp.CodeRefactorings.EncapsulateField
var generatedProperty = GenerateProperty(generatedPropertyName, finalFieldName, originalField.DeclaredAccessibility, originalField, field.ContainingType, new SyntaxAnnotation(), document, cancellationToken);
- var codeGenerationService = new CSharpCodeGenerationService (document.Project.Solution.Workspace);
var solutionWithProperty = await AddPropertyAsync(document, document.Project.Solution, field, generatedProperty, cancellationToken).ConfigureAwait(false);
return new Result(solutionWithProperty, originalField.ToDisplayString(), Glyph.FieldPublic);
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpMethodExtractor.CSharpCodeGenerator.MultipleStatementsCodeGenerator.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpMethodExtractor.CSharpCodeGenerator.MultipleStatementsCodeGenerator.cs
index 205d488fc5..a75b49a0ca 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpMethodExtractor.CSharpCodeGenerator.MultipleStatementsCodeGenerator.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpMethodExtractor.CSharpCodeGenerator.MultipleStatementsCodeGenerator.cs
@@ -32,8 +32,8 @@ namespace ICSharpCode.NRefactory6.CSharp.ExtractMethod
if (first != last)
{
- var firstUnderContainer = result.GetFirstStatementUnderContainer();
- var lastUnderContainer = result.GetLastStatementUnderContainer();
+ //var firstUnderContainer = result.GetFirstStatementUnderContainer();
+ //var lastUnderContainer = result.GetLastStatementUnderContainer();
//Contract.ThrowIfFalse(firstUnderContainer.Parent == lastUnderContainer.Parent);
return true;
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.StatementResult.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.StatementResult.cs
index 5d6565e056..478cf6f7b6 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.StatementResult.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.StatementResult.cs
@@ -32,7 +32,7 @@ namespace ICSharpCode.NRefactory6.CSharp.ExtractMethod
public override bool ContainingScopeHasAsyncKeyword()
{
var node = this.GetContainingScope();
- var semanticModel = this.SemanticDocument.SemanticModel;
+ //var semanticModel = this.SemanticDocument.SemanticModel;
return node.TypeSwitch(
(AccessorDeclarationSyntax access) => false,
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.cs
index 80f343c09a..462b3313a0 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ExtractMethod/CSharp/CSharpSelectionResult.cs
@@ -124,7 +124,7 @@ namespace ICSharpCode.NRefactory6.CSharp.ExtractMethod
var statement = lastToken.Parent.GetStatementUnderContainer();
//Contract.ThrowIfNull(statement);
- var firstStatementUnderContainer = this.GetFirstStatementUnderContainer();
+ //var firstStatementUnderContainer = this.GetFirstStatementUnderContainer();
//Contract.ThrowIfFalse(statement.Parent == firstStatementUnderContainer.Parent);
return statement;
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/CommonFormattingHelpers.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/CommonFormattingHelpers.cs
index 4c3610cfc2..84651c5a39 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/CommonFormattingHelpers.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/CommonFormattingHelpers.cs
@@ -180,7 +180,7 @@ namespace ICSharpCode.NRefactory6.CSharp
return;
}
- var token1PartOftoken2LeadingTrivia = token1.FullSpan.Start > token2.FullSpan.Start;
+ //var token1PartOftoken2LeadingTrivia = token1.FullSpan.Start > token2.FullSpan.Start;
if (token1.FullSpan.End == token2.FullSpan.Start)
{
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/FormattingOptionsFactory.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/FormattingOptionsFactory.cs
index 950f735934..7fae1ecefa 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/FormattingOptionsFactory.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/Formatter/FormattingOptionsFactory.cs
@@ -89,7 +89,7 @@ namespace ICSharpCode.NRefactory6.CSharp
}
/// <summary>
- /// The K&R style, so named because it was used in Kernighan and Ritchie's book The C Programming Language,
+ /// The K&amp;R style, so named because it was used in Kernighan and Ritchie's book The C Programming Language,
/// is commonly used in C. It is less common for C++, C#, and others.
/// </summary>
public static OptionSet CreateKRStyle()
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateFromMembers/GenerateConstructor/AbstractGenerateConstructorService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateFromMembers/GenerateConstructor/AbstractGenerateConstructorService.cs
index f8e2bcfd82..df7c269a13 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateFromMembers/GenerateConstructor/AbstractGenerateConstructorService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateFromMembers/GenerateConstructor/AbstractGenerateConstructorService.cs
@@ -54,7 +54,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateFromMembers.GenerateConstructor
private class ConstructorDelegatingCodeAction : CodeAction
{
- private readonly TService _service;
private readonly Document _document;
private readonly State _state;
@@ -63,7 +62,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateFromMembers.GenerateConstructor
Document document,
State state)
{
- _service = service;
_document = document;
_state = state;
}
@@ -132,7 +130,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateFromMembers.GenerateConstructor
private class FieldDelegatingCodeAction : CodeAction
{
- private readonly TService _service;
private readonly Document _document;
private readonly State _state;
@@ -141,7 +138,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateFromMembers.GenerateConstructor
Document document,
State state)
{
- _service = service;
_document = document;
_state = state;
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateConstructor/AbstractGenerateConstructorService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateConstructor/AbstractGenerateConstructorService.cs
index 907f779be1..e35be8230c 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateConstructor/AbstractGenerateConstructorService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateConstructor/AbstractGenerateConstructorService.cs
@@ -180,7 +180,7 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateConstructor
return null;
}
- var arguments = _state.Arguments.Take(argumentCount).ToList();
+ // var arguments = _state.Arguments.Take(argumentCount).ToList();
var remainingArguments = _state.Arguments.Skip(argumentCount).ToList();
var remainingAttributeArguments = _state.AttributeArguments != null ? _state.AttributeArguments.Skip(argumentCount).ToList() : null;
var remainingParameterTypes = _state.ParameterTypes.Skip(argumentCount).ToList();
@@ -275,7 +275,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateConstructor
var syntaxFactory = provider.GetService<SyntaxGenerator>();
var codeGenerationService = new CSharpCodeGenerationService (_document.Project.Solution.Workspace);
- var syntaxTree = _document.SyntaxTree;
var members = syntaxFactory.CreateFieldDelegatingConstructor(
_state.TypeToGenerateIn.Name, _state.TypeToGenerateIn, parameters,
parameterToExistingFieldMap, parameterToNewFieldMap, _cancellationToken);
@@ -550,8 +549,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateConstructor
type: t,
name: string.Empty)).ToList();
- var destinationProvider = document.Project.Solution.Workspace.Services.GetLanguageServices(this.TypeToGenerateIn.Language);
-
return this.TypeToGenerateIn.InstanceConstructors.Any(c => SignatureComparer.HaveSameSignature(parameters, c.Parameters, compareParameterName: true, isCaseSensitive: true));
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/AbstractGenerateDefaultConstructorsService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/AbstractGenerateDefaultConstructorsService.cs
index 9e0199e2cb..0767b25436 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/AbstractGenerateDefaultConstructorsService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/AbstractGenerateDefaultConstructorsService.cs
@@ -61,7 +61,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateDefaultConstruct
private readonly IList<IMethodSymbol> _constructors;
private readonly Document _document;
private readonly State _state;
- private readonly TService _service;
private readonly string _title;
protected AbstractCodeAction(
@@ -71,7 +70,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateDefaultConstruct
IList<IMethodSymbol> constructors,
string title)
{
- _service = service;
_document = document;
_state = state;
_constructors = constructors;
@@ -218,8 +216,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateDefaultConstruct
baseType.InstanceConstructors
.Where(c => c.IsAccessibleWithin(this.ClassType));
- var destinationProvider = document.Project.Solution.Workspace.Services.GetLanguageServices(this.ClassType.Language);
-
var missingConstructors =
baseTypeConstructors.Where(c1 => !classConstructors.Any(
c2 => SignatureComparer.HaveSameSignature(c1.Parameters, c2.Parameters, compareParameterName: true, isCaseSensitive: true))).ToList();
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/CSharpGenerateDefaultConstructorsService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/CSharpGenerateDefaultConstructorsService.cs
index b443a65e52..598ef2b99c 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/CSharpGenerateDefaultConstructorsService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateDefaultConstructors/CSharpGenerateDefaultConstructorsService.cs
@@ -21,7 +21,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateDefaultConstruct
{
if (!cancellationToken.IsCancellationRequested)
{
- var syntaxTree = document.SyntaxTree;
var node = document.Root.FindToken(textSpan.Start).GetAncestor<TypeSyntax>();
if (node != null)
{
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateEnumMember/AbstractGenerateEnumMemberService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateEnumMember/AbstractGenerateEnumMemberService.cs
index 9c33c0868f..c0111bcb5d 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateEnumMember/AbstractGenerateEnumMemberService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateEnumMember/AbstractGenerateEnumMemberService.cs
@@ -48,7 +48,6 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateEnumMember
private partial class GenerateEnumMemberCodeAction : CodeAction
{
- private readonly TService _service;
private readonly Document _document;
private readonly State _state;
@@ -57,20 +56,17 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateEnumMember
Document document,
State state)
{
- _service = service;
_document = document;
_state = state;
}
protected override async Task<Document> GetChangedDocumentAsync(CancellationToken cancellationToken)
{
- var languageServices = _document.Project.Solution.Workspace.Services.GetLanguageServices(_state.TypeToGenerateIn.Language);
var value = _state.TypeToGenerateIn.LastEnumValueHasInitializer()
? EnumValueUtilities.GetNextEnumValue(_state.TypeToGenerateIn, cancellationToken)
: null;
- var syntaxTree = await _document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(false);
var result = await new CSharpCodeGenerationService (_document.Project.Solution.Workspace).AddFieldAsync(
_document.Project.Solution,
_state.TypeToGenerateIn,
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/AbstractGenerateParameterizedMemberService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/AbstractGenerateParameterizedMemberService.cs
index 4b8853901f..19ac827f84 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/AbstractGenerateParameterizedMemberService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/AbstractGenerateParameterizedMemberService.cs
@@ -221,7 +221,7 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateParameterizedMem
protected override async Task<Document> GetChangedDocumentAsync(CancellationToken cancellationToken)
{
- var syntaxTree = await _document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(false);
+ //var syntaxTree = await _document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(false);
var syntaxFactory = _document.Project.Solution.Workspace.Services.GetLanguageServices(_state.TypeToGenerateIn.Language).GetService<SyntaxGenerator>();
if (_generateProperty)
@@ -387,9 +387,9 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateParameterizedMem
methodKind: State.MethodKind);
// Ensure no conflicts between type parameter names and parameter names.
- var languageServiceProvider = this.Document.Project.Solution.Workspace.Services.GetLanguageServices(this.State.TypeToGenerateIn.Language);
+ //var languageServiceProvider = this.Document.Project.Solution.Workspace.Services.GetLanguageServices(this.State.TypeToGenerateIn.Language);
- var equalityComparer = true ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase;
+ var equalityComparer = StringComparer.Ordinal;
var reservedParameterNames = this.DetermineParameterNames(cancellationToken).ToSet(equalityComparer);
var newTypeParameterNames = NameGenerator.EnsureUniqueness(
method.TypeParameters.Select(t => t.Name).ToList(), n => !reservedParameterNames.Contains(n));
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/CSharpGenerateParameterizedMemberService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/CSharpGenerateParameterizedMemberService.cs
index f6784ece1a..ad3462c2ce 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/CSharpGenerateParameterizedMemberService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateParameterizedMember/CSharpGenerateParameterizedMemberService.cs
@@ -74,7 +74,7 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateMember.GenerateParameterizedMem
// TODO(cyrusn): If we do capture method type variables, then we should probably
// capture their constraints as well.
var genericName = (GenericNameSyntax)this.State.SimpleNameOpt;
- var semanticModel = this.Document.SemanticModel;
+ //var semanticModel = this.Document.SemanticModel;
if (genericName.TypeArgumentList.Arguments.Count == 1)
{
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateVariable/AbstractGenerateVariableService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateVariable/AbstractGenerateVariableService.cs
index 5fd6fa0c95..d9791c3f44 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateVariable/AbstractGenerateVariableService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateMember/GenerateVariable/AbstractGenerateVariableService.cs
@@ -143,7 +143,7 @@ namespace Microsoft.CodeAnalysis.GenerateMember.GenerateVariable
private partial class GenerateVariableCodeAction : CodeAction
{
- private readonly TService _service;
+ //private readonly TService _service;
private readonly State _state;
private readonly bool _generateProperty;
private readonly bool _isReadonly;
@@ -159,7 +159,7 @@ namespace Microsoft.CodeAnalysis.GenerateMember.GenerateVariable
bool isReadonly,
bool isConstant)
{
- _service = service;
+ //_service = service;
_document = document;
_state = state;
_generateProperty = generateProperty;
@@ -170,7 +170,6 @@ namespace Microsoft.CodeAnalysis.GenerateMember.GenerateVariable
protected override async Task<Document> GetChangedDocumentAsync(CancellationToken cancellationToken)
{
- var syntaxTree = await _document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(false);
var generateUnsafe = _state.TypeMemberType.IsUnsafe() &&
!_state.IsContainedInUnsafeType;
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateType/AbstractGenerateTypeService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateType/AbstractGenerateTypeService.cs
index bfe8d37073..ec95fb8916 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateType/AbstractGenerateTypeService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/GenerateType/AbstractGenerateTypeService.cs
@@ -102,11 +102,11 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateType
State state,
CancellationToken cancellationToken)
{
- var generateNewTypeInDialog = false;
+ //var generateNewTypeInDialog = false;
if (state.NamespaceToGenerateInOpt != null) {
var workspace = document.Project.Solution.Workspace;
if (workspace == null || workspace.CanApplyChange (ApplyChangesKind.AddDocument)) {
- generateNewTypeInDialog = true;
+ //generateNewTypeInDialog = true;
yield return new GenerateTypeCodeAction ((TService)this, document.Document, state, intoNamespace: true, inNewFile: true);
}
@@ -308,7 +308,7 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateType
bool inNewFile,
string destination)
{
- var finalName = GetTypeName (state);
+ //var finalName = GetTypeName (state);
if (inNewFile) {
return string.Format (Resources.GenerateForInNewFile,
@@ -375,7 +375,7 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateType
public override object GetOptions (CancellationToken cancellationToken)
{
- var typeKindValue = GetTypeKindOption (_state);
+ //var typeKindValue = GetTypeKindOption (_state);
var isPublicOnlyAccessibility = IsPublicOnlyAccessibility (_state, _document.Project);
// TODO : Callback
@@ -1002,7 +1002,7 @@ namespace ICSharpCode.NRefactory6.CSharp.GenerateType
private async Task<IEnumerable<CodeActionOperation>> GetGenerateIntoTypeOperationsAsync (INamedTypeSymbol namedType)
{
- var codeGenService = GetCodeGenerationService ();
+ //var codeGenService = GetCodeGenerationService ();
var solution = _document.Project.Solution;
var codeGenResult = await CodeGenerator.AddNamedTypeDeclarationAsync (
solution,
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ImplementInterface/AbstractImplementInterfaceService.CodeAction_Property.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ImplementInterface/AbstractImplementInterfaceService.CodeAction_Property.cs
index 1cd6f18d37..9407b332d6 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ImplementInterface/AbstractImplementInterfaceService.CodeAction_Property.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/ImplementInterface/AbstractImplementInterfaceService.CodeAction_Property.cs
@@ -27,7 +27,7 @@ namespace ICSharpCode.NRefactory6.CSharp.Features.ImplementInterface
string memberName,
CancellationToken cancellationToken)
{
- var factory = this.Document.GetLanguageService<SyntaxGenerator>();
+ //var factory = this.Document.GetLanguageService<SyntaxGenerator>();
var comAliasNameAttribute = compilation.ComAliasNameAttributeType();
var getAccessor = property.GetMethod == null
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/IndentEngine/CSharpIndentEngine.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/IndentEngine/CSharpIndentEngine.cs
index 78f74d6483..73e34cca72 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/IndentEngine/CSharpIndentEngine.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/IndentEngine/CSharpIndentEngine.cs
@@ -258,9 +258,6 @@ namespace ICSharpCode.NRefactory6.CSharp
/// <summary>
/// Creates a new CSharpIndentEngine instance.
/// </summary>
- /// <param name="document">
- /// An instance of <see cref="SourceText"/> which is being parsed.
- /// </param>
/// <param name="formattingOptions">
/// C# formatting options.
/// </param>
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/SemanticHighlighting/SemanticHighlightingVisitor.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/SemanticHighlighting/SemanticHighlightingVisitor.cs
index 57ca008039..a948b2495f 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/SemanticHighlighting/SemanticHighlightingVisitor.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Features/SemanticHighlighting/SemanticHighlightingVisitor.cs
@@ -27,6 +27,7 @@ using Microsoft.CodeAnalysis.Text;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using MonoDevelop.Ide.TypeSystem;
using MonoDevelop.Core.Text;
+using System.Text.RegularExpressions;
namespace ICSharpCode.NRefactory6.CSharp.Analysis
{
@@ -85,6 +86,15 @@ namespace ICSharpCode.NRefactory6.CSharp.Analysis
protected TColor stringFormatItemColor;
+ protected TColor stringRegexCharacterClass;
+ protected TColor stringRegexGroupingConstructs;
+ protected TColor stringRegexSetConstructs;
+ protected TColor stringRegexComments;
+ protected TColor stringRegexEscapeCharacter;
+ protected TColor stringRegexAltEscapeCharacter;
+
+ protected TColor stringRegexErrors;
+
protected TextSpan region;
protected SemanticModel semanticModel;
@@ -167,34 +177,218 @@ namespace ICSharpCode.NRefactory6.CSharp.Analysis
public override void VisitInvocationExpression(InvocationExpressionSyntax node)
{
- var symbolInfo = semanticModel.GetSymbolInfo(node.Expression, cancellationToken);
-
- if (IsInactiveConditional (symbolInfo.Symbol) || IsEmptyPartialMethod(symbolInfo.Symbol, cancellationToken)) {
+ var symbolInfo = semanticModel.GetSymbolInfo (node.Expression, cancellationToken);
+
+ if (IsInactiveConditional (symbolInfo.Symbol) || IsEmptyPartialMethod (symbolInfo.Symbol, cancellationToken)) {
// mark the whole invocation statement as inactive code
- Colorize(node.Span, inactiveCodeColor);
+ Colorize (node.Span, inactiveCodeColor);
return;
}
if (node.Expression.IsKind (SyntaxKind.IdentifierName) && symbolInfo.Symbol == null) {
var id = (IdentifierNameSyntax)node.Expression;
if (id.Identifier.ValueText == "nameof") {
- Colorize(id.Span, nameofKeywordColor);
+ Colorize (id.Span, nameofKeywordColor);
}
}
ExpressionSyntax fmtArgumets;
IList<ExpressionSyntax> args;
- if (node.ArgumentList.Arguments.Count > 1 && FormatStringHelper.TryGetFormattingParameters(semanticModel, node, out fmtArgumets, out args, null, cancellationToken)) {
- var expr = node.ArgumentList.Arguments.First();
+ if (node.ArgumentList.Arguments.Count > 1 && FormatStringHelper.TryGetFormattingParameters (semanticModel, node, out fmtArgumets, out args, null, cancellationToken)) {
+ var expr = node.ArgumentList.Arguments.First ();
if (expr != null) {
var literalExpressionSyntax = expr.Expression as LiteralExpressionSyntax;
if (literalExpressionSyntax != null)
- HighlightStringFormatItems(literalExpressionSyntax);
+ HighlightStringFormatItems (literalExpressionSyntax);
+ }
+ }
+
+ var containingType = symbolInfo.Symbol?.ContainingType;
+ if (IsRegexMatchMethod (symbolInfo)) {
+ if (node.ArgumentList.Arguments.Count > 1) {
+ var pattern = node.ArgumentList.Arguments [1].Expression as LiteralExpressionSyntax;
+ if (pattern != null && pattern.IsKind (SyntaxKind.StringLiteralExpression)) {
+ ColorizeRegex (pattern);
+ }
+
}
}
- base.VisitInvocationExpression(node);
+ base.VisitInvocationExpression (node);
}
-
+
+ internal static bool IsRegexMatchMethod (SymbolInfo symbolInfo)
+ {
+ var symbol = symbolInfo.Symbol;
+ if (symbol == null)
+ return false;
+ return IsRegexType (symbol.ContainingType) && symbol.IsStatic && (symbol.Name == "IsMatch" || symbol.Name == "Match" || symbol.Name == "Matches");
+ }
+
+ public override void VisitObjectCreationExpression (ObjectCreationExpressionSyntax node)
+ {
+ base.VisitObjectCreationExpression (node);
+ var symbolInfo = semanticModel.GetSymbolInfo (node, cancellationToken);
+ if (IsRegexConstructor (symbolInfo)) {
+ if (node.ArgumentList.Arguments.Count > 0) {
+ var pattern = node.ArgumentList.Arguments [0].Expression as LiteralExpressionSyntax;
+ if (pattern != null && pattern.IsKind (SyntaxKind.StringLiteralExpression)) {
+ ColorizeRegex (pattern);
+ }
+ }
+ }
+ }
+
+ internal static bool IsRegexConstructor (SymbolInfo symbolInfo)
+ {
+ return symbolInfo.Symbol?.ContainingType is INamedTypeSymbol && IsRegexType (symbolInfo.Symbol.ContainingType);
+ }
+
+ internal static bool IsRegexType (INamedTypeSymbol containingType)
+ {
+ return containingType != null && containingType.Name == "Regex" && containingType.ContainingNamespace.GetFullName () == "System.Text.RegularExpressions";
+ }
+
+ void ColorizeRegex (LiteralExpressionSyntax literal)
+ {
+ string pattern = literal.Token.ToString ();
+ if (pattern.Length == 0)
+ return;
+ bool isVerbatim = pattern [0] == '@';
+ bool inSet = false, inGroup = false;
+ int lastEscape = -1;
+ for (int i = 1; i < pattern.Length - 1; i++) {
+ char ch = pattern [i];
+ switch (ch) {
+ case '\\':
+ var start = i;
+ i++;
+ if (!isVerbatim) {
+ if (pattern [i] == '\\') {
+ i++;
+ } else {
+ break;
+ }
+ }
+
+ switch (pattern[i]) {
+ case 'w':
+ case 'W':
+ case 's':
+ case 'S':
+ case 'd':
+ case 'D':
+ Colorize (new TextSpan (literal.SpanStart + start, i - start + 1), stringRegexCharacterClass);
+ break;
+ case 'A':
+ case 'Z':
+ case 'z':
+ case 'G':
+ case 'b':
+ case 'B':
+ // Anchor
+ Colorize (new TextSpan (literal.SpanStart + start, i - start + 1), stringRegexCharacterClass);
+ break;
+ default:
+ if (lastEscape == literal.SpanStart + start) {
+ Colorize (new TextSpan (literal.SpanStart + start, i - start + 1), stringRegexAltEscapeCharacter);
+ lastEscape = -1;
+ } else {
+ Colorize (new TextSpan (literal.SpanStart + start, i - start + 1), stringRegexEscapeCharacter);
+ lastEscape = literal.SpanStart + i + 1;
+ }
+ break;
+ }
+ break;
+ case '^':
+ if (inSet) {
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexSetConstructs);
+ } else {
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexCharacterClass);
+ }
+ break;
+ case '$':
+ // Anchor
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexCharacterClass);
+ break;
+ case '.':
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexCharacterClass);
+ break;
+ case '|':
+ // Alternate
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexCharacterClass);
+ break;
+ case '*':
+ case '+':
+ case '?':
+ // Quantifier
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexCharacterClass);
+ break;
+ case '{': {
+ var closingIndex = pattern.IndexOf ('}', i + 1);
+ if (closingIndex >= 0) {
+ // Quantifier
+ Colorize (new TextSpan (literal.SpanStart + i, closingIndex - i + 1), stringRegexCharacterClass);
+ i = closingIndex;
+ } else {
+ Colorize (new TextSpan (literal.SpanStart + i, pattern.Length - i), stringRegexErrors);
+ i = pattern.Length;
+ }
+ break;
+ }
+ case '[': {
+ var closingIndex = pattern.IndexOf (']', i + 1);
+ if (closingIndex < 0) {
+ Colorize (new TextSpan (literal.SpanStart + i, pattern.Length - i), stringRegexErrors);
+ i = pattern.Length;
+ break;
+ }
+ inSet = true;
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexSetConstructs);
+ }
+ break;
+ case ']':
+ inSet = false;
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexSetConstructs);
+ break;
+ case '-':
+ if (inSet)
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexSetConstructs);
+ break;
+ case '(':
+ if (i + 1 < pattern.Length && pattern[i + 1 ] == '?') {
+ if (i + 2 < pattern.Length && pattern[i + 2] == '#') {
+ var closingIndex = pattern.IndexOf (')', i + 2);
+ if (closingIndex < 0) {
+ Colorize (new TextSpan (literal.SpanStart + i, pattern.Length - i), stringRegexErrors);
+ i = pattern.Length;
+ break;
+ }
+ Colorize (new TextSpan (literal.SpanStart + i, closingIndex - i + 1), stringRegexComments);
+ i = closingIndex;
+ break;
+ }
+ Colorize (new TextSpan (literal.SpanStart + i, 2), stringRegexGroupingConstructs);
+ inGroup = true;
+ i++;
+ break;
+ }
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexGroupingConstructs);
+ break;
+ case '<':
+ case '>':
+ if (inGroup) {
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexGroupingConstructs);
+ }
+ break;
+ case ')':
+ inGroup = false;
+ Colorize (new TextSpan (literal.SpanStart + i, 1), stringRegexGroupingConstructs);
+ break;
+ }
+
+ }
+ }
+
bool IsInactiveConditional(ISymbol member)
{
if (member == null || member.Kind != SymbolKind.Method)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingPolicyPanel.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingPolicyPanel.cs
index 194a3d9cd5..8cff36c94c 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingPolicyPanel.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingPolicyPanel.cs
@@ -24,7 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
-using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Ide.Editor;
@@ -41,7 +41,7 @@ namespace MonoDevelop.CSharp.Formatting
TextEditorDisplayBinding.InitSourceEditor ();
}
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return panel = new CSharpFormattingPolicyPanelWidget ();
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs
index e23c050f4c..7aa90ca04e 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormattingProfileDialog.cs
@@ -37,7 +37,7 @@ using MonoDevelop.Ide.Gui.Content;
namespace MonoDevelop.CSharp.Formatting
{
- partial class CSharpFormattingProfileDialog : Dialog
+ partial class CSharpFormattingProfileDialog : Gtk.Dialog
{
readonly TextEditor texteditor = TextEditorFactory.CreateNewEditor ();
readonly CSharpFormattingPolicy profile;
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs
index 6e30529165..d1633673de 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs
@@ -203,7 +203,15 @@ namespace MonoDevelop.CSharp.Highlighting
stringFormatItemColor = ColorScheme.StringFormatItemsKey;
nameofKeywordColor = ColorScheme.KeywordOtherKey;
- whenKeywordColor = ColorScheme.KeywordOtherKey;
+ whenKeywordColor = ColorScheme.KeywordOtherKey;
+
+ stringRegexCharacterClass = ColorScheme.RegexCharacterClassKey;
+ stringRegexGroupingConstructs = ColorScheme.RegexGroupingConstructsKey;
+ stringRegexSetConstructs = ColorScheme.RegexSetConstructsKey;
+ stringRegexErrors = ColorScheme.SyntaxErrorKey;
+ stringRegexComments = ColorScheme.CommentsSingleLineKey;
+ stringRegexEscapeCharacter = ColorScheme.RegexEscapeCharacterKey;
+ stringRegexAltEscapeCharacter = ColorScheme.RegexAltEscapeCharacterKey;
}
protected override void Colorize (TextSpan span, string color)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/TypeSystemProvider.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/TypeSystemProvider.cs
index 86f2cfc180..8184a6a1dc 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/TypeSystemProvider.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/TypeSystemProvider.cs
@@ -38,7 +38,6 @@ namespace MonoDevelop.CSharp.Parser
{
sealed class TypeSystemParser : MonoDevelop.Ide.TypeSystem.TypeSystemParser
{
- static readonly List<Error> emptyList = new List<Error> ();
public override async System.Threading.Tasks.Task<ParsedDocument> Parse (MonoDevelop.Ide.TypeSystem.ParseOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))
{
var fileName = options.FileName;
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs
index 55da78fbe0..4c352ac059 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpCompilerParameters.cs
@@ -92,19 +92,19 @@ namespace MonoDevelop.CSharp.Project
[ItemProperty("WarningsNotAsErrors", DefaultValue="")]
string warningsNotAsErrors = "";
- protected override void Write (IPropertySet pset, string toolsVersion)
+ protected override void Write (IPropertySet pset)
{
pset.SetPropertyOrder ("DebugSymbols", "DebugType", "Optimize", "OutputPath", "DefineConstants", "ErrorReport", "WarningLevel", "TreatWarningsAsErrors", "DocumentationFile");
- base.Write (pset, toolsVersion);
+ base.Write (pset);
if (optimize.HasValue)
pset.SetValue ("Optimize", optimize.Value);
}
- protected override void Read (IMSBuildEvaluatedPropertyCollection pset, string toolsVersion)
+ protected override void Read (IPropertySet pset)
{
- base.Read (pset, toolsVersion);
+ base.Read (pset);
var prop = pset.GetProperty ("GenerateDocumentation");
if (prop != null && documentationFile != null) {
@@ -212,7 +212,8 @@ namespace MonoDevelop.CSharp.Project
return optimize ?? false;
}
set {
- optimize = value;
+ if (value != Optimize)
+ optimize = value;
}
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs
index 7dd7239f66..dcae550ed4 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CSharpProjectExtension.cs
@@ -109,7 +109,7 @@ namespace MonoDevelop.CSharp.Project
}
}
- protected override void OnReadConfiguration (ProgressMonitor monitor, ProjectConfiguration config, IMSBuildEvaluatedPropertyCollection pset)
+ protected override void OnReadConfiguration (ProgressMonitor monitor, ProjectConfiguration config, IPropertySet pset)
{
base.OnReadConfiguration (monitor, config, pset);
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CodeGenerationPanel.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CodeGenerationPanel.cs
index dfd6150b41..46f4287f6d 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CodeGenerationPanel.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CodeGenerationPanel.cs
@@ -27,8 +27,8 @@
//
using System;
+using MonoDevelop.Components;
using MonoDevelop.Projects;
-using Gtk;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.CSharp.Project
@@ -118,7 +118,7 @@ namespace MonoDevelop.CSharp.Project
{
CodeGenerationPanelWidget widget;
- public override Widget CreatePanelWidget()
+ public override Control CreatePanelWidget()
{
return widget = new CodeGenerationPanelWidget ();
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs
index dcbddc3bf8..26ebd30cca 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Project/CompilerOptionsPanelWidget.cs
@@ -30,6 +30,7 @@
using System;
using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Projects;
using MonoDevelop.Projects.Text;
@@ -230,7 +231,7 @@ namespace MonoDevelop.CSharp.Project
{
CompilerOptionsPanelWidget widget;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return (widget = new CompilerOptionsPanelWidget ((DotNetProject) ConfiguredProject));
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs
index 166a0d5466..a9bdaeea5b 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpCodeGenerator.cs
@@ -775,9 +775,9 @@ namespace MonoDevelop.CSharp.Refactoring
//if (options.ExplicitDeclaration || options.ImplementingType.Kind == TypeKind.Interface)
// return;
result.Append (GetModifiers (options.ImplementingType, options.Part, member));
- bool isFromInterface = false;
+ //bool isFromInterface = false;
if (member.ContainingType != null && member.ContainingType.TypeKind == TypeKind.Interface) {
- isFromInterface = true;
+ //isFromInterface = true;
// TODO: Type system conversion.
// if (options.ImplementingType != null) {
// foreach (var type in options.ImplementingType.BaseTypes) {
@@ -791,7 +791,6 @@ namespace MonoDevelop.CSharp.Refactoring
// }
}
if (member is IMethodSymbol) {
- var method = (IMethodSymbol)member;
if (!options.CreateProtocolMember)
result.Append ("override ");
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CodeGenerationService.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CodeGenerationService.cs
index 2485deb991..b4d271ca03 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CodeGenerationService.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CodeGenerationService.cs
@@ -157,7 +157,7 @@ namespace MonoDevelop.Refactoring
if (systemVoid != null) newMember = newMember.ReplaceNode (systemVoid, SyntaxFactory.ParseTypeName ("void"));
var newRoot = root.ReplaceNode (typeDecl, typeDecl.AddMembers ((MemberDeclarationSyntax)newMember.WithAdditionalAnnotations (Simplifier.Annotation, Formatter.Annotation, insertedMemberAnnotation)));
- var doc = IdeApp.Workbench.OpenDocument (part.SourceTree.FilePath, project, true);
+ var doc = await IdeApp.Workbench.OpenDocument (part.SourceTree.FilePath, project, true);
var policy = project.Policies.Get<CSharpFormattingPolicy> ("text/x-csharp");
var textPolicy = project.Policies.Get<TextStylePolicy> ("text/x-csharp");
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs
index f4cd6ae7d0..a063282156 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/ExtractMethodCommandHandler.cs
@@ -90,7 +90,7 @@ namespace MonoDevelop.CSharp.Refactoring
doc.Editor.RemoveText (extractionResult.MethodDeclarationNode.SpanStart, "private ".Length);
}
}
- doc.UpdateParseDocument ();
+ await doc.UpdateParseDocument ();
var info = RefactoringSymbolInfo.GetSymbolInfoAsync (doc, extractionResult.InvocationNameToken.Span.Start).Result;
var sym = info.DeclaredSymbol ?? info.Symbol;
if (sym != null)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindDerivedSymbolsHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindDerivedSymbolsHandler.cs
index bfa67762ff..e63f3f1b9c 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindDerivedSymbolsHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindDerivedSymbolsHandler.cs
@@ -60,23 +60,24 @@ namespace MonoDevelop.CSharp.Refactoring
public static void FindDerivedSymbols (ISymbol symbol)
{
- Task.Run (delegate {
+ Task.Run (async delegate {
using (var monitor = IdeApp.Workbench.ProgressMonitors.GetSearchProgressMonitor (true, true)) {
- IEnumerable<ISymbol> task;
-
+ IEnumerable<ISymbol> result;
if (symbol.ContainingType != null && symbol.ContainingType.TypeKind == TypeKind.Interface) {
- task = SymbolFinder.FindImplementationsAsync (symbol, TypeSystemService.Workspace.CurrentSolution).Result;
+ result = await SymbolFinder.FindImplementationsAsync (symbol, TypeSystemService.Workspace.CurrentSolution).ConfigureAwait (false);
} else if (symbol.Kind == SymbolKind.NamedType) {
var type = (INamedTypeSymbol)symbol;
if (type.TypeKind == TypeKind.Interface) {
- task = SymbolFinder.FindImplementationsAsync (symbol, TypeSystemService.Workspace.CurrentSolution).Result;
+ result = (await type.FindDerivedInterfacesAsync (TypeSystemService.Workspace.CurrentSolution).ConfigureAwait (false)).Cast<ISymbol> ().Concat (
+ await SymbolFinder.FindImplementationsAsync (symbol, TypeSystemService.Workspace.CurrentSolution).ConfigureAwait (false)
+ );
} else {
- task = type.FindDerivedClassesAsync (TypeSystemService.Workspace.CurrentSolution).Result.Cast<ISymbol> ();
+ result = (await type.FindDerivedClassesAsync (TypeSystemService.Workspace.CurrentSolution).ConfigureAwait (false)).Cast<ISymbol> ();
}
} else {
- task = SymbolFinder.FindOverridesAsync (symbol, TypeSystemService.Workspace.CurrentSolution).Result;
+ result = await SymbolFinder.FindOverridesAsync (symbol, TypeSystemService.Workspace.CurrentSolution).ConfigureAwait (false);
}
- foreach (var foundSymbol in task) {
+ foreach (var foundSymbol in result) {
foreach (var loc in foundSymbol.Locations)
monitor.ReportResult (new MemberReference (foundSymbol, loc.SourceTree.FilePath, loc.SourceSpan.Start, loc.SourceSpan.Length));
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs
index b1c0e5d15b..aa0f439781 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindReferencesHandler.cs
@@ -190,9 +190,8 @@ namespace MonoDevelop.CSharp.Refactoring
var info = RefactoringSymbolInfo.GetSymbolInfoAsync (doc, doc.Editor.CaretOffset).Result;
var sym = info.Symbol ?? info.DeclaredSymbol;
- var semanticModel = doc.ParsedDocument.GetAst<SemanticModel> ();
if (sym != null)
- FindRefs (sym, semanticModel.Compilation);
+ FindRefs (sym, info.Model.Compilation);
}
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Tooltips/LanguageItemTooltipProvider.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Tooltips/LanguageItemTooltipProvider.cs
index 5e79b19167..3a8919db6e 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Tooltips/LanguageItemTooltipProvider.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Tooltips/LanguageItemTooltipProvider.cs
@@ -99,7 +99,7 @@ namespace MonoDevelop.SourceEditor
#endregion
- public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Gdk.ModifierType modifierState)
+ public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState)
{
var doc = ctx;
if (doc == null)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs
index 1b9f73f259..c555fbd408 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpNavigationTextEditorExtension.cs
@@ -24,12 +24,115 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Microsoft.CodeAnalysis;
+using Microsoft.CodeAnalysis.CSharp;
+using Microsoft.CodeAnalysis.Text;
+using MonoDevelop.Ide.Editor.Extension;
+using System.Threading;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+using MonoDevelop.Ide;
+using MonoDevelop.Ide.Editor;
+using System.Linq;
+
namespace MonoDevelop.CSharp
{
- public class CSharpNavigationTextEditorExtension
+ class CSharpNavigationTextEditorExtension : AbstractNavigationExtension
{
- public CSharpNavigationTextEditorExtension ()
+ static List<NavigationSegment> emptyList = new List<NavigationSegment> ();
+
+ protected override async Task<IEnumerable<NavigationSegment>> RequestLinksAsync (int offset, int length, CancellationToken token)
{
+ var parsedDocument = DocumentContext.ParsedDocument;
+ if (parsedDocument == null)
+ return emptyList;
+ var model = parsedDocument.GetAst<SemanticModel> ();
+ if (model == null)
+ return emptyList;
+ try {
+ var visitor = new NavigationVisitor (DocumentContext, model, new TextSpan (offset, length), token);
+ visitor.Visit (await model.SyntaxTree.GetRootAsync (token).ConfigureAwait (false));
+ return visitor.result;
+ } catch (OperationCanceledException) {
+ return emptyList;
+ }
+ }
+
+ class NavigationVisitor : CSharpSyntaxWalker
+ {
+ SemanticModel model;
+ internal List<NavigationSegment> result = new List<NavigationSegment> ();
+
+ TextSpan region;
+ DocumentContext documentContext;
+ CancellationToken token;
+
+ public NavigationVisitor (DocumentContext documentContext, SemanticModel model, TextSpan region, CancellationToken token)
+ {
+ this.documentContext = documentContext;
+ this.model = model;
+ this.region = region;
+ this.token = token;
+ }
+
+ public override void VisitCompilationUnit (CompilationUnitSyntax node)
+ {
+ var startNode = node.DescendantNodesAndSelf (n => region.Start <= n.SpanStart).FirstOrDefault ();
+ if (startNode == node || startNode == null) {
+ base.VisitCompilationUnit (node);
+ } else {
+ this.Visit (startNode);
+ }
+ }
+
+ public override void Visit (SyntaxNode node)
+ {
+ if (node.Span.End < region.Start)
+ return;
+ if (node.Span.Start > region.End)
+ return;
+ base.Visit(node);
+ }
+
+ public override void VisitIdentifierName (IdentifierNameSyntax node)
+ {
+ var info = model.GetSymbolInfo (node);
+ if (IsNavigatable (info)) {
+ result.Add (new NavigationSegment (node.Span.Start, node.Span.Length, delegate {
+ GLib.Timeout.Add (50, delegate {
+ IdeApp.ProjectOperations.JumpToDeclaration (info.Symbol, documentContext.Project);
+ return false;
+ });
+ }));
+ }
+ }
+
+ static bool IsNavigatable (SymbolInfo info)
+ {
+ return info.Symbol != null && info.Symbol.Kind != SymbolKind.Namespace;
+ }
+
+ public override void VisitMemberAccessExpression (MemberAccessExpressionSyntax node)
+ {
+ var info = model.GetSymbolInfo (node);
+ if (IsNavigatable(info)) {
+ result.Add (new NavigationSegment (node.Name.Span.Start, node.Name.Span.Length, delegate {
+ GLib.Timeout.Add (50, delegate {
+ IdeApp.ProjectOperations.JumpToDeclaration (info.Symbol, documentContext.Project);
+ return false;
+ });
+ }));
+ }
+
+ base.VisitMemberAccessExpression (node);
+ }
+
+ public override void VisitBlock (BlockSyntax node)
+ {
+ token.ThrowIfCancellationRequested ();
+ base.VisitBlock (node);
+ }
}
}
}
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs
index cdad401c81..de58487e6b 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/DeclaredSymbolInfo.cs
@@ -32,7 +32,6 @@ using Roslyn.Utilities;
using Microsoft.CodeAnalysis;
using System;
using System.Linq;
-using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using System.Diagnostics;
@@ -402,7 +401,7 @@ namespace MonoDevelop.CSharp
struct DeclaredSymbolInfo
{
- internal Document Document;
+ internal DocumentId DocumentId;
public string FilePath { get; }
public string Name { get; }
@@ -470,14 +469,14 @@ namespace MonoDevelop.CSharp
}
Document GetDocument (CancellationToken token)
{
- var doc = type.Document;
+ var doc = type.DocumentId;
if (doc == null) {
var docId = TypeSystemService.GetDocuments (type.FilePath).FirstOrDefault ();
if (docId == null)
return null;
return TypeSystemService.GetCodeAnalysisDocument (docId, token);
}
- return doc;
+ return TypeSystemService.GetCodeAnalysisDocument (type.DocumentId, token);
}
public override async Task<TooltipInformation> GetTooltipInformation (CancellationToken token)
@@ -526,9 +525,9 @@ namespace MonoDevelop.CSharp
}
}
- public override string GetMarkupText (Widget widget)
+ public override string GetMarkupText ()
{
- return HighlightMatch (widget, useFullName ? type.FullyQualifiedContainerName : type.Name, match);
+ return HighlightMatch (useFullName ? type.FullyQualifiedContainerName : type.Name, match);
}
public DeclaredSymbolInfoResult (string match, string matchedString, int rank, DeclaredSymbolInfo type, bool useFullName) : base (match, matchedString, rank)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs
index 33eda94c5a..4a13d0bebc 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/PathedDocumentTextEditorExtension.cs
@@ -587,7 +587,7 @@ namespace MonoDevelop.CSharp
}
- public Gtk.Widget CreatePathWidget (int index)
+ public Control CreatePathWidget (int index)
{
PathEntry[] path = CurrentPath;
if (path == null || index < 0 || index >= path.Length)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/ProjectSearchCategory.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/ProjectSearchCategory.cs
index 18aeb4d240..b13b9e6977 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/ProjectSearchCategory.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/ProjectSearchCategory.cs
@@ -47,16 +47,14 @@ namespace MonoDevelop.CSharp
{
class ProjectSearchCategory : SearchCategory
{
- static Components.PopoverWindow widget;
-
internal static void Init ()
{
- MonoDevelopWorkspace.LoadingFinished += delegate {
- UpdateSymbolInfos ();
+ MonoDevelopWorkspace.LoadingFinished += async delegate {
+ await UpdateSymbolInfos ();
};
if (IdeApp.IsInitialized) {
- IdeApp.Workspace.LastWorkspaceItemClosed += delegate {
- DisposeSymbolInfoTask ();
+ IdeApp.Workspace.LastWorkspaceItemClosed += async delegate {
+ await DisposeSymbolInfoTask ();
};
}
}
@@ -68,31 +66,29 @@ namespace MonoDevelop.CSharp
public override void Initialize (Components.PopoverWindow popupWindow)
{
- widget = popupWindow;
- lastResult = new WorkerResult (popupWindow);
+ lastResult = new WorkerResult ();
}
internal static Task<SymbolCache> SymbolInfoTask;
- static TimerCounter getMembersTimer = InstrumentationService.CreateTimerCounter ("Time to get all members", "NavigateToDialog");
static TimerCounter getTypesTimer = InstrumentationService.CreateTimerCounter ("Time to get all types", "NavigateToDialog");
static CancellationTokenSource symbolInfoTokenSrc = new CancellationTokenSource();
- public static void UpdateSymbolInfos ()
+ public static async Task UpdateSymbolInfos ()
{
- DisposeSymbolInfoTask ();
+ await DisposeSymbolInfoTask ();
CancellationToken token = symbolInfoTokenSrc.Token;
SymbolInfoTask = Task.Run (delegate {
return GetSymbolInfos (token);
}, token);
}
- static void DisposeSymbolInfoTask ()
+ static async Task DisposeSymbolInfoTask ()
{
symbolInfoTokenSrc.Cancel ();
if (SymbolInfoTask != null) {
try {
- var old = SymbolInfoTask.Result;
+ var old = await SymbolInfoTask;
if (old != null)
old.Dispose ();
} catch (TaskCanceledException) {
@@ -102,7 +98,7 @@ namespace MonoDevelop.CSharp
}
}
symbolInfoTokenSrc = new CancellationTokenSource();
- lastResult = new WorkerResult (widget);
+ lastResult = new WorkerResult ();
SymbolInfoTask = null;
}
@@ -154,7 +150,7 @@ namespace MonoDevelop.CSharp
cancellationToken.ThrowIfCancellationRequested ();
DeclaredSymbolInfo declaredSymbolInfo;
if (current.TryGetDeclaredSymbolInfo (out declaredSymbolInfo)) {
- declaredSymbolInfo.Document = document;
+ declaredSymbolInfo.DocumentId = document.Id;
infos.Add (declaredSymbolInfo);
}
}
@@ -211,9 +207,9 @@ namespace MonoDevelop.CSharp
case WorkspaceChangeKind.DocumentChanged:
var doc = currentSolution.GetDocument (e.DocumentId);
if (doc != null) {
- Task.Run (async delegate {
+ await Task.Run (async delegate {
await UpdateDocument (documentInfos, doc, default (CancellationToken));
- });
+ }).ConfigureAwait (false);
}
break;
}
@@ -265,7 +261,7 @@ namespace MonoDevelop.CSharp
if (searchPattern.Tag != null && !(typeTags.Contains (searchPattern.Tag) || memberTags.Contains (searchPattern.Tag)) || searchPattern.HasLineNumber)
return null;
try {
- var newResult = new WorkerResult (widget);
+ var newResult = new WorkerResult ();
newResult.pattern = searchPattern.Pattern;
newResult.Tag = searchPattern.Tag;
List<DeclaredSymbolInfo> allTypes;
@@ -278,7 +274,7 @@ namespace MonoDevelop.CSharp
newResult.FullSearch = toMatch.IndexOf ('.') > 0;
var oldLastResult = lastResult;
if (newResult.FullSearch && oldLastResult != null && !oldLastResult.FullSearch)
- oldLastResult = new WorkerResult (widget);
+ oldLastResult = new WorkerResult ();
// var now = DateTime.Now;
AllResults (searchResultCallback, oldLastResult, newResult, allTypes, token);
@@ -295,8 +291,6 @@ namespace MonoDevelop.CSharp
void AllResults (ISearchResultCallback searchResultCallback, WorkerResult lastResult, WorkerResult newResult, IReadOnlyList<DeclaredSymbolInfo> completeTypeList, CancellationToken token)
{
- if (newResult.isGotoFilePattern)
- return;
uint x = 0;
// Search Types
newResult.filteredSymbols = new List<DeclaredSymbolInfo> ();
@@ -377,14 +371,13 @@ namespace MonoDevelop.CSharp
}
}
- public bool isGotoFilePattern;
public ResultsDataSource results;
public bool FullSearch;
public StringMatcher matcher;
- public WorkerResult (Widget widget)
+ public WorkerResult ()
{
- results = new ResultsDataSource (widget);
+ results = new ResultsDataSource ();
}
internal SearchResult CheckType (DeclaredSymbolInfo symbol)
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.JSon/JSonIndentEngine.cs b/main/src/addins/CSharpBinding/MonoDevelop.JSon/JSonIndentEngine.cs
index 895d6ea21d..baedfa03c4 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.JSon/JSonIndentEngine.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.JSon/JSonIndentEngine.cs
@@ -244,7 +244,6 @@ namespace MonoDevelop.JSon
}
SourceText sourceText;
- JSonIndentEngine jSonIndentEngine;
public SourceText Document {
get {
diff --git a/main/src/addins/CSharpBinding/Util/ConflictResolver.cs b/main/src/addins/CSharpBinding/Util/ConflictResolver.cs
index 03c541b703..760c1757be 100644
--- a/main/src/addins/CSharpBinding/Util/ConflictResolver.cs
+++ b/main/src/addins/CSharpBinding/Util/ConflictResolver.cs
@@ -45,12 +45,12 @@ namespace ICSharpCode.NRefactory6.CSharp
{
class ConflictResolution
{
- static Type typeInfo;
+ //static Type typeInfo;
internal object instance;
static ConflictResolution ()
{
- typeInfo = Type.GetType ("Microsoft.CodeAnalysis.Rename.ConflictEngine.ConflictResolution" + ReflectionNamespaces.WorkspacesAsmName, true);
+ //typeInfo = Type.GetType ("Microsoft.CodeAnalysis.Rename.ConflictEngine.ConflictResolution" + ReflectionNamespaces.WorkspacesAsmName, true);
}
@@ -63,12 +63,12 @@ namespace ICSharpCode.NRefactory6.CSharp
class RenameLocations
{
- static Type typeInfo;
+ //static Type typeInfo;
internal object instance;
static RenameLocations ()
{
- typeInfo = Type.GetType ("Microsoft.CodeAnalysis.Rename.RenameLocations" + ReflectionNamespaces.WorkspacesAsmName, true);
+ //typeInfo = Type.GetType ("Microsoft.CodeAnalysis.Rename.RenameLocations" + ReflectionNamespaces.WorkspacesAsmName, true);
}
diff --git a/main/src/addins/CSharpBinding/Util/CrefSyntaxExtensions.cs b/main/src/addins/CSharpBinding/Util/CrefSyntaxExtensions.cs
index 60df664057..1d80af7b2f 100644
--- a/main/src/addins/CSharpBinding/Util/CrefSyntaxExtensions.cs
+++ b/main/src/addins/CSharpBinding/Util/CrefSyntaxExtensions.cs
@@ -83,7 +83,7 @@ namespace ICSharpCode.NRefactory6.CSharp
if (symbol is INamespaceOrTypeSymbol)
{
- var namespaceOrTypeSymbol = (INamespaceOrTypeSymbol)symbol;
+ //var namespaceOrTypeSymbol = (INamespaceOrTypeSymbol)symbol;
// 1. Check for Predefined Types
if (symbol is INamedTypeSymbol)
diff --git a/main/src/addins/CSharpBinding/Util/IMethodSymbolExtensions.cs b/main/src/addins/CSharpBinding/Util/IMethodSymbolExtensions.cs
index c1e216e404..cdb3788d4f 100644
--- a/main/src/addins/CSharpBinding/Util/IMethodSymbolExtensions.cs
+++ b/main/src/addins/CSharpBinding/Util/IMethodSymbolExtensions.cs
@@ -158,8 +158,7 @@ namespace ICSharpCode.NRefactory6.CSharp
.Concat(method.Name)
.Concat(containingType.Name);
- var unusableNames = parameterNames.Concat(outerTypeParameterNames).ToSet(
- true ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase);
+ var unusableNames = parameterNames.Concat(outerTypeParameterNames).ToSet(StringComparer.Ordinal);
var newTypeParameterNames = NameGenerator.EnsureUniqueness(
method.TypeParameters.Select(tp => tp.Name).ToList(),
diff --git a/main/src/addins/CSharpBinding/Util/SymbolKeyExtensions.cs b/main/src/addins/CSharpBinding/Util/SymbolKeyExtensions.cs
index 9b801429ca..c190298089 100644
--- a/main/src/addins/CSharpBinding/Util/SymbolKeyExtensions.cs
+++ b/main/src/addins/CSharpBinding/Util/SymbolKeyExtensions.cs
@@ -34,7 +34,7 @@ namespace ICSharpCode.NRefactory6.CSharp
/// This entry point should only be called from the actual Symbol classes. It should not be
/// used internally inside this type. Instead, any time we need to get the <see cref="SymbolKey"/> for a
/// related symbol (i.e. the containing namespace of a namespace) we should call
- /// <see cref="GetOrCreate"/>. The benefit of this is twofold. First of all, it keeps the size of the
+ /// GetOrCreate. The benefit of this is twofold. First of all, it keeps the size of the
/// <see cref="SymbolKey"/> small by allowing up to reuse parts we've already created. For example, if we
/// have the <see cref="SymbolKey"/> for <c>Foo(int, int)</c>, then we will reuse the <see cref="SymbolKey"/>s for both <c>int</c>s.
/// Second, this allows us to deal with the recursive nature of MethodSymbols and
diff --git a/main/src/addins/CSharpBinding/Util/SyntaxNodeExtensions.cs b/main/src/addins/CSharpBinding/Util/SyntaxNodeExtensions.cs
index 98db1409f0..b93ece167e 100644
--- a/main/src/addins/CSharpBinding/Util/SyntaxNodeExtensions.cs
+++ b/main/src/addins/CSharpBinding/Util/SyntaxNodeExtensions.cs
@@ -1254,15 +1254,6 @@ namespace ICSharpCode.NRefactory6.CSharp
private static readonly Func<SyntaxTriviaList, int, SyntaxToken> s_findSkippedTokenForward =
(l, p) => FindTokenHelper.FindSkippedTokenForward(GetSkippedTokens(l), p);
- /// <summary>
- /// Look inside a trivia list for a skipped token that contains the given position.
- /// </summary>
- private static readonly Func<SyntaxTriviaList, int, SyntaxToken> s_findSkippedTokenBackward =
- (l, p) => FindTokenHelper.FindSkippedTokenBackward(GetSkippedTokens(l), p);
-
- /// <summary>
- /// return only skipped tokens
- /// </summary>
private static IEnumerable<SyntaxToken> GetSkippedTokens(SyntaxTriviaList list)
{
return list.Where(trivia => trivia.RawKind == (int)SyntaxKind.SkippedTokensTrivia)
diff --git a/main/src/addins/CSharpBinding/Util/TaskExtensions.cs b/main/src/addins/CSharpBinding/Util/TaskExtensions.cs
index c7f7b6d1bc..0b0ae8f69f 100644
--- a/main/src/addins/CSharpBinding/Util/TaskExtensions.cs
+++ b/main/src/addins/CSharpBinding/Util/TaskExtensions.cs
@@ -127,7 +127,7 @@ namespace ICSharpCode.NRefactory6.CSharp
{
return continuationFunction(t);
}
- catch (Exception e) //when (FatalError.ReportUnlessCanceled(e))
+ catch (Exception) //when (FatalError.ReportUnlessCanceled(e))
{
throw new InvalidOperationException ();
}
diff --git a/main/src/addins/CSharpBinding/Util/TypeExtensions.cs b/main/src/addins/CSharpBinding/Util/TypeExtensions.cs
index 7027bd58ee..86b8b0a5a5 100644
--- a/main/src/addins/CSharpBinding/Util/TypeExtensions.cs
+++ b/main/src/addins/CSharpBinding/Util/TypeExtensions.cs
@@ -43,6 +43,7 @@ namespace ICSharpCode.NRefactory6.CSharp
{
readonly static MethodInfo generateTypeSyntaxMethod;
readonly static MethodInfo findDerivedClassesAsyncMethod;
+ readonly static MethodInfo findDerivedInterfacesAsyncMethod;
static TypeExtensions()
{
@@ -51,8 +52,10 @@ namespace ICSharpCode.NRefactory6.CSharp
typeInfo = Type.GetType("Microsoft.CodeAnalysis.FindSymbols.DependentTypeFinder" + ReflectionNamespaces.WorkspacesAsmName, true);
findDerivedClassesAsyncMethod = typeInfo.GetMethod("FindDerivedClassesAsync", new[] { typeof(INamedTypeSymbol), typeof(Solution), typeof(IImmutableSet<Project>), typeof(CancellationToken) });
+ findDerivedInterfacesAsyncMethod = typeInfo.GetMethod("FindDerivedInterfacesAsync", new[] { typeof(INamedTypeSymbol), typeof(Solution), typeof(IImmutableSet<Project>), typeof(CancellationToken) });
}
+
public static TypeSyntax GenerateTypeSyntax(this ITypeSymbol typeSymbol, SyntaxAnnotation simplifierAnnotation = null)
{
var typeSyntax = (TypeSyntax)generateTypeSyntaxMethod.Invoke(null, new object[] { typeSymbol });
@@ -83,6 +86,11 @@ namespace ICSharpCode.NRefactory6.CSharp
return (Task<IEnumerable<INamedTypeSymbol>>)findDerivedClassesAsyncMethod.Invoke(null, new object[] { type, solution, projects, cancellationToken });
}
+ public static Task<IEnumerable<INamedTypeSymbol>> FindDerivedInterfacesAsync (this INamedTypeSymbol type, Solution solution, IImmutableSet<Project> projects = null, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ return (Task<IEnumerable<INamedTypeSymbol>>)findDerivedInterfacesAsyncMethod.Invoke(null, new object[] { type, solution, projects, cancellationToken });
+ }
+
public static bool IsNullableType(this ITypeSymbol type)
{
var original = type.OriginalDefinition;
diff --git a/main/src/addins/CSharpBinding/gtk-gui/generated.cs b/main/src/addins/CSharpBinding/gtk-gui/generated.cs
index 3285e87c05..aec72da2fc 100644
--- a/main/src/addins/CSharpBinding/gtk-gui/generated.cs
+++ b/main/src/addins/CSharpBinding/gtk-gui/generated.cs
@@ -6,9 +6,10 @@ namespace Stetic
{
private static bool initialized;
- internal static void Initialize (Gtk.Widget iconRenderer)
+ internal static void Initialize(Gtk.Widget iconRenderer)
{
- if ((Stetic.Gui.initialized == false)) {
+ if ((Stetic.Gui.initialized == false))
+ {
Stetic.Gui.initialized = true;
}
}
diff --git a/main/src/addins/ChangeLogAddIn/AddLogEntryDialog.cs b/main/src/addins/ChangeLogAddIn/AddLogEntryDialog.cs
index 9b96e905d6..46985bc20e 100644
--- a/main/src/addins/ChangeLogAddIn/AddLogEntryDialog.cs
+++ b/main/src/addins/ChangeLogAddIn/AddLogEntryDialog.cs
@@ -35,7 +35,7 @@ using MonoDevelop.Ide.Fonts;
namespace MonoDevelop.ChangeLogAddIn
{
- partial class AddLogEntryDialog : Dialog
+ partial class AddLogEntryDialog : Gtk.Dialog
{
readonly ListStore store;
readonly Dictionary<ChangeLogEntry, string> changes = new Dictionary<ChangeLogEntry, string> ();
diff --git a/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.cs b/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.cs
index 5bfcd63773..4b6aefb313 100644
--- a/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.cs
+++ b/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.cs
@@ -36,6 +36,7 @@ using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Ide.Gui.Pads.ProjectPad;
using MonoDevelop.Ide;
using MonoDevelop.Ide.Editor;
+using System.Threading.Tasks;
namespace MonoDevelop.ChangeLogAddIn
{
@@ -46,9 +47,9 @@ namespace MonoDevelop.ChangeLogAddIn
public class InsertEntryHandler : CommandHandler
{
- protected override void Run()
+ protected override async void Run()
{
- Document document = GetActiveChangeLogDocument();
+ Document document = await GetActiveChangeLogDocument();
if (document == null) return;
if (InsertHeader(document))
@@ -145,7 +146,7 @@ namespace MonoDevelop.ChangeLogAddIn
return text.IndexOf (eol + eol, StringComparison.Ordinal);
}
- static Document GetActiveChangeLogDocument()
+ static async Task<Document> GetActiveChangeLogDocument()
{
string file = GetSelectedFile ();
if (file == null)
@@ -160,7 +161,7 @@ namespace MonoDevelop.ChangeLogAddIn
return null;
if (File.Exists (clog))
- return IdeApp.Workbench.OpenDocument (clog, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
+ return await IdeApp.Workbench.OpenDocument (clog, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
Document document = IdeApp.Workbench.NewDocument (clog, "text/plain", "");
document.Save();
diff --git a/main/src/addins/ChangeLogAddIn/ProjectOptionPanel.cs b/main/src/addins/ChangeLogAddIn/ProjectOptionPanel.cs
index 12a02a3337..43acbf321f 100644
--- a/main/src/addins/ChangeLogAddIn/ProjectOptionPanel.cs
+++ b/main/src/addins/ChangeLogAddIn/ProjectOptionPanel.cs
@@ -25,7 +25,7 @@
//
//
-using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Projects;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Dialogs;
@@ -36,7 +36,7 @@ namespace MonoDevelop.ChangeLogAddIn
{
ProjectOptionPanelWidget widget;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return widget = new ProjectOptionPanelWidget (this);
}
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/BasicOptionPanel.cs b/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/BasicOptionPanel.cs
index 6b9f1f7555..64a564bcff 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/BasicOptionPanel.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/BasicOptionPanel.cs
@@ -1,5 +1,5 @@
-
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Projects;
@@ -13,7 +13,7 @@ namespace MonoDevelop.Deployment.Linux
{
}
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return (widget = new BasicOptionPanelWidget ((Project) ConfiguredSolutionItem, false));
}
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopDisplayBinding.cs b/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopDisplayBinding.cs
index 1b33518c28..c965434b68 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopDisplayBinding.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopDisplayBinding.cs
@@ -16,7 +16,7 @@ namespace MonoDevelop.Deployment.Linux
|| (mimeType != null && mimeType == "application/x-desktop");
}
- public IViewContent CreateContent (FilePath fileName, string mimeType, Project ownerProject)
+ public ViewContent CreateContent (FilePath fileName, string mimeType, Project ownerProject)
{
return new DotDesktopView ();
}
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopView.cs b/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopView.cs
index 73d0cad10f..6a3e10d45d 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopView.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux/DotDesktopView.cs
@@ -1,10 +1,12 @@
using System;
+using MonoDevelop.Components;
+using System.Threading.Tasks;
using MonoDevelop.Ide.Gui;
namespace MonoDevelop.Deployment.Linux
{
- public class DotDesktopView: AbstractViewContent
+ public class DotDesktopView: ViewContent
{
DotDesktopViewWidget widget;
DesktopEntry entry;
@@ -25,20 +27,22 @@ namespace MonoDevelop.Deployment.Linux
}
}
- public override void Load (FileOpenInformation fileOpenInformation)
+ public override Task Load (FileOpenInformation fileOpenInformation)
{
ContentName = fileOpenInformation.FileName;
entry.Load (fileOpenInformation.FileName);
widget.DesktopEntry = entry;
+ return Task.FromResult (true);
}
- public override void Save (FileSaveInformation fileSaveInformation)
+ public override Task Save (FileSaveInformation fileSaveInformation)
{
entry.Save (fileSaveInformation.FileName);
IsDirty = false;
+ return Task.FromResult (true);
}
- public override Gtk.Widget Control {
+ public override Control Control {
get { return widget; }
}
}
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs
index 6c1ccf3e44..ebb504dd5b 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs
@@ -35,11 +35,9 @@ namespace MonoDevelop.Deployment
get { return packages; }
}
- protected override SolutionItemConfiguration OnCreateConfiguration (string name, ConfigurationKind kind)
+ protected override SolutionItemConfiguration OnCreateConfiguration (string id, ConfigurationKind kind)
{
- PackagingProjectConfiguration conf = new PackagingProjectConfiguration ();
- conf.Name = name;
- return conf;
+ return new PackagingProjectConfiguration (id);
}
protected override Task<BuildResult> OnClean (ProgressMonitor monitor, ConfigurationSelector configuration, OperationContext operationContext)
@@ -75,5 +73,8 @@ namespace MonoDevelop.Deployment
public class PackagingProjectConfiguration : SolutionItemConfiguration
{
+ public PackagingProjectConfiguration (string id) : base (id)
+ {
+ }
}
}
diff --git a/main/src/addins/ILAsmBinding/Gui/CompilerParametersPanelWidget.cs b/main/src/addins/ILAsmBinding/Gui/CompilerParametersPanelWidget.cs
index 9bf943be95..e4fa67756f 100644
--- a/main/src/addins/ILAsmBinding/Gui/CompilerParametersPanelWidget.cs
+++ b/main/src/addins/ILAsmBinding/Gui/CompilerParametersPanelWidget.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Projects;
using Gtk;
@@ -67,7 +68,7 @@ namespace ILAsmBinding
{
CompilerParametersPanelWidget widget;
- public override Widget CreatePanelWidget()
+ public override Control CreatePanelWidget()
{
return widget = new CompilerParametersPanelWidget ();
}
diff --git a/main/src/addins/MacPlatform/MacInterop/ProcessManager.cs b/main/src/addins/MacPlatform/MacInterop/ProcessManager.cs
index 2f2cb30610..1de2daa783 100644
--- a/main/src/addins/MacPlatform/MacInterop/ProcessManager.cs
+++ b/main/src/addins/MacPlatform/MacInterop/ProcessManager.cs
@@ -64,6 +64,11 @@ namespace MonoDevelop.MacInterop
return runningApp.Terminate ();
}
+ public static bool IsRunning (int pid)
+ {
+ return NSRunningApplication.GetRunningApplication (pid) != null;
+ }
+
enum OSStatus
{
Ok = 0
diff --git a/main/src/addins/MacPlatform/MacPlatform.cs b/main/src/addins/MacPlatform/MacPlatform.cs
index 1b01113527..4c5cd8c270 100644
--- a/main/src/addins/MacPlatform/MacPlatform.cs
+++ b/main/src/addins/MacPlatform/MacPlatform.cs
@@ -67,10 +67,6 @@ namespace MonoDevelop.MacIntegration
public MacPlatformService ()
{
- string safe64 = Environment.GetEnvironmentVariable ("MONODEVELOP_64BIT_SAFE");
- if (string.IsNullOrEmpty (safe64) && IntPtr.Size == 8)
- throw new Exception ("Mac integration is not yet 64-bit safe");
-
if (initedGlobal)
throw new Exception ("Only one MacPlatformService instance allowed");
initedGlobal = true;
@@ -641,11 +637,12 @@ namespace MonoDevelop.MacIntegration
}
}
- public override Gdk.Rectangle GetUsableMonitorGeometry (Gdk.Screen screen, int monitor)
+ public override Xwt.Rectangle GetUsableMonitorGeometry (int screenNumber, int monitorNumber)
{
- Gdk.Rectangle ygeometry = screen.GetMonitorGeometry (monitor);
+ var screen = Gdk.Display.Default.GetScreen (screenNumber);
+ Gdk.Rectangle ygeometry = screen.GetMonitorGeometry (monitorNumber);
Gdk.Rectangle xgeometry = screen.GetMonitorGeometry (0);
- NSScreen nss = NSScreen.Screens[monitor];
+ NSScreen nss = NSScreen.Screens[monitorNumber];
var visible = nss.VisibleFrame;
var frame = nss.Frame;
@@ -677,10 +674,10 @@ namespace MonoDevelop.MacIntegration
width = NMath.Min (visible.Width, frame.Width);
x = NMath.Max (visible.X, frame.X);
- return new Gdk.Rectangle ((int) x, (int) y, (int) width, (int) height);
+ return new Xwt.Rectangle ((int) x, (int) y, (int) width, (int) height);
}
- public override void GrabDesktopFocus (Gtk.Window window)
+ internal override void GrabDesktopFocus (Gtk.Window window)
{
window.Present ();
NSApplication.SharedApplication.ActivateIgnoringOtherApps (true);
@@ -769,7 +766,7 @@ namespace MonoDevelop.MacIntegration
return new FdoRecentFiles (UserProfile.Current.LocalConfigDir.Combine ("RecentlyUsed.xml"));
}
- public override bool GetIsFullscreen (Gtk.Window window)
+ public override bool GetIsFullscreen (Window window)
{
if (MacSystemInformation.OsVersion < MacSystemInformation.Lion) {
return base.GetIsFullscreen (window);
@@ -779,7 +776,7 @@ namespace MonoDevelop.MacIntegration
return (nswin.StyleMask & NSWindowStyle.FullScreenWindow) != 0;
}
- public override void SetIsFullscreen (Gtk.Window window, bool isFullscreen)
+ public override void SetIsFullscreen (Window window, bool isFullscreen)
{
if (MacSystemInformation.OsVersion < MacSystemInformation.Lion) {
base.SetIsFullscreen (window, isFullscreen);
@@ -799,7 +796,7 @@ namespace MonoDevelop.MacIntegration
return toplevels.Any (t => (t.Value != null && t.Value.Modal && t.Value.Visible) || (t.Key.IsVisible && (t.Key is NSPanel)));
}
- public override void AddChildWindow (Gtk.Window parent, Gtk.Window child)
+ internal override void AddChildWindow (Gtk.Window parent, Gtk.Window child)
{
NSWindow w = GtkQuartz.GetWindow (parent);
child.Realize ();
@@ -808,7 +805,7 @@ namespace MonoDevelop.MacIntegration
w.AddChildWindow (overlay, NSWindowOrderingMode.Above);
}
- public override void PlaceWindow (Gtk.Window window, int x, int y, int width, int height)
+ internal override void PlaceWindow (Gtk.Window window, int x, int y, int width, int height)
{
if (window.GdkWindow == null)
return; // Not yet realized
diff --git a/main/src/addins/MacPlatform/MacPlatform.csproj b/main/src/addins/MacPlatform/MacPlatform.csproj
index 3925e60283..f0a81fcfbd 100644
--- a/main/src/addins/MacPlatform/MacPlatform.csproj
+++ b/main/src/addins/MacPlatform/MacPlatform.csproj
@@ -135,9 +135,10 @@
<Compile Include="MainToolbar\ButtonBar.cs" />
<Compile Include="MainToolbar\SelectorView.cs" />
<Compile Include="MainToolbar\StatusBar.cs" />
- <Compile Include="MainToolbar\CenteringSpace.cs" />
<Compile Include="MainToolbar\CALayerExtensions.cs" />
<Compile Include="MainToolbar\VerticallyCenteredTextFieldCell.cs" />
+ <Compile Include="MainToolbar\AwesomeBar.cs" />
+ <Compile Include="MainToolbar\ButtonBarContainer.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
diff --git a/main/src/addins/MacPlatform/MainToolbar/AwesomeBar.cs b/main/src/addins/MacPlatform/MainToolbar/AwesomeBar.cs
new file mode 100644
index 0000000000..6e1f8957b2
--- /dev/null
+++ b/main/src/addins/MacPlatform/MainToolbar/AwesomeBar.cs
@@ -0,0 +1,107 @@
+//
+// AwesomeBar.cs
+//
+// Author:
+// iain <iain@xamarin.com>
+//
+// Copyright (c) 2015 Copyright © 2015 Xamarin, Inc
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using AppKit;
+using Foundation;
+using CoreGraphics;
+
+namespace MonoDevelop.MacIntegration.MainToolbar
+{
+ public class AwesomeBar : NSView
+ {
+ internal RunButton RunButton { get; set; }
+ internal SelectorView SelectorView { get; set; }
+ internal StatusBar StatusBar { get; set; }
+ internal SearchBar SearchBar { get; set; }
+ internal ButtonBarContainer ButtonBarContainer { get; private set; }
+
+ public AwesomeBar ()
+ {
+ RunButton = new RunButton ();
+ AddSubview (RunButton);
+
+ SelectorView = new SelectorView ();
+ SelectorView.SizeChanged += (object sender, EventArgs e) => UpdateLayout ();
+ AddSubview (SelectorView);
+
+ ButtonBarContainer = new ButtonBarContainer ();
+ ButtonBarContainer.SizeChanged += (object sender, EventArgs e) => UpdateLayout ();
+ AddSubview (ButtonBarContainer);
+
+ StatusBar = new StatusBar ();
+ AddSubview (StatusBar);
+
+ SearchBar = new SearchBar ();
+ AddSubview (SearchBar);
+ }
+
+ const float toolbarPadding = 8.0f;
+ const float maxSearchBarWidth = 270.0f;
+ const float minSearchBarWidth = 150.0f;
+ const float maxStatusBarWidth = 700.0f;
+ const float minStatusBarWidth = 220.0f;
+ const float runButtonWidth = 38.0f;
+ public const float ToolbarWidgetHeight = 25.0f;
+
+ void UpdateLayout ()
+ {
+ RunButton.Frame = new CGRect (toolbarPadding, 0, runButtonWidth, ToolbarWidgetHeight);
+ var statusbarWidth = Math.Max (Math.Min (Frame.Width * 0.3, maxStatusBarWidth), minStatusBarWidth);
+ var searchbarWidth = maxSearchBarWidth;
+ if (statusbarWidth < searchbarWidth) {
+ searchbarWidth = minSearchBarWidth;
+ }
+
+ // We only need to work out the width on the left side of the window because the statusbar is centred
+ // Gap + RunButton.Width + Gap + ButtonBar.Width + Gap + Half of StatusBar.Width
+ var spaceLeft = (Frame.Width / 2) - (toolbarPadding + runButtonWidth + toolbarPadding + ButtonBarContainer.Frame.Width + toolbarPadding + (statusbarWidth / 2));
+ StatusBar.Frame = new CGRect ((Frame.Width - statusbarWidth) / 2, 0, statusbarWidth, ToolbarWidgetHeight);
+ SearchBar.Frame = new CGRect (Frame.Width - searchbarWidth - 10, 0, searchbarWidth, ToolbarWidgetHeight);
+
+ var selectorSize = SelectorView.SizeThatFits (new CGSize (spaceLeft, ToolbarWidgetHeight));
+
+ SelectorView.Frame = new CGRect (toolbarPadding + runButtonWidth + toolbarPadding, 0, selectorSize.Width, ToolbarWidgetHeight);
+
+ ButtonBarContainer.SetFrameOrigin (new CGPoint(SelectorView.Frame.GetMaxX () + toolbarPadding, 0));
+
+ // Finally check if the StatusBar overlaps the ButtonBarContainer (and its padding) and adjust is accordingly
+ if (StatusBar.Frame.IntersectsWith (ButtonBarContainer.Frame.Inset (-toolbarPadding, 0))) {
+ StatusBar.SetFrameOrigin (new CGPoint (ButtonBarContainer.Frame.GetMaxX () + toolbarPadding, StatusBar.Frame.Y));
+ }
+ }
+
+ public override CGRect Frame {
+ get {
+ return base.Frame;
+ }
+ set {
+ base.Frame = value;
+ UpdateLayout ();
+ }
+ }
+ }
+}
+
diff --git a/main/src/addins/MacPlatform/MainToolbar/ButtonBarContainer.cs b/main/src/addins/MacPlatform/MainToolbar/ButtonBarContainer.cs
new file mode 100644
index 0000000000..87eaabfd1b
--- /dev/null
+++ b/main/src/addins/MacPlatform/MainToolbar/ButtonBarContainer.cs
@@ -0,0 +1,93 @@
+//
+// ButtonBarContainer.cs
+//
+// Author:
+// iain holmes <iain@xamarin.com>
+//
+// Copyright (c) 2015 Xamarin, Inc
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using AppKit;
+using CoreGraphics;
+
+namespace MonoDevelop.MacIntegration.MainToolbar
+{
+ public class ButtonBarContainer : NSView
+ {
+ internal event EventHandler<EventArgs> SizeChanged;
+
+ List<ButtonBar> buttonBars;
+ internal List<ButtonBar> ButtonBars {
+ get {
+ return buttonBars;
+ }
+
+ set {
+ if (buttonBars != null) {
+ foreach (var bar in buttonBars) {
+ bar.ResizeRequested -= ResizeRequested;
+ bar.RemoveFromSuperview ();
+ }
+ }
+
+ buttonBars = value;
+ foreach (var bar in buttonBars) {
+ bar.ResizeRequested += ResizeRequested;
+ AddSubview (bar);
+ }
+
+ LayoutButtonBars ();
+ }
+ }
+
+ public ButtonBarContainer ()
+ {
+ }
+
+ const float segmentWidth = 33.0f;
+ const float buttonBarSpacing = 8.0f;
+ const float extraPadding = 6.0f;
+
+ void ResizeRequested (object sender, EventArgs e)
+ {
+ LayoutButtonBars ();
+ }
+
+ void LayoutButtonBars ()
+ {
+ nfloat nextX = 0;
+
+ foreach (ButtonBar bar in buttonBars) {
+ var frame = new CGRect (nextX, 0, extraPadding + (bar.SegmentCount * segmentWidth), AwesomeBar.ToolbarWidgetHeight);
+ bar.Frame = frame;
+
+ nextX = frame.GetMaxX () + buttonBarSpacing;
+ }
+
+ SetFrameSize (new CGSize (nextX - buttonBarSpacing, AwesomeBar.ToolbarWidgetHeight));
+
+ if (SizeChanged != null) {
+ SizeChanged (this, EventArgs.Empty);
+ }
+ }
+ }
+}
+
diff --git a/main/src/addins/MacPlatform/MainToolbar/CenteringSpace.cs b/main/src/addins/MacPlatform/MainToolbar/CenteringSpace.cs
deleted file mode 100644
index 26fa1d872a..0000000000
--- a/main/src/addins/MacPlatform/MainToolbar/CenteringSpace.cs
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// CenteringSpace.cs
-//
-// Author:
-// Marius Ungureanu <marius.ungureanu@xamarin.com>
-//
-// Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-using System;
-using AppKit;
-using CoreGraphics;
-using Foundation;
-using MonoDevelop.Core;
-using MonoDevelop.Ide;
-
-namespace MonoDevelop.MacIntegration.MainToolbar
-{
- [Register]
- class CenteringSpaceView : NSView
- {
- internal CenteringSpaceToolbarItem toolbarItem;
- public override bool AcceptsFirstMouse (NSEvent theEvent)
- {
- return false;
- }
-
- public override void ViewDidMoveToWindow ()
- {
- NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.DidResizeNotification, notif =>
- Runtime.RunInMainThread (() => toolbarItem.UpdateWidth ()));
- NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.WillEnterFullScreenNotification, notif =>
- CenteringSpaceToolbarItem.WindowFullscreening = true);
- NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.DidEnterFullScreenNotification, notif => {
- CenteringSpaceToolbarItem.WindowFullscreening = false;
- Runtime.RunInMainThread (() => toolbarItem.UpdateWidth ());
- });
-
- base.ViewDidMoveToWindow ();
- }
- }
-
- [Register]
- class CenteringSpaceToolbarItem : NSToolbarItem
- {
- internal static bool WindowFullscreening;
- public CenteringSpaceToolbarItem ()
- {
- Initialize ();
- }
-
- public CenteringSpaceToolbarItem (IntPtr handle) : base (handle)
- {
- Initialize ();
- }
-
- public CenteringSpaceToolbarItem (string itemIdentifier) : base (itemIdentifier)
- {
- Initialize ();
- }
-
- void Initialize ()
- {
- Label = "";
- View = new CenteringSpaceView {
- toolbarItem = this,
- Frame = new CGRect (0, 0, 1, 1),
- };
- }
-
- public override CGSize MinSize {
- get {
- // Do NOT let this calculate any values while the window is fullscreening.
- // Everything changes, and the size might end up with bogus values and cause a native crash
- // that is totally unrelated. See BXC 29261.
- if (WindowFullscreening)
- return base.MinSize;
-
- NSToolbarItem[] items = Toolbar.Items;
- int index = Array.IndexOf (items, this);
-
- if (index != -1 && View.Superview != null) {
- CGRect frame = View.Superview.Frame;
- if (frame.Left > 0) {
- nfloat space = 0;
- // There is a next item.
- if (items.Length > index + 1) {
- NSView nextItem = items [index + 1].View.Superview;
- if (nextItem != null) {
- CGRect nextFrame = nextItem.Frame;
- CGRect toolbarFrame = nextItem.Superview.Frame;
-
- // nextFrame is in center of the toolbar.
- // so Left + space = toolbarFrame / 2 - nextFrame.Width / 2.
- space = (toolbarFrame.Width - nextFrame.Width) / 2 - frame.Left;
- if (space < 0)
- space = 0;
- }
- }
-
- base.MinSize = new CGSize (space, base.MinSize.Height);
- base.MaxSize = new CGSize (space, base.MaxSize.Height);
- }
- }
- return base.MinSize;
- }
- set { base.MinSize = value; }
- }
-
- internal void UpdateWidth ()
- {
- // Trigger updates.
- MinSize = MinSize;
- }
- }
-}
-
diff --git a/main/src/addins/MacPlatform/MainToolbar/MainToolbar.cs b/main/src/addins/MacPlatform/MainToolbar/MainToolbar.cs
index 0a9ff4a042..87c593a59e 100644
--- a/main/src/addins/MacPlatform/MainToolbar/MainToolbar.cs
+++ b/main/src/addins/MacPlatform/MainToolbar/MainToolbar.cs
@@ -40,191 +40,35 @@ namespace MonoDevelop.MacIntegration.MainToolbar
class MainToolbar : IMainToolbarView
{
const string MainToolbarId = "XSMainToolbar";
- const string RunButtonId = "RunToolbarItem";
- const string ButtonBarId = "ButtonBarToolbarItem";
- const string SelectorId = "SelectorToolbarItem";
- const string SearchBarId = "SearchBarToolbarItem";
- const string StatusBarId = "StatusBarToolbarItem";
- const string CenteringSpaceId = "CenteringSpaceToolbarItem";
+ const string AwesomeBarId = "AwesomeBarToolbarItem";
internal NSToolbar widget;
internal Gtk.Window gtkWindow;
- int runButtonIdx;
- RunButton runButton {
- get { return (RunButton)widget.Items[runButtonIdx].View; }
- }
+ AwesomeBar awesomeBar;
- int buttonBarStartIdx, buttonBarCount;
-
- CenteringSpaceToolbarItem centeringSpace {
- get { return (CenteringSpaceToolbarItem)widget.Items[buttonBarStartIdx + buttonBarCount]; }
+ RunButton runButton {
+ get { return awesomeBar.RunButton; }
}
- int statusBarIdx;
StatusBar statusBar {
- get { return (StatusBar)widget.Items[statusBarIdx + buttonBarCount].View; }
+ get { return awesomeBar.StatusBar; }
}
- int selectorIdx;
SelectorView selector {
- get { return (SelectorView)widget.Items[selectorIdx].View; }
+ get { return awesomeBar.SelectorView; }
}
SelectorView.PathSelectorView selectorView {
- get { return (SelectorView.PathSelectorView)widget.Items[selectorIdx].View.Subviews [0]; }
+ get { return awesomeBar.SelectorView.RealSelectorView; }
}
- int searchEntryIdx;
SearchBar searchEntry {
- get { return (SearchBar)widget.Items[searchEntryIdx + buttonBarCount].View; }
- }
-
- // TODO: Remove this when XamMac 2.2 goes stable.
- static HashSet<object> viewCache = new HashSet<object> ();
- static HashSet<ButtonBar> buttonBarCache = new HashSet<ButtonBar> ();
-
- NSToolbarItem CreateRunToolbarItem ()
- {
- var button = new RunButton ();
- viewCache.Add (button);
- button.Activated += (o, e) => {
- if (RunButtonClicked != null)
- RunButtonClicked (o, e);
- };
-
- var item = new NSToolbarItem (RunButtonId) {
- View = button,
- MinSize = new CGSize (button.FittingSize.Width + 12, button.FittingSize.Height),
- MaxSize = new CGSize (button.FittingSize.Width + 12, button.FittingSize.Height),
- };
- return item;
- }
-
- OverflowInfoEventArgs FillOverflowInfo (OverflowInfoEventArgs e)
- {
- var visibleItems = widget.VisibleItems;
- var allItems = widget.Items;
-
- e.WindowWidth = gtkWindow.Allocation.Width;
- foreach (var iter in allItems) {
- e.AllItemsWidth += iter.MinSize.Width;
- if (!visibleItems.Contains (iter))
- e.ItemsInOverflowWidth += iter.MinSize.Width;
- }
- // Add spacings.
- nfloat spacing = (allItems.Length - 1) * 16;
- e.AllItemsWidth += spacing;
-
- return e;
- }
-
- bool IsCorrectNotification (NSView view, NSObject notifObject)
- {
- var window = selector.Window;
-
- // Skip updates with a null Window. Only crashes on Mavericks.
- // The View gets updated once again when the window resize finishes.
- // We're getting notified about all windows in the application (for example, NSPopovers) that change size when really we only care about
- // the window the bar is in.
- return window != null && notifObject == window;
- }
-
- NSToolbarItem CreateSelectorToolbarItem ()
- {
- var selector = new SelectorView ();
- viewCache.Add (selector);
- var item = new NSToolbarItem (SelectorId) {
- View = selector,
- MinSize = new CGSize (150, 25),
- MaxSize = new CGSize (150, 25),
- };
- selector.ResizeRequested += (o, e) => {
- item.MinSize = item.MaxSize = e.Size;
- centeringSpace.UpdateWidth ();
- };
- selector.OverflowInfoRequested += (o, e) => {
- FillOverflowInfo (e);
- };
-
- IDisposable resizeTimer = null;
- NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.WillStartLiveResizeNotification, notif => Runtime.RunInMainThread (() => {
- if (!IsCorrectNotification (selector, notif.Object))
- return;
-
- if (resizeTimer != null)
- resizeTimer.Dispose ();
-
- resizeTimer = Application.TimeoutInvoke (100, () => {
- if (widget.Items.Length != widget.VisibleItems.Length)
- selector.RequestResize ();
- return true;
- });
- }));
-
- NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.DidResizeNotification, notif => Runtime.RunInMainThread (() => {
- if (!IsCorrectNotification (selector, notif.Object))
- return;
-
- // Don't check difference in overflow menus. This could cause issues since we're doing resizing of widgets and the views might go in front
- // or behind while we're doing the resize request.
- selector.RequestResize ();
- }));
-
- NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.DidEndLiveResizeNotification, notif => Runtime.RunInMainThread (() => {
- if (!IsCorrectNotification (selector, notif.Object))
- return;
-
- if (resizeTimer != null)
- resizeTimer.Dispose ();
-
- resizeTimer = Application.TimeoutInvoke (300, selector.RequestResize);
- }));
-
- var pathSelector = (SelectorView.PathSelectorView)selector.Subviews [0];
- pathSelector.ConfigurationChanged += (sender, e) => {
- if (ConfigurationChanged != null)
- ConfigurationChanged (sender, e);
- };
- pathSelector.RuntimeChanged += (sender, ea) => {
- if (RuntimeChanged != null)
- RuntimeChanged (sender, ea);
- };
- return item;
- }
-
- NSToolbarItem CreateButtonBarToolbarItem ()
- {
- var bar = new ButtonBar (barItems);
- buttonBarCache.Add (bar);
-
- // Note: We're leaving a 1 dead pixel size here because Apple bug
- // on Yosemite. Segmented controls have 3px padding on left and right
- // on Mavericks.
- nfloat size = 6 + 33 * bar.SegmentCount;
-
- // By default, Cocoa doesn't want to duplicate items in the toolbar.
- // Use different Ids to prevent this and not have to subclass.
- var item = new NSToolbarItem (ButtonBarId + buttonBarCount) {
- View = bar,
- MinSize = new CGSize (size, bar.FittingSize.Height),
- MaxSize = new CGSize (size, bar.FittingSize.Height),
- };
- bar.ResizeRequested += (o, e) => {
- nfloat resize = 6 + 33 * bar.SegmentCount;
- item.MinSize = new CGSize (resize, bar.FittingSize.Height);
- item.MaxSize = new CGSize (resize, bar.FittingSize.Height);
- selector.RequestResize ();
- centeringSpace.UpdateWidth ();
- };
- return item;
+ get { return awesomeBar.SearchBar; }
}
void AttachToolbarEvents (SearchBar bar)
{
- if (bar.EventsAttached)
- return;
-
bar.Changed += (o, e) => {
bar.LogMessage("Text changed");
if (SearchEntryChanged != null)
@@ -242,105 +86,73 @@ namespace MonoDevelop.MacIntegration.MainToolbar
if (SearchEntryActivated != null)
SearchEntryActivated (o, e);
};
- bar.EventsAttached = true;
}
- NSToolbarItem CreateSearchBarToolbarItem ()
+ public MainToolbar (Gtk.Window window)
{
- var bar = new SearchBar ();
+ gtkWindow = window;
+ widget = new NSToolbar (MainToolbarId) {
+ DisplayMode = NSToolbarDisplayMode.Icon,
+ };
+
+ awesomeBar = new AwesomeBar ();
+ awesomeBar.RunButton.Activated += (o, e) => {
+ if (RunButtonClicked != null)
+ RunButtonClicked (o, e);
+ };
// Remove the focus from the Gtk system when Cocoa has focus
// Fixes BXC #29601
- bar.GainedFocus += (o, e) => IdeApp.Workbench.RootWindow.Focus = null;
+ awesomeBar.SearchBar.GainedFocus += (o, e) => IdeApp.Workbench.RootWindow.Focus = null;
+
+ AttachToolbarEvents (awesomeBar.SearchBar);
- viewCache.Add (bar);
- var item = new NSToolbarItem (SearchBarId) {
- View = bar,
- MinSize = new CGSize (150, bar.FittingSize.Height),
- MaxSize = new CGSize (270, bar.FittingSize.Height),
+ selectorView.ConfigurationChanged += (sender, e) => {
+ if (ConfigurationChanged != null)
+ ConfigurationChanged (sender, e);
};
- AttachToolbarEvents (bar);
- return item;
- }
- NSToolbarItem CreateStatusBarToolbarItem ()
- {
- var bar = new StatusBar ();
- viewCache.Add (bar);
- var item = new NSToolbarItem (StatusBarId) {
- View = bar,
- // Place some temporary values in there.
- MinSize = new CGSize (360, 22),
- MaxSize = new CGSize (360, 22),
+ selectorView.RuntimeChanged += (sender, ea) => {
+ if (RuntimeChanged != null)
+ RuntimeChanged (sender, ea);
+ };
+
+ widget.WillInsertItem = (tool, id, send) => {
+ switch (id) {
+ case AwesomeBarId:
+ return new NSToolbarItem (AwesomeBarId) {
+ View = awesomeBar,
+ MinSize = new CGSize (1024, 25),
+ MaxSize = new CGSize (1024, 25)
+ };
+
+ default:
+ throw new NotImplementedException ();
+ }
};
Action<NSNotification> resizeAction = notif => Runtime.RunInMainThread (() => {
- // Skip updates with a null Window. Only crashes on Mavericks.
- // The View gets updated once again when the window resize finishes.
- if (bar.Window == null)
+ var win = awesomeBar.Window;
+ if (win == null) {
return;
+ }
- // We're getting notified about all windows in the application (for example, NSPopovers) that change size when really we only care about
- // the window the bar is in.
- if (notif.Object != bar.Window)
- return;
+ var item = widget.Items[0];
- double maxSize = Math.Round (bar.Window.Frame.Width * 0.30f);
- double minSize = Math.Round (bar.Window.Frame.Width * 0.25f);
- item.MinSize = new CGSize ((nfloat)Math.Max (220, minSize), 22);
- item.MaxSize = new CGSize ((nfloat)Math.Min (700, maxSize), 22);
- bar.RepositionStatusLayers ();
+ var abFrameInWindow = awesomeBar.ConvertRectToView (awesomeBar.Frame, null);
+ var size = new CGSize (win.Frame.Width - abFrameInWindow.X - 4, 25);
+ item.MinSize = size;
+ item.MaxSize = size;
});
- NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.DidResizeNotification, resizeAction);
- NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.DidEndLiveResizeNotification, resizeAction);
- return item;
- }
-
- NSToolbarItem CreateCenteringSpaceItem ()
- {
- var item = new CenteringSpaceToolbarItem (CenteringSpaceId);
- viewCache.Add (item.View);
- return item;
- }
-
- public MainToolbar (Gtk.Window window)
- {
- gtkWindow = window;
- widget = new NSToolbar (MainToolbarId) {
- DisplayMode = NSToolbarDisplayMode.Icon,
- };
- widget.WillInsertItem = (tool, id, send) => {
- switch (id) {
- case RunButtonId:
- return CreateRunToolbarItem ();
- case ButtonBarId:
- return CreateButtonBarToolbarItem ();
- case SearchBarId:
- return CreateSearchBarToolbarItem ();
- case SelectorId:
- return CreateSelectorToolbarItem ();
- case StatusBarId:
- return CreateStatusBarToolbarItem ();
- case CenteringSpaceId:
- return CreateCenteringSpaceItem ();
- }
- throw new NotImplementedException ();
- };
+ NSWindow nswin = GtkMacInterop.GetNSWindow (window);
+ NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.DidResizeNotification, resizeAction, nswin);
+ NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.DidEndLiveResizeNotification, resizeAction, nswin);
}
internal void Initialize ()
{
- int total = -1;
- widget.InsertItem (RunButtonId, runButtonIdx = ++total);
- widget.InsertItem (SelectorId, selectorIdx = ++total);
- widget.InsertItem (CenteringSpaceId, buttonBarStartIdx = ++total);
- widget.InsertItem (StatusBarId, statusBarIdx = ++total);
- widget.InsertItem (NSToolbar.NSToolbarFlexibleSpaceItemIdentifier, ++total);
- widget.InsertItem (SearchBarId, searchEntryIdx = ++total);
-
- // NSButton -> NSToolbarItemViewer -> _NSToolbarClipView -> NSToolbarView -> NSToolbarClippedItemsIndicator
- viewCache.Add (runButton.Superview.Superview.Superview);
+ widget.InsertItem (AwesomeBarId, 0);
}
#region IMainToolbarView implementation
@@ -362,23 +174,23 @@ namespace MonoDevelop.MacIntegration.MainToolbar
entry.SelectText (entry);
}
- List<IButtonBarButton> barItems = new List<IButtonBarButton> ();
public void RebuildToolbar (IEnumerable<IButtonBarButton> buttons)
{
- buttonBarCache.Clear ();
- while (buttonBarCount > 0) {
- widget.RemoveItem (buttonBarStartIdx);
- --buttonBarCount;
- }
+ List<IButtonBarButton> barItems = new List<IButtonBarButton> ();
+ List<ButtonBar> buttonBars = new List<ButtonBar> ();
foreach (var item in buttons) {
if (item.IsSeparator) {
- widget.InsertItem (ButtonBarId, buttonBarStartIdx + buttonBarCount++);
+ var bar = new ButtonBar (barItems);
+ buttonBars.Add (bar);
+
barItems.Clear ();
} else {
barItems.Add (item);
}
}
+
+ awesomeBar.ButtonBarContainer.ButtonBars = buttonBars;
}
public bool RunButtonSensitivity {
@@ -431,8 +243,9 @@ namespace MonoDevelop.MacIntegration.MainToolbar
public bool ButtonBarSensitivity {
set {
- for (int start = buttonBarStartIdx; start < buttonBarStartIdx + buttonBarCount; ++start)
- ((ButtonBar)widget.Items [start].View).Enabled = value;
+ foreach (var bar in awesomeBar.ButtonBarContainer.ButtonBars) {
+ bar.Enabled = value;
+ }
}
}
@@ -473,9 +286,14 @@ namespace MonoDevelop.MacIntegration.MainToolbar
var entry = searchEntry;
var widget = entry.gtkWidget;
var window = GtkMacInterop.GetGtkWindow (entry.Window);
+
+ // window will be null if the app is fullscreen.
if (window != null) {
widget.GdkWindow = window.GdkWindow;
- widget.Allocation = new Gdk.Rectangle ((int)entry.Superview.Frame.X, (int)entry.Superview.Frame.Y, (int)entry.Superview.Frame.Width, 0);
+
+ // We need to adjust the position of the frame so the popup will line up correctly
+ var abFrameInWindow = awesomeBar.ConvertRectToView (awesomeBar.Frame, null);
+ widget.Allocation = new Gdk.Rectangle ((int)(entry.Frame.X + abFrameInWindow.X - 8), (int)entry.Frame.Y, (int)entry.Frame.Width, 0);
} else {
// Reset the Gtk Widget each time since we can't set the GdkWindow to null.
widget.Dispose ();
@@ -484,6 +302,7 @@ namespace MonoDevelop.MacIntegration.MainToolbar
var nsWindows = NSApplication.SharedApplication.Windows;
var fullscreenToolbarNsWindow = nsWindows.FirstOrDefault (nswin =>
nswin.IsVisible && nswin.Description.StartsWith ("<NSToolbarFullScreenWindow", StringComparison.Ordinal));
+
var workbenchNsWindow = nsWindows.FirstOrDefault (nswin =>
GtkMacInterop.GetGtkWindow (nswin) is MonoDevelop.Ide.Gui.DefaultWorkbench);
@@ -491,8 +310,9 @@ namespace MonoDevelop.MacIntegration.MainToolbar
// coordinate for the popup window based on Cocoa coordinates which offset left/top from current desktop.
nfloat xOffset = -NSScreen.Screens.Min (screen => screen.Frame.Left);
nfloat yOffset = NSScreen.Screens.Max (screen => screen.Frame.Bottom);
+
widget.Allocation = new Gdk.Rectangle (0, (int)(yOffset - workbenchNsWindow.Frame.Height),
- (int)(xOffset + fullscreenToolbarNsWindow.Frame.Width), 0);
+ (int)(xOffset + fullscreenToolbarNsWindow.Frame.Width - 16), 0);
}
return widget;
}
diff --git a/main/src/addins/MacPlatform/MainToolbar/RunButton.cs b/main/src/addins/MacPlatform/MainToolbar/RunButton.cs
index ee88937d86..1139a14a7b 100644
--- a/main/src/addins/MacPlatform/MainToolbar/RunButton.cs
+++ b/main/src/addins/MacPlatform/MainToolbar/RunButton.cs
@@ -26,6 +26,7 @@
using System;
using AppKit;
using Foundation;
+using CoreGraphics;
using MonoDevelop.Components.MainToolbar;
using MonoDevelop.Ide;
using MonoDevelop.Components;
@@ -87,6 +88,12 @@ namespace MonoDevelop.MacIntegration.MainToolbar
Image = GetIcon ();
}
}
+
+ public override CGSize IntrinsicContentSize {
+ get {
+ return new CGSize (38, 25);
+ }
+ }
}
}
diff --git a/main/src/addins/MacPlatform/MainToolbar/SearchBar.cs b/main/src/addins/MacPlatform/MainToolbar/SearchBar.cs
index 565fffba40..abf49972fd 100644
--- a/main/src/addins/MacPlatform/MainToolbar/SearchBar.cs
+++ b/main/src/addins/MacPlatform/MainToolbar/SearchBar.cs
@@ -44,11 +44,6 @@ namespace MonoDevelop.MacIntegration.MainToolbar
internal event EventHandler SelectionActivated;
public event EventHandler GainedFocus;
- /// <summary>
- /// This tells whether events have been attached when created from the menu.
- /// </summary>
- internal bool EventsAttached;
-
public SearchBar ()
{
Cell.Scrollable = true;
@@ -57,11 +52,6 @@ namespace MonoDevelop.MacIntegration.MainToolbar
debugSearchbar = System.IO.File.Exists (debugFilePath);
}
- public SearchBar (IntPtr ptr) : base (ptr)
- {
- Initialize ();
- }
-
internal void LogMessage (string message)
{
if (!debugSearchbar)
@@ -108,6 +98,9 @@ namespace MonoDevelop.MacIntegration.MainToolbar
return true;
var baseHandled = base.PerformKeyEquivalent (theEvent);;
LogMessage ($"Base handled {baseHandled}");
+ LogMessage ($"First Reponder {NSApplication.SharedApplication?.KeyWindow?.FirstResponder}");
+ LogMessage ($"Refuses First Responder {RefusesFirstResponder}");
+ LogMessage ($"Editor chain {CurrentEditor}");
return baseHandled;
}
diff --git a/main/src/addins/MacPlatform/MainToolbar/SelectorView.cs b/main/src/addins/MacPlatform/MainToolbar/SelectorView.cs
index e7581a9b6a..408d2fe7d3 100644
--- a/main/src/addins/MacPlatform/MainToolbar/SelectorView.cs
+++ b/main/src/addins/MacPlatform/MainToolbar/SelectorView.cs
@@ -55,47 +55,41 @@ namespace MonoDevelop.MacIntegration.MainToolbar
[Register]
class SelectorView : NSButton
{
- public event EventHandler<SizeRequestedEventArgs> ResizeRequested;
- public event EventHandler<OverflowInfoEventArgs> OverflowInfoRequested;
+ public event EventHandler<EventArgs> SizeChanged;
internal const int ConfigurationIdx = 0;
internal const int RuntimeIdx = 1;
+ internal PathSelectorView RealSelectorView { get; private set; }
+
public SelectorView ()
{
Title = "";
BezelStyle = NSBezelStyle.TexturedRounded;
- var pathSelectorView = new PathSelectorView (new CGRect (6, 0, 1, 1));
- pathSelectorView.UnregisterDraggedTypes ();
- AddSubview (pathSelectorView);
+
+ RealSelectorView = new PathSelectorView (new CGRect (6, 0, 1, 1));
+ RealSelectorView.UnregisterDraggedTypes ();
+ AddSubview (RealSelectorView);
}
- public bool RequestResize ()
+ public override CGSize SizeThatFits (CGSize size)
{
var p = (PathSelectorView)Subviews [0];
- var overflowInfo = new OverflowInfoEventArgs ();
- if (OverflowInfoRequested != null)
- OverflowInfoRequested (this, overflowInfo);
-
- var size = new CGSize (p.ResizeIfNeeded (overflowInfo), Frame.Height);
-
- if (size != Frame.Size) {
- if (ResizeRequested != null)
- ResizeRequested (this, new SizeRequestedEventArgs (size));
+ var fitSize = p.SizeThatFits (size);
- SetFrameSize (size);
- p.SetFrameSize (size);
+ return new CGSize (fitSize.Width + 12.0, size.Height);
+ }
- SetNeedsDisplay ();
- p.SetNeedsDisplay ();
- return true;
- }
- return false;
+ public override void SetFrameSize (CGSize newSize)
+ {
+ base.SetFrameSize (newSize);
+ Subviews [0].SetFrameSize (newSize);
}
- public override void ViewWillDraw ()
+ internal void OnSizeChanged ()
{
- RequestResize ();
- base.ViewWillDraw ();
+ if (SizeChanged != null) {
+ SizeChanged (this, EventArgs.Empty);
+ }
}
#region PathSelectorView
@@ -115,57 +109,60 @@ namespace MonoDevelop.MacIntegration.MainToolbar
static readonly string RuntimePlaceholder = GettextCatalog.GetString ("Default");
CellState state = CellState.AllShown;
- nfloat UpdatePathCellForSize (int idx, nfloat remaining, CellState newStateIfEnoughSize)
+ public override CGSize SizeThatFits (CGSize size)
{
- var cell = PathComponentCells [idx];
- string text;
- if (idx == ConfigurationIdx) {
- if (ActiveConfiguration != null)
- text = ActiveConfiguration.DisplayString;
- else
- text = ConfigurationPlaceholder;
- } else {
- if (ActiveRuntime != null) {
- using (var mutableModel = ActiveRuntime.GetMutableModel ())
- text = mutableModel.FullDisplayString;
- } else
- text = RuntimePlaceholder;
+ nfloat rtWidth, cWidth;
+
+ WidthsForPathCells (out cWidth, out rtWidth);
+
+ if (10 + cWidth + rtWidth < size.Width) {
+ state = CellState.AllShown;
+ UpdatePathText (ConfigurationIdx, TextForActiveConfiguration);
+ UpdatePathText (RuntimeIdx, TextForRuntimeConfiguration);
+ return new CGSize (10 + cWidth + rtWidth, size.Height);
+ }
+
+ if (10 + 28 + cWidth < size.Width) {
+ state = CellState.ConfigurationShown;
+ UpdatePathText (ConfigurationIdx, TextForActiveConfiguration);
+ UpdatePathText (RuntimeIdx, string.Empty);
+ return new CGSize (10 + 28 + cWidth, size.Height);
}
- var size = new NSAttributedString (text, new NSStringAttributes { Font = cell.Font }).Size.Width + 20;
- if (size < remaining) {
- state |= newStateIfEnoughSize;
- UpdatePathText (idx, text);
+
+ state = CellState.AllHidden;
+ UpdatePathText (ConfigurationIdx, string.Empty);
+ UpdatePathText (RuntimeIdx, string.Empty);
+ return new CGSize (10 + 52.0, size.Height);
+ }
+
+ string TextForActiveConfiguration {
+ get {
+ return ActiveConfiguration != null ? ActiveConfiguration.DisplayString : ConfigurationPlaceholder;
}
- return remaining - size;
}
- internal nfloat ResizeIfNeeded (OverflowInfoEventArgs args)
- {
- var remaining = args.WindowWidth - args.AllItemsWidth;
- if (remaining < 0 || args.ItemsInOverflowWidth > 0) {
- var cell = PathComponentCells [RuntimeIdx];
- var size = new NSAttributedString (cell.Title, new NSStringAttributes { Font = cell.Font }).Size.Width;
- remaining += size;
- args.ItemsInOverflowWidth -= size;
- if ((state & CellState.RuntimeShown) != 0) {
- state &= ~CellState.RuntimeShown;
- UpdatePathText (RuntimeIdx, string.Empty);
- }
- if ((remaining < 0 || args.ItemsInOverflowWidth > 0) && (state & CellState.ConfigurationShown) != 0) {
- state &= ~CellState.ConfigurationShown;
- UpdatePathText (ConfigurationIdx, string.Empty);
+ string TextForRuntimeConfiguration {
+ get {
+ if (ActiveRuntime != null) {
+ using (var mutableModel = ActiveRuntime.GetMutableModel ())
+ return mutableModel.FullDisplayString;
+ } else {
+ return RuntimePlaceholder;
}
- } else {
- remaining = remaining - args.ItemsInOverflowWidth;
- if ((state & CellState.ConfigurationShown) == 0)
- remaining = UpdatePathCellForSize (ConfigurationIdx, remaining, CellState.ConfigurationShown);
- if ((state & CellState.RuntimeShown) == 0)
- UpdatePathCellForSize (RuntimeIdx, remaining, CellState.RuntimeShown);
}
+ }
+ void WidthsForPathCells (out nfloat configWidth, out nfloat runtimeWidth)
+ {
+ string text;
+ NSPathComponentCell cell;
- return 10 +
- PathComponentCells [ConfigurationIdx].CellSize.Width +
- PathComponentCells [RuntimeIdx].CellSize.Width + Frame.Left;
+ text = TextForActiveConfiguration;
+ cell = PathComponentCells [ConfigurationIdx];
+ configWidth = new NSAttributedString (text, new NSStringAttributes { Font = cell.Font }).Size.Width + 28;
+
+ text = TextForRuntimeConfiguration;
+ cell = PathComponentCells [RuntimeIdx];
+ runtimeWidth = new NSAttributedString (text, new NSStringAttributes { Font = cell.Font }).Size.Width + 28;
}
NSMenu CreateSubMenuForRuntime (IRuntimeModel runtime)
@@ -344,14 +341,19 @@ namespace MonoDevelop.MacIntegration.MainToolbar
void UpdatePathText (int idx, string text)
{
- bool showText = (idx == ConfigurationIdx && (state & CellState.ConfigurationShown) != 0) || (idx == RuntimeIdx && (state & CellState.RuntimeShown) != 0);
- PathComponentCells [idx].Title = showText ? text : "\u00A0";
+ PathComponentCells [idx].Title = text;
PathComponentCells [ConfigurationIdx].Image = ImageService.GetIcon ("project").ToNSImage ();
PathComponentCells [RuntimeIdx].Image = ImageService.GetIcon ("device").ToNSImage ();
RealignTexts ();
}
+ void OnSizeChanged ()
+ {
+ var sview = (SelectorView)Superview;
+ sview.OnSizeChanged ();
+ }
+
IConfigurationModel activeConfiguration;
public IConfigurationModel ActiveConfiguration {
get { return activeConfiguration; }
@@ -359,7 +361,7 @@ namespace MonoDevelop.MacIntegration.MainToolbar
activeConfiguration = value;
state |= CellState.ConfigurationShown;
UpdatePathText (ConfigurationIdx, value.DisplayString);
- ((SelectorView)Superview).RequestResize ();
+ OnSizeChanged ();
}
}
@@ -371,7 +373,7 @@ namespace MonoDevelop.MacIntegration.MainToolbar
using (var mutableModel = value.GetMutableModel ()) {
state |= CellState.RuntimeShown;
UpdatePathText (RuntimeIdx, mutableModel.FullDisplayString);
- ((SelectorView)Superview).RequestResize ();
+ OnSizeChanged ();
}
}
}
@@ -385,9 +387,9 @@ namespace MonoDevelop.MacIntegration.MainToolbar
if (count == 0) {
state |= CellState.ConfigurationShown;
UpdatePathText (ConfigurationIdx, ConfigurationPlaceholder);
- ((SelectorView)Superview).RequestResize ();
}
PathComponentCells [ConfigurationIdx].Enabled = count > 1;
+ OnSizeChanged ();
}
}
@@ -400,9 +402,9 @@ namespace MonoDevelop.MacIntegration.MainToolbar
if (count == 0) {
state |= CellState.RuntimeShown;
UpdatePathText (RuntimeIdx, RuntimePlaceholder);
- ((SelectorView)Superview).RequestResize ();
}
PathComponentCells [RuntimeIdx].Enabled = count > 1;
+ OnSizeChanged ();
}
}
diff --git a/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs b/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs
index d4ab2b7524..caa7ba2208 100644
--- a/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs
+++ b/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs
@@ -1,4 +1,4 @@
-//
+ //
// StatusBar.cs
//
// Author:
@@ -40,16 +40,30 @@ using MonoDevelop.Ide.Tasks;
namespace MonoDevelop.MacIntegration.MainToolbar
{
- class StatusIcon : StatusBarIcon
+ class StatusIcon : NSView, StatusBarIcon
{
StatusBar bar;
- CALayer layer;
+ NSImageView imageView;
- public StatusIcon (StatusBar bar, CALayer layer, NSTrackingArea trackingArea)
+ public StatusIcon (StatusBar bar) : base (CGRect.Empty)
{
+ imageView = new NSImageView (CGRect.Empty);
+ AddSubview (imageView);
+
+ var trackingArea = new NSTrackingArea (CGRect.Empty, NSTrackingAreaOptions.ActiveInKeyWindow | NSTrackingAreaOptions.InVisibleRect | NSTrackingAreaOptions.MouseEnteredAndExited, this, null);
+ AddTrackingArea (trackingArea);
+
this.bar = bar;
- this.layer = layer;
- TrackingArea = trackingArea;
+ }
+
+ public override CGRect Frame {
+ get {
+ return base.Frame;
+ }
+ set {
+ base.Frame = value;
+ imageView.Frame = new CGRect (0, 0, value.Width, value.Height);
+ }
}
public void SetAlertMode (int seconds)
@@ -57,18 +71,14 @@ namespace MonoDevelop.MacIntegration.MainToolbar
// Create fade-out fade-in animation.
}
- public void Dispose ()
+ public new void Dispose ()
{
- layer.RemoveFromSuperLayer ();
- bar.RemoveStatusLayer (layer);
+ bar.RemoveStatusIcon (this);
+ RemoveFromSuperview ();
+ base.Dispose ();
}
- public string ToolTip {
- get;
- set;
- }
-
- internal NSTrackingArea TrackingArea {
+ public new string ToolTip {
get;
set;
}
@@ -78,10 +88,30 @@ namespace MonoDevelop.MacIntegration.MainToolbar
get { return image; }
set {
image = value;
- layer.SetImage (value, bar.Window.BackingScaleFactor);
+ imageView.Image = value.ToNSImage ();
+ SetFrameSize (new CGSize (image.Width, image.Height));
+ }
+ }
+
+ public override void MouseEntered (NSEvent theEvent)
+ {
+ if (Entered != null) {
+ Entered (this, EventArgs.Empty);
+ }
+ }
+
+ public override void MouseExited (NSEvent theEvent)
+ {
+ if (Exited != null) {
+ Exited (this, EventArgs.Empty);
}
}
+ public override void MouseUp (NSEvent theEvent)
+ {
+ NotifyClicked (StatusBar.NSEventButtonToXwt (theEvent));
+ }
+
internal void NotifyClicked (Xwt.PointerButton button)
{
if (Clicked != null)
@@ -91,17 +121,72 @@ namespace MonoDevelop.MacIntegration.MainToolbar
}
public event EventHandler<StatusBarIconClickedEventArgs> Clicked;
+ public event EventHandler<EventArgs> Entered;
+ public event EventHandler<EventArgs> Exited;
+ }
+
+ class BuildResultsView : NSView
+ {
+ NSAttributedString resultString;
+ int resultCount;
+ public int ResultCount {
+ get {
+ return resultCount;
+ }
+ set {
+ resultCount = value;
+ resultString = new NSAttributedString (value.ToString (), foregroundColor: NSColor.Text,
+ font: NSFont.SystemFontOfSize (NSFont.SmallSystemFontSize - 1));
+ ResizeToFit ();
+ }
+ }
+
+ NSImage iconImage;
+ public NSImage IconImage {
+ get {
+ return iconImage;
+ }
+ set {
+ iconImage = value;
+ ResizeToFit ();
+ }
+ }
+
+ public BuildResultsView () : base (new CGRect (0, 0, 0, 0))
+ {
+ }
+
+ public override void DrawRect (CGRect dirtyRect)
+ {
+ if (iconImage == null || resultString == null) {
+ return;
+ }
+
+ iconImage.Draw (new CGRect (0, (Frame.Size.Height - iconImage.Size.Height) / 2 + 0.5, iconImage.Size.Width, iconImage.Size.Height));
+ resultString.DrawAtPoint (new CGPoint (iconImage.Size.Width, (Frame.Size.Height - resultString.Size.Height) / 2));
+ }
+
+ void ResizeToFit ()
+ {
+ if (iconImage == null || resultString == null) {
+ return;
+ }
+
+ var stringSize = resultString.GetSize ();
+ Frame = new CGRect (Frame.X, Frame.Y, iconImage.Size.Width + stringSize.Width, Frame.Height);
+ NeedsDisplay = true;
+ }
+
+ public override void MouseDown (NSEvent theEvent)
+ {
+ IdeApp.Workbench.GetPad<MonoDevelop.Ide.Gui.Pads.ErrorListPad> ().BringToFront ();
+ }
}
[Register]
class StatusBar : NSTextField, MonoDevelop.Ide.StatusBar
{
- const string ProgressLayerId = "ProgressLayer";
const string ProgressLayerFadingId = "ProgressLayerFading";
- const string StatusIconPrefixId = "StatusLayer";
- const string BuildIconLayerId = "BuildIconLayer";
- const string BuildTextLayerId = "BuildTextLayer";
- const string SeparatorLayerId = "SeparatorLayer";
const string growthAnimationKey = "bounds";
StatusBarContextHandler ctxHandler;
Stack<double> progressMarks = new Stack<double> ();
@@ -112,6 +197,7 @@ namespace MonoDevelop.MacIntegration.MainToolbar
IconId icon;
AnimatedIcon iconAnimation;
IDisposable xwtAnimation;
+ readonly BuildResultsView buildResults;
NSAttributedString GetStatusString (string text, NSColor color)
{
@@ -138,6 +224,8 @@ namespace MonoDevelop.MacIntegration.MainToolbar
Editable = false,
Selectable = false,
};
+ NSTrackingArea textFieldArea;
+ CALayer progressLayer;
TaskEventHandler updateHandler;
public StatusBar ()
@@ -147,8 +235,17 @@ namespace MonoDevelop.MacIntegration.MainToolbar
textField.Cell = new VerticallyCenteredTextFieldCell (yOffset: -0.5f);
textField.Cell.StringValue = "";
textField.Cell.PlaceholderAttributedString = GetStatusString (BrandingService.ApplicationName, NSColor.DisabledControlText);
+
+ // The rect is empty because we use InVisibleRect to track the whole of the view.
+ textFieldArea = new NSTrackingArea (CGRect.Empty, NSTrackingAreaOptions.MouseEnteredAndExited | NSTrackingAreaOptions.ActiveInKeyWindow | NSTrackingAreaOptions.InVisibleRect, this, null);
+ textField.AddTrackingArea (textFieldArea);
+
imageView.Image = ImageService.GetIcon (Stock.StatusSteady).ToNSImage ();
+ buildResults = new BuildResultsView ();
+ buildResults.Hidden = true;
+ AddSubview (buildResults);
+
// Fixes a render glitch of a whiter bg than the others.
if (MacSystemInformation.OsVersion >= MacSystemInformation.Yosemite)
BezelStyle = NSTextFieldBezelStyle.Rounded;
@@ -158,7 +255,7 @@ namespace MonoDevelop.MacIntegration.MainToolbar
ctxHandler = new StatusBarContextHandler (this);
updateHandler = delegate {
- int ec=0, wc=0;
+ int ec = 0, wc = 0;
foreach (var t in TaskService.Errors) {
if (t.Severity == TaskSeverity.Error)
@@ -168,27 +265,13 @@ namespace MonoDevelop.MacIntegration.MainToolbar
}
Runtime.RunInMainThread (delegate {
- if (ec > 0) {
- buildResultVisible = true;
- buildResultText.AttributedString = new NSAttributedString (ec.ToString (), foregroundColor: NSColor.Text,
- font: NSFont.SystemFontOfSize (NSFont.SmallSystemFontSize - 1));
- buildResultText.ContentsScale = Window.BackingScaleFactor;
- buildResultIcon.SetImage (buildImageId = "md-status-error-count", Window.BackingScaleFactor);
- } else if (wc > 0) {
- buildResultVisible = true;
- buildResultText.AttributedString = new NSAttributedString (wc.ToString (), foregroundColor: NSColor.Text,
- font: NSFont.SystemFontOfSize (NSFont.SmallSystemFontSize - 1));
- buildResultText.ContentsScale = Window.BackingScaleFactor;
- buildResultIcon.SetImage (buildImageId = "md-status-warning-count", Window.BackingScaleFactor);
- } else
- buildResultVisible = false;
-
- CATransaction.DisableActions = true;
- nfloat buildResultPosition = DrawBuildResults ();
- CATransaction.DisableActions = false;
- if (buildResultPosition == nfloat.PositiveInfinity)
- return;
- textField.SetFrameSize (new CGSize (buildResultPosition - 6 - textField.Frame.Left, Frame.Height));
+ buildResults.Hidden = (ec == 0 && wc == 0);
+ buildResults.ResultCount = ec > 0 ? ec : wc;
+
+ buildImageId = ec > 0 ? "md-status-error-count" : "md-status-warning-count";
+ buildResults.IconImage = ImageService.GetIcon (buildImageId, Gtk.IconSize.Menu).ToNSImage ();
+
+ NeedsDisplay = true;
});
};
@@ -197,35 +280,10 @@ namespace MonoDevelop.MacIntegration.MainToolbar
TaskService.Errors.TasksAdded += updateHandler;
TaskService.Errors.TasksRemoved += updateHandler;
- NSNotificationCenter.DefaultCenter.AddObserver (NSWindow.DidChangeBackingPropertiesNotification, notif => Runtime.RunInMainThread (() => {
- if (Window == null)
- return;
-
- ReconstructString (updateTrackingAreas: true);
- foreach (var layer in Layer.Sublayers) {
- if (layer.Name != null && layer.Name.StartsWith (StatusIconPrefixId, StringComparison.Ordinal))
- layer.SetImage (layerToStatus [layer.Name].Image, Window.BackingScaleFactor);
- }
- if (buildResultVisible) {
- buildResultIcon.SetImage (buildImageId, Window.BackingScaleFactor);
- buildResultText.ContentsScale = Window.BackingScaleFactor;
- }
- }));
-
AddSubview (imageView);
AddSubview (textField);
}
- public override void DrawRect (CGRect dirtyRect)
- {
- if (imageView.Frame.Location == CGPoint.Empty)
- imageView.Frame = new CGRect (6, 0, 16, Frame.Height);
- if (textField.Frame.Location == CGPoint.Empty)
- textField.Frame = new CGRect (imageView.Frame.Right, 0, Frame.Width - 16, Frame.Height);
-
- base.DrawRect (dirtyRect);
- }
-
protected override void Dispose (bool disposing)
{
TaskService.Errors.TasksAdded -= updateHandler;
@@ -233,8 +291,24 @@ namespace MonoDevelop.MacIntegration.MainToolbar
base.Dispose (disposing);
}
- NSTrackingArea textFieldArea;
- void ReconstructString (bool updateTrackingAreas)
+ public override void DrawRect (CGRect dirtyRect)
+ {
+ base.DrawRect (dirtyRect);
+ if (statusIcons.Count == 0 || buildResults.Hidden) {
+ return;
+ }
+
+ var x = LeftMostStatusItemX ();
+ var sepRect = new CGRect (x - 9, MacSystemInformation.OsVersion >= MacSystemInformation.ElCapitan ? 5 : 4, 1, 16);
+ if (!sepRect.IntersectsWith (dirtyRect)) {
+ return;
+ }
+
+ NSColor.LightGray.SetFill ();
+ NSBezierPath.FillRect (sepRect);
+ }
+
+ void ReconstructString ()
{
if (string.IsNullOrEmpty (text)) {
textField.AttributedStringValue = new NSAttributedString ("");
@@ -244,162 +318,85 @@ namespace MonoDevelop.MacIntegration.MainToolbar
imageView.Image = image;
}
- var width = textField.AttributedStringValue.BoundingRectWithSize (new CGSize (nfloat.MaxValue, textField.Frame.Height),
- NSStringDrawingOptions.UsesFontLeading | NSStringDrawingOptions.UsesLineFragmentOrigin).Width;
-
- if (!updateTrackingAreas)
- return;
-
- if (textFieldArea != null) {
- RemoveTrackingArea (textFieldArea);
- DestroyPopover ();
- }
-
- if (width > textField.Frame.Width) {
- textFieldArea = new NSTrackingArea (textField.Frame, NSTrackingAreaOptions.MouseEnteredAndExited | NSTrackingAreaOptions.ActiveInKeyWindow, this, null);
- AddTrackingArea (textFieldArea);
- } else
- textFieldArea = null;
+ DestroyPopover (null, null);
}
- CALayer ProgressLayer {
- get { return Layer.Sublayers.FirstOrDefault (l => l.Name == ProgressLayerId); }
- }
+ readonly List<StatusIcon> statusIcons = new List<StatusIcon> ();
- readonly Dictionary<string, StatusIcon> layerToStatus = new Dictionary<string, StatusIcon> ();
- internal void RemoveStatusLayer (CALayer statusLayer)
+ internal void RemoveStatusIcon (StatusIcon icon)
{
- RemoveTrackingArea (layerToStatus [statusLayer.Name].TrackingArea);
- layerToStatus.Remove (statusLayer.Name);
- RepositionStatusLayers ();
+ statusIcons.Remove (icon);
+
+ icon.Entered -= ShowPopoverForIcon;
+ icon.Exited -= DestroyPopover;
+ icon.Clicked -= DestroyPopover;
+
+ RepositionStatusIcons ();
}
nfloat LeftMostStatusItemX ()
{
- if (Layer.Sublayers == null)
- return Layer.Frame.Width;
-
- var left = Layer.Sublayers.Min<CALayer, nfloat> (layer => {
- if (layer.Name == null)
- return nfloat.PositiveInfinity;
+ if (statusIcons.Count == 0) {
+ return Frame.Width;
+ }
- if (layer.Name.StartsWith (StatusIconPrefixId, StringComparison.Ordinal))
- return layer.Frame.Left;
- return nfloat.PositiveInfinity;
- });
- return left == nfloat.PositiveInfinity ? Layer.Frame.Width : left;
+ return statusIcons.Last ().Frame.X;
}
nfloat DrawSeparatorIfNeeded (nfloat right)
{
- CALayer layer = Layer.Sublayers.FirstOrDefault (l => l.Name == SeparatorLayerId);
- if (layerToStatus.Count == 0) {
- if (layer != null)
- layer.RemoveFromSuperLayer ();
+ NeedsDisplay = true;
+
+ if (statusIcons.Count == 0) {
return right;
}
- right -= 6;
- if (layer != null) {
- layer.Frame = new CGRect (right, MacSystemInformation.OsVersion >= MacSystemInformation.ElCapitan ? 4 : 3, 1, 16);
- layer.SetNeedsDisplay ();
- } else {
- layer = CALayer.Create ();
- layer.Name = SeparatorLayerId;
- layer.Frame = new CGRect (right, MacSystemInformation.OsVersion >= MacSystemInformation.ElCapitan ? 4 : 3, 1, 16);
- layer.BackgroundColor = NSColor.LightGray.CGColor;
- Layer.AddSublayer (layer);
- }
- return right - 3;
+ return right - 9;
}
- bool buildResultVisible;
- readonly CATextLayer buildResultText = new CATextLayer {
- Name = BuildTextLayerId,
- };
IconId buildImageId;
- readonly CALayer buildResultIcon = new CALayer {
- Name = BuildIconLayerId,
- };
- nfloat DrawBuildResults ()
- {
- if (!buildResultVisible) {
- if (Layer.Sublayers != null) {
- CALayer layer;
- layer = Layer.Sublayers.FirstOrDefault (l => l.Name != null && l.Name.StartsWith (BuildIconLayerId, StringComparison.Ordinal));
- if (layer != null)
- layer.RemoveFromSuperLayer ();
-
- layer = Layer.Sublayers.FirstOrDefault (l => l.Name != null && l.Name.StartsWith (BuildTextLayerId, StringComparison.Ordinal));
- if (layer != null)
- layer.RemoveFromSuperLayer ();
-
- layer = Layer.Sublayers.FirstOrDefault (l => l.Name != null && l.Name.StartsWith (SeparatorLayerId, StringComparison.Ordinal));
- if (layer != null)
- layer.RemoveFromSuperLayer ();
- }
- return nfloat.PositiveInfinity;
- }
- nfloat right = DrawSeparatorIfNeeded (LeftMostStatusItemX ());
- CGSize size = buildResultText.AttributedString.Size;
- right = right - 3 - size.Width;
- buildResultText.Frame = new CGRect (right, MacSystemInformation.OsVersion >= MacSystemInformation.ElCapitan ? 6 : 5, size.Width, size.Height);
- if (buildResultText.SuperLayer == null)
- Layer.AddSublayer (buildResultText);
- buildResultText.SetNeedsDisplay ();
- right -= buildResultIcon.Bounds.Width;
- buildResultIcon.Frame = new CGRect (right, MacSystemInformation.OsVersion >= MacSystemInformation.ElCapitan ? 4 : 3, buildResultIcon.Bounds.Width, buildResultIcon.Bounds.Height);
- if (buildResultIcon.SuperLayer == null)
- Layer.AddSublayer (buildResultIcon);
-
- return right;
+ void PositionBuildResults (nfloat right)
+ {
+ right = DrawSeparatorIfNeeded (right);
+ right -= (3 + buildResults.Frame.Width);
+ buildResults.SetFrameOrigin (new CGPoint (right, buildResults.Frame.Y));
}
- internal void RepositionStatusLayers ()
+ internal void RepositionStatusIcons ()
{
- nfloat right = Layer.Frame.Width - 5;
- CATransaction.DisableActions = true;
- foreach (var item in Layer.Sublayers) {
- if (item.Name != null && item.Name.StartsWith (StatusIconPrefixId, StringComparison.Ordinal)) {
- var icon = layerToStatus [item.Name];
- if (icon.TrackingArea != null)
- RemoveTrackingArea (icon.TrackingArea);
+ nfloat right = Frame.Width - 3;
- right -= item.Bounds.Width + 1;
- item.Frame = new CGRect (right, MacSystemInformation.OsVersion >= MacSystemInformation.ElCapitan ? 4 : 3, item.Bounds.Width, item.Bounds.Height);
-
- var area = new NSTrackingArea (item.Frame, NSTrackingAreaOptions.MouseEnteredAndExited | NSTrackingAreaOptions.ActiveInKeyWindow, this, null);
- AddTrackingArea (area);
-
- icon.TrackingArea = area;
- }
+ foreach (var item in statusIcons) {
+ right -= item.Bounds.Width + 1;
+ item.Frame = new CGRect (right, MacSystemInformation.OsVersion >= MacSystemInformation.ElCapitan ? 5 : 4, item.Bounds.Width, item.Bounds.Height);
}
+ PositionBuildResults (right);
+
right -= 2;
- nfloat buildResultPosition = DrawBuildResults ();
- CATransaction.DisableActions = false;
- if (buildResultPosition < right) { // We have a build result layer.
- textField.SetFrameSize (new CGSize (buildResultPosition - 3 - textField.Frame.Left, Frame.Height));
+ if (!buildResults.Hidden) { // We have a build result layer.
+ textField.SetFrameSize (new CGSize (buildResults.Frame.X - 3 - textField.Frame.Left, Frame.Height));
} else
textField.SetFrameSize (new CGSize (right - 3 - textField.Frame.Left, Frame.Height));
}
- long statusCounter;
public StatusBarIcon ShowStatusIcon (Xwt.Drawing.Image pixbuf)
{
- var layer = CALayer.Create ();
- layer.Name = StatusIconPrefixId + (++statusCounter);
- layer.Bounds = new CGRect (0, 0, (nfloat)pixbuf.Width, (nfloat)pixbuf.Height);
- var statusIcon = new StatusIcon (this, layer, null) {
+ var statusIcon = new StatusIcon (this) {
Image = pixbuf,
};
- layerToStatus [layer.Name] = statusIcon;
+ statusIcons.Add (statusIcon);
+
+ statusIcon.Entered += ShowPopoverForIcon;
+ statusIcon.Exited += DestroyPopover;
- Layer.AddSublayer (layer);
+ // We need to destroy the popover otherwise the window doesn't come up correctly
+ statusIcon.Clicked += DestroyPopover;
- RepositionStatusLayers ();
+ AddSubview (statusIcon);
+ RepositionStatusIcons ();
return statusIcon;
}
@@ -457,7 +454,7 @@ namespace MonoDevelop.MacIntegration.MainToolbar
bool changed = LoadText (message, isMarkup, color);
LoadPixbuf (image);
if (changed)
- ReconstructString (updateTrackingAreas: true);
+ ReconstructString ();
}
bool LoadText (string message, bool isMarkup, NSColor color)
@@ -501,7 +498,7 @@ namespace MonoDevelop.MacIntegration.MainToolbar
image = iconAnimation.FirstFrame.ToNSImage ();
xwtAnimation = iconAnimation.StartAnimation (p => {
image = p.ToNSImage ();
- ReconstructString (updateTrackingAreas: false);
+ ReconstructString ();
});
} else {
image = ImageService.GetIcon (iconId).ToNSImage ();
@@ -547,10 +544,12 @@ namespace MonoDevelop.MacIntegration.MainToolbar
public void EndProgress ()
{
progressMarks.Clear ();
- if (ProgressLayer != null) {
- ProgressLayer.RemoveAnimation (growthAnimationKey);
- if (inProgress == false)
- ProgressLayer.RemoveFromSuperLayer ();
+ if (progressLayer != null) {
+ progressLayer.RemoveAnimation (growthAnimationKey);
+ if (inProgress == false) {
+ progressLayer.RemoveFromSuperLayer ();
+ progressLayer = null;
+ }
}
inProgress = false;
AutoPulse = false;
@@ -573,17 +572,19 @@ namespace MonoDevelop.MacIntegration.MainToolbar
}
static CGColor xamBlue = new CGColor (52f / 255, 152f / 255, 219f / 255);
- static nfloat verticalOffset = MacSystemInformation.OsVersion >= MacSystemInformation.ElCapitan ? 2 : 0;
+ static nfloat verticalOffset = 2;
CALayer CreateProgressBarLayer (double width)
{
- CALayer progress = ProgressLayer;
+ CALayer progress = progressLayer;
if (progress == null) {
progress = CALayer.Create ();
- progress.Name = ProgressLayerId;
progress.BackgroundColor = xamBlue;
progress.BorderColor = xamBlue;
progress.FillMode = CAFillMode.Forwards;
progress.Frame = new CGRect (0, Frame.Height - barHeight - verticalOffset, (nfloat)width, barHeight);
+
+ progressLayer = progress;
+ Layer.AddSublayer (progress);
}
return progress;
}
@@ -647,11 +648,6 @@ namespace MonoDevelop.MacIntegration.MainToolbar
progress.AddAnimation (fadeout, "opacity");
};
progress.AddAnimation (animation, growthAnimationKey);
- var oldLayer = ProgressLayer;
- if (oldLayer == null)
- Layer.AddSublayer (progress);
-
- UpdateLayer ();
}
const int barHeight = 2;
@@ -717,9 +713,9 @@ namespace MonoDevelop.MacIntegration.MainToolbar
((NSTextField)popover.ContentViewController.View).AttributedStringValue = attrString;
}
- bool CreatePopoverForLayer (CALayer layer)
+ bool CreatePopoverForIcon (StatusBarIcon icon)
{
- string tooltip = layerToStatus [layer.Name].ToolTip;
+ string tooltip = icon.ToolTip;
if (tooltip == null)
return false;
@@ -732,18 +728,17 @@ namespace MonoDevelop.MacIntegration.MainToolbar
CreatePopoverCommon (Frame.Width, textField.AttributedStringValue.Value);
}
- void ShowPopoverForLayer (CALayer layer)
+ void ShowPopoverForIcon (object sender, EventArgs args)
{
if (popover != null)
return;
- if (!layerToStatus.ContainsKey (layer.Name))
- return;
+ var icon = (StatusIcon) sender;
- if (!CreatePopoverForLayer (layer))
+ if (!CreatePopoverForIcon (icon))
return;
- popover.Show (layer.Frame, this, NSRectEdge.MinYEdge);
+ popover.Show (icon.Frame, this, NSRectEdge.MinYEdge);
}
void ShowPopoverForStatusBar ()
@@ -755,59 +750,46 @@ namespace MonoDevelop.MacIntegration.MainToolbar
popover.Show (textField.Frame, this, NSRectEdge.MinYEdge);
}
- void DestroyPopover ()
+ void DestroyPopover (object sender, EventArgs args)
{
- oldLayer = null;
if (popover != null)
popover.Close ();
popover = null;
}
-
- bool InTextField (CGPoint location)
- {
- return textField.IsMouseInRect (location, textField.Frame);
- }
-
- CALayer LayerForPoint (CGPoint location)
- {
- CALayer layer = Layer.PresentationLayer.HitTest (location);
- return layer != null ? layer.ModelLayer : null;
- }
-
- string oldLayer;
+
public override void MouseEntered (NSEvent theEvent)
{
base.MouseEntered (theEvent);
- CGPoint location = ConvertPointFromView (theEvent.LocationInWindow, null);
-
- if (InTextField (location)) {
+ var width = textField.AttributedStringValue.BoundingRectWithSize (new CGSize (nfloat.MaxValue, textField.Frame.Height),
+ NSStringDrawingOptions.UsesFontLeading | NSStringDrawingOptions.UsesLineFragmentOrigin).Width;
+ if (width > textField.Frame.Width) {
ShowPopoverForStatusBar ();
- return;
- }
-
- var layer = LayerForPoint (location);
- if (layer == null)
- return;
-
- if (layer.Name == oldLayer) {
- StatusIcon icon;
- if (!layerToStatus.TryGetValue (layer.Name, out icon))
- return;
-
- if (string.IsNullOrEmpty (icon.ToolTip))
- return;
}
-
- oldLayer = layer.Name;
- ShowPopoverForLayer (layer);
}
public override void MouseExited (NSEvent theEvent)
{
base.MouseExited (theEvent);
+ DestroyPopover (null, null);
+ }
+
+ internal static Xwt.PointerButton NSEventButtonToXwt (NSEvent theEvent)
+ {
+ Xwt.PointerButton button = Xwt.PointerButton.Left;
+ switch ((NSEventType)(long)theEvent.ButtonNumber) {
+ case NSEventType.LeftMouseDown:
+ button = Xwt.PointerButton.Left;
+ break;
+ case NSEventType.RightMouseDown:
+ button = Xwt.PointerButton.Right;
+ break;
+ case NSEventType.OtherMouseDown:
+ button = Xwt.PointerButton.Middle;
+ break;
+ }
- DestroyPopover ();
+ return button;
}
public override void MouseDown (NSEvent theEvent)
@@ -815,41 +797,23 @@ namespace MonoDevelop.MacIntegration.MainToolbar
base.MouseDown (theEvent);
CGPoint location = ConvertPointFromView (theEvent.LocationInWindow, null);
- var layer = LayerForPoint (location);
- if (layer != null && layer.Name != null) {
- Xwt.PointerButton button = Xwt.PointerButton.Left;
- switch ((NSEventType)(long)theEvent.ButtonNumber) {
- case NSEventType.LeftMouseDown:
- button = Xwt.PointerButton.Left;
- break;
- case NSEventType.RightMouseDown:
- button = Xwt.PointerButton.Right;
- break;
- case NSEventType.OtherMouseDown:
- button = Xwt.PointerButton.Middle;
- break;
- }
-
- if (layerToStatus.ContainsKey (layer.Name)) {
- DestroyPopover ();
- layerToStatus [layer.Name].NotifyClicked (button);
- return;
- }
-
- if (layer.Name == BuildIconLayerId || layer.Name == BuildTextLayerId) { // We clicked error icon.
- IdeApp.Workbench.GetPad<MonoDevelop.Ide.Gui.Pads.ErrorListPad> ().BringToFront ();
- return;
- }
- }
-
- if (sourcePad != null)
+ if (textField.IsMouseInRect (location, textField.Frame) && sourcePad != null) {
sourcePad.BringToFront (true);
+ }
}
- public override void ViewDidEndLiveResize ()
- {
- base.ViewDidEndLiveResize ();
- RepositionStatusLayers ();
+ public override CGRect Frame {
+ get {
+ return base.Frame;
+ }
+ set {
+ base.Frame = value;
+ imageView.Frame = new CGRect (6, 0, 16, Frame.Height);
+ textField.Frame = new CGRect (imageView.Frame.Right, 0, Frame.Width - 16, Frame.Height);
+
+ buildResults.Frame = new CGRect (buildResults.Frame.X, buildResults.Frame.Y, buildResults.Frame.Width, Frame.Height);
+ RepositionStatusIcons ();
+ }
}
}
}
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserNavigationPoint.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserNavigationPoint.cs
index b11548c299..f62d47d205 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserNavigationPoint.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserNavigationPoint.cs
@@ -30,6 +30,7 @@ using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Navigation;
using ICSharpCode.NRefactory.TypeSystem;
using System.Collections.Generic;
+using System.Threading.Tasks;
namespace MonoDevelop.AssemblyBrowser
{
@@ -85,9 +86,9 @@ namespace MonoDevelop.AssemblyBrowser
#region implemented abstract members of NavigationPoint
- public override Document ShowDocument ()
+ public override Task<Document> ShowDocument ()
{
- return DoShow ();
+ return Task.FromResult (DoShow ());
}
public override string DisplayName {
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContent.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContent.cs
index 177a61db98..db1d5f40fa 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContent.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContent.cs
@@ -30,6 +30,7 @@ using MonoDevelop.Ide.Gui;
using MonoDevelop.Refactoring;
using System;
using ICSharpCode.NRefactory.TypeSystem;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Ide.Navigation;
@@ -37,24 +38,26 @@ using MonoDevelop.Projects;
using System.Linq;
using MonoDevelop.Ide;
using System.Collections.Generic;
-
+using System.Threading.Tasks;
+using MonoDevelop.Components;
+
namespace MonoDevelop.AssemblyBrowser
{
- class AssemblyBrowserViewContent : AbstractViewContent, IOpenNamedElementHandler, INavigable
+ class AssemblyBrowserViewContent : ViewContent, IOpenNamedElementHandler, INavigable
{
readonly static string[] defaultAssemblies = new string[] { "mscorlib", "System", "System.Core", "System.Xml" };
AssemblyBrowserWidget widget;
- protected override void OnWorkbenchWindowChanged (EventArgs e)
+ protected override void OnWorkbenchWindowChanged ()
{
- base.OnWorkbenchWindowChanged (e);
+ base.OnWorkbenchWindowChanged ();
if (WorkbenchWindow != null) {
var toolbar = WorkbenchWindow.GetToolbar (this);
widget.SetToolbar (toolbar);
}
}
- public override Gtk.Widget Control {
+ public override Control Control {
get {
return widget;
}
@@ -73,10 +76,11 @@ namespace MonoDevelop.AssemblyBrowser
IsDisposed = false;
}
- public override void Load (FileOpenInformation fileOpenInformation)
+ public override Task Load (FileOpenInformation fileOpenInformation)
{
ContentName = GettextCatalog.GetString ("Assembly Browser");
widget.AddReferenceByFileName (fileOpenInformation.FileName);
+ return Task.FromResult (true);
}
internal void EnsureDefinitionsLoaded (List<AssemblyLoader> definitions)
@@ -100,9 +104,12 @@ namespace MonoDevelop.AssemblyBrowser
IsDisposed = true;
base.Dispose ();
widget = null;
- GC.Collect ();
+ if (Disposed != null)
+ Disposed (this, EventArgs.Empty);
}
+ internal event EventHandler Disposed;
+
#region INavigable implementation
public NavigationPoint BuildNavigationPoint ()
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
index 16a664662e..92a761c700 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
@@ -1266,6 +1266,7 @@ namespace MonoDevelop.AssemblyBrowser
this.Open (link, loader);
}
});
+ marker.OnlyShowLinkOnHover = true;
underlineMarkers.Add (marker);
inspectEditor.AddMarker (marker);
}
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DisplayBinding.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DisplayBinding.cs
index 71ded99d16..f992060d7e 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DisplayBinding.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DisplayBinding.cs
@@ -53,14 +53,14 @@ namespace MonoDevelop.AssemblyBrowser
{
if (viewContent == null || viewContent.IsDisposed) {
viewContent = new AssemblyBrowserViewContent ();
- viewContent.Control.Destroyed += HandleDestroyed;
+ viewContent.Disposed += HandleDestroyed;
}
return viewContent;
}
void HandleDestroyed (object sender, EventArgs e)
{
- ((Gtk.Widget)sender).Destroyed -= HandleDestroyed;
+ ((AssemblyBrowserViewContent)sender).Disposed -= HandleDestroyed;
this.viewContent = null;
}
@@ -71,7 +71,7 @@ namespace MonoDevelop.AssemblyBrowser
|| mimeType == "application/x-msdownload";
}
- public IViewContent CreateContent (FilePath fileName, string mimeType, Project ownerProject)
+ public ViewContent CreateContent (FilePath fileName, string mimeType, Project ownerProject)
{
return GetViewContent ();
}
diff --git a/main/src/addins/MonoDevelop.Autotools/MakefileOptionPanel.cs b/main/src/addins/MonoDevelop.Autotools/MakefileOptionPanel.cs
index 4ac8a3e0b1..598bcd1d1d 100644
--- a/main/src/addins/MonoDevelop.Autotools/MakefileOptionPanel.cs
+++ b/main/src/addins/MonoDevelop.Autotools/MakefileOptionPanel.cs
@@ -1,5 +1,5 @@
-using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Projects;
@@ -13,7 +13,7 @@ namespace MonoDevelop.Autotools
{
}
- public override Widget CreatePanelWidget()
+ public override Control CreatePanelWidget()
{
Project project = ConfiguredProject;
MakefileData data = project.GetMakefileData ();
diff --git a/main/src/addins/MonoDevelop.Autotools/MakefileProject.cs b/main/src/addins/MonoDevelop.Autotools/MakefileProject.cs
index 7aecb44743..f2fb5fec65 100644
--- a/main/src/addins/MonoDevelop.Autotools/MakefileProject.cs
+++ b/main/src/addins/MonoDevelop.Autotools/MakefileProject.cs
@@ -11,11 +11,9 @@ namespace MonoDevelop.Autotools
{
}
- protected override SolutionItemConfiguration OnCreateConfiguration (string name, ConfigurationKind kind)
+ protected override SolutionItemConfiguration OnCreateConfiguration (string id, ConfigurationKind kind)
{
- MakefileProjectConfiguration conf = new MakefileProjectConfiguration ();
- conf.Name = name;
- return conf;
+ return new MakefileProjectConfiguration (id);
}
protected override void OnGetTypeTags (HashSet<string> types)
@@ -27,5 +25,8 @@ namespace MonoDevelop.Autotools
public class MakefileProjectConfiguration: ProjectConfiguration
{
+ public MakefileProjectConfiguration (string id) : base (id)
+ {
+ }
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger.Soft/MonoDevelop.Debugger.Soft/SoftDebuggerEngine.cs b/main/src/addins/MonoDevelop.Debugger.Soft/MonoDevelop.Debugger.Soft/SoftDebuggerEngine.cs
index 98d5f6edab..aa0993debf 100644
--- a/main/src/addins/MonoDevelop.Debugger.Soft/MonoDevelop.Debugger.Soft/SoftDebuggerEngine.cs
+++ b/main/src/addins/MonoDevelop.Debugger.Soft/MonoDevelop.Debugger.Soft/SoftDebuggerEngine.cs
@@ -92,7 +92,7 @@ namespace MonoDevelop.Debugger.Soft
ExternalConsoleFactory.Instance.CreateConsole (dsi.CloseExternalConsoleOnExit), varsCopy);
return new ProcessAdapter (oper, Path.GetFileName (info.FileName));
};
-
+ startArgs.MonoExecutableFileName = runtime.MonoRuntimeInfo.Force64or32bit.HasValue ? runtime.MonoRuntimeInfo.Force64or32bit.Value ? "mono64" : "mono32" : "mono";
return dsi;
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs
index 748a080303..4bc5f46731 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.PreviewVisualizers/GenericPreviewVisualizer.cs
@@ -49,7 +49,8 @@ namespace MonoDevelop.Debugger.PreviewVisualizers
if (DebuggingService.HasInlineVisualizer (val))
value = DebuggingService.GetInlineVisualizer (val).InlineVisualize (val);
- var label = new Gtk.Label (value);
+ var label = new Gtk.Label ();
+ label.Text = value;
var font = label.Style.FontDescription.Copy ();
if (font.SizeIsAbsolute) {
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs
index 900a11fc0c..9c395b5889 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs
@@ -40,7 +40,7 @@ using MonoDevelop.Ide;
namespace MonoDevelop.Debugger
{
- public class BreakpointPad : IPadContent
+ public class BreakpointPad : PadContent
{
BreakpointStore breakpoints;
@@ -69,8 +69,9 @@ namespace MonoDevelop.Debugger
Properties
}
- public void Initialize (IPadWindow window)
+ protected override void Initialize (IPadWindow window)
{
+ Id = "MonoDevelop.Debugger.BreakpointPad";
// Toolbar and menu definitions
ActionCommand gotoCmd = new ActionCommand (LocalCommands.GoToFile, GettextCatalog.GetString ("Go to File"));
@@ -168,12 +169,12 @@ namespace MonoDevelop.Debugger
tree.RowActivated += OnRowActivated;
- DockItemToolbar toolbar = window.GetToolbar (PositionType.Top);
+ DockItemToolbar toolbar = window.GetToolbar (DockPositionType.Top);
toolbar.Add (toolbarSet, sw);
toolbar.ShowAll ();
}
- public void Dispose ()
+ public override void Dispose ()
{
breakpoints.BreakpointAdded -= OnBreakpointAdded;
breakpoints.BreakpointRemoved -= OnBreakpointRemoved;
@@ -183,6 +184,7 @@ namespace MonoDevelop.Debugger
DebuggingService.PausedEvent -= OnDebuggerStatusCheck;
DebuggingService.ResumedEvent -= OnDebuggerStatusCheck;
DebuggingService.StoppedEvent -= OnDebuggerStatusCheck;
+ base.Dispose ();
}
void ShowPopup (Gdk.EventButton evt)
@@ -465,25 +467,16 @@ namespace MonoDevelop.Debugger
OnBpJumpTo ();
}
- public Gtk.Widget Control {
+ public override Control Control {
get {
return control;
}
}
- public string Id {
- get { return "MonoDevelop.Debugger.BreakpointPad"; }
- }
-
public string DefaultPlacement {
get { return "Bottom"; }
}
- public void RedrawContent ()
- {
- UpdateDisplay ();
- }
-
protected void OnDeleteClicked (object o, EventArgs args)
{
OnDeleted ();
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs
index 11b8ebfe09..1039e4745d 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPropertiesDialog.cs
@@ -36,6 +36,7 @@ using Xwt;
using Xwt.Drawing;
using System.Linq;
using System.IO;
+using System.Threading.Tasks;
namespace MonoDevelop.Debugger
{
@@ -203,7 +204,7 @@ namespace MonoDevelop.Debugger
public BreakpointPropertiesDialog (BreakEvent be, BreakpointType breakpointType)
{
this.be = be;
- LoadExceptionList ();
+ Task.Run (LoadExceptionList);
Initialize ();
SetInitialData ();
SetLayout ();
@@ -648,7 +649,9 @@ namespace MonoDevelop.Debugger
if (!classes.Contains (entryExceptionType.Text)) {
warningException.Show ();
warningException.ToolTip = GettextCatalog.GetString ("Exception not identified");
- result = false;
+ //We might be missing some exceptions that are loaded at runtime from outside our project
+ //or we don't have project at all, hence show warning but still allow user to close window
+ result = true;
}
}
return result;
@@ -684,29 +687,35 @@ namespace MonoDevelop.Debugger
return true;
}
- void LoadExceptionList ()
+ async Task LoadExceptionList ()
{
classes.Add ("System.Exception");
- if (IdeApp.ProjectOperations.CurrentSelectedProject != null) {
- var compilation = TypeSystemService.GetCompilationAsync (IdeApp.ProjectOperations.CurrentSelectedProject).Result;
- var exceptionClass = compilation.GetTypeByMetadataName ("System.Exception");
- foreach (var t in compilation.GlobalNamespace.GetAllTypes ().Where ((arg) => arg.IsDerivedFromClass (exceptionClass))) {
- classes.Add (t.GetFullMetadataName ());
+ try {
+ Microsoft.CodeAnalysis.Compilation compilation = null;
+ Microsoft.CodeAnalysis.ProjectId dummyProjectId = null;
+ if (IdeApp.ProjectOperations.CurrentSelectedProject != null) {
+ compilation = await TypeSystemService.GetCompilationAsync (IdeApp.ProjectOperations.CurrentSelectedProject);
+ }
+ if (compilation == null) {
+ //no need to unload this assembly context, it's not cached.
+ dummyProjectId = Microsoft.CodeAnalysis.ProjectId.CreateNewId ("GetExceptionsProject");
+ compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create ("GetExceptions")
+ .AddReferences (MetadataReferenceCache.LoadReference (dummyProjectId, System.Reflection.Assembly.GetAssembly (typeof (object)).Location))//corlib
+ .AddReferences (MetadataReferenceCache.LoadReference (dummyProjectId, System.Reflection.Assembly.GetAssembly (typeof (Uri)).Location));//System.dll
}
- } else {
- //no need to unload this assembly context, it's not cached.
- var dummyProjectId = Microsoft.CodeAnalysis.ProjectId.CreateNewId ("GetExceptionsProject");
- var compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create ("GetExceptions")
- .AddReferences (MetadataReferenceCache.LoadReference (dummyProjectId, System.Reflection.Assembly.GetAssembly (typeof(object)).Location))//corlib
- .AddReferences (MetadataReferenceCache.LoadReference (dummyProjectId, System.Reflection.Assembly.GetAssembly (typeof(Uri)).Location));//System.dll
-
var exceptionClass = compilation.GetTypeByMetadataName ("System.Exception");
foreach (var t in compilation.GlobalNamespace.GetAllTypes ().Where ((arg) => arg.IsDerivedFromClass (exceptionClass))) {
classes.Add (t.GetFullMetadataName ());
}
- MetadataReferenceCache.RemoveReferences (dummyProjectId);
+ if (dummyProjectId != null) {
+ MetadataReferenceCache.RemoveReferences (dummyProjectId);
+ }
+ } catch (Exception e) {
+ LoggingService.LogError ("Failed to obtain exceptions list in breakpoint dialog.", e);
}
- entryExceptionType.SetCodeCompletionList (classes.ToList ());
+ await Runtime.RunInMainThread (() => {
+ entryExceptionType.SetCodeCompletionList (classes.ToList ());
+ });
}
public BreakEvent GetBreakEvent ()
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs
index 85c5ef476b..ec6d84fafd 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggerOptionsPanelWidget.cs
@@ -26,6 +26,7 @@
using System;
using Mono.Debugging.Client;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using Xwt;
using MonoDevelop.Core;
@@ -36,7 +37,7 @@ namespace MonoDevelop.Debugger
{
DebuggerOptionsPanelWidget w;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
w = new DebuggerOptionsPanelWidget ();
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
index 608391aec0..dcd54faa84 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
@@ -947,25 +947,25 @@ namespace MonoDevelop.Debugger
});
}
- public static void ShowCurrentExecutionLine ()
+ public static async void ShowCurrentExecutionLine ()
{
Runtime.AssertMainThread ();
if (currentBacktrace != null) {
var sf = GetCurrentVisibleFrame ();
if (sf != null && !string.IsNullOrEmpty (sf.SourceLocation.FileName) && System.IO.File.Exists (sf.SourceLocation.FileName) && sf.SourceLocation.Line != -1) {
- Document document = IdeApp.Workbench.OpenDocument (sf.SourceLocation.FileName, null, sf.SourceLocation.Line, 1, OpenDocumentOptions.Debugger);
+ Document document = await IdeApp.Workbench.OpenDocument (sf.SourceLocation.FileName, null, sf.SourceLocation.Line, 1, OpenDocumentOptions.Debugger);
OnDisableConditionalCompilation (new DocumentEventArgs (document));
}
}
}
- public static void ShowNextStatement ()
+ public static async void ShowNextStatement ()
{
Runtime.AssertMainThread ();
var location = NextStatementLocation;
if (location != null && System.IO.File.Exists (location.FileName)) {
- Document document = IdeApp.Workbench.OpenDocument (location.FileName, null, location.Line, 1, OpenDocumentOptions.Debugger);
+ Document document = await IdeApp.Workbench.OpenDocument (location.FileName, null, location.Line, 1, OpenDocumentOptions.Debugger);
OnDisableConditionalCompilation (new DocumentEventArgs (document));
} else {
ShowCurrentExecutionLine ();
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs
index b91b9e29b6..0f42d6b006 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DisassemblyView.cs
@@ -43,10 +43,11 @@ using MonoDevelop.Ide;
using System.Security.Cryptography;
using Gdk;
using MonoDevelop.Components;
+using System.Threading.Tasks;
namespace MonoDevelop.Debugger
{
- public class DisassemblyView: AbstractViewContent, IClipboardHandler
+ public class DisassemblyView: ViewContent, IClipboardHandler
{
Gtk.ScrolledWindow sw;
TextEditor editor;
@@ -154,15 +155,11 @@ namespace MonoDevelop.Debugger
}
}
- public override Gtk.Widget Control {
+ public override Control Control {
get {
return sw;
}
}
-
- public override void Load (FileOpenInformation fileOpenInformation)
- {
- }
public override bool IsFile {
get {
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs
index b8d99a58dd..4952354b9c 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ExceptionCaughtDialog.cs
@@ -43,7 +43,7 @@ using MonoDevelop.Ide.Fonts;
namespace MonoDevelop.Debugger
{
- class ExceptionCaughtDialog : Dialog
+ class ExceptionCaughtDialog : Gtk.Dialog
{
static readonly Xwt.Drawing.Image WarningIconPixbuf = Xwt.Drawing.Image.FromResource ("exception-48.png");
protected ObjectValueTreeView ExceptionValueTreeView { get; private set; }
@@ -676,7 +676,7 @@ namespace MonoDevelop.Debugger
dlg.Line = Line;
}
- public override Widget CreateWidget ()
+ public override Control CreateWidget ()
{
var icon = Xwt.Drawing.Image.FromResource ("lightning-16.png");
var image = new Xwt.ImageView (icon).ToGtkWidget ();
@@ -764,7 +764,7 @@ namespace MonoDevelop.Debugger
dlg.Line = Line;
}
- public override Widget CreateWidget ()
+ public override Control CreateWidget ()
{
var box = new EventBox ();
box.VisibleWindow = false;
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs
index dd5ac17ce9..1b5489e8f8 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs
@@ -37,13 +37,13 @@ using MonoDevelop.Components;
namespace MonoDevelop.Debugger
{
- public class ImmediatePad: IPadContent
+ public class ImmediatePad: PadContent
{
static readonly object mutex = new object();
DebuggerConsoleView view;
readonly List<uint> timersList = new List<uint>();
- public void Initialize (IPadWindow container)
+ protected override void Initialize (IPadWindow container)
{
view = new DebuggerConsoleView ();
view.ConsoleInput += OnViewConsoleInput;
@@ -263,21 +263,18 @@ namespace MonoDevelop.Debugger
});
}
- public void RedrawContent ()
- {
- }
-
- public Gtk.Widget Control {
+ public override Control Control {
get {
return view;
}
}
- public void Dispose ()
+ public override void Dispose ()
{
DebuggingService.PausedEvent -= DebuggerPaused;
DebuggingService.ResumedEvent -= DebuggerResumed;
DebuggingService.StoppedEvent -= DebuggerStopped;
+ base.Dispose ();
}
void DebuggerResumed (object sender, EventArgs e)
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs
index 1a5f3dcf5e..eb6217ecec 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValuePad.cs
@@ -29,20 +29,20 @@ using System;
using Gtk;
using MonoDevelop.Ide.Gui;
using Mono.Debugging.Client;
+using MonoDevelop.Components;
namespace MonoDevelop.Debugger
{
- public class ObjectValuePad: IPadContent
+ public class ObjectValuePad: PadContent
{
protected ObjectValueTreeView tree;
readonly ScrolledWindow scrolled;
bool needsUpdate;
- IPadWindow container;
bool initialResume;
StackFrame lastFrame;
PadFontChanger fontChanger;
- public Gtk.Widget Control {
+ public override Control Control {
get {
return scrolled;
}
@@ -76,7 +76,7 @@ namespace MonoDevelop.Debugger
initialResume = !DebuggingService.IsDebugging;
}
- public void Dispose ()
+ public override void Dispose ()
{
if (fontChanger == null)
return;
@@ -88,21 +88,17 @@ namespace MonoDevelop.Debugger
DebuggingService.ResumedEvent -= OnDebuggerResumed;
DebuggingService.StoppedEvent -= OnDebuggerStopped;
DebuggingService.EvaluationOptionsChanged -= OnEvaluationOptionsChanged;
+ base.Dispose ();
}
- public void Initialize (IPadWindow container)
+ protected override void Initialize (IPadWindow container)
{
- this.container = container;
container.PadContentShown += delegate {
if (needsUpdate)
OnUpdateList ();
};
}
- public void RedrawContent ()
- {
- }
-
public virtual void OnUpdateList ()
{
needsUpdate = false;
@@ -113,7 +109,7 @@ namespace MonoDevelop.Debugger
protected virtual void OnFrameChanged (object s, EventArgs a)
{
- if (container != null && container.ContentVisible)
+ if (Window != null && Window.ContentVisible)
OnUpdateList ();
else
needsUpdate = true;
@@ -144,7 +140,7 @@ namespace MonoDevelop.Debugger
{
if (!DebuggingService.IsRunning) {
lastFrame = null;
- if (container != null && container.ContentVisible)
+ if (Window != null && Window.ContentVisible)
OnUpdateList ();
else
needsUpdate = true;
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs
index ef86548427..3e46fd0f6d 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/StackTracePad.cs
@@ -45,7 +45,29 @@ using System.Linq;
namespace MonoDevelop.Debugger
{
- public class StackTracePad : ScrolledWindow, IPadContent
+ public class StackTracePad : PadContent
+ {
+ StackTracePadWidget control;
+
+ public StackTracePad ()
+ {
+ Id = "MonoDevelop.Debugger.StackTracePad";
+ control = new StackTracePadWidget ();
+ }
+
+ protected override void Initialize (IPadWindow window)
+ {
+ control.Initialize (window);
+ }
+
+ public override Control Control {
+ get {
+ return control;
+ }
+ }
+ }
+
+ public class StackTracePadWidget : ScrolledWindow
{
const int IconColumn = 0;
const int MethodColumn = 1;
@@ -64,7 +86,7 @@ namespace MonoDevelop.Debugger
static Xwt.Drawing.Image pointerImage = ImageService.GetIcon ("md-stack-pointer", IconSize.Menu);
- public StackTracePad ()
+ public StackTracePadWidget ()
{
this.ShadowType = ShadowType.None;
@@ -189,7 +211,7 @@ namespace MonoDevelop.Debugger
return !value.Contains (key);
}
- void IPadContent.Initialize (IPadWindow window)
+ public void Initialize (IPadWindow window)
{
this.window = window;
window.PadContentShown += delegate {
@@ -344,25 +366,6 @@ namespace MonoDevelop.Debugger
ActivateFrame ();
}
- public Widget Control {
- get {
- return this;
- }
- }
-
- public string Id {
- get { return "MonoDevelop.Debugger.StackTracePad"; }
- }
-
- public string DefaultPlacement {
- get { return "Bottom"; }
- }
-
- public void RedrawContent ()
- {
- UpdateDisplay ();
- }
-
void ShowPopup (Gdk.EventButton evt)
{
var context_menu = new ContextMenu ();
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs
index 579dec2810..9fa65e2afc 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ThreadsPad.cs
@@ -41,7 +41,24 @@ using MonoDevelop.Ide;
namespace MonoDevelop.Debugger
{
- public class ThreadsPad : Gtk.ScrolledWindow, IPadContent
+ public class ThreadsPad: PadContent
+ {
+ ThreadsPadWidget control = new ThreadsPadWidget ();
+
+ protected override void Initialize (IPadWindow window)
+ {
+ Id = "MonoDevelop.Debugger.ThreadsPad";
+ control.Initialize (window);
+ }
+
+ public override Control Control {
+ get {
+ return control;
+ }
+ }
+ }
+
+ public class ThreadsPadWidget : Gtk.ScrolledWindow
{
TreeViewState treeViewState;
PadTreeView tree;
@@ -59,7 +76,7 @@ namespace MonoDevelop.Debugger
Location
}
- public ThreadsPad ()
+ public ThreadsPadWidget ()
{
this.ShadowType = ShadowType.None;
@@ -127,7 +144,7 @@ namespace MonoDevelop.Debugger
UpdateDisplay ();
}
- void IPadContent.Initialize (IPadWindow window)
+ public void Initialize (IPadWindow window)
{
this.window = window;
window.PadContentShown += delegate {
@@ -254,23 +271,6 @@ namespace MonoDevelop.Debugger
}
}
- public Widget Control {
- get { return this; }
- }
-
- public string Id {
- get { return "MonoDevelop.Debugger.ThreadsPad"; }
- }
-
- public string DefaultPlacement {
- get { return "Bottom"; }
- }
-
- public void RedrawContent ()
- {
- UpdateDisplay ();
- }
-
void OnDebuggerPaused (object s, EventArgs a)
{
UpdateDisplay ();
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Toolbox.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Toolbox.cs
index d78b1188cf..bda69169b5 100644
--- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Toolbox.cs
+++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Toolbox.cs
@@ -66,7 +66,7 @@ namespace MonoDevelop.DesignerSupport.Toolbox
this.container = container;
#region Toolbar
- DockItemToolbar toolbar = container.GetToolbar (PositionType.Top);
+ DockItemToolbar toolbar = container.GetToolbar (DockPositionType.Top);
filterEntry = new SearchEntry();
filterEntry.Ready = true;
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/DocumentOutlinePad.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/DocumentOutlinePad.cs
index fb87b62f38..b86f6f6ac1 100644
--- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/DocumentOutlinePad.cs
+++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/DocumentOutlinePad.cs
@@ -34,12 +34,13 @@ using MonoDevelop.Core;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide;
using System.Collections.Generic;
+using MonoDevelop.Components;
namespace MonoDevelop.DesignerSupport
{
- public class DocumentOutlinePad : AbstractPadContent
+ public class DocumentOutlinePad : PadContent
{
Alignment box;
IOutlinedDocument currentOutlineDoc;
@@ -54,12 +55,12 @@ namespace MonoDevelop.DesignerSupport
box.ShowAll ();
}
- public override void Initialize (IPadWindow window)
+ protected override void Initialize (IPadWindow window)
{
base.Initialize (window);
IdeApp.Workbench.ActiveDocumentChanged += DocumentChangedHandler;
CurrentDoc = IdeApp.Workbench.ActiveDocument;
- toolbar = window.GetToolbar (PositionType.Top);
+ toolbar = window.GetToolbar (DockPositionType.Top);
toolbar.Visible = false;
Update ();
}
@@ -85,7 +86,7 @@ namespace MonoDevelop.DesignerSupport
}
}
- public override Gtk.Widget Control {
+ public override Control Control {
get { return box; }
}
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/PropertyPad.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/PropertyPad.cs
index 690aa67385..9ce9320b34 100644
--- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/PropertyPad.cs
+++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/PropertyPad.cs
@@ -41,11 +41,12 @@ using System.Collections.Generic;
using MonoDevelop.Components.Commands;
using MonoDevelop.Ide;
using MonoDevelop.Ide.Commands;
+using MonoDevelop.Components;
namespace MonoDevelop.DesignerSupport
{
- public class PropertyPad : AbstractPadContent, ICommandDelegator
+ public class PropertyPad : PadContent, ICommandDelegator
{
pg.PropertyGrid grid;
InvisibleFrame frame;
@@ -64,10 +65,10 @@ namespace MonoDevelop.DesignerSupport
frame.ShowAll ();
}
- public override void Initialize (IPadWindow container)
+ protected override void Initialize (IPadWindow container)
{
base.Initialize (container);
- toolbarProvider.Attach (container.GetToolbar (Gtk.PositionType.Top));
+ toolbarProvider.Attach (container.GetToolbar (DockPositionType.Top));
grid.SetToolbarProvider (toolbarProvider);
this.container = container;
DesignerSupport.Service.SetPad (this);
@@ -79,7 +80,7 @@ namespace MonoDevelop.DesignerSupport
#region AbstractPadContent implementations
- public override Gtk.Widget Control {
+ public override Control Control {
get { return frame; }
}
@@ -118,7 +119,7 @@ namespace MonoDevelop.DesignerSupport
customWidget = false;
frame.Remove (frame.Child);
frame.Add (grid);
- toolbarProvider.Attach (container.GetToolbar (Gtk.PositionType.Top));
+ toolbarProvider.Attach (container.GetToolbar (DockPositionType.Top));
}
return grid;
@@ -138,7 +139,7 @@ namespace MonoDevelop.DesignerSupport
void ClearToolbar ()
{
if (container != null) {
- var toolbar = container.GetToolbar (Gtk.PositionType.Top);
+ var toolbar = container.GetToolbar (DockPositionType.Top);
foreach (var w in toolbar.Children)
toolbar.Remove (w);
}
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ToolboxPad.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ToolboxPad.cs
index e6abccb836..f27049ed61 100644
--- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ToolboxPad.cs
+++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ToolboxPad.cs
@@ -35,11 +35,12 @@ using MonoDevelop.Ide.Gui;
using MonoDevelop.DesignerSupport;
using MonoDevelop.DesignerSupport.Toolbox;
+using MonoDevelop.Components;
namespace MonoDevelop.DesignerSupport
{
- public class ToolboxPad : AbstractPadContent
+ public class ToolboxPad : PadContent
{
Toolbox.Toolbox toolbox;
@@ -47,7 +48,7 @@ namespace MonoDevelop.DesignerSupport
{
}
- public override void Initialize (IPadWindow container)
+ protected override void Initialize (IPadWindow container)
{
base.Initialize (container);
toolbox = new Toolbox.Toolbox (DesignerSupport.Service.ToolboxService, container);
@@ -56,7 +57,7 @@ namespace MonoDevelop.DesignerSupport
#region AbstractPadContent implementations
- public override Gtk.Widget Control {
+ public override Control Control {
get { return toolbox; }
}
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/WrapperDesignView.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/WrapperDesignView.cs
index a3a743e8b0..8de2800c5f 100644
--- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/WrapperDesignView.cs
+++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/WrapperDesignView.cs
@@ -1,5 +1,5 @@
//
-// WrapperDesignView.cs: base class for wrapping an IViewContent. Heavily based on
+// WrapperDesignView.cs: base class for wrapping an ViewContent. Heavily based on
// MonoDevelop.GtkCore.GuiBuilder.CombinedDesignView
//
// Author:
@@ -31,28 +31,30 @@
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide;
+using System.Collections.Generic;
+using System.Threading.Tasks;
namespace MonoDevelop.DesignerSupport
{
- public class WrapperDesignView : AbstractViewContent
+ public class WrapperDesignView : ViewContent
{
- IViewContent content;
+ ViewContent content;
Gtk.VBox contentBox;
Gtk.Widget topBar;
- public WrapperDesignView (IViewContent content)
+ public WrapperDesignView (ViewContent content)
{
this.content = content;
this.contentBox = new Gtk.VBox ();
this.contentBox.PackEnd (content.Control, true, true, 0);
this.contentBox.ShowAll ();
- content.ContentChanged += new EventHandler (OnTextContentChanged);
content.DirtyChanged += new EventHandler (OnTextDirtyChanged);
-
+
IdeApp.Workbench.ActiveDocumentChanged += new EventHandler (OnActiveDocumentChanged);
}
@@ -76,50 +78,53 @@ namespace MonoDevelop.DesignerSupport
}
}
- protected IViewContent Content {
+ protected ViewContent Content {
get { return content; }
}
- public override MonoDevelop.Projects.Project Project {
- get { return base.Project; }
- set {
- base.Project = value;
- content.Project = value;
+ protected override void OnSetProject (MonoDevelop.Projects.Project project)
+ {
+ base.OnSetProject (project);
+ content.Project = project;
+ }
+
+ public override ProjectReloadCapability ProjectReloadCapability {
+ get {
+ return content.ProjectReloadCapability;
}
}
- protected override void OnWorkbenchWindowChanged (EventArgs e)
+ protected override void OnWorkbenchWindowChanged ()
{
- base.OnWorkbenchWindowChanged (e);
+ base.OnWorkbenchWindowChanged ();
content.WorkbenchWindow = WorkbenchWindow;
}
public override void Dispose ()
{
- content.ContentChanged -= new EventHandler (OnTextContentChanged);
content.DirtyChanged -= new EventHandler (OnTextDirtyChanged);
IdeApp.Workbench.ActiveDocumentChanged -= new EventHandler (OnActiveDocumentChanged);
base.Dispose ();
}
- public override void Load (FileOpenInformation fileOpenInformation)
+ public override Task Load (FileOpenInformation fileOpenInformation)
{
ContentName = fileOpenInformation.FileName;
- content.Load (ContentName);
+ return content.Load (ContentName);
}
- public override void LoadNew (System.IO.Stream content, string mimeType)
+ public override Task LoadNew (System.IO.Stream content, string mimeType)
{
- this.content.LoadNew (content, mimeType);
+ return this.content.LoadNew (content, mimeType);
}
- public override Gtk.Widget Control {
+ public override Control Control {
get { return contentBox; }
}
- public override void Save (FileSaveInformation fileSaveInformation)
+ public override Task Save (FileSaveInformation fileSaveInformation)
{
- content.Save (fileSaveInformation);
+ return content.Save (fileSaveInformation);
}
public override bool IsDirty {
@@ -138,19 +143,15 @@ namespace MonoDevelop.DesignerSupport
}
}
- public override string ContentName {
- get { return content.ContentName; }
- set { content.ContentName = value; }
- }
-
- void OnTextContentChanged (object s, EventArgs args)
+ protected override void OnContentNameChanged ()
{
- OnContentChanged (args);
+ base.OnContentNameChanged ();
+ content.ContentName = ContentName;
}
-
+
void OnTextDirtyChanged (object s, EventArgs args)
{
- OnDirtyChanged (args);
+ OnDirtyChanged ();
}
void OnActiveDocumentChanged (object s, EventArgs args)
@@ -163,10 +164,10 @@ namespace MonoDevelop.DesignerSupport
protected virtual void OnDocumentActivated ()
{
}
-
- public override object GetContent (Type type)
+
+ protected override IEnumerable<object> OnGetContents (Type type)
{
- return base.GetContent (type) ?? content.GetContent (type);
+ return base.OnGetContents (type).Concat (content.GetContents (type));
}
}
}
diff --git a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/AcronymsPanelWidget.cs b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/AcronymsPanelWidget.cs
index 056df0d5fb..1e9ba38bae 100644
--- a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/AcronymsPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/AcronymsPanelWidget.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.DocFood.Options
@@ -44,7 +45,7 @@ namespace MonoDevelop.DocFood.Options
{
AcronymsPanelWidget panel;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
panel = new AcronymsPanelWidget (DocConfig.Instance);
return panel;
diff --git a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/ExpansionsPanelWidget.cs b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/ExpansionsPanelWidget.cs
index ef67d760f9..537a6c973b 100644
--- a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/ExpansionsPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/ExpansionsPanelWidget.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.DocFood.Options
@@ -54,7 +55,7 @@ namespace MonoDevelop.DocFood.Options
/// <returns>
/// The panel widget.
/// </returns>
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
panel = new ExpansionsPanelWidget (DocConfig.Instance);
return panel;
diff --git a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/NoTheReorderingWidget.cs b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/NoTheReorderingWidget.cs
index d8f9bd3f9d..e6d6613f9a 100644
--- a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/NoTheReorderingWidget.cs
+++ b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/NoTheReorderingWidget.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.DocFood.Options
@@ -44,7 +45,7 @@ namespace MonoDevelop.DocFood.Options
{
NoTheReorderingWidget panel;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
panel = new NoTheReorderingWidget (DocConfig.Instance);
return panel;
diff --git a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OfTheReorderingWidget.cs b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OfTheReorderingWidget.cs
index 7a9e9f9012..a654d53e17 100644
--- a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OfTheReorderingWidget.cs
+++ b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OfTheReorderingWidget.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.DocFood.Options
@@ -44,7 +45,7 @@ namespace MonoDevelop.DocFood.Options
{
OfTheReorderingWidget panel;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
panel = new OfTheReorderingWidget (DocConfig.Instance);
return panel;
diff --git a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OptionsPanelWidget.cs b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OptionsPanelWidget.cs
index 8bc50381fc..4ebfbd8e80 100644
--- a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OptionsPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/OptionsPanelWidget.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.DocFood.Options
@@ -44,7 +45,7 @@ namespace MonoDevelop.DocFood.Options
{
OptionsPanelWidget panel;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
panel = new OptionsPanelWidget (DocConfig.Instance);
return panel;
diff --git a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/RulesPanelWidget.cs b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/RulesPanelWidget.cs
index 0de058c177..7bee353ab2 100644
--- a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/RulesPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.Options/RulesPanelWidget.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.DocFood.Options
@@ -44,7 +45,7 @@ namespace MonoDevelop.DocFood.Options
{
RulesPanelWidget panel;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
panel = new RulesPanelWidget (DocConfig.Instance);
return panel;
diff --git a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/CatalogEditorView.cs b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/CatalogEditorView.cs
index cc9aef04b0..d33b7ec7be 100644
--- a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/CatalogEditorView.cs
+++ b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/CatalogEditorView.cs
@@ -32,13 +32,15 @@ using System;
using System.Collections.Generic;
using Gtk;
using Gdk;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Gui.Content;
+using System.Threading.Tasks;
namespace MonoDevelop.Gettext.Editor
{
- class CatalogEditorView : AbstractViewContent, IUndoHandler
+ class CatalogEditorView : ViewContent, IUndoHandler
{
Catalog catalog;
POEditorWidget poEditorWidget;
@@ -52,7 +54,7 @@ namespace MonoDevelop.Gettext.Editor
};
}
- public override void Load (FileOpenInformation fileOpenInformation)
+ public override Task Load (FileOpenInformation fileOpenInformation)
{
var fileName = fileOpenInformation.FileName;
// using (IProgressMonitor mon = IdeApp.Workbench.ProgressMonitors.GetLoadProgressMonitor (true)) {
@@ -64,21 +66,17 @@ namespace MonoDevelop.Gettext.Editor
this.ContentName = fileName;
this.IsDirty = false;
+ return Task.FromResult (true);
}
- public override void Save (FileSaveInformation fileSaveInformation)
+ public override Task Save (FileSaveInformation fileSaveInformation)
{
- OnBeforeSave (EventArgs.Empty);
catalog.Save (fileSaveInformation.FileName);
ContentName = fileSaveInformation.FileName;
- IsDirty = false;
+ IsDirty = false;
+ return Task.FromResult (true);
}
- public override void Save ()
- {
- Save (this.ContentName);
- }
-
#region IUndoHandler implementation
void IUndoHandler.Undo ()
{
@@ -108,7 +106,7 @@ namespace MonoDevelop.Gettext.Editor
}
#endregion
- public override Widget Control
+ public override Control Control
{
get { return poEditorWidget; }
}
diff --git a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/GettextEditorDisplayBinding.cs b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/GettextEditorDisplayBinding.cs
index a572e7b707..0f9d629cfd 100644
--- a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/GettextEditorDisplayBinding.cs
+++ b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.Editor/GettextEditorDisplayBinding.cs
@@ -47,7 +47,7 @@ namespace MonoDevelop.Gettext
return filePath.IsNotNull && filePath.HasExtension (".po");
}
- public IViewContent CreateContent (FilePath filePath, string mimeType, Project project)
+ public ViewContent CreateContent (FilePath filePath, string mimeType, Project project)
{
foreach (TranslationProject tp in IdeApp.Workspace.GetAllItems<TranslationProject> ())
if (tp.BaseDirectory == Path.GetDirectoryName (filePath))
diff --git a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationProject.cs b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationProject.cs
index 2fb7956d88..14e4396528 100644
--- a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationProject.cs
+++ b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationProject.cs
@@ -440,11 +440,7 @@ namespace MonoDevelop.Gettext
class TranslationProjectConfiguration : ProjectConfiguration
{
- public TranslationProjectConfiguration ()
- {
- }
-
- public TranslationProjectConfiguration (string name): base (name)
+ public TranslationProjectConfiguration (string id): base (id)
{
}
}
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/GtkDesignerOptionsPanelWidget.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/GtkDesignerOptionsPanelWidget.cs
index cce24542b0..41f1b27042 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/GtkDesignerOptionsPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/GtkDesignerOptionsPanelWidget.cs
@@ -26,7 +26,7 @@
using System;
using MonoDevelop.GtkCore.GuiBuilder;
-using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.GtkCore.Dialogs
@@ -35,7 +35,7 @@ namespace MonoDevelop.GtkCore.Dialogs
{
GtkDesignerOptionsPanelWidget widget;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
widget = new GtkDesignerOptionsPanelWidget ();
widget.AutoSwitchLayout = GuiBuilderService.AutoSwitchGuiLayout;
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs
index 4fb717ece7..794b08476b 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs
@@ -29,7 +29,8 @@
using Gtk;
-
+
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Projects;
using MonoDevelop.Ide.Gui.Dialogs;
@@ -121,7 +122,7 @@ namespace MonoDevelop.GtkCore.Dialogs
WidgetBuilderOptionPanelWidget widget;
- public override Widget CreatePanelWidget()
+ public override Control CreatePanelWidget()
{
return (widget = new WidgetBuilderOptionPanelWidget (ConfiguredProject));
}
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs
index b122cf3de6..5eae8f19fd 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs
@@ -81,7 +81,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
return db != null;
}
- public IViewContent CreateContent (FilePath fileName, string mimeType, MonoDevelop.Projects.Project ownerProject)
+ public ViewContent CreateContent (FilePath fileName, string mimeType, MonoDevelop.Projects.Project ownerProject)
{
excludeThis = true;
var db = DisplayBindingService.GetDefaultViewBinding (fileName, mimeType, ownerProject);
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
index 3e16e11f17..ba794c06f8 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
@@ -37,7 +37,7 @@ using MonoDevelop.Components.Commands;
using MonoDevelop.DesignerSupport;
using Microsoft.CodeAnalysis;
using MonoDevelop.Ide;
-
+using System.Threading.Tasks;
namespace MonoDevelop.GtkCore.GuiBuilder
{
@@ -50,7 +50,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
Stetic.ActionGroupInfo groupInfo;
string groupName;
- public ActionGroupView (IViewContent content, Stetic.ActionGroupInfo group, GuiBuilderProject project): base (content)
+ public ActionGroupView (ViewContent content, Stetic.ActionGroupInfo group, GuiBuilderProject project): base (content)
{
groupName = group.Name;
this.project = project;
@@ -140,11 +140,11 @@ namespace MonoDevelop.GtkCore.GuiBuilder
codeBinder.TargetObject = designer.RootComponent;
}
- public override void Save (FileSaveInformation fileSaveInformation)
+ public override async Task Save (FileSaveInformation fileSaveInformation)
{
string oldBuildFile = GuiBuilderService.GetBuildCodeFileName (project.Project, groupInfo.Name);
- base.Save (fileSaveInformation);
+ await base.Save (fileSaveInformation);
if (designer == null)
return;
@@ -189,8 +189,6 @@ namespace MonoDevelop.GtkCore.GuiBuilder
void OnGroupModified (object s, EventArgs a)
{
- if (designer.Modified)
- OnContentChanged (a);
IsDirty = designer.Modified;
}
@@ -204,10 +202,10 @@ namespace MonoDevelop.GtkCore.GuiBuilder
codeBinder.UpdateSignal (a.OldSignal, a.Signal);
}
- void OnBindField (object s, EventArgs args)
+ async void OnBindField (object s, EventArgs args)
{
if (designer.SelectedAction != null) {
- codeBinder.BindToField (designer.SelectedAction);
+ await codeBinder.BindToField (designer.SelectedAction);
}
}
}
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs
index 6e49af37e2..3076ef4d8d 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs
@@ -47,6 +47,7 @@ using MonoDevelop.CSharp.Refactoring;
using MonoDevelop.Refactoring;
using System.Xml.XPath;
using System.IO;
+using System.Threading.Tasks;
namespace MonoDevelop.GtkCore.GuiBuilder
{
@@ -212,7 +213,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
}
/// Adds a field to the class
- public void BindToField (Stetic.Component obj)
+ public async Task BindToField (Stetic.Component obj)
{
if (targetObject == null)
return;
@@ -224,11 +225,11 @@ namespace MonoDevelop.GtkCore.GuiBuilder
return;
var location = GetSourceLocation(cls);
- var doc = IdeApp.Workbench.OpenDocument (location.SourceTree.FilePath, project, true);
+ var doc = await IdeApp.Workbench.OpenDocument (location.SourceTree.FilePath, project, true);
var editor = doc.Editor;
if (editor != null) {
- CodeGenerationService.AddNewMember (project, cls, cls.Locations.First (), GetFieldCode (cls, obj, name));
+ await CodeGenerationService.AddNewMember (project, cls, cls.Locations.First (), GetFieldCode (cls, obj, name));
}
}
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs
index c08d33c374..2961eb94ca 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs
@@ -30,6 +30,7 @@
using System;
using System.Linq;
using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Ide.Gui;
@@ -37,16 +38,17 @@ using MonoDevelop.Components.Commands;
using MonoDevelop.Ide;
using System.Collections.Generic;
using MonoDevelop.Ide.Editor;
+using System.Threading.Tasks;
namespace MonoDevelop.GtkCore.GuiBuilder
{
- public class CombinedDesignView : AbstractViewContent
+ public class CombinedDesignView : ViewContent
{
- IViewContent content;
+ ViewContent content;
Gtk.Widget control;
List<TabView> tabs = new List<TabView> ();
- public CombinedDesignView (IViewContent content)
+ public CombinedDesignView (ViewContent content)
{
this.content = content;
/* This code causes that chagnes in a version control view always select the source code view.
@@ -55,7 +57,6 @@ namespace MonoDevelop.GtkCore.GuiBuilder
ShowPage (0);
};
}*/
- content.ContentChanged += new EventHandler (OnTextContentChanged);
content.DirtyChanged += new EventHandler (OnTextDirtyChanged);
CommandRouterContainer crc = new CommandRouterContainer (content.Control, content, true);
@@ -87,7 +88,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
public bool HasPage (Gtk.Widget page)
{
- return tabs.Any (p => p.Control == page);
+ return tabs.Any (p => p.Control.GetNativeWidget<Gtk.Widget> () == page);
}
public void RemoveButton (Gtk.Widget page)
@@ -108,17 +109,21 @@ namespace MonoDevelop.GtkCore.GuiBuilder
ShowPage (0);*/
}
- public override MonoDevelop.Projects.Project Project {
- get { return base.Project; }
- set {
- base.Project = value;
- content.Project = value;
+ protected override void OnSetProject (Projects.Project project)
+ {
+ base.OnSetProject (project);
+ content.Project = project;
+ }
+
+ public override ProjectReloadCapability ProjectReloadCapability {
+ get {
+ return content.ProjectReloadCapability;
}
}
- protected override void OnWorkbenchWindowChanged (EventArgs e)
+ protected override void OnWorkbenchWindowChanged ()
{
- base.OnWorkbenchWindowChanged (e);
+ base.OnWorkbenchWindowChanged ();
content.WorkbenchWindow = WorkbenchWindow;
if (WorkbenchWindow != null) {
foreach (TabView view in tabs) {
@@ -161,7 +166,6 @@ namespace MonoDevelop.GtkCore.GuiBuilder
public override void Dispose ()
{
- content.ContentChanged -= new EventHandler (OnTextContentChanged);
content.DirtyChanged -= new EventHandler (OnTextDirtyChanged);
IdeApp.Workbench.ActiveDocumentChanged -= new EventHandler (OnActiveDocumentChanged);
content.Dispose ();
@@ -172,19 +176,19 @@ namespace MonoDevelop.GtkCore.GuiBuilder
base.Dispose ();
}
- public override void Load (FileOpenInformation fileOpenInformation)
+ public override Task Load (FileOpenInformation fileOpenInformation)
{
ContentName = fileOpenInformation.FileName;
- content.Load (ContentName);
+ return content.Load (ContentName);
}
- public override Gtk.Widget Control {
+ public override Control Control {
get { return control; }
}
- public override void Save (FileSaveInformation fileSaveInformation)
+ public override Task Save (FileSaveInformation fileSaveInformation)
{
- content.Save (fileSaveInformation);
+ return content.Save (fileSaveInformation);
}
public override bool IsDirty {
@@ -211,14 +215,9 @@ namespace MonoDevelop.GtkCore.GuiBuilder
{
}
- void OnTextContentChanged (object s, EventArgs args)
- {
- OnContentChanged (args);
- }
-
void OnTextDirtyChanged (object s, EventArgs args)
{
- OnDirtyChanged (args);
+ OnDirtyChanged ();
}
void OnActiveDocumentChanged (object s, EventArgs args)
@@ -231,7 +230,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
{
}
- public override object GetContent (Type type)
+ protected override object OnGetContent (Type type)
{
// if (type == typeof(IEditableTextBuffer)) {
// // Intercept the IPositionable interface, since we need to
@@ -242,7 +241,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
// return null;
// }
//
- return base.GetContent (type) ?? (content !=null ? content.GetContent (type) : null);
+ return base.OnGetContent (type) ?? (content !=null ? content.GetContent (type) : null);
}
public void JumpTo (int line, int column)
@@ -255,7 +254,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
}
}
- class TabView: AbstractBaseViewContent, IAttachableViewContent
+ class TabView: BaseViewContent
{
string label;
Gtk.Widget content;
@@ -266,32 +265,14 @@ namespace MonoDevelop.GtkCore.GuiBuilder
this.content = content;
}
- public override object GetContent (Type type)
+ protected override object OnGetContent (Type type)
{
if (type.IsInstanceOfType (Control))
return Control;
- return base.GetContent (type);
+ return base.OnGetContent (type);
}
- #region IAttachableViewContent implementation
- public virtual void Selected ()
- {
- }
-
- public virtual void Deselected ()
- {
- }
-
- public virtual void BeforeSave ()
- {
- }
-
- public virtual void BaseContentChanged ()
- {
- }
- #endregion
-
- public override Widget Control {
+ public override Control Control {
get {
return content;
}
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderDisplayBinding.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderDisplayBinding.cs
index 65cde80d96..c9f93016f6 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderDisplayBinding.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderDisplayBinding.cs
@@ -68,7 +68,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
return db != null;
}
- public IViewContent CreateContent (MonoDevelop.Core.FilePath fileName, string mimeType, Project ownerProject)
+ public ViewContent CreateContent (MonoDevelop.Core.FilePath fileName, string mimeType, Project ownerProject)
{
excludeThis = true;
var db = DisplayBindingService.GetDefaultViewBinding (fileName, mimeType, ownerProject);
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs
index b511d9fd7e..c765892291 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs
@@ -168,7 +168,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
}
}
- public static ActionGroupView OpenActionGroup (Project project, Stetic.ActionGroupInfo group)
+ public static async Task<ActionGroupView> OpenActionGroup (Project project, Stetic.ActionGroupInfo group)
{
GuiBuilderProject p = GtkDesignInfo.FromProject (project).GuiBuilderProject ;
string file = p != null ? p.GetSourceCodeFile (group) : null;
@@ -176,7 +176,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
file = ActionGroupDisplayBinding.BindToClass (project, group);
}
- Document doc = IdeApp.Workbench.OpenDocument (file, true);
+ Document doc = await IdeApp.Workbench.OpenDocument (file, true);
if (doc != null) {
ActionGroupView view = doc.GetContent<ActionGroupView> ();
if (view != null) {
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
index a472231a22..c0ae7f6a29 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
@@ -38,17 +38,18 @@ using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Commands;
using MonoDevelop.Components.Commands;
using MonoDevelop.Projects;
-using MonoDevelop.DesignerSupport.Toolbox;
+using MonoDevelop.DesignerSupport.Toolbox;
using MonoDevelop.DesignerSupport;
using Gtk;
using Gdk;
using MonoDevelop.Ide;
using Microsoft.CodeAnalysis;
+using System.Threading.Tasks;
namespace MonoDevelop.GtkCore.GuiBuilder
{
- public class GuiBuilderView : CombinedDesignView, ISupportsProjectReload
+ public class GuiBuilderView : CombinedDesignView
{
Stetic.WidgetDesigner designer;
Stetic.ActionGroupDesigner actionsBox;
@@ -63,7 +64,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
string rootName;
object designerStatus;
- public GuiBuilderView (IViewContent content, GuiBuilderWindow window): base (content)
+ public GuiBuilderView (ViewContent content, GuiBuilderWindow window): base (content)
{
rootName = window.Name;
@@ -86,14 +87,16 @@ namespace MonoDevelop.GtkCore.GuiBuilder
LoadDesigner ();
}
- ProjectReloadCapability ISupportsProjectReload.ProjectReloadCapability {
+ public override ProjectReloadCapability ProjectReloadCapability {
get {
return ProjectReloadCapability.Full;
}
}
-
- void ISupportsProjectReload.Update (MonoDevelop.Projects.Project project)
+
+ protected override void OnSetProject (Projects.Project project)
{
+ base.OnSetProject (project);
+
if (gproject != null && gproject.Project == project)
return;
@@ -296,21 +299,19 @@ namespace MonoDevelop.GtkCore.GuiBuilder
void OnWindowModifiedChanged (object s, EventArgs args)
{
- if (IsDirty)
- OnContentChanged (args);
- OnDirtyChanged (args);
+ OnDirtyChanged ();
}
- void OnBindWidgetField (object o, EventArgs a)
+ async void OnBindWidgetField (object o, EventArgs a)
{
if (designer.Selection != null)
- codeBinder.BindToField (designer.Selection);
+ await codeBinder.BindToField (designer.Selection);
}
- void OnBindActionField (object o, EventArgs a)
+ async void OnBindActionField (object o, EventArgs a)
{
if (actionsBox.SelectedAction != null)
- codeBinder.BindToField (actionsBox.SelectedAction);
+ await codeBinder.BindToField (actionsBox.SelectedAction);
}
void OnSignalAdded (object sender, Stetic.ComponentSignalEventArgs args)
@@ -327,9 +328,9 @@ namespace MonoDevelop.GtkCore.GuiBuilder
codeBinder.UpdateSignal (args.OldSignal, args.Signal);
}
- public override void Save (FileSaveInformation fileSaveInformation)
+ public override async Task Save (FileSaveInformation fileSaveInformation)
{
- base.Save (fileSaveInformation);
+ await base.Save (fileSaveInformation);
if (designer == null)
return;
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs
index 5b0fd87a2f..ad6f2b722b 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs
@@ -86,14 +86,14 @@ namespace MonoDevelop.GtkCore.NodeBuilders
class ActionGroupCommandHandler: NodeCommandHandler
{
- public override void ActivateItem ()
+ public override async void ActivateItem ()
{
GuiBuilderWindow w = (GuiBuilderWindow) CurrentNode.GetParentDataItem (typeof(GuiBuilderWindow), false);
if (w != null) {
if (w.SourceCodeFile == FilePath.Null && !w.BindToClass ())
return;
- Document doc = IdeApp.Workbench.OpenDocument (w.SourceCodeFile, true);
+ Document doc = await IdeApp.Workbench.OpenDocument (w.SourceCodeFile, true);
if (doc != null) {
GuiBuilderView view = doc.GetContent<GuiBuilderView> ();
if (view != null)
@@ -103,7 +103,7 @@ namespace MonoDevelop.GtkCore.NodeBuilders
else {
Project project = (Project) CurrentNode.GetParentDataItem (typeof(Project), false);
Stetic.ActionGroupInfo group = (Stetic.ActionGroupInfo) CurrentNode.DataItem;
- GuiBuilderService.OpenActionGroup (project, group);
+ await GuiBuilderService.OpenActionGroup (project, group);
}
}
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs
index c0d692977c..c2710e2cf2 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs
@@ -114,13 +114,13 @@ namespace MonoDevelop.GtkCore.NodeBuilders
class GladeWindowCommandHandler: NodeCommandHandler
{
- public override void ActivateItem ()
+ public override async void ActivateItem ()
{
GuiBuilderWindow w = (GuiBuilderWindow) CurrentNode.DataItem;
if (w.SourceCodeFile == FilePath.Null && !w.BindToClass ())
return;
- Document doc = IdeApp.Workbench.OpenDocument (w.SourceCodeFile, true);
+ Document doc = await IdeApp.Workbench.OpenDocument (w.SourceCodeFile, true);
if (doc != null) {
GuiBuilderView view = doc.GetContent<GuiBuilderView> ();
if (view != null)
diff --git a/main/src/addins/MonoDevelop.HexEditor/Mono.MHex.Data/Buffer.cs b/main/src/addins/MonoDevelop.HexEditor/Mono.MHex.Data/Buffer.cs
index 4b5e64b651..31f8c29d7a 100644
--- a/main/src/addins/MonoDevelop.HexEditor/Mono.MHex.Data/Buffer.cs
+++ b/main/src/addins/MonoDevelop.HexEditor/Mono.MHex.Data/Buffer.cs
@@ -26,6 +26,7 @@
using System;
using System.IO;
+using System.Threading.Tasks;
namespace Mono.MHex.Data
{
@@ -81,6 +82,16 @@ namespace Mono.MHex.Data
return new ArrayBuffer (buf);
}
+ public static async Task<IBuffer> LoadAsync (Stream stream)
+ {
+ int count = (int) stream.Length;
+ byte[] buf = new byte[count];
+
+ await stream.ReadAsync (buf, 0, count);
+
+ return new ArrayBuffer (buf);
+ }
+
public static IBuffer Load (string fileName)
{
using (Stream stream = File.OpenRead (fileName)) {
diff --git a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/DisplayBinding.cs b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/DisplayBinding.cs
index 12a5f4c3d2..11c6c884fc 100644
--- a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/DisplayBinding.cs
+++ b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/DisplayBinding.cs
@@ -39,7 +39,7 @@ namespace MonoDevelop.HexEditor
}
}
- public IViewContent CreateContent (FilePath fileName, string mimeType, Project ownerProject)
+ public ViewContent CreateContent (FilePath fileName, string mimeType, Project ownerProject)
{
return new HexEditorView ();
diff --git a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs
index e01cddac17..f23c5fc900 100644
--- a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs
+++ b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor/HexEditorView.cs
@@ -33,6 +33,7 @@ using MonoDevelop.Ide.Gui.Content;
using Xwt;
using MonoDevelop.Ide.Fonts;
using MonoDevelop.Ide.Editor;
+using System.Threading.Tasks;
namespace MonoDevelop.HexEditor
{
@@ -78,18 +79,19 @@ namespace MonoDevelop.HexEditor
hexEditor.Repaint ();
}
- public override void Save (FileSaveInformation fileSaveInformation)
+ public override Task Save (FileSaveInformation fileSaveInformation)
{
File.WriteAllBytes (fileSaveInformation.FileName, hexEditor.HexEditorData.Bytes);
ContentName = fileSaveInformation.FileName;
this.IsDirty = false;
+ return Task.FromResult (true);
}
- public override void Load (FileOpenInformation fileOpenInformation)
+ public override async Task Load (FileOpenInformation fileOpenInformation)
{
var fileName = fileOpenInformation.FileName;
using (Stream stream = File.OpenRead (fileName)) {
- hexEditor.HexEditorData.Buffer = ArrayBuffer.Load (stream);
+ hexEditor.HexEditorData.Buffer = await ArrayBuffer.LoadAsync (stream);
}
ContentName = fileName;
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageManagementOptionsPanel.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageManagementOptionsPanel.cs
index f2bf9edf09..d5eca95351 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageManagementOptionsPanel.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageManagementOptionsPanel.cs
@@ -27,7 +27,8 @@
//
using System;
-using MonoDevelop.PackageManagement;
+using MonoDevelop.Components;
+using MonoDevelop.PackageManagement;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.PackageManagement.Gui
@@ -35,8 +36,8 @@ namespace MonoDevelop.PackageManagement.Gui
public class PackageManagementOptionsPanel : OptionsPanel
{
PackageManagementOptionsViewModel optionsViewModel;
-
- public override Gtk.Widget CreatePanelWidget()
+
+ public override Control CreatePanelWidget()
{
var viewModels = new PackageManagementViewModels ();
optionsViewModel = viewModels.PackageManagementOptionsViewModel;
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageSourcesOptionsPanel.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageSourcesOptionsPanel.cs
index 48ab198d78..d40d8f0e48 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageSourcesOptionsPanel.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/PackageSourcesOptionsPanel.cs
@@ -30,6 +30,7 @@ using System;
using System.Linq;
using System.IO;
using System.Security.Cryptography;
+using MonoDevelop.Components;
using MonoDevelop.PackageManagement;
using MonoDevelop.Core;
using MonoDevelop.Ide;
@@ -42,7 +43,7 @@ namespace MonoDevelop.PackageManagement.Gui
PackageManagementViewModels viewModels;
PackageSourcesWidget packageSourcesWidget;
- public override Gtk.Widget CreatePanelWidget()
+ public override Control CreatePanelWidget()
{
viewModels = new PackageManagementViewModels ();
viewModels.RegisteredPackageSourcesViewModel.Load ();
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/SearchPackagesSearchCategory.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/SearchPackagesSearchCategory.cs
index 551205cb35..a46706c6e1 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/SearchPackagesSearchCategory.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/SearchPackagesSearchCategory.cs
@@ -72,7 +72,7 @@ namespace MonoDevelop.PackageManagement
runner.Run (pattern.UnparsedPattern);
}
- public override string GetMarkupText (Gtk.Widget widget)
+ public override string GetMarkupText ()
{
return GettextCatalog.GetString ("Search Packages...");
}
diff --git a/main/src/addins/MonoDevelop.Refactoring/AddinInfo.cs b/main/src/addins/MonoDevelop.Refactoring/AddinInfo.cs
index 1dd2ad8160..8411f72959 100644
--- a/main/src/addins/MonoDevelop.Refactoring/AddinInfo.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/AddinInfo.cs
@@ -15,3 +15,4 @@ using Mono.Addins.Description;
[assembly:AddinDependency ("Ide", MonoDevelop.BuildInfo.Version)]
[assembly:AddinDependency ("DesignerSupport", MonoDevelop.BuildInfo.Version)]
[assembly:AddinDependency ("SourceEditor2", MonoDevelop.BuildInfo.Version)]
+[assembly:AddinDependency ("RegexToolkit", MonoDevelop.BuildInfo.Version)]
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/AnalysisCommands.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/AnalysisCommands.cs
index fdb32f6021..4bba040f78 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/AnalysisCommands.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/AnalysisCommands.cs
@@ -31,7 +31,6 @@ using System.Linq;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui;
using System.Collections.Generic;
-using Gtk;
using MonoDevelop.AnalysisCore.Gui;
using MonoDevelop.AnalysisCore.Fixes;
using MonoDevelop.Ide;
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/AnalysisOptionsPanel.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/AnalysisOptionsPanel.cs
index b8ddfd008e..deeaf2b724 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/AnalysisOptionsPanel.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/AnalysisOptionsPanel.cs
@@ -27,6 +27,7 @@
using System;
using MonoDevelop.Ide.Gui.Dialogs;
using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide;
@@ -36,7 +37,7 @@ namespace MonoDevelop.AnalysisCore.Gui
{
AnalysisOptionsWidget widget;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return widget = new AnalysisOptionsWidget () {
AnalysisEnabled = AnalysisOptions.AnalysisEnabled,
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultTooltipProvider.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultTooltipProvider.cs
index 91326133d2..fe54647b2a 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultTooltipProvider.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultTooltipProvider.cs
@@ -51,7 +51,7 @@ namespace MonoDevelop.AnalysisCore.Gui
}
- public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Gdk.ModifierType modifierState)
+ public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState)
{
var result = item.Item as Result;
@@ -72,4 +72,3 @@ namespace MonoDevelop.AnalysisCore.Gui
}
}
-
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs
index 718270df5f..b327d21e98 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.AnalysisCore/Gui/ResultsEditorExtension.cs
@@ -129,7 +129,6 @@ namespace MonoDevelop.AnalysisCore.Gui
new ResultsUpdater (this, new Result[0], CancellationToken.None).Update ();
}
- Task oldTask;
CancellationTokenSource src = null;
object updateLock = new object();
uint updateTimeout = 0;
@@ -148,7 +147,7 @@ namespace MonoDevelop.AnalysisCore.Gui
src = new CancellationTokenSource ();
var token = src.Token;
var ad = new AnalysisDocument (Editor, DocumentContext);
- oldTask = Task.Run (() => {
+ Task.Run (() => {
try {
var result = CodeDiagnosticRunner.Check (ad, token);
if (token.IsCancellationRequested)
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs
index ccd6497ea0..98cf126a20 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs
@@ -54,12 +54,9 @@ namespace MonoDevelop.CodeActions
{
class CodeActionEditorExtension : TextEditorExtension
{
- uint quickFixTimeout;
-
const int menuTimeout = 250;
uint smartTagPopupTimeoutId;
uint menuCloseTimeoutId;
- FixMenuDescriptor codeActionMenu;
static CodeActionEditorExtension ()
{
@@ -320,8 +317,6 @@ namespace MonoDevelop.CodeActions
}
}
- internal static Action<TextEditor, DocumentContext, FixMenuDescriptor> AddPossibleNamespace;
-
void PopupQuickFixMenu (Gdk.EventButton evt, Action<FixMenuDescriptor> menuAction)
{
FixMenuDescriptor menu = new FixMenuDescriptor ();
@@ -616,7 +611,7 @@ namespace MonoDevelop.CodeActions
if (insertionAction != null) {
var insertion = await insertionAction.CreateInsertion (token).ConfigureAwait (false);
- var document = IdeApp.Workbench.OpenDocument (insertion.Location.SourceTree.FilePath, documentContext.Project);
+ var document = await IdeApp.Workbench.OpenDocument (insertion.Location.SourceTree.FilePath, documentContext.Project);
var parsedDocument = await document.UpdateParseDocument ();
if (parsedDocument != null) {
var insertionPoints = InsertionPointService.GetInsertionPoints (
@@ -851,9 +846,7 @@ namespace MonoDevelop.CodeActions
{
CancelSmartTagPopupTimeout ();
smartTagPopupTimeoutId = GLib.Timeout.Add (menuTimeout, delegate {
- PopupQuickFixMenu (null, menu => {
- codeActionMenu = menu;
- });
+ PopupQuickFixMenu (null, menu => {});
smartTagPopupTimeoutId = 0;
return false;
});
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionPanelWidget.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionPanelWidget.cs
index c74d775caa..7e89e64f47 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionPanelWidget.cs
@@ -26,6 +26,7 @@
using System;
using MonoDevelop.Ide.Gui.Dialogs;
using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using System.Linq;
using System.Text;
@@ -40,7 +41,7 @@ namespace MonoDevelop.CodeActions
{
ContextActionPanelWidget widget;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return widget = new ContextActionPanelWidget ("text/x-csharp");
}
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeRefactoringDescriptor.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeRefactoringDescriptor.cs
index c845671203..aa46055a1f 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeRefactoringDescriptor.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeRefactoringDescriptor.cs
@@ -32,7 +32,7 @@ using System.Linq;
namespace MonoDevelop.CodeActions
{
/// <summary>
- /// This class wraps a roslyn <see cref="ICodeRefactoringProvider"/> and adds required meta data to it.
+ /// This class wraps a roslyn ICodeRefactoringProvider and adds required meta data to it.
/// </summary>
class CodeRefactoringDescriptor
{
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/ValidCodeDiagnosticAction.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/ValidCodeDiagnosticAction.cs
index 6f5192d2d9..5c946ac714 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/ValidCodeDiagnosticAction.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/ValidCodeDiagnosticAction.cs
@@ -40,10 +40,7 @@ namespace MonoDevelop.CodeActions
/// </summary>
class ValidCodeDiagnosticAction : ValidCodeAction
{
- CodeDiagnosticFixDescriptor cfp;
- CodeAction ca;
ImmutableArray<Diagnostic> validDiagnostics;
- TextSpan diagnosticSpan;
public CodeDiagnosticFixDescriptor Diagnostic {
get;
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticFixDescriptor.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticFixDescriptor.cs
index 7f26e14572..29c0d576c8 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticFixDescriptor.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticFixDescriptor.cs
@@ -64,7 +64,7 @@ namespace MonoDevelop.CodeIssues
if (instance == null) {
try {
instance = (CodeFixProvider)Activator.CreateInstance (codeFixProviderType);
- } catch (InvalidCastException e) {
+ } catch (InvalidCastException) {
LoggingService.LogError (codeFixProviderType + " can't be cast to CodeFixProvider.");
throw;
}
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticProvider.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticProvider.cs
index 3cb3dd1da5..479d24dffb 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticProvider.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeDiagnosticProvider.cs
@@ -34,7 +34,7 @@ using MonoDevelop.CodeActions;
namespace MonoDevelop.CodeIssues
{
/// <summary>
- /// The code diagnostic provider gives a list of code diagnostic & fix providers from an arbitrary source.
+ /// The code diagnostic provider gives a list of code diagnostic and fix providers from an arbitrary source.
/// </summary>
abstract class CodeDiagnosticProvider
{
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePanelWidget.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePanelWidget.cs
index a6c1d0ffc4..2a42b3f721 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePanelWidget.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/CodeIssuePanelWidget.cs
@@ -59,7 +59,7 @@ namespace MonoDevelop.CodeIssues
widget = new CodeIssuePanelWidget ("text/x-csharp");
}
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
EnsureWidget ();
return widget;
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringOptions.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringOptions.cs
index b1532d9e50..2684ff57f9 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringOptions.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringOptions.cs
@@ -135,13 +135,13 @@ namespace MonoDevelop.Refactoring
public static async Task<ImmutableArray<string>> GetUsedNamespacesAsync (TextEditor editor, DocumentContext doc, int offset, CancellationToken cancellationToken = default (CancellationToken))
{
if (editor == null)
- throw new System.ArgumentNullException ("editor");
+ throw new System.ArgumentNullException (nameof (editor));
var parsedDocument = doc.ParsedDocument;
if (parsedDocument == null)
return ImmutableArray<string>.Empty;
var result = ImmutableArray<string>.Empty.ToBuilder ();
var sm = parsedDocument.GetAst<SemanticModel> ();
- var node = sm.SyntaxTree.GetRoot ().FindNode (TextSpan.FromBounds (offset, offset));
+ var node = (await sm.SyntaxTree.GetRootAsync (cancellationToken).ConfigureAwait (false)).FindNode (TextSpan.FromBounds (offset, offset));
while (node != null) {
var cu = node as CompilationUnitSyntax;
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs
index 394dbff395..e0ef78a287 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringService.cs
@@ -203,13 +203,13 @@ namespace MonoDevelop.Refactoring
//static readonly CodeAnalysisBatchRunner runner = new CodeAnalysisBatchRunner();
- /// <summary>
- /// Queues a code analysis job.
- /// </summary>
- /// <param name="job">The job to queue.</param>
- /// <param name="progressMessage">
- /// The message used for a progress monitor, or null if no progress monitor should be used.
- /// </param>
+// /// <summary>
+// /// Queues a code analysis job.
+// /// </summary>
+// /// <param name="job">The job to queue.</param>
+// /// <param name="progressMessage">
+// /// The message used for a progress monitor, or null if no progress monitor should be used.
+// /// </param>
// public static IJobContext QueueCodeIssueAnalysis(IAnalysisJob job, string progressMessage = null)
// {
// if (progressMessage != null)
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringSymbolInfo.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringSymbolInfo.cs
index 45e3cbca62..a901409aba 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringSymbolInfo.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoringSymbolInfo.cs
@@ -69,6 +69,7 @@ namespace MonoDevelop.Refactoring
}
public SyntaxNode Node { get; private set; }
+ public SemanticModel Model { get; private set; }
public RefactoringSymbolInfo (SymbolInfo symbolInfo)
{
@@ -81,7 +82,7 @@ namespace MonoDevelop.Refactoring
throw new ArgumentNullException (nameof (document));
if (document.ParsedDocument == null)
return RefactoringSymbolInfo.Empty;
- var unit = document.ParsedDocument.GetAst<SemanticModel> ();
+ var unit = await document.AnalysisDocument.GetSemanticModelAsync (cancellationToken).ConfigureAwait (false);
if (unit != null) {
var root = await unit.SyntaxTree.GetRootAsync (cancellationToken).ConfigureAwait (false);
try {
@@ -91,7 +92,8 @@ namespace MonoDevelop.Refactoring
var symbol = unit.GetSymbolInfo (token.Parent);
return new RefactoringSymbolInfo (symbol) {
DeclaredSymbol = token.IsKind (SyntaxKind.IdentifierToken) ? unit.GetDeclaredSymbol (token.Parent) : null,
- Node = token.Parent
+ Node = token.Parent,
+ Model = unit
};
} catch (Exception) {
return RefactoringSymbolInfo.Empty;
diff --git a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj
index 785be8556a..0e9417f934 100644
--- a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj
+++ b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj
@@ -62,6 +62,26 @@
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
<SpecificVersion>False</SpecificVersion>
</Reference>
+ <Reference Include="Microsoft.CodeAnalysis.CSharp">
+ <HintPath>..\..\..\external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces">
+ <HintPath>..\..\..\external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="Microsoft.CodeAnalysis">
+ <HintPath>..\..\..\build\bin\Microsoft.CodeAnalysis.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="Microsoft.CodeAnalysis.Workspaces">
+ <HintPath>..\..\..\external\roslyn\Binaries\Release\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="System.Composition.AttributedModel">
+ <HintPath>..\..\..\external\roslyn\Binaries\Release\System.Composition.AttributedModel.dll</HintPath>
+ <Private>False</Private>
+ </Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\core\MonoDevelop.Core\MonoDevelop.Core.csproj">
@@ -94,6 +114,7 @@
<Compile Include="MonoDevelop.RegexToolkit\ElementHelpWidget.cs" />
<Compile Include="gtk-gui\MonoDevelop.RegexToolkit.ElementHelpWidget.cs" />
<Compile Include="AddinInfo.cs" />
+ <Compile Include="MonoDevelop.RegexToolkit\ValidateActionCodeRefactoringProvider.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="gtk-gui\gui.stetic">
diff --git a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/Commands.cs b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/Commands.cs
index 482dbcaded..5ea1ced5fb 100644
--- a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/Commands.cs
+++ b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/Commands.cs
@@ -27,11 +27,13 @@
//
using System;
+using MonoDevelop.Components;
using MonoDevelop.Components.Commands;
using MonoDevelop.Ide;
using Gtk;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Core;
+using System.Threading.Tasks;
namespace MonoDevelop.RegexToolkit
{
@@ -40,11 +42,11 @@ namespace MonoDevelop.RegexToolkit
ShowRegexToolkit
}
- class ViewOnlyContent : AbstractViewContent
+ class ViewOnlyContent : ViewContent
{
Widget widget;
-
- public override Widget Control {
+
+ public override Control Control {
get {
return widget;
}
@@ -54,21 +56,20 @@ namespace MonoDevelop.RegexToolkit
{
this.widget = widget;
this.ContentName = contentName;
- IsViewOnly = true;
}
-
- public override void Load (FileOpenInformation fileOpenInformation)
- {
- throw new System.NotImplementedException ();
+
+ public override bool IsViewOnly {
+ get {
+ return true;
+ }
}
-
}
- class DefaultAttachableViewContent : AbstractAttachableViewContent
+ class DefaultAttachableViewContent : BaseViewContent
{
Widget widget;
-
- public override Widget Control {
+
+ public override Control Control {
get {
return widget;
}
@@ -91,18 +92,24 @@ namespace MonoDevelop.RegexToolkit
{
protected override void Run ()
{
+ RunRegexWindow ();
+ }
+
+ public static RegexToolkitWidget RunRegexWindow ()
+ {
foreach (var document in IdeApp.Workbench.Documents) {
if (document.Window.ViewContent.Control is RegexToolkitWidget) {
document.Window.SelectWindow ();
- return;
+ return (RegexToolkitWidget)document.Window.ViewContent.Control;
}
}
var regexToolkit = new RegexToolkitWidget ();
var newDocument = IdeApp.Workbench.OpenDocument (new ViewOnlyContent (regexToolkit, GettextCatalog.GetString ("Regex Toolkit")), true);
-
+
var elementHelp = new ElementHelpWidget (newDocument.Window, regexToolkit);
-
+
newDocument.Window.AttachViewContent (new DefaultAttachableViewContent (elementHelp, GettextCatalog.GetString ("Elements")));
+ return regexToolkit;
}
}
diff --git a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/RegexToolkitWidget.cs b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/RegexToolkitWidget.cs
index d10f8dc6ac..2cf57d534b 100644
--- a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/RegexToolkitWidget.cs
+++ b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/RegexToolkitWidget.cs
@@ -42,7 +42,14 @@ namespace MonoDevelop.RegexToolkit
TreeStore resultStore;
Thread regexThread;
-
+ public string Regex {
+ get {
+ return entryRegEx.Text;
+ }
+ set {
+ entryRegEx.Text = value;
+ }
+ }
public RegexToolkitWidget ()
{
this.Build ();
diff --git a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/ValidateActionCodeRefactoringProvider.cs b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/ValidateActionCodeRefactoringProvider.cs
new file mode 100644
index 0000000000..8b7bd5a146
--- /dev/null
+++ b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit/ValidateActionCodeRefactoringProvider.cs
@@ -0,0 +1,117 @@
+//
+// ValidateActionCodeRefactoringProvider.cs
+//
+// Author:
+// Mike Krüger <mkrueger@xamarin.com>
+//
+// Copyright (c) 2015 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Threading;
+using System.Collections.Generic;
+using Microsoft.CodeAnalysis.CodeRefactorings;
+using Microsoft.CodeAnalysis;
+using System.Threading.Tasks;
+using Microsoft.CodeAnalysis.CodeActions;
+using Microsoft.CodeAnalysis.Text;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+using Microsoft.CodeAnalysis.CSharp;
+using Microsoft.CodeAnalysis.Formatting;
+using MonoDevelop.Core;
+using MonoDevelop.RegexToolkit;
+
+namespace RefactoringEssentials.CSharp.CodeRefactorings
+{
+ [ExportCodeRefactoringProvider(LanguageNames.CSharp, Name = "Validate regular expression")]
+ public class ValidateActionCodeRefactoringProvider : CodeRefactoringProvider
+ {
+ public sealed override async Task ComputeRefactoringsAsync(CodeRefactoringContext context)
+ {
+ var document = context.Document;
+ if (document.Project.Solution.Workspace.Kind == WorkspaceKind.MiscellaneousFiles)
+ return;
+ var span = context.Span;
+ if (!span.IsEmpty)
+ return;
+ var cancellationToken = context.CancellationToken;
+ if (cancellationToken.IsCancellationRequested)
+ return;
+
+ var model = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false);
+ //if (model.IsFromGeneratedCode(cancellationToken))
+ // return;
+ var root = await model.SyntaxTree.GetRootAsync(cancellationToken).ConfigureAwait(false);
+ if (!root.Span.Contains (span))
+ return;
+ var node = root.FindNode(span, false, true);
+ if (!node.IsKind(SyntaxKind.StringLiteralExpression))
+ return;
+ var argument = node.Parent as ArgumentSyntax;
+ if (argument == null)
+ return;
+ var list = argument.Parent as ArgumentListSyntax;
+
+ var invocation = argument.Parent?.Parent as InvocationExpressionSyntax;
+ if (invocation != null) {
+ var info = model.GetSymbolInfo (invocation);
+ if (!IsRegexMatchMethod (info) || list.Arguments [1] != argument)
+ return;
+ }
+
+ var oce = argument.Parent?.Parent as ObjectCreationExpressionSyntax;
+ if (oce != null) {
+ var info = model.GetSymbolInfo (oce);
+ if (info.Symbol == null || !IsRegexType (info.Symbol.ContainingType) || list.Arguments [0] != argument)
+ return;
+ }
+
+ var regex = model.GetConstantValue (node);
+ if (!regex.HasValue)
+ return;
+
+ context.RegisterRefactoring (CodeAction.Create(
+ GettextCatalog.GetString("Validate regular expression"),
+ t2 => {
+ ShowRegexToolkitHandler.RunRegexWindow ().Regex = regex.Value.ToString ();
+ return Task.FromResult(document);
+ }
+ ));
+ }
+
+ internal static bool IsRegexMatchMethod (SymbolInfo symbolInfo)
+ {
+ var symbol = symbolInfo.Symbol;
+ if (symbol == null)
+ return false;
+ return IsRegexType (symbol.ContainingType) && symbol.IsStatic && (symbol.Name == "IsMatch" || symbol.Name == "Match" || symbol.Name == "Matches");
+ }
+
+ internal static bool IsRegexConstructor (SymbolInfo symbolInfo)
+ {
+ return symbolInfo.Symbol?.ContainingType is INamedTypeSymbol && IsRegexType (symbolInfo.Symbol.ContainingType);
+ }
+
+ internal static bool IsRegexType (INamedTypeSymbol containingType)
+ {
+ return containingType != null && containingType.Name == "Regex" && containingType.ContainingNamespace.ToDisplayString () == "System.Text.RegularExpressions";
+ }
+ }
+}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/BehaviorPanel.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/BehaviorPanel.cs
index 5fc5a1c2fb..5d9067d374 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/BehaviorPanel.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/BehaviorPanel.cs
@@ -24,6 +24,7 @@
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Dialogs;
using Mono.TextEditor;
@@ -47,7 +48,7 @@ namespace MonoDevelop.SourceEditor.OptionPanels
autoInsertBraceCheckbutton.Toggled += HandleAutoInsertBraceCheckbuttonToggled;
}
- public virtual Gtk.Widget CreatePanelWidget ()
+ public virtual Control CreatePanelWidget ()
{
// this.autoInsertTemplateCheckbutton.Active = DefaultSourceEditorOptions.Options.AutoInsertTemplates;
autoInsertBraceCheckbutton.Active = DefaultSourceEditorOptions.Instance.AutoInsertMatchingBracket;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionAppearancePanel.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionAppearancePanel.cs
index 031437a5b8..46e5157abb 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionAppearancePanel.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionAppearancePanel.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Ide.Editor.Extension;
@@ -52,7 +53,7 @@ namespace MonoDevelop.SourceEditor.OptionPanels
{
}
- Gtk.Widget IOptionsPanel.CreatePanelWidget ()
+ Control IOptionsPanel.CreatePanelWidget ()
{
filterByBrowsableCheckbutton.Active = IdeApp.Preferences.FilterCompletionListByEditorBrowsable;
normalOnlyRadiobutton.Active = !IdeApp.Preferences.IncludeEditorBrowsableAdvancedMembers;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionCharactersPanel.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionCharactersPanel.cs
index 83f4b36617..7ee88faaa1 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionCharactersPanel.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionCharactersPanel.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
using Xwt;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Ide.CodeCompletion;
@@ -87,7 +88,7 @@ namespace MonoDevelop.SourceEditor.OptionPanels
}
}
- Gtk.Widget IOptionsPanel.CreatePanelWidget ()
+ Control IOptionsPanel.CreatePanelWidget ()
{
return (Gtk.Widget)Xwt.Toolkit.CurrentEngine.GetNativeWidget (this);
}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionOptionsPanel.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionOptionsPanel.cs
index eff7432934..86d2a271bc 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionOptionsPanel.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/CompletionOptionsPanel.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Ide.Editor.Extension;
@@ -56,7 +57,7 @@ namespace MonoDevelop.SourceEditor.OptionPanels
{
}
- Gtk.Widget IOptionsPanel.CreatePanelWidget ()
+ Control IOptionsPanel.CreatePanelWidget ()
{
autoCodeCompletionCheckbutton.Active = DefaultSourceEditorOptions.Instance.EnableAutoCodeCompletion;
showImportsCheckbutton.Active = IdeApp.Preferences.AddImportedItemsToCompletionList;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/GeneralOptionsPanel.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/GeneralOptionsPanel.cs
index 9763ea2637..ef53e55e75 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/GeneralOptionsPanel.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/GeneralOptionsPanel.cs
@@ -25,6 +25,7 @@
using System;
using MonoDevelop.Ide.Gui.Dialogs;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Content;
using MonoDevelop.Ide.Editor;
@@ -43,7 +44,7 @@ namespace MonoDevelop.SourceEditor.OptionPanels
this.comboboxLineEndings.Active = (int)DefaultSourceEditorOptions.Instance.LineEndingConversion;
}
- public virtual Gtk.Widget CreatePanelWidget ()
+ public virtual Control CreatePanelWidget ()
{
this.foldingCheckbutton.Active = DefaultSourceEditorOptions.Instance.ShowFoldMargin;
this.foldregionsCheckbutton.Active = DefaultSourceEditorOptions.Instance.DefaultRegionsFolding;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/HighlightingPanel.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/HighlightingPanel.cs
index cb04048836..cf9c19719c 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/HighlightingPanel.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/HighlightingPanel.cs
@@ -86,7 +86,7 @@ namespace MonoDevelop.SourceEditor.OptionPanels
return String.Format ("<b>{0}</b> - {1}", GLib.Markup.EscapeText (name), GLib.Markup.EscapeText (description));
}
- public virtual Gtk.Widget CreatePanelWidget ()
+ public virtual Control CreatePanelWidget ()
{
this.addButton.Clicked += AddColorScheme;
this.removeButton.Clicked += RemoveColorScheme;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/MarkerPanel.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/MarkerPanel.cs
index ced732ecbc..38742589e5 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/MarkerPanel.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.OptionPanels/MarkerPanel.cs
@@ -25,6 +25,7 @@
using System;
using MonoDevelop.Ide.Gui.Dialogs;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Editor;
using MonoDevelop.Ide;
@@ -62,7 +63,7 @@ namespace MonoDevelop.SourceEditor.OptionPanels
this.Build();
}
- public virtual Gtk.Widget CreatePanelWidget ()
+ public virtual Control CreatePanelWidget ()
{
this.showLineNumbersCheckbutton.Active = showLineNumbers = DefaultSourceEditorOptions.Instance.ShowLineNumberMargin;
this.showLineNumbersCheckbutton.Toggled += delegate {
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs
index a77033c7dd..e51d47cc04 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.QuickTasks/QuickTaskOverviewMode.cs
@@ -79,7 +79,7 @@ namespace MonoDevelop.SourceEditor.QuickTasks
static readonly Cairo.Color win81Background = new Cairo.Color (240 / 255d, 240 / 255d, 240 / 255d);
static readonly Cairo.Color win81Slider = new Cairo.Color (205 / 255d, 205 / 255d, 205 / 255d);
static readonly Cairo.Color win81SliderPrelight = new Cairo.Color (166 / 255d, 166 / 255d, 166 / 255d);
- static readonly Cairo.Color win81SliderActive = new Cairo.Color (96 / 255d, 96 / 255d, 96 / 255d);
+ //static readonly Cairo.Color win81SliderActive = new Cairo.Color (96 / 255d, 96 / 255d, 96 / 255d);
readonly int barPadding = MonoDevelop.Core.Platform.IsWindows ? 1 : 3;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/IndentationTrackerWrapper.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/IndentationTrackerWrapper.cs
index 22abf06f3a..a88ecf421c 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/IndentationTrackerWrapper.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/IndentationTrackerWrapper.cs
@@ -33,9 +33,6 @@ namespace MonoDevelop.SourceEditor.Wrappers
readonly IReadonlyTextDocument document;
readonly MonoDevelop.Ide.Editor.Extension.IndentationTracker indentationTracker;
- readonly Mono.TextEditor.TextEditorData textEditorData;
-
-
public IndentationTrackerWrapper (Mono.TextEditor.TextEditorData textEditorData, IReadonlyTextDocument document, MonoDevelop.Ide.Editor.Extension.IndentationTracker indentationTracker)
{
if (textEditorData == null)
@@ -44,7 +41,6 @@ namespace MonoDevelop.SourceEditor.Wrappers
throw new System.ArgumentNullException ("document");
if (indentationTracker == null)
throw new System.ArgumentNullException ("indentationTracker");
- this.textEditorData = textEditorData;
this.document = document;
this.indentationTracker = indentationTracker;
}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/SemanticHighlightingSyntaxMode.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/SemanticHighlightingSyntaxMode.cs
index 745fda76b1..911e648cc7 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/SemanticHighlightingSyntaxMode.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/SemanticHighlightingSyntaxMode.cs
@@ -165,10 +165,8 @@ namespace MonoDevelop.SourceEditor.Wrappers
const int MaximumCachedLineSegments = 200;
SemanticHighlightingSyntaxMode semanticMode;
- int lineNumber;
public CSharpChunkParser (SemanticHighlightingSyntaxMode semanticMode, SpanParser spanParser, Mono.TextEditor.Highlighting.ColorScheme style, DocumentLine line) : base (semanticMode, spanParser, style, line)
{
- lineNumber = line.LineNumber;
this.semanticMode = semanticMode;
}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/TooltipProviderWrapper.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/TooltipProviderWrapper.cs
index 2678d02fe1..148b925256 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/TooltipProviderWrapper.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.Wrappers/TooltipProviderWrapper.cs
@@ -28,6 +28,7 @@ using System.Threading;
using System.Threading.Tasks;
using Mono.TextEditor;
using MonoDevelop.Ide;
+using Xwt.GtkBackend;
using MonoDevelop.Core;
namespace MonoDevelop.SourceEditor.Wrappers
@@ -102,7 +103,7 @@ namespace MonoDevelop.SourceEditor.Wrappers
var wrappedEditor = WrapEditor (editor);
if (wrappedEditor == null)
return null;
- var control = provider.CreateTooltipWindow (wrappedEditor, IdeApp.Workbench.ActiveDocument, new MonoDevelop.Ide.Editor.TooltipItem (item.Item, item.ItemSegment.Offset, item.ItemSegment.Length), offset, modifierState);
+ var control = provider.CreateTooltipWindow (wrappedEditor, IdeApp.Workbench.ActiveDocument, new MonoDevelop.Ide.Editor.TooltipItem (item.Item, item.ItemSegment.Offset, item.ItemSegment.Length), offset, modifierState.ToXwtValue ());
if (control == null)
return null;
return (Gtk.Window)control;
@@ -125,7 +126,7 @@ namespace MonoDevelop.SourceEditor.Wrappers
if (wrappedEditor == null) {
return tipWindow;
}
- provider.ShowTooltipWindow (wrappedEditor, tipWindow, new MonoDevelop.Ide.Editor.TooltipItem (item.Item, item.ItemSegment.Offset, item.ItemSegment.Length), modifierState, mouseX, mouseY);
+ provider.ShowTooltipWindow (wrappedEditor, tipWindow, new MonoDevelop.Ide.Editor.TooltipItem (item.Item, item.ItemSegment.Offset, item.ItemSegment.Length), modifierState.ToXwtValue (), mouseX, mouseY);
return tipWindow;
}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj
index ef7c929bfe..eea6d68a71 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj
@@ -98,6 +98,11 @@
<Name>Mono.TextEditor</Name>
<Private>False</Private>
</ProjectReference>
+ <ProjectReference Include="..\..\..\external\xwt\Xwt.Gtk\Xwt.Gtk.csproj">
+ <Project>{C3887A93-B2BD-4097-8E2F-3A063EFF32FD}</Project>
+ <Name>Xwt.Gtk</Name>
+ <Private>False</Private>
+ </ProjectReference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs
index 2a255a9644..92e1ca6b1c 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs
@@ -57,7 +57,7 @@ namespace MonoDevelop.SourceEditor
return Task.FromResult (new TooltipItem (errorInformation, editor.GetLineByOffset (offset)));
}
- public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Gdk.ModifierType modifierState)
+ public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState)
{
var result = new LanguageItemWindow (GetExtensibleTextEditor (editor), modifierState, null, (string)item.Item, null);
if (result.IsEmpty)
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs
index 9884a63b70..efd7a03a36 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueTooltipProvider.cs
@@ -131,12 +131,12 @@ namespace MonoDevelop.SourceEditor
return new TooltipItem (val, startOffset, expression.Length);
}
- public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Gdk.ModifierType modifierState)
+ public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState)
{
return new DebugValueWindow (editor, offset, DebuggingService.CurrentFrame, (ObjectValue) item.Item, null);
}
- public override void ShowTooltipWindow (TextEditor editor, Control tipWindow, TooltipItem item, Gdk.ModifierType modifierState, int mouseX, int mouseY)
+ public override void ShowTooltipWindow (TextEditor editor, Control tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY)
{
var location = editor.OffsetToLocation (item.Offset);
var point = editor.LocationToPoint (location);
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs
index 2670b4a4e6..a66b394315 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs
@@ -167,11 +167,12 @@ namespace MonoDevelop.SourceEditor
this.GetPosition (out x, out y);
oldY = y;
- Gdk.Rectangle geometry = DesktopService.GetUsableMonitorGeometry (Screen, Screen.GetMonitorAtPoint (x, y));
+ Xwt.Rectangle geometry = DesktopService.GetUsableMonitorGeometry (Screen.Number, Screen.GetMonitorAtPoint (x, y));
+ int top = (int)geometry.Top;
if (allocation.Height <= geometry.Height && y + allocation.Height >= geometry.Y + geometry.Height - edgeGap)
- y = geometry.Top + (geometry.Height - allocation.Height - edgeGap);
- if (y < geometry.Top + edgeGap)
- y = geometry.Top + edgeGap;
+ y = top + ((int)geometry.Height - allocation.Height - edgeGap);
+ if (y < top + edgeGap)
+ y = top + edgeGap;
if (y != oldY) {
Move (x, y);
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs
index dc3df7cb69..3f68195f7c 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/ExtensibleTextEditor.cs
@@ -57,7 +57,6 @@ namespace MonoDevelop.SourceEditor
internal object MemoryProbe = Counters.EditorsInMemory.CreateMemoryProbe ();
SourceEditorView view;
- ExtensionContext extensionContext;
Adjustment cachedHAdjustment, cachedVAdjustment;
TextEditorExtension editorExtension;
@@ -217,7 +216,6 @@ namespace MonoDevelop.SourceEditor
{
IsDestroyed = true;
UnregisterAdjustments ();
- extensionContext = null;
view = null;
var disposableSyntaxMode = Document.SyntaxMode as IDisposable;
if (disposableSyntaxMode != null) {
@@ -515,11 +513,8 @@ namespace MonoDevelop.SourceEditor
}
}
- int oldOffset = -1;
-
public Microsoft.CodeAnalysis.ISymbol GetLanguageItem (int offset, out MonoDevelop.Ide.Editor.DocumentRegion region)
{
- oldOffset = offset;
region = MonoDevelop.Ide.Editor.DocumentRegion.Empty;
if (textEditorResolverProvider != null) {
@@ -547,8 +542,6 @@ namespace MonoDevelop.SourceEditor
public Microsoft.CodeAnalysis.ISymbol GetLanguageItem (int offset, string expression)
{
- oldOffset = offset;
-
if (textEditorResolverProvider != null) {
return textEditorResolverProvider.GetLanguageItem (view.WorkbenchWindow.Document, offset, expression);
}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/LanguageItemWindow.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/LanguageItemWindow.cs
index 670a320d72..252786d652 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/LanguageItemWindow.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/LanguageItemWindow.cs
@@ -43,7 +43,7 @@ namespace MonoDevelop.SourceEditor
{
public bool IsEmpty { get; set; }
- public LanguageItemWindow (ExtensibleTextEditor ed, Gdk.ModifierType modifierState, object result, string errorInformations, object unit)
+ public LanguageItemWindow (ExtensibleTextEditor ed, Xwt.ModifierKeys modifierState, object result, string errorInformations, object unit)
{
string tooltip = null;
if (result is UnknownIdentifierResolveResult) {
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleTextMarker.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleTextMarker.cs
index 0410d1df61..5c8909100b 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleTextMarker.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/MessageBubbleTextMarker.cs
@@ -144,7 +144,7 @@ namespace MonoDevelop.SourceEditor
public override TextLineMarkerFlags Flags {
get {
- if (LineSegment != null && LineSegment.Markers.Any (m => m is DebugTextMarker))
+ if (LineSegment != null && editor.Document.GetTextSegmentMarkersAt (LineSegment).Any (m => m is DebugTextMarker))
return TextLineMarkerFlags.None;
return TextLineMarkerFlags.DrawsSelection;
@@ -355,6 +355,11 @@ namespace MonoDevelop.SourceEditor
return false;
}
+ bool IActionTextLineMarker.MouseReleased (MonoTextEditor editor, MarginMouseEventArgs args)
+ {
+ return false;
+ }
+
public void MouseHover (MonoTextEditor editor, MarginMouseEventArgs args, TextLineMarkerHoverResult result)
{
if (!IsVisible)
@@ -572,7 +577,7 @@ namespace MonoDevelop.SourceEditor
if (!IsVisible)
return false;
bool markerShouldDrawnAsHidden = cache.CurrentSelectedTextMarker != null && cache.CurrentSelectedTextMarker != this;
- if (metrics.LineSegment.Markers.Any (m => m is DebugTextMarker))
+ if (editor.Document.GetTextSegmentMarkersAt (metrics.LineSegment).Any (m => m is DebugTextMarker))
return false;
EnsureLayoutCreated (editor);
@@ -660,7 +665,8 @@ namespace MonoDevelop.SourceEditor
while (column < line.Length && char.IsWhiteSpace (editor.GetCharAt (line.Offset + (int)column))) {
column++;
}
-
+ if (column >= line.Length)
+ continue;
int index = (int)metrics.Layout.TranslateToUTF8Index (column, ref curIndex, ref byteIndex);
var pos = metrics.Layout.Layout.IndexToPos (index);
var co = o + task.Column - 1;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/PinnedWatchWidget.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/PinnedWatchWidget.cs
index 4e74c91ea6..1c2d9779d2 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/PinnedWatchWidget.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/PinnedWatchWidget.cs
@@ -158,7 +158,7 @@ namespace MonoDevelop.SourceEditor
TreeViewColumn col;
int cx, cy;
valueTree.GetPathAtPos ((int)args.Event.X, (int)args.Event.Y, out path, out col, out cx, out cy);
- Gdk.Rectangle rect = valueTree.GetCellArea (path, col);
+ //Gdk.Rectangle rect = valueTree.GetCellArea (path, col);
if (!mousePressed && valueTree.Columns[0] == col) {
mousePressed = true;
Editor.TextArea.MoveToTop (this);
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
index 294777e6f7..78854edd91 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
@@ -66,16 +66,15 @@ using System.Threading;
namespace MonoDevelop.SourceEditor
{
- partial class SourceEditorView : AbstractViewContent, IBookmarkBuffer, IClipboardHandler, ITextFile,
+ partial class SourceEditorView : ViewContent, IBookmarkBuffer, IClipboardHandler, ITextFile,
ICompletionWidget, ISplittable, IFoldable, IToolboxDynamicProvider,
ICustomFilteringToolboxConsumer, IZoomable, ITextEditorResolver, ITextEditorDataProvider,
- ICodeTemplateHandler, ICodeTemplateContextProvider, ISupportsProjectReload, IPrintable,
+ ICodeTemplateHandler, ICodeTemplateContextProvider, IPrintable,
ITextEditorImpl, IEditorActionHost, ITextMarkerFactory, IUndoHandler
{
readonly SourceEditorWidget widget;
bool isDisposed = false;
DateTime lastSaveTimeUtc;
- string loadedMimeType;
internal object MemoryProbe = Counters.SourceViewsInMemory.CreateMemoryProbe ();
DebugMarkerPair currentDebugLineMarker;
DebugMarkerPair debugStackLineMarker;
@@ -84,6 +83,12 @@ namespace MonoDevelop.SourceEditor
List<PinnedWatchInfo> pinnedWatches = new List<PinnedWatchInfo> ();
bool writeAllowed;
bool writeAccessChecked;
+
+ public ViewContent ViewContent {
+ get {
+ return this;
+ }
+ }
public TextDocument Document {
get {
@@ -115,7 +120,7 @@ namespace MonoDevelop.SourceEditor
}
}
- public override Widget Control {
+ public override Control Control {
get {
return widget != null ? widget.Vbox : null;
}
@@ -132,7 +137,6 @@ namespace MonoDevelop.SourceEditor
}
- bool wasEdited = false;
uint removeMarkerTimeout;
Queue<MessageBubbleTextMarker> markersToRemove = new Queue<MessageBubbleTextMarker> ();
@@ -183,7 +187,7 @@ namespace MonoDevelop.SourceEditor
widget.TextEditor.Document.TextReplacing += OnTextReplacing;
widget.TextEditor.Document.TextReplaced += OnTextReplaced;
widget.TextEditor.Document.ReadOnlyCheckDelegate = CheckReadOnly;
-
+ widget.TextEditor.TextViewMargin.LineShown += TextViewMargin_LineShown;
// widget.TextEditor.Document.DocumentUpdated += delegate {
// this.IsDirty = Document.IsDirty;
// };
@@ -191,14 +195,6 @@ namespace MonoDevelop.SourceEditor
widget.TextEditor.Caret.PositionChanged += HandlePositionChanged;
widget.TextEditor.IconMargin.ButtonPressed += OnIconButtonPress;
- WorkbenchWindowChanged += HandleWorkbenchWindowChanged;
- ContentNameChanged += delegate {
- Document.FileName = ContentName;
- if (String.IsNullOrEmpty (ContentName) || !File.Exists (ContentName))
- return;
-
- lastSaveTimeUtc = File.GetLastWriteTimeUtc (ContentName);
- };
ClipbardRingUpdated += UpdateClipboardRing;
TextEditorService.FileExtensionAdded += HandleFileExtensionAdded;
@@ -234,6 +230,14 @@ namespace MonoDevelop.SourceEditor
FileRegistry.Add (this);
}
+ protected override void OnContentNameChanged ()
+ {
+ Document.FileName = ContentName;
+ if (!String.IsNullOrEmpty (ContentName) && File.Exists (ContentName))
+ lastSaveTimeUtc = File.GetLastWriteTimeUtc (ContentName);
+ base.OnContentNameChanged ();
+ }
+
void HandleLineChanged (object sender, Mono.TextEditor.LineEventArgs e)
{
UpdateBreakpoints ();
@@ -255,11 +259,6 @@ namespace MonoDevelop.SourceEditor
{
if (Document.CurrentAtomicUndoOperationType == OperationType.Format)
return;
- if (!inLoad) {
- if (widget.TextEditor.Document.IsInAtomicUndo) {
- wasEdited = true;
- }
- }
int startIndex = args.Offset;
foreach (var marker in currentErrorMarkers) {
@@ -278,7 +277,6 @@ namespace MonoDevelop.SourceEditor
void HandleBeginUndo (object sender, EventArgs e)
{
- wasEdited = false;
OnBeginUndo (EventArgs.Empty);
}
@@ -320,7 +318,7 @@ namespace MonoDevelop.SourceEditor
{
if (extension is TopLevelWidgetExtension) {
var widgetExtension = (TopLevelWidgetExtension)extension;
- var w = widgetExtension.CreateWidget ();
+ Widget w = widgetExtension.CreateWidget ();
int x, y;
if (!CalcWidgetPosition (widgetExtension, w, out x, out y)) {
w.Destroy ();
@@ -466,12 +464,11 @@ namespace MonoDevelop.SourceEditor
return true;
}
- void HandleWorkbenchWindowChanged (object sender, EventArgs e)
+ protected override void OnWorkbenchWindowChanged ()
{
- if (WorkbenchWindow != null) {
+ base.OnWorkbenchWindowChanged ();
+ if (WorkbenchWindow != null)
WorkbenchWindow.ActiveViewContentChanged += HandleActiveViewContentChanged;
- WorkbenchWindowChanged -= HandleWorkbenchWindowChanged;
- }
}
void HandleActiveViewContentChanged (object o, ActiveViewContentEventArgs e)
@@ -616,12 +613,12 @@ namespace MonoDevelop.SourceEditor
return text;
}
- public override void Save (FileSaveInformation fileSaveInformation)
+ public override Task Save (FileSaveInformation fileSaveInformation)
{
- Save (fileSaveInformation.FileName, fileSaveInformation.Encoding ?? encoding);
+ return Save (fileSaveInformation.FileName, fileSaveInformation.Encoding ?? encoding);
}
- public void Save (string fileName, Encoding encoding)
+ public async Task Save (string fileName, Encoding encoding)
{
if (widget.HasMessageBar)
return;
@@ -657,7 +654,6 @@ namespace MonoDevelop.SourceEditor
if (formatter.SupportsOnTheFlyFormatting) {
using (var undo = TextEditor.OpenUndoGroup ()) {
formatter.OnTheFlyFormat (WorkbenchWindow.Document.Editor, WorkbenchWindow.Document);
- wasEdited = false;
}
} else {
var text = document.Editor.Text;
@@ -717,7 +713,7 @@ namespace MonoDevelop.SourceEditor
// writeBom =!Mono.TextEditor.Utils.TextFileUtility.IsASCII (writeText);
}
}
- MonoDevelop.Core.Text.TextFileUtility.WriteText (fileName, writeText, writeEncoding, writeBom);
+ await MonoDevelop.Core.Text.TextFileUtility.WriteTextAsync (fileName, writeText, writeEncoding, writeBom);
} catch (InvalidEncodingException) {
var result = MessageService.AskQuestion (GettextCatalog.GetString ("Can't save file with current codepage."),
GettextCatalog.GetString ("Some unicode characters in this file could not be saved with the current encoding.\nDo you want to resave this file as Unicode ?\nYou can choose another encoding in the 'save as' dialog."),
@@ -773,14 +769,14 @@ namespace MonoDevelop.SourceEditor
Document.InformLoadComplete ();
}
- public override void LoadNew (Stream content, string mimeType)
+ public override Task LoadNew (Stream content, string mimeType)
{
throw new NotSupportedException ("Moved to TextEditorViewContent.LoadNew.");
}
- public override void Load (FileOpenInformation fileOpenInformation)
+ public override Task Load (FileOpenInformation fileOpenInformation)
{
- Load (fileOpenInformation.FileName, fileOpenInformation.Encoding, fileOpenInformation.IsReloadOperation);
+ return Load (fileOpenInformation.FileName, fileOpenInformation.Encoding, fileOpenInformation.IsReloadOperation);
}
protected virtual string ProcessLoadText (string text)
@@ -796,7 +792,7 @@ namespace MonoDevelop.SourceEditor
}
}
- public void Load (string fileName, Encoding loadEncoding, bool reload = false)
+ public async Task Load (string fileName, Encoding loadEncoding, bool reload = false)
{
widget.TextEditor.Document.TextReplaced -= OnTextReplaced;
@@ -815,12 +811,16 @@ namespace MonoDevelop.SourceEditor
didLoadCleanly = false;
}
else {
- inLoad = true;
if (loadEncoding == null) {
- text = MonoDevelop.Core.Text.TextFileUtility.ReadAllText (fileName, out hadBom, out encoding);
+ var res = await MonoDevelop.Core.Text.TextFileUtility.ReadAllTextAsync (fileName);
+ text = res.Text;
+ hadBom = res.HasBom;
+ encoding = res.Encoding;
} else {
encoding = loadEncoding;
- text = MonoDevelop.Core.Text.TextFileUtility.ReadAllText (fileName, loadEncoding, out hadBom);
+ var res = await MonoDevelop.Core.Text.TextFileUtility.ReadAllTextAsync (fileName, loadEncoding);
+ text = res.Text;
+ hadBom = res.HasBom;
}
text = ProcessLoadText (text);
if (reload) {
@@ -830,7 +830,6 @@ namespace MonoDevelop.SourceEditor
Document.Text = text;
Document.DiffTracker.SetBaseDocument (Document.CreateDocumentSnapshot ());
}
- inLoad = false;
didLoadCleanly = true;
}
// TODO: Would be much easier if the view would be created after the containers.
@@ -891,7 +890,6 @@ namespace MonoDevelop.SourceEditor
}
bool warnOverwrite = false;
- bool inLoad = false;
Encoding encoding;
bool hadBom = false;
@@ -904,10 +902,8 @@ namespace MonoDevelop.SourceEditor
}
UpdateMimeType (fileName);
- inLoad = true;
Document.Replace (0, Document.TextLength, content);
Document.DiffTracker.Reset ();
- inLoad = false;
encoding = enc;
ContentName = fileName;
UpdateExecutionLocation ();
@@ -934,6 +930,9 @@ namespace MonoDevelop.SourceEditor
}
}
}
+ if (Document.MimeType != null) {
+ widget.TextEditor.TextEditorResolverProvider = TextEditorResolverService.GetProvider (Document.MimeType);
+ }
}
public Encoding SourceEncoding {
@@ -975,6 +974,7 @@ namespace MonoDevelop.SourceEditor
widget.TextEditor.Document.TextReplaced -= OnTextReplaced;
widget.TextEditor.Document.ReadOnlyCheckDelegate = null;
widget.TextEditor.Options.Changed -= HandleWidgetTextEditorOptionsChanged;
+ widget.TextEditor.TextViewMargin.LineShown -= TextViewMargin_LineShown;
TextEditorService.FileExtensionAdded -= HandleFileExtensionAdded;
TextEditorService.FileExtensionRemoved -= HandleFileExtensionRemoved;
@@ -2262,17 +2262,12 @@ namespace MonoDevelop.SourceEditor
#region ISupportsProjectReload implementaion
- ProjectReloadCapability ISupportsProjectReload.ProjectReloadCapability {
+ public override ProjectReloadCapability ProjectReloadCapability {
get {
return ProjectReloadCapability.Full;
}
}
-
- void ISupportsProjectReload.Update (Project project)
- {
- // The project will be assigned to the view. Nothing else to do.
- }
-
+
#endregion
#endregion
@@ -2316,14 +2311,13 @@ namespace MonoDevelop.SourceEditor
}
}
- public override object GetContent (Type type)
+ protected override object OnGetContent (Type type)
{
if (type.Equals (typeof(TextEditorData)))
return TextEditor.GetTextEditorData ();
- return base.GetContent (type);
+ return base.OnGetContent (type);
}
-
#region widget command handlers
[CommandHandler (SearchCommands.EmacsFindNext)]
public void EmacsFindNext ()
@@ -2572,7 +2566,7 @@ namespace MonoDevelop.SourceEditor
object ITextEditorImpl.CreateNativeControl ()
{
- return Control;
+ return widget != null ? widget.Vbox : null;
}
string ITextEditorImpl.FormatString (int offset, string code)
@@ -2723,7 +2717,7 @@ namespace MonoDevelop.SourceEditor
return TextEditor.Document.RemoveMarker (textSegmentMarker);
}
- IFoldSegment ITextEditorImpl.CreateFoldSegment (int offset, int length, bool isFolded = false)
+ IFoldSegment ITextEditorImpl.CreateFoldSegment (int offset, int length, bool isFolded)
{
return new FoldSegmentWrapper (TextEditor.Document, "...", offset, length, Mono.TextEditor.FoldingType.None) { IsFolded = isFolded };
}
@@ -3066,6 +3060,21 @@ namespace MonoDevelop.SourceEditor
widget.RemoveOverlay (messageOverlayContent.GetNativeWidget<Widget> ());
}
+ void TextViewMargin_LineShown (object sender, Mono.TextEditor.LineEventArgs e)
+ {
+ LineShown?.Invoke (this, new Ide.Editor.LineEventArgs (new DocumentLineWrapper (e.Line)));
+ }
+
+ public IEnumerable<IDocumentLine> VisibleLines {
+ get {
+ foreach (var v in TextEditor.TextViewMargin.CachedLine) {
+ yield return new DocumentLineWrapper (v);
+ }
+ }
+ }
+
+ public event EventHandler<Ide.Editor.LineEventArgs> LineShown;
+
#region IEditorActionHost implementation
void IEditorActionHost.MoveCaretDown ()
@@ -3335,7 +3344,7 @@ namespace MonoDevelop.SourceEditor
}
}
- public ITextSegmentMarker CreateLinkMarker (MonoDevelop.Ide.Editor.TextEditor editor, int offset, int length, Action<LinkRequest> activateLink)
+ public ILinkTextMarker CreateLinkMarker (MonoDevelop.Ide.Editor.TextEditor editor, int offset, int length, Action<LinkRequest> activateLink)
{
return new LinkMarker (offset, length, activateLink);
}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
index b1ff244bd1..df5664c837 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
@@ -928,12 +928,12 @@ namespace MonoDevelop.SourceEditor
view.WorkbenchWindow.ShowNotification = false;
RemoveMessageBar ();
};
- okButton.Clicked += delegate {
+ okButton.Clicked += async delegate {
switch (combo.Active) {
case 0:
ConvertLineEndings ();
view.WorkbenchWindow.ShowNotification = false;
- view.Save (fileName, view.SourceEncoding);
+ await view.Save (fileName, view.SourceEncoding);
break;
case 1:
FileRegistry.ConvertLineEndingsInAllFiles ();
@@ -1026,7 +1026,7 @@ namespace MonoDevelop.SourceEditor
}
}
- public void Reload ()
+ public async void Reload ()
{
try {
if (!System.IO.File.Exists (view.ContentName))
@@ -1034,7 +1034,7 @@ namespace MonoDevelop.SourceEditor
view.StoreSettings ();
reloadSettings = true;
- view.Load (view.ContentName, view.SourceEncoding, true);
+ await view.Load (view.ContentName, view.SourceEncoding, true);
view.WorkbenchWindow.ShowNotification = false;
} catch (Exception ex) {
MessageService.ShowError ("Could not reload the file.", ex);
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/LinkMarker.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/LinkMarker.cs
index bbb533000b..c884720dd2 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/LinkMarker.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/LinkMarker.cs
@@ -30,13 +30,19 @@ using MonoDevelop.Core;
namespace MonoDevelop.SourceEditor
{
- class LinkMarker : UnderlineTextSegmentMarker, ITextSegmentMarker, IActionTextLineMarker
+ class LinkMarker : UnderlineTextSegmentMarker, ILinkTextMarker, IActionTextLineMarker
{
static readonly Gdk.Cursor textLinkCursor = new Gdk.Cursor (Gdk.CursorType.Hand1);
- static readonly Cairo.Color linkColor = new Cairo.Color (0, 0, 1.0);
+
Action<LinkRequest> activateLink;
- public LinkMarker (int offset, int length, Action<LinkRequest> activateLink) : base (linkColor, new TextSegment (offset, length))
+ public bool OnlyShowLinkOnHover {
+ get;
+ set;
+ }
+
+
+ public LinkMarker (int offset, int length, Action<LinkRequest> activateLink) : base (DefaultSourceEditorOptions.Instance.GetColorStyle ().LinkColor.Color, new TextSegment (offset, length))
{
this.activateLink = activateLink;
this.Wave = false;
@@ -53,18 +59,71 @@ namespace MonoDevelop.SourceEditor
bool IActionTextLineMarker.MousePressed (MonoTextEditor editor, MarginMouseEventArgs args)
{
MousePressed?.Invoke (this, new TextEventArgsWrapper (args));
+ return false;
+ }
+
+ bool IActionTextLineMarker.MouseReleased (MonoTextEditor editor, MarginMouseEventArgs args)
+ {
if ((Platform.IsMac && (args.ModifierState & Gdk.ModifierType.Mod2Mask) == Gdk.ModifierType.Mod2Mask) ||
- (!Platform.IsMac && (args.ModifierState & Gdk.ModifierType.ControlMask) == Gdk.ModifierType.ControlMask))
+ (!Platform.IsMac && (args.ModifierState & Gdk.ModifierType.ControlMask) == Gdk.ModifierType.ControlMask))
activateLink?.Invoke (LinkRequest.RequestNewView);
else
activateLink?.Invoke (LinkRequest.SameView);
+
return false;
}
+
void IActionTextLineMarker.MouseHover (MonoTextEditor editor, MarginMouseEventArgs args, TextLineMarkerHoverResult result)
{
MouseHover?.Invoke (this, new TextEventArgsWrapper (args));
result.Cursor = textLinkCursor;
+ if (OnlyShowLinkOnHover) {
+ editor.GetTextEditorData ().Document.CommitLineUpdate (args.LineSegment);
+ editor.TextViewMargin.HoveredLineChanged += new UpdateOldLine (editor, args.LineSegment).TextViewMargin_HoveredLineChanged;
+ }
+ }
+
+ class UpdateOldLine
+ {
+ MonoTextEditor editor;
+ DocumentLine lineSegment;
+
+ public UpdateOldLine (MonoTextEditor editor, DocumentLine lineSegment)
+ {
+ this.editor = editor;
+ this.lineSegment = lineSegment;
+ }
+
+ public void TextViewMargin_HoveredLineChanged (object sender, Mono.TextEditor.LineEventArgs e)
+ {
+ editor.GetTextEditorData ().Document.CommitLineUpdate (lineSegment);
+ editor.TextViewMargin.HoveredLineChanged -= TextViewMargin_HoveredLineChanged;
+ }
+ }
+
+ public override void Draw (MonoTextEditor editor, Cairo.Context cr, LineMetrics metrics, int startOffset, int endOffset)
+ {
+ if (OnlyShowLinkOnHover) {
+ if (editor.TextViewMargin.MarginCursor != textLinkCursor)
+ return;
+ if (editor.TextViewMargin.HoveredLine == null)
+ return;
+ var hoverOffset = editor.LocationToOffset (editor.TextViewMargin.HoveredLocation);
+ if (!Segment.Contains (hoverOffset))
+ return;
+ }
+ this.Color = editor.ColorStyle.LinkColor.Color;
+
+ if (!OnlyShowLinkOnHover) {
+ if (editor.TextViewMargin.MarginCursor == textLinkCursor && editor.TextViewMargin.HoveredLine != null) {
+ var hoverOffset = editor.LocationToOffset (editor.TextViewMargin.HoveredLocation);
+ if (Segment.Contains (hoverOffset))
+ this.Color = editor.ColorStyle.ActiveLinkColor.Color;
+ }
+ }
+
+ base.Draw (editor, cr, metrics, startOffset, endOffset);
}
}
}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/SmartTagMarker.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/SmartTagMarker.cs
index 4a486e5a4f..50312e0f0f 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/SmartTagMarker.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/SmartTagMarker.cs
@@ -65,6 +65,12 @@ namespace MonoDevelop.SourceEditor
return false;
}
+ bool IActionTextLineMarker.MouseReleased (MonoTextEditor editor, MarginMouseEventArgs args)
+ {
+ return false;
+ }
+
+
void IActionTextLineMarker.MouseHover (Mono.TextEditor.MonoTextEditor editor, MarginMouseEventArgs args, TextLineMarkerHoverResult result)
{
if (args.Button != 0)
@@ -73,7 +79,7 @@ namespace MonoDevelop.SourceEditor
if (line == null)
return;
var x = editor.ColumnToX (line, loc.Column) - editor.HAdjustment.Value + editor.TextViewMargin.TextStartPosition;
- var y = editor.LineToY (line.LineNumber + 1) - editor.VAdjustment.Value;
+ //var y = editor.LineToY (line.LineNumber + 1) - editor.VAdjustment.Value;
const double xAdditionalSpace = tagMarkerWidth;
if (args.X - x >= -xAdditionalSpace * editor.Options.Zoom &&
args.X - x < (tagMarkerWidth + xAdditionalSpace) * editor.Options.Zoom /*&&
@@ -100,15 +106,10 @@ namespace MonoDevelop.SourceEditor
y - y2 < (editor.LineHeight / 2) * editor.Options.Zoom;
}
- bool ISmartTagMarker.IsInsideWindow (Gtk.MotionNotifyEventArgs args)
- {
- if (editor == null)
- return false;
- return args.Event.Window == editor.TextArea.GdkWindow;
- }
-
public event EventHandler<TextMarkerMouseEventArgs> MousePressed;
+ #pragma warning disable 0067
public event EventHandler<TextMarkerMouseEventArgs> MouseHover;
+ #pragma warning restore 0067
public event EventHandler ShowPopup;
public event EventHandler CancelPopup;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/WavedLineMarker.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/WavedLineMarker.cs
index fdd11c9729..7953dac2b5 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/WavedLineMarker.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/WavedLineMarker.cs
@@ -112,9 +112,11 @@ namespace MonoDevelop.SourceEditor
}
}
+ #pragma warning disable 0067
public event EventHandler<MonoDevelop.Ide.Editor.TextMarkerMouseEventArgs> MousePressed;
public event EventHandler<MonoDevelop.Ide.Editor.TextMarkerMouseEventArgs> MouseHover;
+ #pragma warning restore 0067
object MonoDevelop.Ide.Editor.ITextSegmentMarker.Tag {
get;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/gui.stetic b/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/gui.stetic
index 0b007407c2..9e2236c02c 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/gui.stetic
+++ b/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/gui.stetic
@@ -2371,6 +2371,7 @@
<widget class="Gtk.Bin" id="MonoDevelop.SourceEditor.OptionPanels.CompletionAppearancePanel" design-size="427 423">
<property name="MemberName" />
<property name="Visible">False</property>
+ <property name="GeneratePublic">False</property>
<child>
<widget class="Gtk.VBox" id="vbox1">
<property name="MemberName" />
diff --git a/main/src/addins/NUnit/Gui/TestPad.cs b/main/src/addins/NUnit/Gui/TestPad.cs
index 7af04bb8d9..3681279f08 100644
--- a/main/src/addins/NUnit/Gui/TestPad.cs
+++ b/main/src/addins/NUnit/Gui/TestPad.cs
@@ -90,7 +90,7 @@ namespace MonoDevelop.NUnit
paned = new VPaned ();
VBox vbox = new VBox ();
- DockItemToolbar topToolbar = Window.GetToolbar (PositionType.Top);
+ DockItemToolbar topToolbar = Window.GetToolbar (DockPositionType.Top);
var hbox = new HBox { Spacing = 6 };
hbox.PackStart (new ImageView (ImageService.GetIcon ("md-execute-all", IconSize.Menu)), false, false, 0);
@@ -146,10 +146,12 @@ namespace MonoDevelop.NUnit
VBox boxPaned1 = new VBox ();
chart = new TestChart ();
- chart.ButtonPressEvent += OnChartButtonPress;
chart.SelectionChanged += new EventHandler (OnChartDateChanged);
- chart.HeightRequest = 50;
-
+
+ var chartWidget = chart.GetNativeWidget<Widget> ();
+ chartWidget.ButtonPressEvent += OnChartButtonPress;
+ chartWidget.HeightRequest = 50;
+
Toolbar toolbar = new Toolbar ();
toolbar.IconSize = IconSize.SmallToolbar;
toolbar.ToolbarStyle = ToolbarStyle.Icons;
@@ -382,7 +384,7 @@ namespace MonoDevelop.NUnit
return TreeView.GetNodeAtObject (t);
}
- public override Gtk.Widget Control {
+ public override Control Control {
get {
return paned;
}
diff --git a/main/src/addins/NUnit/Gui/TestResultsPad.cs b/main/src/addins/NUnit/Gui/TestResultsPad.cs
index 43ebfd8acf..ea2d7325d4 100644
--- a/main/src/addins/NUnit/Gui/TestResultsPad.cs
+++ b/main/src/addins/NUnit/Gui/TestResultsPad.cs
@@ -49,7 +49,7 @@ using MonoDevelop.NUnit.External;
namespace MonoDevelop.NUnit
{
- public class TestResultsPad: IPadContent, ITestProgressMonitor
+ public class TestResultsPad: PadContent, ITestProgressMonitor
{
NUnitService testService = NUnitService.Instance;
@@ -154,16 +154,16 @@ namespace MonoDevelop.NUnit
"/MonoDevelop/NUnit/ContextMenu/TestResultsPad");
};
- Control.ShowAll ();
+ panel.ShowAll ();
outputViewScrolled.Hide ();
}
- void IPadContent.Initialize (IPadWindow window)
+ protected override void Initialize (IPadWindow window)
{
this.window = window;
- DockItemToolbar toolbar = window.GetToolbar (PositionType.Top);
+ DockItemToolbar toolbar = window.GetToolbar (DockPositionType.Top);
buttonSuccess = new ToggleButton ();
buttonSuccess.Label = GettextCatalog.GetString ("Successful Tests");
@@ -228,7 +228,7 @@ namespace MonoDevelop.NUnit
// Run panel
- DockItemToolbar runPanel = window.GetToolbar (PositionType.Bottom);
+ DockItemToolbar runPanel = window.GetToolbar (DockPositionType.Bottom);
infoSep = new VSeparator ();
@@ -257,10 +257,6 @@ namespace MonoDevelop.NUnit
UpdateCounters ();
}
- public void Dispose ()
- {
- }
-
public void OnTestSuiteChanged (object sender, EventArgs e)
{
if (rootTest != null) {
@@ -306,16 +302,12 @@ namespace MonoDevelop.NUnit
}
}
- public Gtk.Widget Control {
+ public override Control Control {
get {
return panel;
}
}
- public void RedrawContent ()
- {
- }
-
string GetResultsMarkup ()
{
return string.Format (GettextCatalog.GetString ("<b>Passed</b>: {0} <b>Failed</b>: {1} <b>Errors</b>: {2} <b>Inconclusive</b>: {3} <b>Invalid</b>: {4} <b>Ignored</b>: {5} <b>Skipped</b>: {6} <b>Time</b>: {7}"),
diff --git a/main/src/addins/NUnit/Project/NUnitAssemblyGroupProject.cs b/main/src/addins/NUnit/Project/NUnitAssemblyGroupProject.cs
index 70ae454717..2da28fc8f7 100644
--- a/main/src/addins/NUnit/Project/NUnitAssemblyGroupProject.cs
+++ b/main/src/addins/NUnit/Project/NUnitAssemblyGroupProject.cs
@@ -67,11 +67,9 @@ namespace MonoDevelop.NUnit
}
}
- protected override SolutionItemConfiguration OnCreateConfiguration (string name, ConfigurationKind kind)
+ protected override SolutionItemConfiguration OnCreateConfiguration (string id, ConfigurationKind kind)
{
- NUnitAssemblyGroupProjectConfiguration conf = new NUnitAssemblyGroupProjectConfiguration ();
- conf.Name = name;
- return conf;
+ return new NUnitAssemblyGroupProjectConfiguration (id);
}
}
@@ -79,16 +77,16 @@ namespace MonoDevelop.NUnit
{
TestAssemblyCollection assemblies;
- public NUnitAssemblyGroupProjectConfiguration ()
+ public NUnitAssemblyGroupProjectConfiguration (string id): base (id)
{
assemblies = new TestAssemblyCollection (this);
}
- public override void CopyFrom (ItemConfiguration other)
+ protected override void OnCopyFrom (ItemConfiguration configuration, bool isRename)
{
- base.CopyFrom (other);
-
- NUnitAssemblyGroupProjectConfiguration conf = other as NUnitAssemblyGroupProjectConfiguration;
+ base.OnCopyFrom (configuration, isRename);
+
+ NUnitAssemblyGroupProjectConfiguration conf = configuration as NUnitAssemblyGroupProjectConfiguration;
if (conf != null) {
assemblies.Clear ();
foreach (TestAssembly ta in conf.Assemblies) {
diff --git a/main/src/addins/VBNetBinding/Gui/ConfigurationOptionsPanel.cs b/main/src/addins/VBNetBinding/Gui/ConfigurationOptionsPanel.cs
index 71148c8a1b..80c602a526 100644
--- a/main/src/addins/VBNetBinding/Gui/ConfigurationOptionsPanel.cs
+++ b/main/src/addins/VBNetBinding/Gui/ConfigurationOptionsPanel.cs
@@ -28,6 +28,7 @@
using System;
+using MonoDevelop.Components;
using MonoDevelop.Projects;
using MonoDevelop.Ide.Gui.Dialogs;
@@ -41,7 +42,7 @@ namespace MonoDevelop.VBNetBinding
{
}
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
Console.WriteLine ("ConfigurationOptionsPanel.CreatePanelWidget");
return (widget = new ConfigurationOptionsPanelWidget (ConfiguredProject));
diff --git a/main/src/addins/VBNetBinding/Gui/ImportsOptionsPanel.cs b/main/src/addins/VBNetBinding/Gui/ImportsOptionsPanel.cs
index 76fb8745fa..ea3eb9fe18 100644
--- a/main/src/addins/VBNetBinding/Gui/ImportsOptionsPanel.cs
+++ b/main/src/addins/VBNetBinding/Gui/ImportsOptionsPanel.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.VBNetBinding
@@ -36,7 +37,7 @@ namespace MonoDevelop.VBNetBinding
{
}
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return (widget = new ImportsOptionsPanelWidget (ConfiguredProject));
}
diff --git a/main/src/addins/VBNetBinding/Gui/ProjectOptionsPanel.cs b/main/src/addins/VBNetBinding/Gui/ProjectOptionsPanel.cs
index a456dc913b..9217e09362 100644
--- a/main/src/addins/VBNetBinding/Gui/ProjectOptionsPanel.cs
+++ b/main/src/addins/VBNetBinding/Gui/ProjectOptionsPanel.cs
@@ -26,7 +26,7 @@
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.VBNetBinding
@@ -39,7 +39,7 @@ namespace MonoDevelop.VBNetBinding
{
}
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return (widget = new ProjectOptionsPanelWidget (ConfiguredProject));
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/Commands.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/Commands.cs
index 1a2b78edab..bbf092f617 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/Commands.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/Commands.cs
@@ -64,7 +64,7 @@ namespace MonoDevelop.VersionControl.Git
protected GitRepository UpdateVisibility (CommandInfo info)
{
var repo = Repository;
- info.Visible = Repository != null;
+ info.Visible = repo != null;
return repo;
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/CredentialsDialog.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/CredentialsDialog.cs
index ab4e9ff94a..f534745e88 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/CredentialsDialog.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/CredentialsDialog.cs
@@ -31,7 +31,7 @@ using MonoDevelop.Components;
namespace MonoDevelop.VersionControl.Git
{
- partial class CredentialsDialog : Dialog
+ partial class CredentialsDialog : Gtk.Dialog
{
uint r;
public CredentialsDialog (string uri, SupportedCredentialTypes type, Credentials cred)
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/EditBranchDialog.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/EditBranchDialog.cs
index a41d5fc3e6..1929c1fbad 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/EditBranchDialog.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/EditBranchDialog.cs
@@ -35,7 +35,7 @@ using System.ComponentModel;
namespace MonoDevelop.VersionControl.Git
{
- partial class EditBranchDialog : Dialog
+ partial class EditBranchDialog : Gtk.Dialog
{
readonly ListStore comboStore;
readonly string currentTracking;
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitConfigurationDialog.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitConfigurationDialog.cs
index 712073976e..63c4269f48 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitConfigurationDialog.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitConfigurationDialog.cs
@@ -35,7 +35,7 @@ using System.ComponentModel;
namespace MonoDevelop.VersionControl.Git
{
- partial class GitConfigurationDialog : Dialog
+ partial class GitConfigurationDialog : Gtk.Dialog
{
readonly GitRepository repo;
readonly ListStore storeBranches;
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanel.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanel.cs
index 5a09a60d17..640a44142c 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanel.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanel.cs
@@ -23,6 +23,7 @@
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.VersionControl.Git
@@ -31,7 +32,7 @@ namespace MonoDevelop.VersionControl.Git
{
GitOptionsPanelWidget widget;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
return widget = new GitOptionsPanelWidget ();
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanelWidget.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanelWidget.cs
index fb2c8d024a..6dfc4554f5 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanelWidget.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitOptionsPanelWidget.cs
@@ -39,9 +39,9 @@ namespace MonoDevelop.VersionControl.Git
public void ApplyChanges ()
{
- GitService.UseRebaseOptionWhenPulling = checkRebase.Active;
- GitService.StashUnstashWhenUpdating = checkStashUpdate.Active;
- GitService.StashUnstashWhenSwitchingBranches = checkStashBranch.Active;
+ GitService.UseRebaseOptionWhenPulling.Value = checkRebase.Active;
+ GitService.StashUnstashWhenUpdating.Value = checkStashUpdate.Active;
+ GitService.StashUnstashWhenSwitchingBranches.Value = checkStashBranch.Active;
}
}
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitService.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitService.cs
index 9e05055ccd..74c3028d13 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitService.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitService.cs
@@ -36,23 +36,9 @@ namespace MonoDevelop.VersionControl.Git
{
public static class GitService
{
- public static bool UseRebaseOptionWhenPulling
- {
- get { return PropertyService.Get ("MonoDevelop.VersionControl.Git.UseRebaseOptionWhenPulling", true); }
- set { PropertyService.Set ("MonoDevelop.VersionControl.Git.UseRebaseOptionWhenPulling", value); }
- }
-
- public static bool StashUnstashWhenUpdating
- {
- get { return PropertyService.Get ("MonoDevelop.VersionControl.Git.StashUnstashWhenUpdating", true); }
- set { PropertyService.Set ("MonoDevelop.VersionControl.Git.StashUnstashWhenUpdating", value); }
- }
-
- public static bool StashUnstashWhenSwitchingBranches
- {
- get { return PropertyService.Get ("MonoDevelop.VersionControl.Git.StashUnstashWhenSwitchingBranches", true); }
- set { PropertyService.Set ("MonoDevelop.VersionControl.Git.StashUnstashWhenSwitchingBranches", value); }
- }
+ public static ConfigurationProperty<bool> UseRebaseOptionWhenPulling = ConfigurationProperty.Create ("MonoDevelop.VersionControl.Git.UseRebaseOptionWhenPulling", true);
+ public static ConfigurationProperty<bool> StashUnstashWhenUpdating = ConfigurationProperty.Create ("MonoDevelop.VersionControl.Git.StashUnstashWhenUpdating", true);
+ public static ConfigurationProperty<bool> StashUnstashWhenSwitchingBranches = ConfigurationProperty.Create ("MonoDevelop.VersionControl.Git.StashUnstashWhenSwitchingBranches", true);
public static void Push (GitRepository repo)
{
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/MergeDialog.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/MergeDialog.cs
index 98c2115e7a..57d82ff2d6 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/MergeDialog.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/MergeDialog.cs
@@ -33,7 +33,7 @@ using LibGit2Sharp;
namespace MonoDevelop.VersionControl.Git
{
- partial class MergeDialog : Dialog
+ partial class MergeDialog : Gtk.Dialog
{
readonly TreeStore store;
readonly GitRepository repo;
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/StashManagerDialog.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/StashManagerDialog.cs
index 76485e358d..92c9eb3028 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/StashManagerDialog.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/StashManagerDialog.cs
@@ -31,7 +31,7 @@ using LibGit2Sharp;
namespace MonoDevelop.VersionControl.Git
{
- partial class StashManagerDialog : Dialog
+ partial class StashManagerDialog : Gtk.Dialog
{
readonly GitRepository repository;
readonly ListStore store;
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlGeneralOptionsPanel.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlGeneralOptionsPanel.cs
index 7fd5e9adf6..52c06c78d8 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlGeneralOptionsPanel.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlGeneralOptionsPanel.cs
@@ -34,7 +34,7 @@ namespace MonoDevelop.VersionControl
{
Xwt.CheckBox disableVersionControl;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
Xwt.VBox box = new Xwt.VBox ();
box.Spacing = 6;
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlPolicyPanel.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlPolicyPanel.cs
index aeb604d3e7..3ff75dc197 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlPolicyPanel.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlPolicyPanel.cs
@@ -25,7 +25,7 @@
//
//
-using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Projects;
@@ -37,7 +37,7 @@ namespace MonoDevelop.VersionControl
CommitMessageStylePanelWidget widget;
CommitMessageFormat format;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
format = new CommitMessageFormat ();
widget = new CommitMessageStylePanelWidget ();
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlSolutionOptionsPanel.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlSolutionOptionsPanel.cs
index f97e1570c6..709c490693 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlSolutionOptionsPanel.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Dialogs/VersionControlSolutionOptionsPanel.cs
@@ -35,7 +35,7 @@ namespace MonoDevelop.VersionControl
{
Xwt.CheckBox disableVersionControl;
- public override Gtk.Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
Xwt.VBox box = new Xwt.VBox ();
box.Spacing = 6;
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BaseView.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BaseView.cs
index f9bcd2461a..bdf5f4ebcb 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BaseView.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BaseView.cs
@@ -1,108 +1,31 @@
using System;
-using System.IO;
+using System.IO;
using MonoDevelop.Ide.Gui;
using System.Text;
-
+using Gtk;
+using System.Threading.Tasks;
+using MonoDevelop.Components;
+
namespace MonoDevelop.VersionControl
{
- public abstract class BaseView : AbstractBaseViewContent, IViewContent
+ public abstract class BaseView : ViewContent
{
string name;
protected BaseView (string name)
{
this.name = name;
- }
-
- protected virtual void SaveAs (FileSaveInformation fileSaveInformation)
- {
- }
-
- void IViewContent.Load (FileOpenInformation fileOpenInformation)
- {
- throw new InvalidOperationException();
- }
-
- void IViewContent.Load (string fileName)
- {
- throw new InvalidOperationException();
- }
-
- void IViewContent.LoadNew (Stream stream, string mimeType)
- {
- throw new InvalidOperationException ();
- }
-
- void IViewContent.Save ()
- {
- throw new InvalidOperationException ();
- }
-
- void IViewContent.DiscardChanges ()
- {
- }
-
- void IViewContent.Save (string fileName)
- {
- SaveAs (new FileSaveInformation (fileName));
- }
-
- void IViewContent.Save (FileSaveInformation info)
- {
- SaveAs (info);
- }
-
- string IViewContent.ContentName {
- get { return name; }
- set { }
- }
-
- bool IViewContent.IsDirty {
- get { return false; }
- set { }
- }
-
- bool IViewContent.IsReadOnly {
- get { return true; }
- }
-
- bool IViewContent.IsUntitled {
- get { return false; }
- }
-
- bool IViewContent.IsViewOnly {
- get { return false; }
}
-
- bool IViewContent.IsFile {
- get { return false; }
- }
-
- string IViewContent.PathRelativeToProject {
- get { return ""; }
- }
-
- MonoDevelop.Projects.Project IViewContent.Project {
- get { return null; }
- set { }
- }
-
+
+ public override Control Control {
+ get
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
public override string TabPageLabel {
get { return name; }
}
-
- public virtual string StockIconId {
- get { return null; }
- }
-
- string IViewContent.UntitledName {
- get { return ""; }
- set { }
- }
-
- event EventHandler IViewContent.BeforeSave { add { } remove { } }
- event EventHandler IViewContent.ContentChanged { add { } remove { } }
- event EventHandler IViewContent.ContentNameChanged { add { } remove { } }
- event EventHandler IViewContent.DirtyChanged { add { } remove { } }
}
} \ No newline at end of file
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BlameView.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BlameView.cs
index ee6571fb78..2faf833e3e 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BlameView.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/BlameView.cs
@@ -24,13 +24,16 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Content;
using Mono.TextEditor;
+using MonoDevelop.Components;
+
namespace MonoDevelop.VersionControl.Views
{
- public interface IBlameView : IAttachableViewContent
+ public interface IBlameView
{
}
@@ -39,7 +42,7 @@ namespace MonoDevelop.VersionControl.Views
BlameWidget widget;
VersionControlDocumentInfo info;
- public override Gtk.Widget Control {
+ public override Control Control {
get {
if (widget == null)
widget = new BlameWidget (info);
@@ -53,7 +56,7 @@ namespace MonoDevelop.VersionControl.Views
}
#region IAttachableViewContent implementation
- public void Selected ()
+ protected override void OnSelected ()
{
info.Start ();
var sourceEditor = info.Document.GetContent <MonoDevelop.SourceEditor.SourceEditorView> ();
@@ -63,7 +66,7 @@ namespace MonoDevelop.VersionControl.Views
}
}
- public void Deselected ()
+ protected override void OnDeselected ()
{
var sourceEditor = info.Document.GetContent <MonoDevelop.SourceEditor.SourceEditorView> ();
if (sourceEditor != null) {
@@ -72,13 +75,6 @@ namespace MonoDevelop.VersionControl.Views
}
}
- public void BeforeSave ()
- {
- }
-
- public void BaseContentChanged ()
- {
- }
#endregion
#region IUndoHandler implementation
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/ComparisonWidget.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/ComparisonWidget.cs
index 0be3428bcf..a338eaf966 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/ComparisonWidget.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/ComparisonWidget.cs
@@ -93,6 +93,7 @@ namespace MonoDevelop.VersionControl.Views
protected override void OnSetVersionControlInfo (VersionControlDocumentInfo info)
{
info.Updated += OnInfoUpdated;
+ MainEditor.Document.ReadOnly = false;
base.OnSetVersionControlInfo (info);
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffView.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffView.cs
index 3162f4818c..d519772c24 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffView.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffView.cs
@@ -26,12 +26,14 @@
using System;
using MonoDevelop.Ide.Gui;
using System.Collections.Generic;
+using MonoDevelop.Components;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui.Content;
+using MonoDevelop.Components;
namespace MonoDevelop.VersionControl.Views
{
- public interface IDiffView : IAttachableViewContent
+ public interface IDiffView
{
}
@@ -39,7 +41,7 @@ namespace MonoDevelop.VersionControl.Views
{
DiffWidget widget;
- public override Gtk.Widget Control {
+ public override Control Control {
get {
if (widget == null) {
widget = new DiffWidget (info);
@@ -89,7 +91,7 @@ namespace MonoDevelop.VersionControl.Views
return editor.YToLine (midY);
}
- public void Selected ()
+ protected override void OnSelected ()
{
info.Start ();
ComparisonWidget.UpdateLocalText ();
@@ -121,7 +123,7 @@ namespace MonoDevelop.VersionControl.Views
}
}
- public void Deselected ()
+ protected override void OnDeselected ()
{
var sourceEditor = info.Document.GetContent <MonoDevelop.SourceEditor.SourceEditorView> ();
if (sourceEditor != null) {
@@ -133,14 +135,6 @@ namespace MonoDevelop.VersionControl.Views
}
}
- public void BeforeSave ()
- {
- }
-
- public void BaseContentChanged ()
- {
- }
-
#endregion
#region IUndoHandler implementation
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffWidget.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffWidget.cs
index d98b37dab1..9535f73741 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffWidget.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DiffWidget.cs
@@ -35,8 +35,8 @@ namespace MonoDevelop.VersionControl.Views
VersionControlDocumentInfo info;
Mono.TextEditor.MonoTextEditor diffTextEditor;
ComparisonWidget comparisonWidget;
- Gtk.Button buttonNext;
- Gtk.Button buttonPrev;
+ DocumentToolButton buttonNext;
+ DocumentToolButton buttonPrev;
Gtk.Button buttonDiff;
Gtk.Label labelOverview;
@@ -114,7 +114,8 @@ namespace MonoDevelop.VersionControl.Views
void SetButtonSensitivity ()
{
- this.buttonNext.Sensitive = this.buttonPrev.Sensitive = notebook1.Page == 0 && comparisonWidget.Diff != null && comparisonWidget.Diff.Count > 0;
+ this.buttonNext.GetNativeWidget<Gtk.Widget> ().Sensitive = this.buttonPrev.GetNativeWidget<Gtk.Widget> ().Sensitive =
+ notebook1.Page == 0 && comparisonWidget.Diff != null && comparisonWidget.Diff.Count > 0;
}
void HandleButtonDiffhandleClicked (object sender, EventArgs e)
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DropDownBox.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DropDownBox.cs
index 32e8313988..17cfb0693e 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DropDownBox.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/DropDownBox.cs
@@ -87,8 +87,8 @@ namespace MonoDevelop.VersionControl.Views
set;
}
- Window window = null;
- public Func<DropDownBox, Window> WindowRequestFunc = null;
+ Gtk.Window window = null;
+ public Func<DropDownBox, Gtk.Window> WindowRequestFunc = null;
public DropDownBox ()
@@ -110,12 +110,12 @@ namespace MonoDevelop.VersionControl.Views
window.WidthRequest = Allocation.Width;
int width, height;
window.GetSizeRequest (out width, out height);
- Gdk.Rectangle geometry = DesktopService.GetUsableMonitorGeometry (Screen, Screen.GetMonitorAtPoint (dx, dy));
+ Xwt.Rectangle geometry = DesktopService.GetUsableMonitorGeometry (Screen.Number, Screen.GetMonitorAtPoint (dx, dy));
if (dy + height > geometry.Bottom)
dy = oy + this.Allocation.Y - height;
if (dx + width > geometry.Right)
- dx = geometry.Right - width;
+ dx = (int)geometry.Right - width;
window.Move (dx, dy);
window.GetSizeRequest (out width, out height);
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogView.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogView.cs
index 85ddea19d3..4bd68c8f53 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogView.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogView.cs
@@ -2,18 +2,20 @@ using System;
using System.IO;
using Gtk;
using MonoDevelop.Core;
+using MonoDevelop.Components;
using MonoDevelop.Components.Commands;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide;
using System.Linq;
+using MonoDevelop.Components;
namespace MonoDevelop.VersionControl.Views
{
- public interface ILogView : IAttachableViewContent
+ public interface ILogView
{
}
- public class LogView : BaseView, ILogView
+ class LogView : BaseView, ILogView
{
LogWidget widget;
VersionInfo vinfo;
@@ -78,7 +80,7 @@ namespace MonoDevelop.VersionControl.Views
}
- public override Gtk.Widget Control {
+ public override Control Control {
get {
if (widget == null)
CreateControlFromInfo ();
@@ -86,9 +88,9 @@ namespace MonoDevelop.VersionControl.Views
}
}
- protected override void OnWorkbenchWindowChanged (EventArgs e)
+ protected override void OnWorkbenchWindowChanged ()
{
- base.OnWorkbenchWindowChanged (e);
+ base.OnWorkbenchWindowChanged ();
if (WorkbenchWindow != null && widget != null)
widget.SetToolbar (WorkbenchWindow.GetToolbar (this));
}
@@ -110,8 +112,7 @@ namespace MonoDevelop.VersionControl.Views
base.Dispose ();
}
- #region IAttachableViewContent implementation
- public void Selected ()
+ public void Init ()
{
if (info != null && !info.Started) {
widget.ShowLoading ();
@@ -119,17 +120,12 @@ namespace MonoDevelop.VersionControl.Views
}
}
- public void Deselected ()
- {
- }
-
- public void BeforeSave ()
+ #region IAttachableViewContent implementation
+ protected override void OnSelected ()
{
+ Init ();
}
- public void BaseContentChanged ()
- {
- }
#endregion
[CommandHandler (MonoDevelop.Ide.Commands.EditCommands.Copy)]
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs
index c56aba6cb6..bda3ab0a47 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs
@@ -53,7 +53,7 @@ namespace MonoDevelop.VersionControl.Views
ListStore logstore = new ListStore (typeof (Revision), typeof(string));
FileTreeView treeviewFiles;
TreeStore changedpathstore;
- Gtk.Button revertButton, revertToButton, refreshButton;
+ DocumentToolButton revertButton, revertToButton, refreshButton;
SearchEntry searchEntry;
string currentFilter;
@@ -139,11 +139,11 @@ namespace MonoDevelop.VersionControl.Views
vpaned1 = vpaned1.ReplaceWithWidget (new VPanedThin () { HandleWidget = separator }, true);
revertButton = new DocumentToolButton ("vc-revert-command", GettextCatalog.GetString ("Revert changes from this revision"));
- revertButton.Sensitive = false;
+ revertButton.GetNativeWidget<Gtk.Widget> ().Sensitive = false;
revertButton.Clicked += new EventHandler (RevertRevisionClicked);
revertToButton = new DocumentToolButton ("vc-revert-command", GettextCatalog.GetString ("Revert to this revision"));
- revertToButton.Sensitive = false;
+ revertToButton.GetNativeWidget<Gtk.Widget> ().Sensitive = false;
revertToButton.Clicked += new EventHandler (RevertToRevisionClicked);
refreshButton = new DocumentToolButton (Gtk.Stock.Refresh, GettextCatalog.GetString ("Refresh"));
@@ -349,10 +349,10 @@ namespace MonoDevelop.VersionControl.Views
{
ShowLoading ();
info.Start (true);
- revertButton.Sensitive = revertToButton.Sensitive = false;
+ revertButton.GetNativeWidget<Gtk.Widget> ().Sensitive = revertToButton.GetNativeWidget<Gtk.Widget> ().Sensitive = false;
}
- void HandleTreeviewFilesDiffLineActivated (object sender, EventArgs e)
+ async void HandleTreeviewFilesDiffLineActivated (object sender, EventArgs e)
{
TreePath[] paths = treeviewFiles.Selection.GetSelectedRows ();
@@ -366,7 +366,7 @@ namespace MonoDevelop.VersionControl.Views
int line = diffRenderer.GetSelectedLine (paths[0]);
if (line == -1)
line = 1;
- var doc = IdeApp.Workbench.OpenDocument (fileName, line, 0, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
+ var doc = await IdeApp.Workbench.OpenDocument (fileName, line, 0, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
int i = 1;
foreach (var content in doc.Window.SubViewContents) {
DiffView diffView = content as DiffView;
@@ -664,7 +664,7 @@ namespace MonoDevelop.VersionControl.Views
if (d == null)
return;
- revertButton.Sensitive = revertToButton.Sensitive = true;
+ revertButton.GetNativeWidget<Gtk.Widget> ().Sensitive = revertToButton.GetNativeWidget<Gtk.Widget> ().Sensitive = true;
Gtk.TreeIter selectIter = Gtk.TreeIter.Zero;
bool select = false;
foreach (RevisionPath rp in info.Repository.GetRevisionChanges (d)) {
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeView.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeView.cs
index 8cb107fa2d..5408740683 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeView.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/MergeView.cs
@@ -24,11 +24,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using MonoDevelop.Ide.Gui;
+using MonoDevelop.Components;
using MonoDevelop.Core;
+using MonoDevelop.Components;
namespace MonoDevelop.VersionControl.Views
{
- public interface IMergeView : IAttachableViewContent
+ public interface IMergeView
{
}
@@ -37,7 +39,7 @@ namespace MonoDevelop.VersionControl.Views
VersionControlDocumentInfo info;
MergeWidget widget;
- public override Gtk.Widget Control {
+ public override Control Control {
get {
if (widget == null) {
widget = new MergeWidget ();
@@ -53,23 +55,11 @@ namespace MonoDevelop.VersionControl.Views
this.info = info;
}
- public void Selected ()
+ protected override void OnSelected ()
{
widget.UpdateLocalText ();
widget.info.Start ();
}
-
- public void Deselected ()
- {
- }
-
- public void BeforeSave ()
- {
- }
-
- public void BaseContentChanged ()
- {
- }
}
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs
index 22090f22be..9fa3c9bb52 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/StatusView.cs
@@ -8,6 +8,7 @@ using Mono.Addins;
using Gtk;
using MonoDevelop.Core;
+using MonoDevelop.Components;
using MonoDevelop.Components.Commands;
using MonoDevelop.Projects;
using MonoDevelop.Ide.Gui.Components;
@@ -290,9 +291,9 @@ namespace MonoDevelop.VersionControl.Views
Init ();
}
- protected override void OnWorkbenchWindowChanged (EventArgs e)
+ protected override void OnWorkbenchWindowChanged ()
{
- base.OnWorkbenchWindowChanged (e);
+ base.OnWorkbenchWindowChanged ();
if (WorkbenchWindow == null)
return;
@@ -357,10 +358,6 @@ namespace MonoDevelop.VersionControl.Views
toolbar.ShowAll ();
}
- public override string StockIconId {
- get { return "vc-status"; }
- }
-
int CompareNodes (Gtk.TreeModel model, Gtk.TreeIter a, Gtk.TreeIter b)
{
int col, val=0;
@@ -436,7 +433,7 @@ namespace MonoDevelop.VersionControl.Views
base.Dispose ();
}
- public override Gtk.Widget Control {
+ public override Control Control {
get {
return widget;
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/SubviewAttachmentHandler.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/SubviewAttachmentHandler.cs
index b95b373dea..0066ea4585 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/SubviewAttachmentHandler.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/SubviewAttachmentHandler.cs
@@ -71,10 +71,10 @@ namespace MonoDevelop.VersionControl.Views
var item = new VersionControlItem (repo, project, document.FileName, false, null);
var vcInfo = new VersionControlDocumentInfo (document.PrimaryView, item, item.Repository);
- TryAttachView <IDiffView> (document, vcInfo, DiffCommand.DiffViewHandlers);
- TryAttachView <IBlameView> (document, vcInfo, BlameCommand.BlameViewHandlers);
- TryAttachView <ILogView> (document, vcInfo, LogCommand.LogViewHandlers);
- TryAttachView <IMergeView> (document, vcInfo, MergeCommand.MergeViewHandlers);
+ TryAttachView (document, vcInfo, DiffCommand.DiffViewHandlers);
+ TryAttachView (document, vcInfo, BlameCommand.BlameViewHandlers);
+ TryAttachView (document, vcInfo, LogCommand.LogViewHandlers);
+ TryAttachView (document, vcInfo, MergeCommand.MergeViewHandlers);
} catch (Exception ex) {
// If a user is hitting this, it will show a dialog box every time they
// switch to a document or open a document, so suppress the crash dialog
@@ -83,10 +83,9 @@ namespace MonoDevelop.VersionControl.Views
}
}
- static void TryAttachView <T>(Document document, VersionControlDocumentInfo info, string type)
- where T : IAttachableViewContent
+ static void TryAttachView (Document document, VersionControlDocumentInfo info, string type)
{
- var handler = AddinManager.GetExtensionObjects<IVersionControlViewHandler<T>> (type)
+ var handler = AddinManager.GetExtensionObjects<IVersionControlViewHandler> (type)
.FirstOrDefault (h => h.CanHandle (info.Item, info.Document));
if (handler != null)
document.Window.AttachViewContent (handler.CreateView (info));
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/BlameCommand.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/BlameCommand.cs
index 962f071d59..aaf261fb93 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/BlameCommand.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/BlameCommand.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System.Linq;
+using System.Threading.Tasks;
using Mono.Addins;
using MonoDevelop.Ide;
using MonoDevelop.Ide.Gui;
@@ -41,16 +42,16 @@ namespace MonoDevelop.VersionControl
return !item.IsDirectory
// FIXME: Review appending of Annotate support and use it.
&& item.VersionInfo.IsVersioned
- && AddinManager.GetExtensionObjects<IBlameViewHandler> (BlameViewHandlers).Any (h => h.CanHandle (item, null));
+ && AddinManager.GetExtensionObjects<IVersionControlViewHandler> (BlameViewHandlers).Any (h => h.CanHandle (item, null));
}
- public static bool Show (VersionControlItemList items, bool test)
+ public static async Task<bool> Show (VersionControlItemList items, bool test)
{
if (test)
return items.All (CanShow);
foreach (var item in items) {
- var document = IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
+ var document = await IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
if (document != null)
document.Window.SwitchView (document.Window.FindView<IBlameView> ());
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Commands.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Commands.cs
index af63bcf93e..be79ed4eff 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Commands.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Commands.cs
@@ -243,7 +243,7 @@ namespace MonoDevelop.VersionControl
}
}
- class CurrentFileViewHandler<T> : FileVersionControlCommandHandler where T:IAttachableViewContent
+ class CurrentFileViewHandler<T> : FileVersionControlCommandHandler
{
protected override bool RunCommand (VersionControlItemList items, bool test)
{
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultBlameViewHandler.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultBlameViewHandler.cs
index 1259363f52..01d1846ea1 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultBlameViewHandler.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultBlameViewHandler.cs
@@ -31,7 +31,7 @@ using MonoDevelop.Projects.Text;
namespace MonoDevelop.VersionControl
{
- public class DefaultBlameViewHandler : IBlameViewHandler
+ public class DefaultBlameViewHandler : IVersionControlViewHandler
{
public bool CanHandle (VersionControlItem item, DocumentView primaryView)
{
@@ -39,7 +39,7 @@ namespace MonoDevelop.VersionControl
&& item.Repository.GetFileIsText (item.Path);
}
- public IBlameView CreateView (VersionControlDocumentInfo info)
+ public BaseViewContent CreateView (VersionControlDocumentInfo info)
{
return new BlameView (info);
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultDiffViewHandler.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultDiffViewHandler.cs
index 4a2e775386..40ac9fa5ea 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultDiffViewHandler.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultDiffViewHandler.cs
@@ -31,7 +31,7 @@ using MonoDevelop.Projects.Text;
namespace MonoDevelop.VersionControl
{
- public class DefaultDiffViewHandler : IDiffViewHandler
+ public class DefaultDiffViewHandler : IVersionControlViewHandler
{
public bool CanHandle (VersionControlItem item, DocumentView primaryView)
{
@@ -39,7 +39,7 @@ namespace MonoDevelop.VersionControl
&& item.Repository.GetFileIsText (item.Path);
}
- public IDiffView CreateView (VersionControlDocumentInfo info)
+ public BaseViewContent CreateView (VersionControlDocumentInfo info)
{
return new DiffView (info);
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultLogViewHandler.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultLogViewHandler.cs
index 9537bb7dfa..51b8c6b613 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultLogViewHandler.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultLogViewHandler.cs
@@ -29,14 +29,14 @@ using MonoDevelop.VersionControl.Views;
namespace MonoDevelop.VersionControl
{
- public class DefaultLogViewHandler : ILogViewHandler
+ public class DefaultLogViewHandler : IVersionControlViewHandler
{
public bool CanHandle (VersionControlItem item, DocumentView primaryView)
{
return true;
}
- public ILogView CreateView (VersionControlDocumentInfo info)
+ public BaseViewContent CreateView (VersionControlDocumentInfo info)
{
return new LogView (info);
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultMergeViewHandler.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultMergeViewHandler.cs
index aba6756b08..ae646cd4b8 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultMergeViewHandler.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DefaultMergeViewHandler.cs
@@ -31,7 +31,7 @@ using MonoDevelop.Projects.Text;
namespace MonoDevelop.VersionControl
{
- public class DefaultMergeViewHandler : IMergeViewHandler
+ public class DefaultMergeViewHandler : IVersionControlViewHandler
{
public bool CanHandle (VersionControlItem item, DocumentView primaryView)
{
@@ -39,7 +39,7 @@ namespace MonoDevelop.VersionControl
&& item.Repository.GetFileIsText (item.Path);
}
- public IMergeView CreateView (VersionControlDocumentInfo info)
+ public BaseViewContent CreateView (VersionControlDocumentInfo info)
{
return new MergeView (info);
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DiffCommand.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DiffCommand.cs
index e865489318..46ee00b80d 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DiffCommand.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/DiffCommand.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System.Linq;
+using System.Threading.Tasks;
using Mono.Addins;
using MonoDevelop.Ide;
using MonoDevelop.Ide.Gui;
@@ -40,16 +41,16 @@ namespace MonoDevelop.VersionControl
{
return !item.IsDirectory
&& item.VersionInfo.IsVersioned
- && AddinManager.GetExtensionObjects<IDiffViewHandler> (DiffViewHandlers).Any (h => h.CanHandle (item, null));
+ && AddinManager.GetExtensionObjects<IVersionControlViewHandler> (DiffViewHandlers).Any (h => h.CanHandle (item, null));
}
- public static bool Show (VersionControlItemList items, bool test)
+ public static async Task<bool> Show (VersionControlItemList items, bool test)
{
if (test)
return items.All (CanShow);
foreach (var item in items) {
- var document = IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
+ var document = await IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
if (document != null)
document.Window.SwitchView (document.Window.FindView<IDiffView> ());
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/IVersionControlViewHandler.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/IVersionControlViewHandler.cs
index da8611f941..2620d3c664 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/IVersionControlViewHandler.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/IVersionControlViewHandler.cs
@@ -29,31 +29,10 @@ using MonoDevelop.Ide.Gui;
namespace MonoDevelop.VersionControl {
- public interface IVersionControlViewHandler<T>
- where T : IAttachableViewContent
+ public interface IVersionControlViewHandler
{
bool CanHandle (VersionControlItem item, DocumentView primaryView);
- T CreateView (VersionControlDocumentInfo info);
- }
-
- public interface IDiffViewHandler : IVersionControlViewHandler<IDiffView>
- {
-
- }
-
- public interface IBlameViewHandler : IVersionControlViewHandler<IBlameView>
- {
-
- }
-
- public interface ILogViewHandler : IVersionControlViewHandler<ILogView>
- {
-
- }
-
- public interface IMergeViewHandler : IVersionControlViewHandler<IMergeView>
- {
-
+ BaseViewContent CreateView (VersionControlDocumentInfo info);
}
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/LogCommand.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/LogCommand.cs
index 7e44c23b1d..8cce4231fd 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/LogCommand.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/LogCommand.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System.Linq;
+using System.Threading.Tasks;
using Mono.Addins;
using MonoDevelop.Ide;
using MonoDevelop.Ide.Gui;
@@ -40,11 +41,11 @@ namespace MonoDevelop.VersionControl
{
// We want directories to be able to view the log for an entire directory
// by selecting it from the solution pane
- return item.VersionInfo.IsVersioned
- && AddinManager.GetExtensionObjects<ILogViewHandler> (LogViewHandlers).Any (h => h.CanHandle (item, null));
+ return item.VersionInfo.IsVersioned &&
+ AddinManager.GetExtensionObjects<IVersionControlViewHandler> (LogViewHandlers).Any (h => h.CanHandle (item, null));
}
- public static bool Show (VersionControlItemList items, bool test)
+ public static async Task<bool> Show (VersionControlItemList items, bool test)
{
if (test)
return items.All (CanShow);
@@ -52,7 +53,7 @@ namespace MonoDevelop.VersionControl
foreach (var item in items) {
Document document = null;
if (!item.IsDirectory)
- document = IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
+ document = await IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
if (document != null) {
document.Window.SwitchView (document.Window.FindView<ILogView> ());
@@ -60,7 +61,7 @@ namespace MonoDevelop.VersionControl
VersionControlDocumentInfo info = new VersionControlDocumentInfo (null, item, item.Repository);
LogView logView = new LogView (info);
info.Document = IdeApp.Workbench.OpenDocument (logView, true).PrimaryView;
- logView.Selected ();
+ logView.Init ();
}
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/MergeCommand.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/MergeCommand.cs
index 840760d3f4..766a32d95a 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/MergeCommand.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/MergeCommand.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System.Linq;
+using System.Threading.Tasks;
using Mono.Addins;
using MonoDevelop.Ide;
using MonoDevelop.Ide.Gui;
@@ -40,16 +41,16 @@ namespace MonoDevelop.VersionControl
{
return !item.IsDirectory
&& item.VersionInfo.IsVersioned
- && AddinManager.GetExtensionObjects<IMergeViewHandler> (MergeViewHandlers).Any (h => h.CanHandle (item, null));
+ && AddinManager.GetExtensionObjects<IVersionControlViewHandler> (MergeViewHandlers).Any (h => h.CanHandle (item, null));
}
- public static bool Show (VersionControlItemList items, bool test)
+ public static async Task<bool> Show (VersionControlItemList items, bool test)
{
if (test)
return items.All (CanShow);
foreach (var item in items) {
- var document = IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
+ var document = await IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, OpenDocumentOptions.Default | OpenDocumentOptions.OnlyInternalViewer);
if (document != null)
document.Window.SwitchView (document.Window.FindView<IMergeView> ());
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ResolveConflictsCommand.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ResolveConflictsCommand.cs
index 0691b5a7d8..dd599cfaea 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ResolveConflictsCommand.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/ResolveConflictsCommand.cs
@@ -29,18 +29,19 @@ using MonoDevelop.Ide;
using MonoDevelop.VersionControl.Views;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Projects;
+using System.Threading.Tasks;
namespace MonoDevelop.VersionControl
{
public class ResolveConflictsCommand
{
- public static bool ResolveConflicts (VersionControlItemList list, bool test)
+ public static async Task<bool> ResolveConflicts (VersionControlItemList list, bool test)
{
if (test)
return list.All (s => (s.VersionInfo.Status & VersionStatus.Conflicted) == VersionStatus.Conflicted);
foreach (var item in list.Where (s => (s.VersionInfo.Status & VersionStatus.Conflicted) == VersionStatus.Conflicted)) {
- Document doc = IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, true);
+ Document doc = await IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, true);
foreach (var view in doc.Views) {
if (view.GetContent <MergeView> () != null)
view.Select ();
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs
index 6466169f67..0cb75e7881 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs
@@ -10,7 +10,7 @@ using MonoDevelop.Components.Commands;
using MonoDevelop.Ide.Gui.Components;
using MonoDevelop.VersionControl.Views;
using MonoDevelop.Ide;
-
+using System.Threading.Tasks;
namespace MonoDevelop.VersionControl
{
@@ -222,177 +222,177 @@ namespace MonoDevelop.VersionControl
{
[AllowMultiSelection]
[CommandHandler (Commands.Update)]
- protected void OnUpdate() {
- RunCommand(Commands.Update, false);
+ protected async void OnUpdate() {
+ await RunCommand(Commands.Update, false);
}
[CommandUpdateHandler (Commands.Update)]
- protected void UpdateUpdate(CommandInfo item) {
- TestCommand(Commands.Update, item);
+ protected async void UpdateUpdate(CommandInfo item) {
+ await TestCommand(Commands.Update, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Diff)]
- protected void OnDiff() {
- RunCommand(Commands.Diff, false);
+ protected async void OnDiff() {
+ await RunCommand(Commands.Diff, false);
}
[CommandUpdateHandler (Commands.Diff)]
- protected void UpdateDiff(CommandInfo item) {
- TestCommand(Commands.Diff, item);
+ protected async void UpdateDiff(CommandInfo item) {
+ await TestCommand(Commands.Diff, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Log)]
- protected void OnLog() {
- RunCommand(Commands.Log, false);
+ protected async void OnLog() {
+ await RunCommand(Commands.Log, false);
}
[CommandUpdateHandler (Commands.Log)]
- protected void UpdateLog(CommandInfo item) {
- TestCommand(Commands.Log, item);
+ protected async void UpdateLog(CommandInfo item) {
+ await TestCommand(Commands.Log, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Status)]
- protected void OnStatus() {
- RunCommand(Commands.Status, false);
+ protected async void OnStatus() {
+ await RunCommand(Commands.Status, false);
}
[CommandUpdateHandler (Commands.Status)]
- protected void UpdateStatus(CommandInfo item) {
- TestCommand(Commands.Status, item);
+ protected async void UpdateStatus(CommandInfo item) {
+ await TestCommand(Commands.Status, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Add)]
- protected void OnAdd() {
- RunCommand(Commands.Add, false);
+ protected async void OnAdd() {
+ await RunCommand(Commands.Add, false);
}
[CommandUpdateHandler (Commands.Add)]
- protected void UpdateAdd(CommandInfo item) {
- TestCommand(Commands.Add, item);
+ protected async void UpdateAdd(CommandInfo item) {
+ await TestCommand(Commands.Add, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Remove)]
- protected void OnRemove() {
- RunCommand(Commands.Remove, false);
+ protected async void OnRemove() {
+ await RunCommand(Commands.Remove, false);
}
[CommandUpdateHandler (Commands.Remove)]
- protected void UpdateRemove(CommandInfo item) {
- TestCommand(Commands.Remove, item);
+ protected async void UpdateRemove(CommandInfo item) {
+ await TestCommand(Commands.Remove, item);
}
[CommandHandler (Commands.Publish)]
- protected void OnPublish()
+ protected async void OnPublish()
{
- RunCommand(Commands.Publish, false);
+ await RunCommand(Commands.Publish, false);
}
[CommandUpdateHandler (Commands.Publish)]
- protected void UpdatePublish(CommandInfo item) {
- TestCommand(Commands.Publish, item);
+ protected async void UpdatePublish(CommandInfo item) {
+ await TestCommand(Commands.Publish, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Revert)]
- protected void OnRevert() {
- RunCommand(Commands.Revert, false, false);
+ protected async void OnRevert() {
+ await RunCommand(Commands.Revert, false, false);
}
[CommandUpdateHandler (Commands.Revert)]
- protected void UpdateRevert(CommandInfo item) {
- TestCommand(Commands.Revert, item, false);
+ protected async void UpdateRevert(CommandInfo item) {
+ await TestCommand(Commands.Revert, item, false);
}
[AllowMultiSelection]
[CommandHandler (Commands.Lock)]
- protected void OnLock() {
- RunCommand(Commands.Lock, false);
+ protected async void OnLock() {
+ await RunCommand(Commands.Lock, false);
}
[CommandUpdateHandler (Commands.Lock)]
- protected void UpdateLock(CommandInfo item) {
- TestCommand(Commands.Lock, item);
+ protected async void UpdateLock(CommandInfo item) {
+ await TestCommand(Commands.Lock, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Unlock)]
- protected void OnUnlock() {
- RunCommand(Commands.Unlock, false);
+ protected async void OnUnlock() {
+ await RunCommand(Commands.Unlock, false);
}
[CommandUpdateHandler (Commands.Unlock)]
- protected void UpdateUnlock(CommandInfo item) {
- TestCommand(Commands.Unlock, item);
+ protected async void UpdateUnlock(CommandInfo item) {
+ await TestCommand(Commands.Unlock, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Annotate)]
- protected void OnAnnotate() {
- RunCommand(Commands.Annotate, false);
+ protected async void OnAnnotate() {
+ await RunCommand(Commands.Annotate, false);
}
[CommandUpdateHandler (Commands.Annotate)]
- protected void UpdateAnnotate(CommandInfo item) {
- TestCommand(Commands.Annotate, item);
+ protected async void UpdateAnnotate(CommandInfo item) {
+ await TestCommand(Commands.Annotate, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.CreatePatch)]
- protected void OnCreatePatch() {
- RunCommand(Commands.CreatePatch, false);
+ protected async void OnCreatePatch() {
+ await RunCommand(Commands.CreatePatch, false);
}
[CommandUpdateHandler (Commands.CreatePatch)]
- protected void UpdateCreatePatch(CommandInfo item) {
- TestCommand(Commands.CreatePatch, item);
+ protected async void UpdateCreatePatch(CommandInfo item) {
+ await TestCommand(Commands.CreatePatch, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Ignore)]
- protected void OnIgnore ()
+ protected async void OnIgnore ()
{
- RunCommand(Commands.Ignore, false);
+ await RunCommand(Commands.Ignore, false);
}
[CommandUpdateHandler (Commands.Ignore)]
- protected void UpdateIgnore (CommandInfo item)
+ protected async void UpdateIgnore (CommandInfo item)
{
- TestCommand(Commands.Ignore, item);
+ await TestCommand(Commands.Ignore, item);
}
[AllowMultiSelection]
[CommandHandler (Commands.Unignore)]
- protected void OnUnignore ()
+ protected async void OnUnignore ()
{
- RunCommand(Commands.Unignore, false);
+ await RunCommand(Commands.Unignore, false);
}
[CommandUpdateHandler (Commands.Unignore)]
- protected void UpdateUnignore (CommandInfo item)
+ protected async void UpdateUnignore (CommandInfo item)
{
- TestCommand(Commands.Unignore, item);
+ await TestCommand(Commands.Unignore, item);
}
[CommandHandler (Commands.ResolveConflicts)]
- protected void OnResolveConflicts ()
+ protected async void OnResolveConflicts ()
{
- RunCommand (Commands.ResolveConflicts, false, false);
+ await RunCommand (Commands.ResolveConflicts, false, false);
}
[CommandUpdateHandler (Commands.ResolveConflicts)]
- protected void UpdateResolveConflicts (CommandInfo item)
+ protected async void UpdateResolveConflicts (CommandInfo item)
{
- TestCommand (Commands.ResolveConflicts, item, false);
+ await TestCommand (Commands.ResolveConflicts, item, false);
}
- private void TestCommand(Commands cmd, CommandInfo item, bool projRecurse = true)
+ private async Task<TestResult> TestCommand(Commands cmd, CommandInfo item, bool projRecurse = true)
{
- TestResult res = RunCommand(cmd, true, projRecurse);
+ TestResult res = await RunCommand(cmd, true, projRecurse);
if (res == TestResult.NoVersionControl && cmd == Commands.Log) {
// Use the update command to show the "not available" message
item.Icon = null;
@@ -402,10 +402,12 @@ namespace MonoDevelop.VersionControl
else
item.Text = GettextCatalog.GetString ("This project or folder is not under version control");
} else
- item.Visible = res == TestResult.Enable;
+ item.Visible = res == TestResult.Enable;
+
+ return res;
}
- private TestResult RunCommand (Commands cmd, bool test, bool projRecurse = true)
+ private async Task<TestResult> RunCommand (Commands cmd, bool test, bool projRecurse = true)
{
VersionControlItemList items = GetItems (projRecurse);
@@ -426,10 +428,10 @@ namespace MonoDevelop.VersionControl
res = UpdateCommand.Update (items, test);
break;
case Commands.Diff:
- res = DiffCommand.Show (items, test);
+ res = await DiffCommand.Show (items, test);
break;
case Commands.Log:
- res = LogCommand.Show (items, test);
+ res = await LogCommand.Show (items, test);
break;
case Commands.Status:
res = StatusView.Show (items, test, false);
@@ -455,7 +457,7 @@ namespace MonoDevelop.VersionControl
res = PublishCommand.Publish (it.WorkspaceObject, it.Path, test);
break;
case Commands.Annotate:
- res = BlameCommand.Show (items, test);
+ res = await BlameCommand.Show (items, test);
break;
case Commands.CreatePatch:
res = CreatePatchCommand.CreatePatch (items, test);
@@ -467,7 +469,7 @@ namespace MonoDevelop.VersionControl
res = UnignoreCommand.Unignore (items, test);
break;
case Commands.ResolveConflicts:
- res = ResolveConflictsCommand.ResolveConflicts (items, test);
+ res = await ResolveConflictsCommand.ResolveConflicts (items, test);
break;
}
}
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml b/main/src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml
index f659d95015..bdabcfa114 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/VersionControl.addin.xml
@@ -27,7 +27,7 @@
<ExtensionPoint path = "/MonoDevelop/VersionControl/DiffViewHandler" name = "Diff view handler">
<Description>Handler used to create the a diff view which can display the current file.</Description>
- <ExtensionNode name="Handler" objectType="MonoDevelop.VersionControl.IDiffViewHandler" />
+ <ExtensionNode name="Handler" objectType="MonoDevelop.VersionControl.IVersionControlViewHandler" />
</ExtensionPoint>
<Extension path = "/MonoDevelop/VersionControl/DiffViewHandler">
@@ -36,7 +36,7 @@
<ExtensionPoint path = "/MonoDevelop/VersionControl/BlameViewHandler" name = "Blame view handler">
<Description>Handler used to create the a blame view which can display the current file.</Description>
- <ExtensionNode name="Handler" objectType="MonoDevelop.VersionControl.IBlameViewHandler" />
+ <ExtensionNode name="Handler" objectType="MonoDevelop.VersionControl.IVersionControlViewHandler" />
</ExtensionPoint>
<Extension path = "/MonoDevelop/VersionControl/BlameViewHandler">
@@ -45,7 +45,7 @@
<ExtensionPoint path = "/MonoDevelop/VersionControl/LogViewHandler" name = "Log view handler">
<Description>Handler used to create the a log view which can display the current file.</Description>
- <ExtensionNode name="Handler" objectType="MonoDevelop.VersionControl.ILogViewHandler" />
+ <ExtensionNode name="Handler" objectType="MonoDevelop.VersionControl.IVersionControlViewHandler" />
</ExtensionPoint>
<Extension path = "/MonoDevelop/VersionControl/LogViewHandler">
@@ -54,7 +54,7 @@
<ExtensionPoint path = "/MonoDevelop/VersionControl/MergeViewHandler" name = "Merge view handler">
<Description>Handler used to create the a merge view which can display the current file.</Description>
- <ExtensionNode name="Handler" objectType="MonoDevelop.VersionControl.IMergeViewHandler" />
+ <ExtensionNode name="Handler" objectType="MonoDevelop.VersionControl.IVersionControlViewHandler" />
</ExtensionPoint>
<Extension path = "/MonoDevelop/VersionControl/MergeViewHandler">
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform/GdkWin32.cs b/main/src/addins/WindowsPlatform/WindowsPlatform/GdkWin32.cs
index 6c02e62578..5b595b007b 100644
--- a/main/src/addins/WindowsPlatform/WindowsPlatform/GdkWin32.cs
+++ b/main/src/addins/WindowsPlatform/WindowsPlatform/GdkWin32.cs
@@ -58,6 +58,12 @@ namespace MonoDevelop.Platform
[DllImport (Win32.USER32, SetLastError=true, CharSet=CharSet.Auto)]
static extern uint RegisterWindowMessage (string lpString);
+ public static IntPtr HgdiobjGet (MonoDevelop.Components.Window window)
+ {
+ Gtk.Window gtkWindow = window;
+ return HgdiobjGet (gtkWindow.GdkWindow);
+ }
+
public static IntPtr HgdiobjGet (Gdk.Drawable drawable)
{
return gdk_win32_drawable_get_handle (drawable.Handle);
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform/JumpList.cs b/main/src/addins/WindowsPlatform/WindowsPlatform/JumpList.cs
index 67ec27e51e..4c907433e8 100644
--- a/main/src/addins/WindowsPlatform/WindowsPlatform/JumpList.cs
+++ b/main/src/addins/WindowsPlatform/WindowsPlatform/JumpList.cs
@@ -76,7 +76,7 @@ namespace MonoDevelop.Platform
{
Taskbar.JumpList jumplist = Taskbar.JumpList.CreateJumpListForIndividualWindow (
MonoDevelop.Core.BrandingService.ApplicationName,
- GdkWin32.HgdiobjGet (MessageService.RootWindow.GdkWindow)
+ GdkWin32.HgdiobjGet (MessageService.RootWindow)
);
jumplist.KnownCategoryToDisplay = Taskbar.JumpListKnownCategoryType.Neither;
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform/MainToolbar/TitleMenuItem.cs b/main/src/addins/WindowsPlatform/WindowsPlatform/MainToolbar/TitleMenuItem.cs
index 39484f8239..febaddd336 100644
--- a/main/src/addins/WindowsPlatform/WindowsPlatform/MainToolbar/TitleMenuItem.cs
+++ b/main/src/addins/WindowsPlatform/WindowsPlatform/MainToolbar/TitleMenuItem.cs
@@ -215,6 +215,8 @@ namespace WindowsPlatform.MainToolbar
if (!hasCommand)
return;
+ SubmenuClosing?.Invoke (this, e);
+
Xwt.Application.Invoke(() => {
if (commandArrayInfo != null) {
manager.DispatchCommand (menuEntry.CommandId, commandArrayInfo.DataItem, initialCommandTarget, commandSource);
@@ -229,6 +231,7 @@ namespace WindowsPlatform.MainToolbar
DesktopService.ShowUrl (menuLinkEntry.Url);
}
+ internal event EventHandler SubmenuClosing;
readonly MonoDevelop.Components.Commands.CommandManager manager;
readonly object initialCommandTarget;
readonly CommandSource commandSource;
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform/WindowsPlatform.cs b/main/src/addins/WindowsPlatform/WindowsPlatform/WindowsPlatform.cs
index 8e4df306a5..82c7eb6ac2 100644
--- a/main/src/addins/WindowsPlatform/WindowsPlatform/WindowsPlatform.cs
+++ b/main/src/addins/WindowsPlatform/WindowsPlatform/WindowsPlatform.cs
@@ -115,8 +115,8 @@ namespace MonoDevelop.Platform
};
foreach (CommandEntrySet ce in ces)
{
- var item = new TitleMenuItem(commandManager, ce);
- item.SubmenuClosed += (o, e) =>
+ var item = new TitleMenuItem(commandManager, ce);
+ item.SubmenuClosing += (o, e) =>
{
bool shouldFocusIde = !mainMenu.Items.OfType<MenuItem>().Any(mi => mi.IsSubmenuOpen);
if (shouldFocusIde)
@@ -289,8 +289,9 @@ namespace MonoDevelop.Platform
[DllImport (Win32.USER32)]
extern static int GetMonitorInfoA (IntPtr hmonitor, ref MonitorInfo info);
- public override Gdk.Rectangle GetUsableMonitorGeometry (Gdk.Screen screen, int monitor_id)
+ public override Xwt.Rectangle GetUsableMonitorGeometry (int screenNumber, int monitor_id)
{
+ var screen = Gdk.Display.Default.GetScreen (screenNumber);
Gdk.Rectangle geometry = screen.GetMonitorGeometry (monitor_id);
List<MonitorInfo> screens = new List<MonitorInfo> ();
@@ -321,7 +322,7 @@ namespace MonoDevelop.Platform
int y = geometry.Y + (visible.Top - frame.Top);
int height = visible.Height;
- return new Gdk.Rectangle (x, y, width, height);
+ return new Xwt.Rectangle (x, y, width, height);
}
static ProcessStartInfo CreateConsoleStartInfo (
diff --git a/main/src/addins/Xml/Editor/BaseXmlEditorExtension.cs b/main/src/addins/Xml/Editor/BaseXmlEditorExtension.cs
index 2204f06693..70bd5e151f 100644
--- a/main/src/addins/Xml/Editor/BaseXmlEditorExtension.cs
+++ b/main/src/addins/Xml/Editor/BaseXmlEditorExtension.cs
@@ -706,7 +706,7 @@ namespace MonoDevelop.Xml.Editor
public event EventHandler<DocumentPathChangedEventArgs> PathChanged;
- public Widget CreatePathWidget (int index)
+ public Control CreatePathWidget (int index)
{
if (ownerProjects.Count > 1 && index == 0) {
var window = new DropDownBoxListWindow (new DataProvider (this));
diff --git a/main/src/addins/Xml/Editor/XmlEditorOptionsPanel.cs b/main/src/addins/Xml/Editor/XmlEditorOptionsPanel.cs
index e9e6cc337a..a1106855ec 100644
--- a/main/src/addins/Xml/Editor/XmlEditorOptionsPanel.cs
+++ b/main/src/addins/Xml/Editor/XmlEditorOptionsPanel.cs
@@ -22,8 +22,8 @@
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-using System;
-using Gtk;
+using System;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Core;
@@ -36,7 +36,7 @@ namespace MonoDevelop.Xml.Editor
{
XmlEditorOptionsPanelWidget widget;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
widget = new XmlEditorOptionsPanelWidget();
widget.AutoCompleteElements = XmlEditorOptions.AutoCompleteElements;
diff --git a/main/src/addins/Xml/Editor/XmlSchemasPanel.cs b/main/src/addins/Xml/Editor/XmlSchemasPanel.cs
index bae0f24d56..cf0820b173 100644
--- a/main/src/addins/Xml/Editor/XmlSchemasPanel.cs
+++ b/main/src/addins/Xml/Editor/XmlSchemasPanel.cs
@@ -24,7 +24,7 @@
using System;
-using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.Xml.Editor
@@ -36,7 +36,7 @@ namespace MonoDevelop.Xml.Editor
{
XmlSchemasPanelWidget widget;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
widget = new XmlSchemasPanelWidget ();
widget.LoadUserSchemas (XmlSchemaManager.UserSchemas);
diff --git a/main/src/addins/Xml/Formatting/XmlFormattingPolicyPanel.cs b/main/src/addins/Xml/Formatting/XmlFormattingPolicyPanel.cs
index 93405e5ac1..1e3ff024e8 100644
--- a/main/src/addins/Xml/Formatting/XmlFormattingPolicyPanel.cs
+++ b/main/src/addins/Xml/Formatting/XmlFormattingPolicyPanel.cs
@@ -25,7 +25,7 @@
// THE SOFTWARE.
-using Gtk;
+using MonoDevelop.Components;
using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.Xml.Formatting
@@ -34,7 +34,7 @@ namespace MonoDevelop.Xml.Formatting
{
XmlFormattingPolicyPanelWidget panel;
- public override Widget CreatePanelWidget ()
+ public override Control CreatePanelWidget ()
{
panel = new XmlFormattingPolicyPanelWidget ();
return panel;