scala-ide/scala-ide-play2 — pull request #159 by jhaberstro (2013-06-28 14:53:08+00:00)
Title: New Structured Editor for Template files

Here is the first version of the new structured text editor for Play template files. Here is a list of what is and isn't implemented, and some known bugs.

###### Features
* Feature parity with the old template editor.
* Scala as-you-type error reporting
* Scala auto indentation
* Scala completion proposals
* Scala hyperlinking
* Scala/HTML syntax highlighting
* Scala text hovering
* New HTML goodies:
* Improved HTML syntax highlighting
* Javascript and CSS syntax highlighting
* HTML completion proposals (tags and attribute values)
* HTML text hovering
* Matching bracket and matching tag navigation
* Highlighting of the cursor's current opening and closing tags.
* Anchor tag hyperlinking

###### Known Issues
* Import error markers occur on the incorrect line.
* Previous existing parser problems inherited by using the Play2 tokenizer
* When typing scala code, a trailing '.' is interpreted as HTML, thus giving html completion proposals instead of scala completion proposals (if triggered by completion proposal shortcut, since html completion proposals don't use the '.' as an activating character).
* Noticeable speed issues on files even as small as a hundred lines or so.
* If scala code occurs within an "xml tag name" (i.e., as an attribute value) and if there are more attributes that follow after the scala code in the tag, the xml parser doesn't pick back up where it left off, which means it parses the remaining text of the tag name as plain "xml content". **This is the only regression that I know of.**

There still exists other HTML features to be implemented, such as integration with the content outline, before the structured text editor can be considered beta quality.

The old template editor has been left in place, but is no longer the default. You must explicitly right-click, and select Open With -> Template Editor.

Finally, please let me know if/how I should clean up and combine some commits. Some of the earlier commits in particular I made just to get the code I had written backed up on the github servers, so they are not particularly informative (nor is the associated code in the cleanest state).