diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CSharpCodeGenerator.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CSharpCodeGenerator.cs index 9902fef703..1ec12f9a3a 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CSharpCodeGenerator.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CSharpCodeGenerator.cs @@ -211,5 +211,10 @@ namespace CSharpBinding.Refactoring script.ChangeModifier(entityDeclaration, entityDeclaration.Modifiers | Modifiers.Virtual); } } + + public override string EscapeIdentifier(string identifier) + { + return "@" + identifier; + } } } diff --git a/src/Main/Base/Project/Refactoring/CodeGenerator.cs b/src/Main/Base/Project/Refactoring/CodeGenerator.cs index e9bf579bfc..1f7a58891c 100644 --- a/src/Main/Base/Project/Refactoring/CodeGenerator.cs +++ b/src/Main/Base/Project/Refactoring/CodeGenerator.cs @@ -83,6 +83,11 @@ namespace ICSharpCode.SharpDevelop.Refactoring return newName; } + public virtual string EscapeIdentifier(string identifier) + { + throw new NotSupportedException("Feature not supported!"); + } + public virtual void AddField(ITypeDefinition declaringType, Accessibility accessibility, IType fieldType, string name) { throw new NotSupportedException("Feature not supported!"); diff --git a/src/Main/Base/Project/Src/Editor/Commands/FindReferencesCommand.cs b/src/Main/Base/Project/Src/Editor/Commands/FindReferencesCommand.cs index 9cd108ebe9..8b9d5aa659 100644 --- a/src/Main/Base/Project/Src/Editor/Commands/FindReferencesCommand.cs +++ b/src/Main/Base/Project/Src/Editor/Commands/FindReferencesCommand.cs @@ -125,8 +125,9 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands { if (string.IsNullOrEmpty(name)) return false; - - if ((language.CodeDomProvider == null) || !language.CodeDomProvider.IsValidIdentifier(name)) + + if ((language.CodeDomProvider == null) || (!language.CodeDomProvider.IsValidIdentifier(name) && + !language.CodeDomProvider.IsValidIdentifier(language.CodeGenerator.EscapeIdentifier(name)))) return false; return true;