Thanks for your feedback and ideas!
Some comments inline.
On 09/04/13 18:56, iulian dragos wrote:
> * Scaladoc/Javadoc
[...]
> Some of this is part of Eugene's famous PR 365
> <
https://github.com/scala-ide/scala-ide/pull/365>. There will definitely
> be room for improvement, such as better HTML rendering, and more editing
> tricks such as the one you're mentinoning (I know Simon Schaefer was
> looking into this as well).
That's great news :)
> * Refactorings
[...]
>
> This looks like a good candidate, but I think the best person to mentor
> it is Mirko. Depends on how much time he has at hand. I'd definitely
> value a bullet-proof "Rename", as well as a couple of other small
> refactorings, like
I contacted Mirko directly about this.
> * Developer plugin
> I remember some talk about creating a developer plugin providing some
> tools for working on Scala, though I can't find anything on it now.
> - An AST view visualising the AST generated by the compiler for the
> current file or some highlighted class/method.
>
>
> This would be cool. Additionally, it could display time spent in the
> type-checker for each method/expression (finding bottlenecks).
[...]
> I had a couple of ideas, but some of them are too "open-ended". One that
> I'd like to see how it shapes up is "internal reprogrammability". This
> is a very fancy word for saying: let the programmer modify the IDE "on
> the fly", by providing little Scala snippets in certain places. One of
> the advantages of Emacs (and other lightweight editors such as
> SublimeText) is that they make it dead-easy for the user to tweak their
> behavior: interpreted languages tend to have an "eval" function :)
>
> Here's the thing: in Scala we can do something similar, by evaluating
> code on the fly! We have a REPL, and it can be used programmatically.
> Why not let the user provide an expression for things like:
>
> - save actions: something to be done on save, like "remove all trailing
> white spaces". This can be done as easy as `doc.lines.map(_.trimRight)`
> // well, there's no trimRight, but you get the idea
> - auto-edits: you want to change the way the editor works? provide a
> little snippet (for example: replace "@now" with the current date)
> - custom value renderers in the Debug/Variables view. Sometimes
> '.toString' is not enough. Let the user define how his data should be
> displayed
> - step filters: you don't want to step into all methods in the debugger,
> and maybe name based regexps are not enough.
>
> So, these are a few ideas, not totally fleshed out. Important things to
> define: "sand-boxing" these snippets (not to corrupt state, aggressive
> time-outs, enabling/disabling, etc). I hope it's inspiring for some!
That's a very nice idea :)
I'll definitely look into that, spefically I'd like to explore two
directions:
- Well-defined hooks for users (things like the save actions you suggested)
- Open up the IDE as much as possible to provide a 'playground' for IDE
developers to explore and directly hack the IDE. Does anyone know if
something like this ('scripting eclipse') has been done for Eclipse in
another plugin, another language?
michael