Browse Source

When renaming a field, ask the user if he also wants to the rename the property.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@472 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
3f4c0950f2
  1. 19
      src/AddIns/Misc/SubversionAddIn/Project/Src/Commands/AutostartCommands.cs
  2. 8
      src/Libraries/NRefactory/Project/Src/Parser/Visitors/AbstractASTVisitor.cs
  3. 4
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs
  4. 43
      src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs
  5. BIN
      src/Main/StartUp/Project/Resources/StringResources.resources

19
src/AddIns/Misc/SubversionAddIn/Project/Src/Commands/AutostartCommands.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="none" email=""/>
@ -83,10 +83,23 @@ namespace ICSharpCode.Svn.Commands @@ -83,10 +83,23 @@ namespace ICSharpCode.Svn.Commands
void FileRemoving(object sender, FileCancelEventArgs e)
{
if (e.Cancel) return;
if (e.IsDirectory) return;
if (!AddInOptions.AutomaticallyDeleteFiles) return;
string fullName = Path.GetFullPath(e.FileName);
if (!CanBeVersionControlled(fullName)) return;
if (e.IsDirectory) {
Status status = SvnClient.Instance.Client.SingleStatus(fullName);
switch (status.TextStatus) {
case StatusKind.None:
case StatusKind.Unversioned:
break;
default:
MessageService.ShowMessage("SubversionAddIn cannot delete directories, it is only removed from the project.");
e.OperationAlreadyDone = true;
break;
}
return;
}
// show "cannot delete directories" message even if auto-delete files is off!
if (!AddInOptions.AutomaticallyDeleteFiles) return;
try {
Status status = SvnClient.Instance.Client.SingleStatus(fullName);
switch (status.TextStatus) {

8
src/Libraries/NRefactory/Project/Src/Parser/Visitors/AbstractASTVisitor.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="none" email=""/>
@ -480,9 +480,9 @@ namespace ICSharpCode.NRefactory.Parser @@ -480,9 +480,9 @@ namespace ICSharpCode.NRefactory.Parser
{
Debug.Assert(raiseEventStatement != null);
Debug.Assert(raiseEventStatement.Parameters != null);
foreach (ParameterDeclarationExpression p in raiseEventStatement.Parameters) {
Debug.Assert(p != null);
p.AcceptVisitor(this, data);
foreach (Expression e in raiseEventStatement.Parameters) {
Debug.Assert(e != null);
e.AcceptVisitor(this, data);
}
return data;
}

4
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs

@ -650,12 +650,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -650,12 +650,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (callingClass == null)
return null;
foreach (IMethod method in callingClass.Methods) {
if (method.BodyRegion.IsInside(caretLine, caretColumn)) {
if (method.Region.IsInside(caretLine, caretColumn) || method.BodyRegion.IsInside(caretLine, caretColumn)) {
return method;
}
}
foreach (IProperty property in callingClass.Properties) {
if (property.BodyRegion.IsInside(caretLine, caretColumn)) {
if (property.Region.IsInside(caretLine, caretColumn) || property.BodyRegion.IsInside(caretLine, caretColumn)) {
return property;
}
}

43
src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs

@ -64,17 +64,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -64,17 +64,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
list.Add(cmd);
if (member is IField) {
string propertyName = AbstractPropertyCodeGenerator.GetPropertyName(member.Name);
LanguageProperties language = member.DeclaringType.ProjectContent.Language;
IProperty foundProperty = null;
foreach (IProperty prop in member.DeclaringType.Properties) {
if (language.NameComparer.Equals(propertyName, prop.Name)) {
foundProperty = prop;
break;
}
}
IProperty foundProperty = FindProperty(member as IField);
if (foundProperty != null) {
cmd = new MenuCommand("${res:SharpDevelop.Refactoring.GoToProperty}", GotoProperty);
cmd = new MenuCommand("${res:SharpDevelop.Refactoring.GoToProperty}", GotoTagMember);
cmd.Tag = foundProperty;
list.Add(cmd);
} else {
@ -92,6 +84,20 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -92,6 +84,20 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
return list.ToArray();
}
IProperty FindProperty(IField field)
{
string propertyName = AbstractPropertyCodeGenerator.GetPropertyName(field.Name);
LanguageProperties language = field.DeclaringType.ProjectContent.Language;
IProperty foundProperty = null;
foreach (IProperty prop in field.DeclaringType.Properties) {
if (language.NameComparer.Equals(propertyName, prop.Name)) {
foundProperty = prop;
break;
}
}
return foundProperty;
}
void CreateProperty(object sender, EventArgs e)
{
CreateProperty(sender, e, true);
@ -124,7 +130,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -124,7 +130,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
generator.GenerateCode(textEditor.ActiveTextAreaControl.TextArea, list);
}
void GotoProperty(object sender, EventArgs e)
void GotoTagMember(object sender, EventArgs e)
{
JumpToDefinition((IMember)(sender as MenuCommand).Tag);
}
@ -149,6 +155,21 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -149,6 +155,21 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
List<Reference> list = RefactoringService.FindReferences(member, null);
if (list == null) return;
RenameReferences(list, newName);
if (member is IField) {
IProperty property = FindProperty((IField)member);
if (property != null) {
string newPropertyName = AbstractPropertyCodeGenerator.GetPropertyName(newName);
if (newPropertyName != newName && newPropertyName != property.Name) {
if (MessageService.AskQuestionFormatted("${res:SharpDevelop.Refactoring.Rename}", "${res:SharpDevelop.Refactoring.RenameFieldAndProperty}", property.FullyQualifiedName, newPropertyName)) {
list = RefactoringService.FindReferences(property, null);
if (list != null) {
RenameReferences(list, newPropertyName);
}
}
}
}
}
}
void FindOverrides(object sender, EventArgs e)

BIN
src/Main/StartUp/Project/Resources/StringResources.resources

Binary file not shown.
Loading…
Cancel
Save