ensime/ensime-server — pull request #654 by edani (2014-10-13 06:01:31+00:00)
Title: Preformance improvements for type inspector

This fixes #604 and makes a few more improvements and protocol changes. There is a matching ensime-emacs PR. Both should probably be tried for a while before merging.

In type/symbol info results, `:pos` now has three forms:
- `(:file "..." :line ...)`
- `(:file "..." :offset ...)`
- `t`

The last form is to avoid doing too much work in type inspector results (also to make messages smaller). It signals the client that a position is available and it should ask for a position if it really needs it.

This also adds a `swank:inspect-type-by-name` call so type-ids aren't relied upon so much.

With this PR, the performance of the type inspector for large results (such as `RichPresentationCompiler` or `org.ensime`) is noticeably better. The largest performance penalty now comes from logging the swank messages (probably on the emacs side ; turning all logging off improves performance even more)