I think the picture speaks for itself.


I think the picture speaks for itself.

Get the alpha version (supports XE6-XE8 - please don't ask for other versions right now): http://1drv.ms/1Pz5s9o

Please read the README.txt and don't bother me with questions it answers, thank you and enjoy! :)

Comments

  1. what version of Delphi is this available in?

    ReplyDelete
  2. I use the wizards from ModelMaker Code Explorer for this as usually the Delphi built-in "Uses" refactoring wizard crashes after a using it more than a few times.

    ReplyDelete
  3. Stefan Glienke So just teasing?

    ReplyDelete
  4. @ Stefan Glienke, lol
    that is why I miss visual studio.

    ReplyDelete
  5. Bill Meyer Ugochukwu Mmaduekwe Guess why I posted this in "I made this!" ... ;)

    ReplyDelete
  6. + Stefan Glienke so do you mean you made a plugin to "fill up this space"?

    ReplyDelete
  7. Oh yeah. That's really nice... I really miss some netbean IDE feature but you are filling the gap :)

    ReplyDelete
  8. I absolutely hate this!

    why? because I don't have it!

    ReplyDelete
  9. Added a download link for XE6-XE8.

    ReplyDelete
  10. What is the algorithm/procedure for finding candidate units? Can the interface/implementation option be controlled by keyboard actions?

    ReplyDelete
  11. David Heffernan No fancy logic. Units containing the identifier at the caret (using some stupid algo that does not handle dots or angle brackets) - thats why finding TEnumerable with the caret sitting TEnumerable will list Generics.Collections by accident (because DelphiAST lists the TEnumerable type as TEnumerable with subnodes for typeparam T.
    Left/Right Key

    ReplyDelete
  12. I've never tried to create an identifier cache, but getting the units for an identifier from the uses helper cache seems to be pretty fast. 100.000 calls for the same identifier took between 50 and 100 ms for a 400 k typecache.dat (that is from top of my head and can't count the amount of the identifiers right now). Loading of the cache took about 60 ms.

    ReplyDelete
  13. Uwe Schuster As I said, no fancy logic and corner case handling. Just a multimap (TDictionary>) with the key being a lowercase string. :)
    Though the cache will get larger when indexing routines, consts, vars and enum values (I guess I can optimize the hashing for the dictionary when it will be needed) or even the entire multimap class.

    ReplyDelete
  14. Yaroslav Brovin Now if that would work. No clue where it looks but A) its dead slow and B) it does not find much C) it does not pick up an identifier when the caret is behind the last char where it usually is after you typed it.

    In the past 5 minutes I unfortunately found more bugs in that feature than it actually has functionality. If the list is empty and you hit enter it adds "SysInit" to the uses...

    ReplyDelete
  15. D) it removes empty Events as it seems to fire the whole backgroundlogic :(

    ReplyDelete
  16. Stefan Glienke Delphi IDE's parser is worse than DelphiAST and contains more bugs. That's all you should know about that feature :)

    ReplyDelete
  17. Stefan Glienke  If we cannot bug you with feature request can we bug you for the source?

    ReplyDelete
  18. Stefan Glienke  A couple of ideas. I tend to start out adding the implementation uses clause by default, and only add to the interface uses clause when absolutely needed.. so would be nice if I didn't have to choose when invoking the plugin (what's it called?). Perhaps if I invoke it on a type in the interface section it should automatically add the unit to the interface section and removed it from the implementation section (if it's already there). That would be super useful.

    ReplyDelete

Post a Comment