|
|
@ -4,6 +4,7 @@ |
|
|
|
using System; |
|
|
|
using System; |
|
|
|
using ICSharpCode.Core; |
|
|
|
using ICSharpCode.Core; |
|
|
|
using ICSharpCode.NRefactory.Semantics; |
|
|
|
using ICSharpCode.NRefactory.Semantics; |
|
|
|
|
|
|
|
using ICSharpCode.SharpDevelop; |
|
|
|
using ICSharpCode.SharpDevelop.Editor.Dialogs; |
|
|
|
using ICSharpCode.SharpDevelop.Editor.Dialogs; |
|
|
|
using ICSharpCode.SharpDevelop.Gui; |
|
|
|
using ICSharpCode.SharpDevelop.Gui; |
|
|
|
using ICSharpCode.SharpDevelop.Refactoring; |
|
|
|
using ICSharpCode.SharpDevelop.Refactoring; |
|
|
@ -37,7 +38,11 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands |
|
|
|
{ |
|
|
|
{ |
|
|
|
var entity = GetEntity(symbol); |
|
|
|
var entity = GetEntity(symbol); |
|
|
|
if (entity != null) { |
|
|
|
if (entity != null) { |
|
|
|
RenameSymbolDialog renameDialog = new RenameSymbolDialog(CheckName) |
|
|
|
var project = entity.ParentAssembly.GetProject(); |
|
|
|
|
|
|
|
if (project != null) { |
|
|
|
|
|
|
|
var languageBinding = project.LanguageBinding; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RenameSymbolDialog renameDialog = new RenameSymbolDialog(name => CheckName(name, languageBinding)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Owner = SD.Workbench.MainWindow, |
|
|
|
Owner = SD.Workbench.MainWindow, |
|
|
|
OldSymbolName = entity.Name, |
|
|
|
OldSymbolName = entity.Name, |
|
|
@ -51,20 +56,15 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool CheckName(string name) |
|
|
|
bool CheckName(string name, ILanguageBinding language) |
|
|
|
{ |
|
|
|
{ |
|
|
|
// TODO implement for current language!
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(name)) |
|
|
|
if (string.IsNullOrEmpty(name)) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < name.Length; i++) { |
|
|
|
if ((language.CodeDomProvider == null) || !language.CodeDomProvider.IsValidIdentifier(name)) |
|
|
|
char thisChar = name[i]; |
|
|
|
|
|
|
|
if (!Char.IsLetter(thisChar) |
|
|
|
|
|
|
|
&& !Char.IsDigit(thisChar) |
|
|
|
|
|
|
|
&& (thisChar != '_')) |
|
|
|
|
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|