[Feature Request]: Deeper string matching for Resharper's Code Completion / Search Features


Perhaps this has been suggested before, but here goes:

I would absolutely love it if Resharper's navigation and code completion
features used a broader string matching algorithm to find matches for what
you're typing. What I would like them to do is match against results that
have the string within them, not just at the beginning.

For example, when I use Reflector.NET's Search feature and type "Managed"
I get things like:

System.Reflection.Emit.UnmanagedMarshal
System.Security.Cryptography.RijndaelManaged
System.Security.Cryptography.RijndaelManagedTransformMode
System.Security.Cryptography.RijndaelManagedTransform
System.Security.Cryptography.SHA1Managed
System.Security.Cryptography.SHA256Managed
System.Security.Cryptography.SHA384Managed
System.Security.Cryptography.SHA512Managed
System.Runtime.InteropServices.UnmanagedType
System.IO.__UnmanagedMemoryStream
System.Security.SuppressUnmanagedCodeSecurityAttribute
System.Web.Util.IManagedContext
System.Windows.Forms.NativeMethods+IManagedPerPropertyBrowsing
System.Windows.Forms.ComponentModel.Com2Interop.Com2DataTypeToManagedDataTypeConverter
System.Windows.Forms.ComponentModel.Com2Interop.Com2IManagedPerPropertyBrowsingHandler

Those are all relevant results, but if I typed "Managed" into Resharper's
class finder, I wouldn't find any of them because none of them begin with
"Managed".

Oftentimes I don't remember the exact name of a class, method, or file I'm
looking for (especially if I didn't write the code and am dealing with an
unfamiliar naming convention), but I usually remember a single word in a
group of words. For example, a "User" object usually has a "Password" property,
but sometimes it will be called "UserPassword" or "EncryptedPassword", neither
of which would immediately show up using Resharper's current string matching.

Chris


1 comment
Comment actions Permalink

Hello Chris,

actually all ReSharper's navigation features (like Goto Type) support
wildcards, so typing 'Password' will yield "UserPassword", "EncryptedPassword"
as well as the "SomePasswordEncryptionAlgorithm". This is not so for
code completion that only recognizes indentifiers starting with the prefix
you've
already typed.

Hope this helps.

Regards,
Dmitry Shaporenkov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

Perhaps this has been suggested before, but here goes:

I would absolutely love it if Resharper's navigation and code
completion features used a broader string matching algorithm to find
matches for what you're typing. What I would like them to do is match
against results that have the string within them, not just at the
beginning.

For example, when I use Reflector.NET's Search feature and type
"Managed" I get things like:

System.Reflection.Emit.UnmanagedMarshal
System.Security.Cryptography.RijndaelManaged
System.Security.Cryptography.RijndaelManagedTransformMode
System.Security.Cryptography.RijndaelManagedTransform
System.Security.Cryptography.SHA1Managed
System.Security.Cryptography.SHA256Managed
System.Security.Cryptography.SHA384Managed
System.Security.Cryptography.SHA512Managed
System.Runtime.InteropServices.UnmanagedType
System.IO.__UnmanagedMemoryStream
System.Security.SuppressUnmanagedCodeSecurityAttribute
System.Web.Util.IManagedContext
System.Windows.Forms.NativeMethods+IManagedPerPropertyBrowsing
System.Windows.Forms.ComponentModel.Com2Interop.Com2DataTypeToManagedD
ataTypeConverter
System.Windows.Forms.ComponentModel.Com2Interop.Com2IManagedPerPropert
yBrowsingHandler
Those are all relevant results, but if I typed "Managed" into
Resharper's class finder, I wouldn't find any of them because none of
them begin with "Managed".

Oftentimes I don't remember the exact name of a class, method, or file
I'm looking for (especially if I didn't write the code and am dealing
with an unfamiliar naming convention), but I usually remember a single
word in a group of words. For example, a "User" object usually has a
"Password" property, but sometimes it will be called "UserPassword" or
"EncryptedPassword", neither of which would immediately show up using
Resharper's current string matching.

Chris



0

Please sign in to leave a comment.