diff --git a/data/resources/StringResources.it.resx b/data/resources/StringResources.it.resx index 40dd09b7fb..f15ed87494 100644 --- a/data/resources/StringResources.it.resx +++ b/data/resources/StringResources.it.resx @@ -229,6 +229,69 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare Formato file sconosciuto: + + Installa da archivio... + + + Repository: + + + Cerca: + + + Creato da: + + + Dipendenze: + + + Nome file: + + + Versione installata: + + + Più informazioni + + + Nuova versione: + + + Versione: + + + Mostra i Termini di Licenza + + + &Accetto + + + &Rifiuto + + + Aggiungi + + + Nome: + + + Elimina + + + Sorgente: + + + Repositories + + + Disponibile + + + Installato + + + Aggiornamenti + Questo file contiene dei ritorni a capo inconsistenti. @@ -5760,6 +5823,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< Copia nome risorsa + + Modifica descrizione + &Rinomina diff --git a/data/resources/StringResources.nl.resx b/data/resources/StringResources.nl.resx index 04ca250840..24dd8cdf57 100644 --- a/data/resources/StringResources.nl.resx +++ b/data/resources/StringResources.nl.resx @@ -358,6 +358,12 @@ Deze stoppen met werken na verwijderen van deze AddIn. SharpDevelop AddIns|*.sdaddin;*.addin|Alle bestanden|*.* + + Hier klikken om de updates te zien. + + + Er zijn updates voor SharpDevelop beschikbaar. + Beschikbaar diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx index 29396b9650..b2468ce9ed 100644 --- a/data/resources/StringResources.resx +++ b/data/resources/StringResources.resx @@ -3910,6 +3910,12 @@ has been changed externally. Do you want to reload it? Reverse Incremental Search: + + {0} is not a valid .NET assembly. + + + {0} is not accessible or doesn't exist anymore. + Error loading code-completion information for ${Assembly} from ${Filename}: diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin index 69acfbe1e4..16005a2258 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin @@ -317,6 +317,7 @@ + diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj index 472481f796..0cfab3c3ae 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj @@ -88,6 +88,7 @@ + diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/ConvertInterfaceToAbstractClassContextAction.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/ConvertInterfaceToAbstractClassContextAction.cs new file mode 100644 index 0000000000..1e630de303 --- /dev/null +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/ConvertInterfaceToAbstractClassContextAction.cs @@ -0,0 +1,62 @@ +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using ICSharpCode.NRefactory.CSharp; +using ICSharpCode.NRefactory.CSharp.Refactoring; +using ICSharpCode.SharpDevelop.Refactoring; +using CSharpBinding.Parser; + +namespace CSharpBinding.Refactoring +{ + [ContextAction("Convert interface to abstract class", Description = "Converts an interface to a class with abstract members.")] + public class ConvertInterfaceToAbstractClassContextAction : ContextAction + { + public override async Task IsAvailableAsync(EditorRefactoringContext context, CancellationToken cancellationToken) + { + SyntaxTree st = await context.GetSyntaxTreeAsync().ConfigureAwait(false); + Identifier identifier = (Identifier) st.GetNodeAt(context.CaretLocation, node => node.Role == Roles.Identifier); + if (identifier == null) + return false; + TypeDeclaration typeDeclaration = identifier.Parent as TypeDeclaration; + return (typeDeclaration != null) && (typeDeclaration.ClassType == ClassType.Interface); + } + + public override void Execute(EditorRefactoringContext context) + { + CSharpFullParseInformation parseInformation = context.GetParseInformation() as CSharpFullParseInformation; + if (parseInformation != null) { + SyntaxTree st = parseInformation.SyntaxTree; + Identifier identifier = (Identifier) st.GetNodeAt(context.CaretLocation, node => node.Role == Roles.Identifier); + if (identifier == null) + return; + TypeDeclaration interfaceTypeDeclaration = identifier.Parent as TypeDeclaration; + if (interfaceTypeDeclaration != null) { + // Generate abstract class from interface and abstract members from interface members + TypeDeclaration abstractClassTypeNode = (TypeDeclaration) interfaceTypeDeclaration.Clone(); + abstractClassTypeNode.ClassType = ClassType.Class; + abstractClassTypeNode.Modifiers |= Modifiers.Abstract; + foreach (var entity in abstractClassTypeNode.Children.OfType()) { + entity.Modifiers |= Modifiers.Abstract | Modifiers.Public; + } + + var refactoringContext = SDRefactoringContext.Create(context.Editor, CancellationToken.None); + using (Script script = refactoringContext.StartScript()) { + // Replace interface node with node of abstract class + script.Replace(interfaceTypeDeclaration, abstractClassTypeNode); + } + } + } + } + + public override string DisplayName + { + get { + return "Convert interface to abstract class"; + } + } + } +} diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/PropertyOrFieldWrapper.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/PropertyOrFieldWrapper.cs index 011896a1f1..d19a36417e 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/PropertyOrFieldWrapper.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/PropertyOrFieldWrapper.cs @@ -45,6 +45,11 @@ namespace CSharpBinding.Refactoring } set { isIncluded = value; + if (!value) { + // Remove other flags, too + AddCheckForNull = false; + AddRangeCheck = false; + } OnPropertyChanged("IsIncluded"); } } @@ -90,6 +95,11 @@ namespace CSharpBinding.Refactoring get { return addCheckForNull; } set { addCheckForNull = value; + if (value) { + // Assure that IsIncluded is set to true as well + IsIncluded = true; + } + OnPropertyChanged("AddCheckForNull"); } } @@ -98,6 +108,11 @@ namespace CSharpBinding.Refactoring get { return addRangeCheck; } set { addRangeCheck = value; + if (value) { + // Assure that IsIncluded is set to true as well + IsIncluded = true; + } + OnPropertyChanged("AddRangeCheck"); } } diff --git a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin index 4d7ad92c6b..5115ddb504 100644 --- a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin +++ b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin @@ -14,7 +14,7 @@ - + - + + + + + diff --git a/src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs b/src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs index c64f58d09a..dd9c069aed 100644 --- a/src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs +++ b/src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs @@ -4,6 +4,7 @@ using System; using System.IO; using Debugger; +using ICSharpCode.Core.Presentation; using ICSharpCode.NRefactory; using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.SharpDevelop.Dom; @@ -137,7 +138,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads public override void ShowContextMenu() { - // Don't show context menu as for usual AssemblyTreeNodes. + var assemblyModel = this.Model as IAssemblyModel; + if (assemblyModel != null) { + var ctx = MenuService.ShowContextMenu(null, assemblyModel, "/SharpDevelop/Services/DebuggerService/ModuleContextMenu"); + } } static IAssemblyModel CreateAssemblyModel(Module module) @@ -151,4 +155,30 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads return model; } } + + /// + /// RunAssemblyWithDebuggerCommand. + /// + class AddModuleToWorkspaceCommand : SimpleCommand + { + public override bool CanExecute(object parameter) + { + IAssemblyModel assemblyModel = parameter as IAssemblyModel; + return (assemblyModel != null) && assemblyModel.Context.IsValid; + } + + public override void Execute(object parameter) + { + var classBrowser = SD.GetService(); + var modelFactory = SD.GetService(); + if ((classBrowser != null) && (modelFactory != null)) { + IAssemblyModel assemblyModel = (IAssemblyModel) parameter; + + // Create a new copy of this assembly model + IAssemblyModel newAssemblyModel = modelFactory.SafelyCreateAssemblyModelFromFile(assemblyModel.Context.Location); + if (newAssemblyModel != null) + classBrowser.AssemblyList.Assemblies.Add(newAssemblyModel); + } + } + } } diff --git a/src/AddIns/Misc/AddInManager2/Project/Src/View/AddInsView.xaml b/src/AddIns/Misc/AddInManager2/Project/Src/View/AddInsView.xaml index 9acd6404d9..5ba8aafd61 100644 --- a/src/AddIns/Misc/AddInManager2/Project/Src/View/AddInsView.xaml +++ b/src/AddIns/Misc/AddInManager2/Project/Src/View/AddInsView.xaml @@ -119,6 +119,10 @@ --> + + @@ -491,7 +495,7 @@ -