Monday, March 18, 2013

webstorm 6 lossage

still experimenting with webstorm and it seems that the underlying javascript language model is pretty good, but the interface is failing to expose some important aspects, crippling the IDE. hoping that things will improve in the 7.0 cycle

the best indication that the language model is working is that for a js file that's been properly jsdoc'd

  • for prototype methods, webstorm displays up and down arrows in the left margin which list (and navigate to) the super and subclass method implementations
  • for most method calls, 'go to declaration' navigates to the correct method (as defined by the jsdoc comments)
taken together this shows that webstorm is modeling the underlying javascript quite well. based on this knowledge, it should be able to implement the standard navigation that IDEs provide for java. however, the UI fails to expose these features
  • 'find usages' and 'rename'
    • list method calls in any object with the same method name
      • should filter by reverse mapping (ie, the one that 'go to declaration' uses)
    • don't have the option to sort by order in the file - iterating the list results in a non-monotonic walk of the documents
    • ignore method implementations with the same name in sub and super classes, ie methods that are overridden or override
      • should find (or have the option to find)
      • rename *must* rename all implementations and causes hard to track down issues when it doesn't, ie it loses the relationships that the model had established prior to the rename (thank god for git)
  • 'go to super method' does nothing (same mapping that is used to provide the up arrow in the margin should be used)
in spite of great promise, the refactoring capabilities are hobbled - i find myself reading in webstorm and switching back to netbeans to do renames since the webstorm versions are destructive and simple text based replacement is superior in many cases

a few other failings
  • no easy way to type unicode characters (in most apps on ubuntu, control+shift+u captures a unicode hex value, eg ᵩ is u+1d69)
  • display of unicode characters using a monospace font aren't monospaced, eg:
  • macros suck, eg scrolling up or down 10 lines is very slow and problematic
planning on buying 6.0 in the hopes that things will improve during the 7.0 cycle (licenses include updates for 1 year)

No comments: