Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 364083 - [subwords] Support more flexible camel-case matching
Summary: [subwords] Support more flexible camel-case matching
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Recommenders (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Marcel Bruch CLA
QA Contact:
URL:
Whiteboard:
Keywords: helpwanted
Depends on:
Blocks:
 
Reported: 2011-11-17 14:56 EST by Steve Ash CLA
Modified: 2019-07-24 14:36 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Ash CLA 2011-11-17 14:56:10 EST
Build Identifier: 

One feature of intelliJs auto-complete that I've always had feature envy over: very flexible camel-case matching.

For example, if I have a class SomeJavaService.  Today I can match it with:

: SJS
:SomeJS

but not 

: sjs
: Sjs
: someJS
: somejs
: soJS

This is extraordinarily useful.  So (a) remove case-sensitivity and (b) support partial matching prefix + rest camel-case

I don't know how the current camel case is implemented, but I would love to contribute to this if I could make time.

Reproducible: Always
Comment 1 Marcel Bruch CLA 2011-11-17 18:10:17 EST
Pef, you had some ideas on that. Did you already put some efforts on this?
Comment 2 Marcel Bruch CLA 2011-11-29 02:31:00 EST
Steve,

the camel case implementation is implemented by  JDT proposals in a non-modular way. Subwords reimplements the matching strategy to provide a better support for exactly the cases you mentioned.

Currently, subwords provides completion for method and variable names but not for types. This needs to be implemented using JDTs search API. If you interested to implement this, let me know. We then can discuss the details on the dev maling list or forum.

To get you started with the code base:
The latest code of subwords completion can be found here: http://goo.gl/i07gQ  The proposal computer class is proably the best entry point to see how subwords is currently implemented: http://goo.gl/195Gc

There are also some test cases with an acceptable test coverage. Please have a look at the subwords test project here: http://goo.gl/Ud5Dp

If you have any questions, let us know.
Comment 3 Steve Ash CLA 2011-11-29 02:35:33 EST
(In reply to comment #2)

Thanks Marcel for the information.  I did checkout the code base last week and started looking through subwords completion.  The n-gram analysis part made sense, and for the most part the Eclipse API side of things made sense, but I need to dig a little deeper.

I have finals next week, but would love to take a stab over the winter break.  I'll reach out to you on the dev list after next week.
Comment 4 Marcel Bruch CLA 2011-11-29 02:47:03 EST
Sounds good!

Please note that we are currently restructuring the repository and build process to set up multi-platform builds (eclipse 3.6, 3.7, 3.8, and 4.2) and support new projects such as snipmatch.com. Be sure to use the latest version to ease merging afterwards (branch v0.5 already contains most parts of the new layout).
Comment 5 Marcel Bruch CLA 2012-02-02 01:31:12 EST
ping?
Comment 6 Marcel Bruch CLA 2012-04-22 13:09:39 EDT
A similar feature was discussed in bug 377333 and implemented. A prototype is available at http://download.eclipse.org/recommenders/updates/dev/e42 for testing. Feel invited to send follow-ups to that bug report.
Comment 7 Marcel Bruch CLA 2012-06-09 15:12:06 EDT
Set target milestone for fixed bugs to 1.0
Comment 8 Marcel Bruch CLA 2012-06-09 15:12:14 EDT
Set target milestone for fixed bugs to 1.0