Develop with Pleasure: The Next Big Thing
Well, we're getting on toward release time for 7.0, and naturally thoughts turn to roadmap possibilities for the 8.0 release. Frankly, I'm a bit stumped. IDEA 7.0 adds support for Spring, Hibernate, Maven, TestNG, Ruby, Rails, Groovy, Grails, Web Services, and probably more stuff I'm forgetting. At this point, there are actually very few technologies I use daily which IDEA doesn't support, and support about as well as I'm able to envision. In the spirit of John Steelman's previous threads the little things that could be done to improve the IDEA, I figured I'd launch a thread to see what people think are the large functional areas missing from IDEA.
Ground rules:
1) Suggestions must be something large enough to appear as a line item on the IDEA 8.0 roadmap.
2) Ideally, suggestions should be large enough that someone might consider driving a purchasing decision based on the decision. "Support technology X" works better if there's some indication of there actually being a market for technology X. Scala and AspectJ might be nice, and undoubtedly technologically exciting, but the user communities are currently pretty small.
3) Suggestions that performance/stability/memory usage should be the main focus of the next release belong in some other thread.
4) Most important, suggestions should be aid the goal "Develop with Pleasure", which is to say that they should be pitched toward aiding developers (as opposed to managers, QA, etc) with pleasurably performing the tasks they need to do to get their job done.
I'll start: Integrated task management, including adapters for all of the major issue tracking systems, Mylyn-like context management, clean integration with IDEA change lists, and probably some TeamCity extensions for release management. Mylyn (previously Mylar) is the only bit of Eclipse technology I've ever been jealous of. http://www.eclipse.org/mylyn/
--Dave Griffith
请先登录再写评论。
I think its fair to assume one of the Next Big Things will be increased separation between presentation flow and data interchange for thin clients (ie. a proliferation of well-designed ajax-based web applications).
Along this theme, IntelliJ needs significant improvement to its javascript introspection. Specifically:
- detection of potential XSS vulnerabilities introduced by the programmer
- support for javascript closures (this is becoming increasingly important yet intellij does not comprehend these references)
- More generally, focus on detection of other common programmer-introduced javascript vulnerabilities
http://www.crockford.com/javascript/private.html
http://en.wikipedia.org/wiki/Cross-site_scripting
Think I might have found another easy one this morning.. Can we resue a projects 'path variables' in properties to ant scripts? It already accepts macros but path variables dont seem to work?
Possibly the same question for path varibales/macros in the run configurations?
- Richard
Public access to the OpenJDK Mercurial repository is now open ...
http://blogs.sun.com/navi/entry/openjdk_mercurial_repositories_are_open
R
How about displaying code in a pretty way without modifying the actualy source file?
For example, if the number "100000000" exists in the source file then display virtual commas in the number so it appears as "100,000,000". The virtual commas would of course need to have a different background color (or some other visual way to distinguish them) so it's obvious that these do not exist in the actual source.
Other possibilities would be to pretty print the code when viewing the code, but save the code using the format that it had when initially opened. This could be tricky when new code is written, but perhaps you could just guess at how it should show up based on how the old code is written, or just always save new code in the new format and old code in the old format. (This would be particularly useful when two people prefer different formats and keep checking source code into source control with a tiny real code change plus lots of whitespace reformatting.)
If a number is displayed in hex or octal or decimal and the viewer wants to see it differently, make it possible to right click on the number and choose a different format to view it in. It won't change the source, it'll just display it differently.
Strings could be stored in the source using the escape characters, but they'd be displayed as if no escape characters existed. This would be particularly useful for regular expressions which need to match quotation marks. For instance, a regex for matching quoted strings would be displayed as:
"([^"]+)"
but it would be stored in the source as:
"\"([^\"]+)\""
The above would also be true of multi-line strings. Instead of:
"select blah" +
"from foo"
it would display as
"select blah
from foo"
Perhaps the outer quotes could be highlighted in some way so that they stand out from any quotes that are used inside the string.
All the virtual code would be displayed with a different background color to make it clear that it's virtual. The user could turn virtual display on and off with a keyboard shortcut or a right click context menu option.
I'm sure there are lots of other possible applications of virtual code display!
+1
Geoff Fortytwo wrote:
This idea has certainly been punted around on these forums before, at
least for a few years now. I think the best idea would be to define the
common code style that is applied when a file is checked in, but also
be able to define a code style that you would like to see locally; i.e.
the file is formatted to your style when checked out, and then
'canonicalized' back again upon check in (remaining the same locally).
It would be a real nice thing to have, but I fear the implementation of
it would require far more effort than it is worth in reward for
Jetbrains... although if they pulled it off it would surely be a unique
feature. Certainly something to put in the pot for v8.0 ideas though.
N.
This is something I've been asking for for awhile. It would be a huge thing
for me. I can't stand working on someone elses code when it's formatted
differently than what I'm used to but I can't reformat everytime I want to
make a small change to the code.
"Geoff Fortytwo" <no_reply@jetbrains.com> wrote in message
news:11985477.1194037090919.JavaMail.itn@is.intellij.net...
>
>
>
>
>
>
+1
Francesco Bellomi
Yes! tabbed projects would be awesome.
I like the web services plugin but it would be nice for IDEA to have a more comprehensive WS/SOA strategy.
+1
I'm joining a project now that's using Spring Web Flow, so I was just looking to see if the Spring support in 7.0 includes visual display and/or editing of those flows, similar to the Struts web flow view. I didn't find it mentioned anywhere, so it might be a good line item to add.
Hello Jens,
Well, you might like this one: http://plugins.intellij.net/plugin/?id=1818 ;)
Sascha
Pls add your vote/comments to
http://www.jetbrains.net/jira/browse/IDEABKL-397
Geoff Fortytwo wrote:
IDEABKL-397 is different from this suggestion, because it reformats the actual source code. That's a problem when other developers are using other tools (e.g., Eclipse) to do the reformatting, because the results are not identical.
I think that whether the code is reformatted locally in the file system,
or in memory after loading can be left as an implementation issue to
some degree. As long as you see code the way you want, and the
correctly formatted version is committed to the repository then that is
the main thing.
Of course different methods will have ramifications - for example, if
done locally in the file system you can only commit via idea to ensure
the code is committed in the correct format - but I think we are just
talking about the general concept of a local view of code... there seems
little point in having 2 separate issues at this stage for what is
conceptually the same thing.
I'm sure the JB guys will work out the best way to achieve it... if they
think it's worth it of course ;)
N.
David Beutel wrote:
+1 with passion.
I've been playing with Scala on these holidays (really loooong in Russia). Apart from some technical difficulties, most notably complex type system, that nobody except Martin Odersky ever tried to implement, there are some real problems. One that I already realize is the impossibiiity to use current (efficient) scheme for find usages for implicit vals/defs: to make it happen one needs a fully type-checked project beforehand that is either to be accomplished in advance by incremental compiler, or done on demand causing significant delays. Taking into account that having reused the compiler would greatly relieve the pain of reimplementing type system, I think this should be the primary path to be investigated by IDE plugins. But this requires a participation of scalac of course, that should go beyond (hacky) Eclipse support as currently implemented.
The most egregious outage wrt Eclipse in IntelliJ IMO is OSGi support. OSGi is becoming much more mainstream in development with the advent of technologies like Spring-DM and eclipse handles OSGi bundle development really well (not surprising since its built on OSGi and plugins are all OSGi bundles).
OSGi development currently can be really painful and has many areas where the IDE could make things much better. First and foremost the generation of appropriate manifest files for bundles. Many application servers are now built on OSGi so expect to see more opportunities for developers to need OSGi bundles in the near future.
I would also like to see ivy support, but that's a less mainstream technology IMO.
Hello Andy,
Have you already tried the Osmorc plugin which adds OSGi support? What do
you think about it?
http://plugins.intellij.net/plugin/?id=1816
--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"
It looks to be at a pre-alpha stage and requires IntelliJ 7 (which is not useable for me currently), so I will probably pass for the moment. There also appears to be zero documentation.
+1
I use two monitors and UltraMon feature "Maximize to desktop" to stretch IDEA to two monitors. I usually use the Split Vertically feature of the main editor window. But it is not very useful:
1) If I use split on tab of the file A I have the file A splitted to two windows - ok
2) When I open new file B it will open in the currently focused window - ok
3) I cannot open the file B second time in the other window - VERY BAD. This is my biggest problem. I don't want to split the file B because it will create third window. I don't want three editor windows since I have only two monitors. I hope my explanation is not too confusing :)
Yes, Mylyn-like abilities would be wonderful!