Develop with Pleasure
Is there a small feature missing from IDEA that would make your life happier, would make you sing IDEA's "Develop with Pleasure" motto? Please use this thread to highlight that missing feature or two in the issue database so we can all take a look & vote, especially long-standing features that were overlooked and risk being overlooked forever.
Thanks,
Jon
请先登录再写评论。
Here are two backlogged issues from a thread earlier today:
http://www.jetbrains.net/jira/browse/IDEABKL-5042
http://www.jetbrains.net/jira/browse/IDEABKL-868
http://www.jetbrains.net/jira/browse/IDEABKL-2273 (provided by Lineage plugin)
http://www.jetbrains.net/jira/browse/IDEABKL-385 (provided by SmartIntroduce plugin)
http://www.jetbrains.net/jira/browse/IDEABKL-3103 (sadly, not available in any plugin)
http://www.jetbrains.net/jira/browse/IDEABKL-2225 (Winner: most annoying on a day-to-day basis)
Good luck with this!
--Dave Griffith
Well, I am not so confident that this thread will really lead to some action, but for what it's worth:
ant support is such a very basic feature and it is in such a bad shape, especially since the big refactoring that seems to have taken place in Idea a while ago.
There are 186 (one hundred eighty six) open ant issues:
http://www.jetbrains.net/jira/secure/IssueNavigator.jspa?reset=true&&pid=10131&pid=10132&pid=10080&component=10342&status=1&status=3&status=4&sorter/field=priority&sorter/order=ASC
All of those are in IDEADEV, but somehow I am not so very confident that they will all be fixed for 7.0...
Currently I have more or less gotten used to ignore everything red in my build files.
Something that is merely annoying for me, but probably confusing for newbies because it profoundly violates the principle of least surprise is the console output of ant targets started from Idea.
The sensible behavior would be to show exactly the same output as one would get when running ant from the command line.
Instead you get a fancy animated tree view (that I never ever needed in many years of using Idea). When you finally have discovered the console window's toolbar button to switch to text mode you get the next surprise:
All task names are logged to the console intermangled with your build script output.
Again as a more experienced Idea user I have learned to click the toggle-text-view-button immediately and then just ignore all that garbage ouput on the console.
Jon Steelman wrote:
If I have two modules with similar package structure, e.g. both contain
package "com.example.my", and I select "new class" via the context menu
on the package-folder in project view, IDEA asks me in which
source-folder (and module) I want to create the new class although I
have already consciously and explicitly selected it (especially if there
are no "test" sources, so it only offers the selection of a different
module).
kind regards,
Messi
Hi,
I created a list with my colleague some months ago... I am not sure
which entries have been fixed - but plenty of them didn't....
The most of them are very small issues that are so disturbing in daily
work, I can't believe you aren't irritated by each of them...
- The goto class dialog (ctrl-N) must allow the use of package names.
- Class Name auto completion uses a horrible sort order. E.g. typing:
new Node[ctrl-alt-space]
will yield a very long list which on top offers sun.plugin.dom.core,
which is hilarious.
The comparator should first offer classes, which reside in the same
module, then same project, module libraries, jdk, and finally (if at
all) the sun.* and com.sun packages (one should be able to turn them off
altegether) or even better configure the priorities of them.
- No Quickfix for casting more then one parameter to the right parameter
type if more than one is wrong e.g:
new Rectangle2D.Float(2.0d, 2.0d, 5.0d, 5.0d);
- Change signature and create method intentions from usage both work for
methods on both the parameter list as well as the method name, but only
on each of the two respective ones if the "method" is a "constructor".
- The code completion window for class members should indicate the type
of the class the current completion works on.
- The code completion window should allow the use of wildcards, just
like the use of camel humps.
- The "complete statement" completion feature (ctrl-shit-enter) is broken...
--> Object d = ( ( String ) new String()
Often there is added an additional bracket and semicolon.
- Idea misses some important mnemonics in the following dialogs:
Refactor: Introduce-field : "Current method"
The "Problems detected" Dialog has no mnemonics for "Continue" or "Cancel"
- Trying to rename a constructor (i.e. renaming the class) always shows
a warning dialog, which asks you whether you want to rename the class
instead - of course I do! At least add a "show this warning again" checkbox.
- Renaming variable names (or fields) should then result in an optional
renaming of corresponding getters, setters and factory methods, just
like if I had wanted to rename the field alone.
- Debugger: The variables view should use a treetable instead of a
simple table to unclutter the information.
- Introduce field should work on a method's parameter (just like the
intention).
- Removing a method while in debug mode should internally insert a stub
(throwing an AbstractMethodError) so that fix-and-continue remains working.
- Renaming a method parameter in an overridden method should allow for
renaming the parameter in the base and sibling classes, too.
Introduce a smarter extract method algorithm: E.g.:
Imagine I have a piece of code in class Bar as follows:
new Foo();
foo.bar();
foo.baz();
System.out.println(foo);
I would now like to be able to create a method in class foo like this:
newMethodName(){
this.bar();
this.baz();
System.out.println(this);
}
This can be achieved using the following refactorings:
Extract method (use static)
Move static method to Foo.
Make method non-static
Introduce variable for foo and assign "this" to foo initially.
Inline foo using "this".
Remove parameter and adjust the usage in the Bar class to
foo.newMethodName();
- @Override annotation should be added automatically when abstract
methods are implemented (ctrl-I), just like for ctrl-O.
Comment/Uncomment lines will always comment the lines, as soon as there
is at least one line that is not commented. e.g:
// blah
// foo
// foo
// bla
"uncommenting" results in:
//// blah
//// foo
//
//// foo
//// bla
This should not happen if the additional lines are blank lines.
- Provide a more intelligent "to-upper-case" (ctrl-shift-U) algorithm,
that converts camelcase names to underscore names and vice-versa. E.g.
"fooBar" -> "Foo_BAR" -> "fooBar"
- The introduce variable and introduce field should learn what kind of
types you want to have assigned the content to:
E.g. if I type:
new ArrayList()
I would like the type to be by default an java.util.List, not the
java.util.ArrayList
Alternatively, there should be an intention to change the type of a
variable to one of its super types (in that case to java.util.List)
- There should be an option to "Clean Module" or better "Rebuild Module".
The "move-statemnt" features (ctrl-shift-up and ctrl-shift down) should
be consistent and reversible at all times, e.g.:
System.out.println("Foo!");
Runnable r = new Runnable() {
public void run() {
}
};
The print statement can be moved downwards, even into the run method,
but once it is there it cannot get out of the run method scope. Also if
the statement is below the Runnable declaration, it can not move into
the run method and it cannot jump over the Runnable declaration either.
Johannes Schneider
Jon Steelman wrote:
IDEA-12725
IDEA-12799
IDEA-13002
Jon Steelman wrote:
Although there is "Highlight"/"Find" "usages in file" there is no option
to go to next/previous occurrence (at least not that I know of... is
there?) when cursor is on an identifier.
kind regards,
Messi
Hello Messi,
M> Although there is "Highlight"/"Find" "usages in file" there is no
M> option to go to next/previous occurrence (at least not that I know
M> of... is there?) when cursor is on an identifier.
M>
Try F3/Shift F3 once you have them highlighted.
HTH,
Andrei
If you compile something you get a modal dialog or a tool window. I
don't really want one if everything compiles well. I can't see piece of
code I was working on because Tool Window pops up and gives me 0 error
message. Well, I knew that already, IDEA would show it in red otherwise.
What I want, is ability to turn off Tool Window and show it only if
there are errors. Rest of information could go to status bar.
"Project xxx compiled with 0 errors, 4 deprecates."
If you launch application you always get console tool window. Really, it
can be a bit smarter and show it when there is something to read.
-sergiy
Jon Steelman wrote:
Sergiy Dubovik wrote:
Something like 'Settings' -> 'Compiler' -> 'Close message view if no
error occurred'?
+10 on all counts. Ant support has been terrible for ages, and like you say it's an incredibly basic feature. It shouldn't be that hard to fix.
My old friend, SVN...
http://www.jetbrains.net/jira/browse/IDEA-13596
http://www.jetbrains.net/jira/browse/IDEA-13597
http://www.jetbrains.net/jira/browse/IDEA-13500
These (and various bugs related to file deletion I haven't managed to pin down) remove a significant amount of pleasure from my development most days.
Almost.
It opens tool window. It just closes if there were no errors. I just
don't want to see it. It doesn't give me any useful information.
-sergiy
Martin Fuhrer wrote:
>> If you compile something you get a modal dialog or a tool window. I
>> don't really want one if everything compiles well. I can't see piece
>> of code I was working on because Tool Window pops up and gives me 0
>> error message. Well, I knew that already, IDEA would show it in red
>> otherwise. What I want, is ability to turn off Tool Window and show it
>> only if there are errors. Rest of information could go to status bar.
>> "Project xxx compiled with 0 errors, 4 deprecates."
I 'm not sure if it's IDEA's fault or not, but i have fucked up my working copy several times while doing refactorings (renames/moves).
When trying to commit it doesn't work and it seems the .svn infos are inconsistent.
I had the impression when moving class to a new package, the parent packages are not adequately added to subversion
What do you mean more precisely?
Certainly a bug. Could you give exact reproduce steps?
Rename a class A to AOld. Now try to name a class ANew to A. It will fail
with SVN and IDEA.
It's also disappointing to see the auto-variable mode feature of the
debugger introduced a few months ago stay in buggy unfinished state
(IDEA-13666).
Johannes Schneider wrote:
It allows :)
--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"
Right, the problem is that often you don't notice until it's too late, and I have no idea what the sequence is. But I never rename packages any more, it's flaky as hell. And we've seen a lot of problems with deletions - files being deleted but left on the file system, files deleted in the repo but not deleted in local, etc.
None of which adds a lot of pleasure to my development.
Jetbrains did improve the Ant build.xml parser in the past two releases, but there is still alot of work to do.
Re: fancy animated tree view, I filed a related Jira a long time ago, but it got lost in IDEABKL swamp.
ant build window -- 5.0 has annoying misfeature of hijacking my editor pane and animating my build.xml while ant executes.
http://www.jetbrains.net/jira/browse/IDEABKL-4012
I brought up the same issue with the verbosity of the output the last time I summarized all the open requests on Ant on Apr 1, 2006:
Thread: Ant Bugs & Enhancements (As of 5201)
http://www.intellij.net/forums/thread.jspa?threadID=210841
See section "Ant - Messages Window".
You can add "-quiet" to your ant commandline arguments in the build.xml IDEA properties dialog. This eliminates the outputting of all the task names, basically everything except echo statements and errors.
One idea was to have an exclusion list of tasks which are not logged, e.g.
property, condition, path, filelist, etc. Then you should only see your tasks
plus stuff like javac, ftp, etc. That would help reduce some of the noise.
Maxim Mossienko (JetBrains) wrote:
>> - The goto class dialog (ctrl-N) must allow the use of package names.
Uuuh, didn't know that). But I strongly suggest that you improve the
behaviour a little, so the stupid developers out there are able to use
it. ;).
I pressed Ctrl-N, then started to type "com." and expected that all
classes within packages starting with "com." are offered for selection.
Johannes Schneider
Peter Gromov (JetBrains) wrote:
>> - The code completion window for class members should indicate the
>> type of the class the current completion works on.
Hmm, don't know anymore... We've written that so long ago. Maybe it has
been fixed....
>>
>> - The "complete statement" completion feature (ctrl-shit-enter) is
>> broken...
>> --> Object d = ( ( String ) new String()
>> Often there is added an additional bracket and semicolon.
Very easy: Just type:
Object d = ( ( String ) new String()
and now press Ctrl-Shift-Enter.
The result is:
Object d = ( ( String ) new String();
which doesn't compile...
But there have been several other bugs related to "complete statement".
I will report them when I see them again.
Regards,
Johannes Schneider
This is one of the most annoying bugs. And it has been reported several
months ago...
But unfortunately nothing has happened so far..
Johannes Schneider
Tom wrote:
FIXED
Performance performance performance. Granted I have not used the EAP builds but the Milestone 1b is definitely not fast...much faster than 6.0.x series but I went back to using 4.5.4 on another developer's machine and my god it was F-A-S-T whether it was loading up the project at startup, or whether updating the project through CVS or comparing old CVS revisions of a particular class, or code analysis after editing a 4k LOC file. That is my biggest thing. It really sucks when another fellow developer comes up to you and says "SO this is the new Intellij..." and sees the slowness and says "Doesn't look convincing for me to move yet" because of the lack of speed. Even on Java 6 Update 2!
And of course all the ANT and JSP bugs that are open also remove the pleasure from working on 7.0. It is rather annoying to see red all over the place on a jsp file when there technically isn't because of the "Duplicate id reference" bug.
But yeah thats about it for me in terms of bugs.
Featurewise I would like some of the awesome functionality JDeveloper brings built in like creating an XML doc from schemas, creating web services through wizards, etc etc. That would be nice to have.
FIXED
Fixed
Yay! I had a feeling you'd step up to the plate and bite off a few of these. Thanks
--Dave Griffith
Johannes & others,
The chances your issues will get addressed is far, far greater when you create JIRA issues for them in the tracker. To create an issue, go here & select IDEA feedback:
http://www.jetbrains.net/jira/secure/CreateIssue!default.jspa
Once you add an issue, others can vote & comment on it and JetBrains can track it. You can also search the issue tracker to see if your issue has already been added but not implemented.
Thanks,
Jon
Sergiy,
Agreed. Can you create an issue for this and let us know in this thread?
Thanks,
Jon