tag:blogger.com,1999:blog-3421599713414321262023-12-22T14:18:20.718+01:00Just CodeAndrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-342159971341432126.post-63322952286137385752023-04-26T10:15:00.001+02:002023-08-15T16:16:51.919+02:00Xtext job<p> Do you want to have...</p><ul><li>a very challenging and never boring job on an extreme complex piece of software?</li><li>agile and intercultural working environment in Germany?</li><li>work for a <b>real</b> high-tech company (we build semiconductor test hardware to test chips from tomorrow for almost all chip companies on the world)?</li><li>a top notch RHEL workstation with 256 GB RAM, SSD and 16 core Xeon?</li><li>a recent Thinkpad of your choice?</li><li>possibility to work 50% or more in home office?</li><li>not only good salary but also other benefits?</li></ul><p><a href="https://advantest-career.de/en/ueber-uns/">We</a> (<a href="https://www.advantest.com/about/offices/aeg.html">Advantest Europe GmbH</a>) are hiring! We are the leader in semiconductor testing industry and also in the top 10 employees in the IT industry in Germany (see <a href="https://www.kununu.com/de/advantest-europe-gmbh">our Kununu profile</a>).</p><div><br />I have <a href="https://recruiting.adp.com/srccar/public/nghome.guid?c=2168307&d=External&prc=RMPOD4&r=5000945485006&from_login=1" target="_blank">1 open job position for <b>Eclipse/Xtext</b> developer</a> in my team in <a href="https://goo.gl/maps/FgrdmJnCh8T2">our main office</a> in Böblingen (and of course we have <a href="https://recruiting.adp.com/srccar/public/RTI.home?c=2168307&d=External" target="_blank">way more other job offers</a>).</div><div><br />The main job focus is <a href="https://www.eclipse.org/Xtext/">Xtext</a> support in house in the context of the very complex, Eclipse based IDE, used as the front end for the semiconductor tester. Other responsibility will be helping with the <a href="https://www.eclipse.org/Xtext/">Xtext project</a> maintenance in general (bug fixes, releng jobs etc).<div><div><br /></div></div><div><div>What do we want from you?</div><div><ul><li>You should have a proven Xtext development experience or comparable experience in language engineering and language generation frameworks</li><li>You should be able to mentor other engineers in all Xtext related areas</li><li>You should be able to express yourself very good (both spoken/written) in English or German</li><li>You should have fun reading thread dumps and debugging unknown code</li><li>You should have very good both computer science education and core Java knowledge</li><li>Ideally you should have experience with open source projects development</li></ul></div></div><div>The position is in my team, I will be your team lead.</div><div><br />We speak English (main job language), German, Java and few other languages here. </div><div>If you are interested, just drop me a mail.</div><div><br /></div><div><br /></div><div><br /><iframe allowfullscreen="" frameborder="0" height="450" src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d10537.776671869391!2d8.981761!3d48.677872!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0xdbb5fec3bfa79494!2sAdvantest+Europe+GmbH!5e0!3m2!1sde!2sde!4v1533818709656" style="border: 0;" width="600"></iframe></div></div>Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-54778758704436031722022-10-11T14:27:00.001+02:002022-10-11T14:44:23.929+02:00We are hiring<p> Do you want to have...</p><ul><li>a very challenging and never boring job on an extreme complex piece of software?</li><li>agile and intercultural working environment in Germany?</li><li>work for a <b>real</b> high-tech company (we build semiconductor test hardware to test chips from tomorrow for almost all chip companies on the world)?</li><li>a top notch RHEL workstation with 256 GB RAM, SSD and 16 core Xeon?</li><li>a recent Thinkpad of your choice?</li><li>possibility to work 50% or more in home office?</li><li>not only good salary but also other benefits?</li></ul><a href="https://advantest-career.de/en/ueber-uns/">We</a> (<a href="https://www.advantest.com/about/offices/aeg.html">Advantest Europe GmbH</a>) are hiring! We are the leader in semiconductor testing industry and also in the top 10 employees in the IT industry in Germany (see <a href="https://www.kununu.com/de/advantest-europe-gmbh">our Kununu profile</a>).<div><br />I have <strike>2 job positions</strike> 1 job position for <b>Eclipse/Java</b> developers in my team in <a href="https://goo.gl/maps/FgrdmJnCh8T2">our main office</a> in Böblingen (and of course we have <a href="https://recruiting.adp.com/srccar/public/RTI.home?c=2168307&d=External" target="_blank">way more other job offers</a>).</div><div><br />The main job focus is Eclipse platform development in the context of the very complex, Eclipse based IDE, used as the front end for the semiconductor tester.<div><br /></div><div><ol style="text-align: left;"><li><strike><a href="https://recruiting.adp.com/srccar/public/nghome.guid?c=2168307&d=External&prc=RMPOD4&r=5000862013706&from_login=1" target="_blank">First position</a> is to work on Eclipse integration with our product.</strike> (too late!)</li><li><a href="https://recruiting.adp.com/srccar/public/nghome.guid?c=2168307&d=External&prc=RMPOD4&r=5000871673206&from_login=1" target="_blank">Second position</a> is to work on Eclipse platform itself, with the focus on <a href="https://github.com/eclipse-jdt/eclipse.jdt.core">JDT</a> and/or <a href="https://github.com/eclipse-platform/eclipse.platform.swt">SWT</a> maintenance.</li></ol><div><br /></div></div><div><div>What do we want from you?</div><div><ul><li>You should have fun reading thread dumps and debugging unknown code</li><li>You should have very good both computer science education and core Java knowledge</li><li>You should be able to express yourself in English or German</li><li>Ideally you have experience with open source projects and Eclipse API's</li></ul></div></div><div>Both positions are in my team, I will be your team lead.</div><div><br />We speak English (main job language), German, Russian, Bulgarian and Java here. </div><div>If you are interested, just drop me a mail.</div><div><br /></div><div><br /></div><div><br /><iframe allowfullscreen="" frameborder="0" height="450" src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d10537.776671869391!2d8.981761!3d48.677872!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0xdbb5fec3bfa79494!2sAdvantest+Europe+GmbH!5e0!3m2!1sde!2sde!4v1533818709656" style="border: 0;" width="600"></iframe></div></div>Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-68250369940817953542020-11-23T09:51:00.001+01:002020-11-23T09:51:27.497+01:00My main update site moved<p>My host provider GMX decided that free hosting that they offered for over a decade is not fitting to their portfolio anymore (for some security reasons) and simply switched my <b>andrei.gmxhome.de</b> domain off.</p><p>Quote:</p><blockquote><p><span style="background-color: white; color: #515151; font-family: RobotoReg, Arial, Verdana, sans-serif; font-size: 16px;">... aus Sicherheitsgründen modernisieren wir regelmäßig unser Produktportfolio.</span><br style="background-color: white; color: #515151; font-family: RobotoReg, Arial, Verdana, sans-serif; font-size: 16px;" /><span style="background-color: white; color: #515151; font-family: RobotoReg, Arial, Verdana, sans-serif; font-size: 16px;">Im Zuge dessen möchten wir Sie darüber informieren, dass wir Ihren Webspace mit Ihrem Subdomain-Namen andrei.gmxhome.de zum 19.11.2020 kündigen. </span></p></blockquote><p>Because of that, Eclipse update site for all my plugins is moved now: </p><p>from <a href="http://andrei.gmxhome.de/eclipse/">http://andrei.gmxhome.de/eclipse/</a> </p><p>to <a href="https://raw.githubusercontent.com/iloveeclipse/plugins/latest/">https://raw.githubusercontent.com/iloveeclipse/plugins/latest/</a>.</p><p>Same way, my "home" is moved to <a href="https://github.com/iloveeclipse/plugins/wiki">https://github.com/iloveeclipse/plugins/wiki</a>.</p><p>(Github obviously has no issues with free hosting).</p><p>That means, anyone who used to have my main update site in scripts / Oomph setups, has to change them to use <a href="https://raw.githubusercontent.com/iloveeclipse/plugins/latest/">https://raw.githubusercontent.com/iloveeclipse/plugins/latest/</a> instead.</p><p>I'm sorry for that, but that is nothing I could change.</p>Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com2tag:blogger.com,1999:blog-342159971341432126.post-54718728614046493882020-11-07T16:11:00.000+01:002020-11-07T16:11:44.276+01:00I miss you Dani<p><a href="https://www.eclipse.org/lists/eclipse-dev/msg11490.html">I miss you Dani</a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://www.eclipse.org/lists/eclipse-dev/msg11490.html" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="539" data-original-width="586" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnPYpQdvCZw-19ZR_-zvGerqRdkFwiGi3UOaL0jM8BNxzMG05W_fchCDRsvOsMLS0gCkMPJqfPmMOzbgbCIiIfdzh1BNUJpJ8SvNHeyGXAw6CwzssrpEsYS-w8M8Hzr8dEvRvBs7RzfVw/s16000/megert.png" title="Dani Megert" /></a></div><br /><p><br /></p>Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-62999475002125293762019-07-28T18:50:00.000+02:002019-07-28T18:50:05.608+02:00Pimping the status line<div dir="ltr" style="text-align: left;" trbidi="on">
This weekend I've tried to write a <a href="https://git.eclipse.org/r/#/c/146706/1/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/DebugHoverTests.java@169">test for Eclipse debug hover</a>, that required to know exact position of the selected text, somewhere in the middle of the editor. If you think this is easy - go figure out in Eclipse at which offset is your cursor - surprisingly there is no obvious way to do so!<br />
<br />
So I've used some 3rd party editor that was kind enough to provide this information in the status line. Why shouldn't this be offered by Eclipse itself?<br />
<br />
So I've created an <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=549604">enhancement request</a> and <a href="https://git.eclipse.org/r/146707">pushed patch</a> that adds both features to Eclipse. By default, status line shows now cursor position, and if editor has something selected, the number of characters in the selection (works also in block selection mode). Both new additions to the status line can be disabled via preferences.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDiIWsFSb5IsU_rVUPMKUN5Geb7qMbrt9xiUu2ehTKWwCQd9_k5_DHja2MvHjQuXFLADmuP0ZPuK2BEzY_jw1VzK-SIg6JDk04wqMMaSZaxKLl3d28gxGsNq6hwtDokt7hzqRRh7QdoTY/s1600/selection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="275" data-original-width="673" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDiIWsFSb5IsU_rVUPMKUN5Geb7qMbrt9xiUu2ehTKWwCQd9_k5_DHja2MvHjQuXFLADmuP0ZPuK2BEzY_jw1VzK-SIg6JDk04wqMMaSZaxKLl3d28gxGsNq6hwtDokt7hzqRRh7QdoTY/s640/selection.png" width="640" /></a></div>
<br />
If there is no selection, cursor offset is shown:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidZl88HKkuKQScXA5lR5bAZFbxA2K8LEzGvOO0nsY3DzYvV30LOWxztPpQMuEH1569PX4o6le9bCajEeq4ARRhxzKc8UXCaO0PU1LZkl30NnhnqDfJYnEJjcXPAS6UnqL6gQEyPnZeVqA/s1600/cursor_offset.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="273" data-original-width="674" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidZl88HKkuKQScXA5lR5bAZFbxA2K8LEzGvOO0nsY3DzYvV30LOWxztPpQMuEH1569PX4o6le9bCajEeq4ARRhxzKc8UXCaO0PU1LZkl30NnhnqDfJYnEJjcXPAS6UnqL6gQEyPnZeVqA/s640/cursor_offset.png" width="640" /></a></div>
<br />
Both new additions to the status line can be disabled via preferences:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifJX3o3KBYqHl-7gKd2NqUpqtEoOBAAVSlfm3jLnSNLeVlDOYyzeE4nYczyyycL4AeR45MYS9VtJ4pchpiH_UVBheRwRyV4gm0JM6_y5zDiiZ3FjezycF518CX-UShGqQh5zRxb8zxlCw/s1600/preferences.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1072" data-original-width="705" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifJX3o3KBYqHl-7gKd2NqUpqtEoOBAAVSlfm3jLnSNLeVlDOYyzeE4nYczyyycL4AeR45MYS9VtJ4pchpiH_UVBheRwRyV4gm0JM6_y5zDiiZ3FjezycF518CX-UShGqQh5zRxb8zxlCw/s640/preferences.png" width="420" /></a></div>
<br />
<br />
<div style="text-align: center;">
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=549604">WDYT?</a></div>
</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com2tag:blogger.com,1999:blog-342159971341432126.post-38529496718434885872019-05-16T14:11:00.001+02:002019-07-28T18:35:08.903+02:00Incompatible Eclipse workspaces<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Eclipse has mechanism to recognize if the workspace to be used is created with older Eclipse version.<br />
In such case, to be safe, Eclipse shows dialog like:<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5g5IX69u64lWLg05tA2OdT-wGBK3EP7eKMuG6uoO22laWKUJrvx5bRrqOj_UwMOI70TtyqD30E5QqFfUoWSOBe_kI_JFF7n91jNFGX8hv0Zig7owSy3AgDK-FEzQsOkgOQ56_2Y7oIzw/s1600/old_workspace_warning.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5g5IX69u64lWLg05tA2OdT-wGBK3EP7eKMuG6uoO22laWKUJrvx5bRrqOj_UwMOI70TtyqD30E5QqFfUoWSOBe_kI_JFF7n91jNFGX8hv0Zig7owSy3AgDK-FEzQsOkgOQ56_2Y7oIzw/s1600/old_workspace_warning.png" /></a><br />
<br />
As of today (Eclipse 4.12 M1), if you click on "Cancel" button, Eclipse will behave differently, depending on the use cases "history":<br />
<br />
<h4 style="text-align: left;">
A. If the workbench was not started yet:</h4>
<ol style="text-align: left;">
<li>If Eclipse was started <b>without</b> "-data" argument and user selects incompatible workspace, Eclipse will show "Older Workspace Version" dialog above and by clicking on "Cancel" it will offer workspace selection dialog.</li>
<li>If Eclipse was started <b>with</b> "-data" argument pointing to the incompatible workspace, Eclipse will show "Older Workspace Version" dialog above and by clicking on "Cancel" it will <span style="color: red;">terminate</span> (instead of offering to select another workspace).</li>
</ol>
<h4 style="text-align: left;">
B. If the workbench was started:</h4>
<ol style="text-align: left;">
<li>If user selects <b>compatible</b> workspace in the "File -> Switch Workspace" dialog, Eclipse restarts fine.</li>
<li>If user selects <b>incompatible</b> workspace in the "File -> Switch Workspace" dialog, Eclipse restarts, shows the "Older Workspace Version" dialog above and by clicking on "Cancel" it will <span style="color: red;">terminate</span> (instead of offering to select another workspace).</li>
</ol>
This behavior is inconvenient (at least), so we have <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=538830">bug 538830</a>.<br />
<h4 style="text-align: left;">
Fix Proposal #1</h4>
The proposal is, that <b>independently</b> on the way Eclipse was started, if user clicks on the "Cancel" button in the "Older Workspace Version" dialog, we <b>always</b> show the default workspace selection dialog (instead of termination):<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXXjfcpUCYuLhjK4ObtWV-yZqUqFqdSTqKfiOmpzz6Q6oXMUxEQg4T5NL3I0uI6Z7FKV8CmVbZWnlUj4MwoaD9DreY2ylHFoY_9oQxJOypETm-cTYThpUihiGf4JslwAJJoPVzImA6Y30/s1600/workspace_selection_dialog.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXXjfcpUCYuLhjK4ObtWV-yZqUqFqdSTqKfiOmpzz6Q6oXMUxEQg4T5NL3I0uI6Z7FKV8CmVbZWnlUj4MwoaD9DreY2ylHFoY_9oQxJOypETm-cTYThpUihiGf4JslwAJJoPVzImA6Y30/s1600/workspace_selection_dialog.png" /></a><br />
<br />
In this dialog above user has two choices: launch any workspace or finally terminate Eclipse via "Cancel".<br />
<h4 style="text-align: left;">
Proposal #1 Matrix</h4>
<h4>
A1. If the workbench was not started yet:</h4>
<ol style="text-align: left;">
<li>If Eclipse was started <b>with or without</b> "-data" argument and user selects incompatible workspace, Eclipse will show "Older Workspace Version" dialog above and by clicking on "Cancel" it will offer workspace selection dialog. To terminate Eclipse, user has to click "Cancel" in the workspace selection dialog.</li>
</ol>
<h4>
B1. If the workbench was started:</h4>
<ol>
<li>If user selects <b>compatible</b> workspace in the "File -> Switch Workspace" dialog, Eclipse restarts fine.</li>
<li>If user selects <b>incompatible</b> workspace in the "File -> Switch Workspace" dialog, Eclipse restarts, shows the "Older Workspace Version" dialog above and by clicking on "Cancel" it will offer to select another workspace.</li>
</ol>
<div>
<br /></div>
<h4>
Fix Proposal #2</h4>
The proposal is, that <b>depending</b> on the way Eclipse was started, if user clicks on the "Cancel" button in the "Older Workspace Version" dialog, we <b>may or may not</b> show the default workspace selection dialog. So what happens after "Older Workspace Version" dialog is shown is <b>not predictable</b> by just looking on this dialog - it depends on the <b>history</b> of this dialog.<br />
<h4 style="text-align: left;">
Proposal #2 Matrix</h4>
<h4>
A2. If the workbench was not started yet:</h4>
<ol style="text-align: left;">
<li>If Eclipse was started <b>without</b> "-data" argument and user selects incompatible workspace, Eclipse will show "Older Workspace Version" dialog above and by clicking on "Cancel" it will offer workspace selection dialog.</li>
<li>If Eclipse was started <b>with</b> "-data" argument pointing to the incompatible workspace, Eclipse will show "Older Workspace Version" dialog above and by clicking on "Cancel" it will <span style="color: red;">terminate</span> (instead of offering to select another workspace).</li>
</ol>
<h4>
B2. If the workbench was started:</h4>
<ol>
<li>If user selects <b>compatible</b> workspace in the "File -> Switch Workspace" dialog, Eclipse restarts fine.</li>
<li>If user selects <b>incompatible</b> workspace in the "File -> Switch Workspace" dialog, Eclipse restarts, shows the "Older Workspace Version" dialog above and by clicking on "Cancel" it will offer to select another workspace.</li>
</ol>
<h4 style="text-align: left;">
Similarities</h4>
<div>
Both proposals fix second bullet in the use case B2.</div>
<h4 style="text-align: left;">
Differences</h4>
<div>
We see that Proposal #1 has no second bullet for A1 case, and is always consistent in the way how UI behaves after clicking on "Cancel" in the "Older Workspace Version" dialog. Proposal #2 fixes only B2 use case, inconsistency in UI behavior for the second part of A1 use case remains.</div>
<h4 style="text-align: left;">
Technical (biased) notes:</h4>
<ol style="text-align: left;">
<li>Proposal #1 is implemented and the <a href="https://git.eclipse.org/r/142139">patch is available</a>, along with the <a href="https://bugs.eclipse.org/bugs/attachment.cgi?id=278605">demo video</a>. To test it live, one has to build Eclipse - but here I have <a href="https://drive.google.com/drive/folders/0B7vALkuico9heWlDMlhfRGlRbm8">SDK binaries with the patch applied</a>. The patch is relatively simple and only affects Platform UI internal code.</li>
<li>Proposal #2 is not implemented yet. I assume that this will require more work compared to the patch #1. We will need a new command line argument for Eclipse to differentiate between "<i>I want you not to terminate even if incompatible -data is supplied because I'm calling you from UI</i>" and "<i>Please terminate if incompatible data is supplied because I'm calling you from the command line</i>". A new command line argument for Eclipse means not just Platform UI internal change, but also requires changes in the Equinox and Help, and also means public interface change.</li>
</ol>
<br />
<h4>
Question to the masses!</h4>
<div>
<b><span style="color: red; font-size: large;">We want to know your opinion - which proposal should be implemented?</span></b><br />
<br />
Please reply here or on the <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=538830">bug 538830</a>.<br />
<br />
<b>Update:</b><br />
<b><br /></b>
This version was implemented and available in 4.13 M1:<br />
<b><br /></b>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvL_hanhJRqR1rA-9O9nsPJa8mCUx8n-AgHahNUBPm8EMpM8RJjP8uCeT48Tqc9PNVOogriyJoVDbIz9ue4hR6_dq23cDeUArmvr_i4yt-0Jn6GhP3MbPJGs1C7kTSVLhqM4L5ca6Dl_I/s1600/workspace_selection_dialog1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="207" data-original-width="619" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvL_hanhJRqR1rA-9O9nsPJa8mCUx8n-AgHahNUBPm8EMpM8RJjP8uCeT48Tqc9PNVOogriyJoVDbIz9ue4hR6_dq23cDeUArmvr_i4yt-0Jn6GhP3MbPJGs1C7kTSVLhqM4L5ca6Dl_I/s1600/workspace_selection_dialog1.png" /></a></div>
<b><br /></b></div>
</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com1tag:blogger.com,1999:blog-342159971341432126.post-28893258591506032172019-02-04T22:45:00.000+01:002019-02-04T22:58:27.202+01:00Initial content assist size<div dir="ltr" style="text-align: left;" trbidi="on">
Question to the masses: which <b>initial</b> content assist size do you prefer?<br />
<br />
We discuss right now if the default content assist size could be increased in the next Eclipse version. The rationale is that the original content assist was created at the time (2002) where default screen resolution was 800x600 or may be 1024x768 (see <a href="https://en.m.wikipedia.org/wiki/Display_resolution">https://en.m.wikipedia.org/wiki/Display_resolution</a>), today displays start usually with 1920×1080 for notebooks and go further in desktops. So there is a room to give users more overview on the offered API's list and also javadoc help. Given that, and the fact that the size of the popup can be changed at any time, I think it makes sense to lift up the old popup size a bit.<br />
<br />
The change we propose (<a href="https://git.eclipse.org/r/128617">https://git.eclipse.org/r/128617</a>) shows on bigger screens 50% more content (15 lines instead of the 10), this helps users to discover more things without scrolling or manually resizing popup, especially those who don't know <b>what</b> they are looking for exactly, so they can't just type to filter the results.<br />
<br />
Your opinion is important, please comment on bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=538594" style="outline-width: 0px !important; user-select: auto !important;">https://bugs.eclipse.org/bugs/show_bug.cgi?id=538594</a>. For those who care, the proposed change is already integrated in the latest nightly builds of Eclipse 4.11, which you can download from <a href="https://download.eclipse.org/eclipse/downloads/">https://download.eclipse.org/eclipse/downloads/</a> and try on your own screen size.<br />
<br />
Please note: this change affects only <b>initial</b> content assist size, user is free to change it at any time and this will be also remembered.<br />
<br />
<br />
<b>Screen size 1920 x 1080, no zoom:</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizoWlb01TRU_s1rLUbEPGVXHt0PeY2OQAz5LW-H12NL7Ofcyncshr_oOqy9aj9heJ2rOtGcq8g-24XC7OzAIY8-IpifQRpbrfbcDUkLpJ39BVTzXV5NyFKz7e5pEOyWgsGsVXi1WtNLnA/s1600/1920x1080_before.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizoWlb01TRU_s1rLUbEPGVXHt0PeY2OQAz5LW-H12NL7Ofcyncshr_oOqy9aj9heJ2rOtGcq8g-24XC7OzAIY8-IpifQRpbrfbcDUkLpJ39BVTzXV5NyFKz7e5pEOyWgsGsVXi1WtNLnA/s640/1920x1080_before.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
vs</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu5xuzlpvzZ1_KBgaWmxGRgVdFb-Ua3j0XUMBEcKzxLR9t9nhKZrGl6PgOr0mzpyLAG30PsJY6dWmNwaNJJ0sveWVbmSYwNZ8X6fBnokbbek7DWpHA1sw7dinX82sD2CNSoloZ9VlA9wA/s1600/1920x1080_after.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu5xuzlpvzZ1_KBgaWmxGRgVdFb-Ua3j0XUMBEcKzxLR9t9nhKZrGl6PgOr0mzpyLAG30PsJY6dWmNwaNJJ0sveWVbmSYwNZ8X6fBnokbbek7DWpHA1sw7dinX82sD2CNSoloZ9VlA9wA/s640/1920x1080_after.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Same as above side by side:</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0m3QGgQqKk6_t8R8nI0v9RWbky2VX2sOwbaxa4EI4d9SdFe3focqul-GQYCUWpdIC7RPC20mPSkOnNVvhVjhQ-Z30XfXn-3AJ1a2wagCozNCsd4X9AmeQFnidARXw67zMDeKLxBgC_k0/s1600/1920x1080_below_each_other.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0m3QGgQqKk6_t8R8nI0v9RWbky2VX2sOwbaxa4EI4d9SdFe3focqul-GQYCUWpdIC7RPC20mPSkOnNVvhVjhQ-Z30XfXn-3AJ1a2wagCozNCsd4X9AmeQFnidARXw67zMDeKLxBgC_k0/s640/1920x1080_below_each_other.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Screen size 1920 x 1080, 125% OS zoom:</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq3KziQ07cK_fbEpE1yabi9XhgXzRymapU45SjyxV96FlRBjAKZKzjSamVQJ6F3o2hL_crtu0sB24JXTwOMp3KA2_1yfjKvQVWEWTHL5gXqCTNu7bmQsnB8j6_-j0Mzx8hG0uA8HxLSNk/s1600/1920x1080_x1.25_before.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq3KziQ07cK_fbEpE1yabi9XhgXzRymapU45SjyxV96FlRBjAKZKzjSamVQJ6F3o2hL_crtu0sB24JXTwOMp3KA2_1yfjKvQVWEWTHL5gXqCTNu7bmQsnB8j6_-j0Mzx8hG0uA8HxLSNk/s640/1920x1080_x1.25_before.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
vs</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuxbCD1EAHTvFMxKhYslE9dqgSk8M7TKYhBpCTfK0-fUDCjIO5ElnOCF3OZNnPQUIysEv90jd6YZ2jVwn3-4ZQJPcycMPTuzYYslQNB_MC6e8lkE2mGSv4Yng81Mdhe_wpyc5eLpmIwtk/s1600/1920x1080_x1.25_after.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuxbCD1EAHTvFMxKhYslE9dqgSk8M7TKYhBpCTfK0-fUDCjIO5ElnOCF3OZNnPQUIysEv90jd6YZ2jVwn3-4ZQJPcycMPTuzYYslQNB_MC6e8lkE2mGSv4Yng81Mdhe_wpyc5eLpmIwtk/s640/1920x1080_x1.25_after.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Same as above side by side:</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVhbO85kfUZpDT_YKv2gq0tWcqQ3a7Doct7IoXAD2DviHdbjiUxAUQy70Yvp6yReDmN2vOOd9qf5OUxCeddsNTMajH-kl_d8BQTu_EakRxg_GBhfPDzXaV3xlk7eomE_OgwdJ6oG-ZZ8M/s1600/1920x1080_x1.25_below_each_other.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVhbO85kfUZpDT_YKv2gq0tWcqQ3a7Doct7IoXAD2DviHdbjiUxAUQy70Yvp6yReDmN2vOOd9qf5OUxCeddsNTMajH-kl_d8BQTu_EakRxg_GBhfPDzXaV3xlk7eomE_OgwdJ6oG-ZZ8M/s640/1920x1080_x1.25_below_each_other.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Screen size 1920 x 1200, no zoom:</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1qwqdeT1mISF5-EZv7cyTwWQdVHo5yzGUL_vvFHNsJp9MRUykYWxS9BiUkflDoKY29dzIvaiVmdf7OuvOptVKZjmlO-GPKeFCsG79P6ezHMxVZawAKJtIciJRNIkYXWCZEyohxHMEfjc/s1600/linux_before_1920x1200.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1000" data-original-width="1600" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1qwqdeT1mISF5-EZv7cyTwWQdVHo5yzGUL_vvFHNsJp9MRUykYWxS9BiUkflDoKY29dzIvaiVmdf7OuvOptVKZjmlO-GPKeFCsG79P6ezHMxVZawAKJtIciJRNIkYXWCZEyohxHMEfjc/s640/linux_before_1920x1200.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
vs</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoPzjxDMkySIFYw6Bmmmy6hgel6xfcFW1_WbvLJljAjniEaevYmhiftBV3xSZCAfERWwtIrARZ0igFbWpbTlzLVNTXt1gIi7Fz74j71XwIKsGYrDETp8PNOzJevuBGcS-23x_Uje2-0HQ/s1600/linux_after_1920x1200.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1000" data-original-width="1600" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoPzjxDMkySIFYw6Bmmmy6hgel6xfcFW1_WbvLJljAjniEaevYmhiftBV3xSZCAfERWwtIrARZ0igFbWpbTlzLVNTXt1gIi7Fz74j71XwIKsGYrDETp8PNOzJevuBGcS-23x_Uje2-0HQ/s640/linux_after_1920x1200.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Please comment on the bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=538594" style="outline-width: 0px !important; user-select: auto !important;">https://bugs.eclipse.org/bugs/show_bug.cgi?id=538594</a>!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>PS:</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Sorry for advertising, but if you always wanted work with me together, check also this post: <a href="http://javaclipse.blogspot.com/2018/08/we-are-hiring-2-eclipse-developers.html">http://javaclipse.blogspot.com/2018/08/we-are-hiring-2-eclipse-developers.html</a></div>
</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-42662152394359190152019-02-04T14:47:00.000+01:002019-02-04T22:08:57.658+01:00We are hiring 2 Eclipse developers<div dir="ltr" style="text-align: left;" trbidi="on">
Do you want to have...<br />
<ul style="text-align: left;">
<li>a top notch RHEL workstation with 256 GB RAM, SSD and 16 core Xeon?</li>
<li>a recent Thinkpad of your choice?</li>
<li>a very challenging job on an extreme complex software piece?</li>
<li>agile, intercultural, englisch speaking working environment in Germany?</li>
<li>work for a <b>real</b> high-tech company (we build semiconductor test hardware to test chips from tomorrow for almost all chip companies on the world)?</li>
</ul>
<a href="https://www.advantest.com/en/about-advantest/about-advantest-europe">We</a> are still hiring!<br />
<br />
<a href="https://www.advantest.com/en/about-advantest/about-advantest-europe">We</a> have 2 opened positions for Eclipse developers in <a href="https://goo.gl/maps/FgrdmJnCh8T2">our main office</a> in Böblingen, Germany (no, it is not a remote job).<br />
<br />
The job focus is Java/Eclipse development in the context of the very complex Eclipse based IDE used as the front end for the semiconductor tester.<br />
<br />
We speak English and Java here, if you are interested, just drop me a mail.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="450" src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d10537.776671869391!2d8.981761!3d48.677872!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0xdbb5fec3bfa79494!2sAdvantest+Europe+GmbH!5e0!3m2!1sde!2sde!4v1533818709656" style="border: 0;" width="600"></iframe>
</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0Herrenberger Str. 130, 71034 Böblingen, Germany48.6772915 8.98011789999998248.509482500000004 8.6573943999999816 48.8451005 9.3028413999999824tag:blogger.com,1999:blog-342159971341432126.post-3103374545763795232017-12-23T16:53:00.001+01:002017-12-23T16:53:08.103+01:00De-obfuscating Eclipse workers<div dir="ltr" style="text-align: left;" trbidi="on">
Imagine you are debugging Eclipse IDE, which does something long and boring, running multiple worker threads, and of course all of them have very clear and consistent names: Worker-1, Worker-2, Worker-3, ..., Worker-101, Worker-102, ..., you got it, I hope.<br />
<br />
What do they do, you may ask? They all work, what else:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKUvox0e4Hm3-APyvG2m8eeYl2NX3kRdDDMpIVkbI2U1Nq9yAuj2RiXr4nIIicCidh-Qhag9TOsu6Igopo7C9I64Pg8UyhnAhfVfrscroxEaRY85tubZN5rDBMmJm0C1KthwCEytBq7i4/s1600/Screenshot+%252829%2529.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1055" data-original-width="1103" height="612" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKUvox0e4Hm3-APyvG2m8eeYl2NX3kRdDDMpIVkbI2U1Nq9yAuj2RiXr4nIIicCidh-Qhag9TOsu6Igopo7C9I64Pg8UyhnAhfVfrscroxEaRY85tubZN5rDBMmJm0C1KthwCEytBq7i4/s640/Screenshot+%252829%2529.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Workers do work, what else we can see here?</td></tr>
</tbody></table>
Now we have Christmas time, and what happens at this time? Santa is coming to all good plug-in developers!<br />
<br />
If you use latest 4.8 Eclipse SDK build (from <a href="http://download.eclipse.org/eclipse/downloads/drops4/I20171222-2000/">the 4.8 builds download page</a>), and enable "Preferences -> Java -> Debug -> Listen to thread name changes", you can finally see what all those busy workers above <b>really</b> do:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4jIyLZNTByqXZbIdNFtqwCoIVc8do8pLYRmuC3ViPwCVP_n6Km91_IpPiRiSxMXLrv9kFu2hRlaI7PEoQh_Jjl-Toa3Eow1HBI_2eLtdvry5Tf6XqvD4iQxOwPHqJCH4-HodNWqvdy8k/s1600/jobs_animated.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1055" data-original-width="1103" height="612" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4jIyLZNTByqXZbIdNFtqwCoIVc8do8pLYRmuC3ViPwCVP_n6Km91_IpPiRiSxMXLrv9kFu2hRlaI7PEoQh_Jjl-Toa3Eow1HBI_2eLtdvry5Tf6XqvD4iQxOwPHqJCH4-HodNWqvdy8k/s640/jobs_animated.gif" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Workers de-obfuscated</td></tr>
</tbody></table>
Isn't this cool?<br />
<br />
P.S.<br />
For details see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=223492">bug 223492</a> and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=528808">bug 528808</a>.<br />
<br />
Right now the preference is not enabled by default, but we hope to enable it in 4.8 M5 after some more testing if there will be no performance related side effects for bigger workspaces.<br />
<br />
Enjoy!<br />
<br /></div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-16412855253212388602017-10-26T21:07:00.002+02:002017-10-26T21:07:59.401+02:00Clear sign it is too late<div dir="ltr" style="text-align: left;" trbidi="on">
What is the clear sign that it is too late for you to hack on Java code?<br />
You get error messages like this from your favorite IDE:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitxwL3OSNFSb94zgv67Qh2KRz7YsMh4V_bKmna2Cmr41_IvjL1WdYXNYjzU2IzVkbrRSI_y2jhIMaHFL_gcyboXw-a259s0TZNGJVivldL7_XYFu0kj5i2QgT7UAwuvFJ7wJvOGdnlV_g/s1600/error_of_the_day.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Error of the day" border="0" data-original-height="836" data-original-width="1259" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitxwL3OSNFSb94zgv67Qh2KRz7YsMh4V_bKmna2Cmr41_IvjL1WdYXNYjzU2IzVkbrRSI_y2jhIMaHFL_gcyboXw-a259s0TZNGJVivldL7_XYFu0kj5i2QgT7UAwuvFJ7wJvOGdnlV_g/s640/error_of_the_day.png" title="Error of the day" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">This is not a joke.</td></tr>
</tbody></table>
<br /></div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-47656111217011675372017-10-25T06:55:00.000+02:002017-10-25T06:55:03.595+02:00SpotBugs 3.1.0 released<div dir="ltr" style="text-align: left;" trbidi="on">
<b>FindBugs is dead, long live SpotBugs!</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://spotbugs.github.io/images/logos/spotbugs_logo_300px.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="126" data-original-width="300" src="https://spotbugs.github.io/images/logos/spotbugs_logo_300px.png" /></a></div>
<br />
I would like to introduce here <a href="https://spotbugs.github.io/">SpotBugs</a>, a spiritual successor of <a href="http://findbugs.sourceforge.net/">FindBugs</a>, crafted by the community.<br />
<br />
<b>We've just released <a href="https://github.com/spotbugs/spotbugs/releases/tag/3.1.0">3.1.0 version</a>!</b><br />
<br />
One of the main drivers to release <a href="https://spotbugs.github.io/">SpotBugs</a> now is to support Java 9, but there were also few other exciting changes, read the release notes: <a href="https://github.com/spotbugs/spotbugs/blob/3.1.0/CHANGELOG.md">https://github.com/spotbugs/spotbugs/blob/3.1.0/CHANGELOG.md. </a><br />
<br />
We also have a new <a href="https://spotbugs.github.io/">SpotBugs</a> Eclipse plugin, here are the links to the update site: <a href="https://spotbugs.github.io/eclipse/">https://spotbugs.github.io/eclipse</a> and <a href="https://marketplace.eclipse.org/content/spotbugs-eclipse-plugin">Eclipse marketplace entry</a>.<br />
<br />
<b>SpotBugs links</b><br />
<b><br /></b>
Home: <a href="https://spotbugs.github.io/">https://spotbugs.github.io</a><br />
Mailing list: <a href="https://github.com/spotbugs/discuss/issues?q=">https://github.com/spotbugs/discuss/issues?q=</a><br />
Bug tracker: <a href="https://github.com/spotbugs/spotbugs/issues">https://github.com/spotbugs/spotbugs/issues</a><br />
Git repository: <a href="https://github.com/spotbugs/spotbugs">https://github.com/spotbugs/spotbugs</a><br />
Manual: <a href="http://spotbugs.readthedocs.io/en/stable/">http://spotbugs.readthedocs.io/en/stable/</a><br />
Migration guide: <a href="http://spotbugs.readthedocs.io/en/latest/migration.html">http://spotbugs.readthedocs.io/en/latest/migration.html</a><br />
Eclipse plugin update site: <a href="https://spotbugs.github.io/eclipse">https://spotbugs.github.io/eclipse</a><br />
Eclipse plugin nightly builds: <a href="https://spotbugs.github.io/eclipse-latest">https://spotbugs.github.io/eclipse-latest</a><br />
<br />
<b>P.S.</b><br />
If you are curious about the history of <a href="https://spotbugs.github.io/">SpotBugs</a> and why <a href="http://findbugs.sourceforge.net/">FindBugs</a> isn't there anymore, please read through this mails:<br />
<ul style="text-align: left;">
<li><a href="https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2016-November/004321.html">https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2016-November/004321.html</a></li>
<li><a href="https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2017-September/004383.html">https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2017-September/004383.html</a></li>
</ul>
</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-23245780576302688822017-10-17T08:06:00.001+02:002017-10-17T09:37:38.109+02:00SpotBugs 3.1.0 RC7 with Java 9 support<div dir="ltr" style="text-align: left;" trbidi="on">
<b>FindBugs is dead, long live SpotBugs!</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://spotbugs.github.io/images/logos/spotbugs_logo_300px.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="126" data-original-width="300" src="https://spotbugs.github.io/images/logos/spotbugs_logo_300px.png" /></a></div>
<br />
I would like to introduce here <a href="https://spotbugs.github.io/">SpotBugs</a>, a spiritual successor of <a href="http://findbugs.sourceforge.net/">FindBugs</a>, crafted by the community.<br />
<br />
We've just released <a href="https://github.com/spotbugs/spotbugs/blob/3.1.0_RC7/CHANGELOG.md">3.1.0 RC7 version</a> and hope to release the final 3.1.0 this weekend.<br />
One of the main drivers to release <a href="https://spotbugs.github.io/">SpotBugs</a> now is to support Java 9, but there were also few other exciting changes in the previous <a href="https://spotbugs.github.io/">SpotBugs</a> milestones, please check them for more details: <a href="https://github.com/spotbugs/spotbugs/releases">https://github.com/spotbugs/spotbugs/releases</a>.<br />
<br />
We also have a new <a href="https://spotbugs.github.io/">SpotBugs</a> Eclipse plugin, here are the links to the update sites: <a href="http://spotbugs.readthedocs.io/en/latest/eclipse.html">http://spotbugs.readthedocs.io/en/latest/eclipse.html</a> and <a href="https://marketplace.eclipse.org/content/spotbugs-eclipse-plugin">Eclipse marketplace entry</a>.<br />
<br />
<b>We need your help</b>!<br />
Please check if you see regressions and don't hesitate to report issues to the bug tracker!<br />
<br />
<b>SpotBugs links</b><br />
<b><br /></b>
Home: <a href="https://spotbugs.github.io/">https://spotbugs.github.io</a><br />
Mailing list: <a href="https://github.com/spotbugs/discuss/issues?q=">https://github.com/spotbugs/discuss/issues?q=</a><br />
Bug tracker: <a href="https://github.com/spotbugs/spotbugs/issues">https://github.com/spotbugs/spotbugs/issues</a><br />
Git repository: <a href="https://github.com/spotbugs/spotbugs">https://github.com/spotbugs/spotbugs</a><br />
Manual: <a href="http://spotbugs.readthedocs.io/en/latest">http://spotbugs.readthedocs.io/en/latest</a><br />
Migration guide: <a href="http://spotbugs.readthedocs.io/en/latest/migration.html">http://spotbugs.readthedocs.io/en/latest/migration.html</a><br />
Eclipse plugin nightly build: <a href="https://spotbugs.github.io/eclipse-latest">https://spotbugs.github.io/eclipse-latest</a><br />
<br />
<b>P.S.</b><br />
If you are curious about the history of <a href="https://spotbugs.github.io/">SpotBugs</a> and why <a href="http://findbugs.sourceforge.net/">FindBugs</a> isn't there anymore, please read through this mails:<br />
<ul style="text-align: left;">
<li><a href="https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2016-November/004321.html">https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2016-November/004321.html</a></li>
<li><a href="https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2017-September/004383.html">https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2017-September/004383.html</a></li>
</ul>
</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-52403212819005373122017-02-13T00:17:00.001+01:002017-02-19T22:39:21.134+01:00What is new in Eclipse 4.x?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<h2 style="text-align: left;">
A look on Eclipse 4.6 from Eclipse 3.8 point of view</h2>
<div style="text-align: left;">
<i>The good, the bad and the ugly</i></div>
<h4 style="text-align: left;">
Preface</h4>
This is my personal, condensed, not comprehensive overview of changes in the Eclipse platform happened between last major 3.x release (3.8.0) from September 2012 and now (4.6.3). This overview is written from a user perspective and is for end-users, API changes are not part of the discussion.<br />
<br />
Here are official "New and Noteworthy" links for each release:<br />
<br />
<a href="http://archive.eclipse.org/eclipse/downloads/drops4/R-4.2.1-201209141800/news/">4.2 N&N (2012)</a><br />
<a href="http://archive.eclipse.org/eclipse/downloads/drops4/R-4.3-201306052000/news/">4.3 N&N (2013)</a><br />
<a href="https://www.eclipse.org/eclipse/news/4.4/eclipse_news_4.4.php">4.4 N&N (2014)</a> <br />
<a href="https://www.eclipse.org/eclipse/news/4.5/">4.5 N&N (2015)</a><br />
<a href="https://www.eclipse.org/eclipse/news/4.6/">4.6 N&N (2016)</a><br />
<br />
Please note that Eclipse 3.8.0 was released at same time with 4.2.1 but did not contain some features related to the UI programming model change. The difference between 3.8.0 and 4.6.3 are not just 5 years or 5 major
Eclipse releases, it is also a bigger change of the UI programming model from
3.x to 4.x API (aka e4).<br />
<h4 style="text-align: left;">
Why to talk about 3.x to 4.x changes today?</h4>
<div style="text-align: left;">
Because Eclipse 3.8.2 was exceptionally well made, stable and reliable release. It required five (!) 4.x releases to reach similar stable state (may be not even same state, but at least some usable state). Also because most plugins till recently were still supporting 3.x stream and because 3.x was good enough to support development of Java 7 based software.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
But as soon as your business switches to Java 8, the time is for Eclipse 4.x, because JDT in 3.8 does not know and does not support Java 8.</div>
<h4 style="text-align: left;">
Themes aka L&F</h4>
<div style="text-align: left;">
Eclipse 4.x introduces "themed UI", where many UI elements can be "styled" with CSS rules. This is a highly controversial change, which from the one side allowed such features like "dark theme" but from the other side ruined UI performance, especially in distributed environments.</div>
<br />
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiqxvci6mdYMackpINIblRl8u5NF0k1vNGccOwbuqfyLcXjChLNNgStDUWiATySR_xJ_fq0MLmfYQfJT-uSR0l-8DftXyocAIyirCU6H3z4hF2qoGI-WLxhOFQSxVGUkfOe_lK6Xy5rVo/s1600/newlook.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiqxvci6mdYMackpINIblRl8u5NF0k1vNGccOwbuqfyLcXjChLNNgStDUWiATySR_xJ_fq0MLmfYQfJT-uSR0l-8DftXyocAIyirCU6H3z4hF2qoGI-WLxhOFQSxVGUkfOe_lK6Xy5rVo/s1600/newlook.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A good example how NOT to design ergonomic IDE theme (4.2. on Windows)</td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_otf2M2akuD_scQ6sqSEaBeu5P5FCdbSfoTvbmzfMowSgz_bgcQiTUZofGGMMEHbaJuEzjisu4caS5zEGYt9eQgxkqDeTTzQZJ43PNyfZ_PicOiN2Lq6xs77wbydLjuVcOCoRusSQ9qI/s1600/eclipse_4.2_welcome.png" imageanchor="1" style="margin-left: auto; margin-right: auto;" title=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_otf2M2akuD_scQ6sqSEaBeu5P5FCdbSfoTvbmzfMowSgz_bgcQiTUZofGGMMEHbaJuEzjisu4caS5zEGYt9eQgxkqDeTTzQZJ43PNyfZ_PicOiN2Lq6xs77wbydLjuVcOCoRusSQ9qI/s1600/eclipse_4.2_welcome.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Same misery (4.2.1) on Linux</td></tr>
</tbody></table>
</div>
<div style="text-align: left;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip8UeZ1H0pXMRbBu6zC_7cIgUKD4gMTFngQBCtR18llpvJm9HKWdPLbnXwc5ib6Uu4BPjvhFP-Luh0Org7ebPEhhKqXpwbvhXdyzmZkijgd6zd-6aoHTdbROm0u5JE_X-sgpchVhg1fhk/s1600/eclipse_3.8_welcome.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip8UeZ1H0pXMRbBu6zC_7cIgUKD4gMTFngQBCtR18llpvJm9HKWdPLbnXwc5ib6Uu4BPjvhFP-Luh0Org7ebPEhhKqXpwbvhXdyzmZkijgd6zd-6aoHTdbROm0u5JE_X-sgpchVhg1fhk/s1600/eclipse_3.8_welcome.png" style="outline: 1px dashed red;" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">3.8.0 on same system</td></tr>
</tbody></table>
Either way (with or without themes), Eclipse 4.x doesn't look like Eclipse 3.8. Initial 4.2.1 in the default theme was simply ugly, on every operating system. With the time, 4.x stream got some polishing and starting with 4.6 reached the state of 3.8, more or less. From the performance point of view, CSS themes add a considerable computational overhead for complex UI's (plus extra layer of code which can be broken) and can significantly slow down Eclipse (to completely unusable state) in specific environments, like remote usage via vncviewer, rdesktop and Co.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQc2e6w5TKfTqxq6gLUhbl0-0A21QuO1IncietJ92JMzHVP8kGh5tLZwCuqLuvoC3CxJBTBsWUWY_5pN7LMtuo8beW4TjQjfPnECLoRXlKi1am8IPU8ukFjnNRTUdhajx6r3YKo1tCYwA/s1600/dark_theme.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" title=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQc2e6w5TKfTqxq6gLUhbl0-0A21QuO1IncietJ92JMzHVP8kGh5tLZwCuqLuvoC3CxJBTBsWUWY_5pN7LMtuo8beW4TjQjfPnECLoRXlKi1am8IPU8ukFjnNRTUdhajx6r3YKo1tCYwA/s1600/dark_theme.png" title="" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
<blockquote class="tr_bq">
<div style="text-align: left;">
<i>Recommendation</i>: don't use CSS themes to have less bugs, slicker and faster UI experience. Here is the how Eclipse looks like on Windows 10 without CSS themes:</div>
</blockquote>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0J9VL2tXfo7pEP2LXZT_F4olj9occVAmd0XSr0jufr0aOE8_jo0-GL79ceJxgIxiag0pCrLWoALpGxjCN_rKEbv8gOL48QnW3XIDfngAWh-ATtQYiJHDshB5xOqjdD0_n-S9cRELOs60/s1600/no_themes_462.png" style="margin-left: auto; margin-right: auto;" title=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0J9VL2tXfo7pEP2LXZT_F4olj9occVAmd0XSr0jufr0aOE8_jo0-GL79ceJxgIxiag0pCrLWoALpGxjCN_rKEbv8gOL48QnW3XIDfngAWh-ATtQYiJHDshB5xOqjdD0_n-S9cRELOs60/s1600/no_themes_462.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">4.6.3 with themes disabled, Windows 10</td></tr>
</tbody></table>
<h4 style="text-align: left;">
High-DPI monitors support</h4>
<div style="text-align: left;">
<span style="font-weight: normal;">SWT now automatically scales images on high-DPI monitors on Windows and
Linux, similar to the Mac's Retina support on OS X.
In the absence of high-resolution images, SWT will auto-scale the
available images to ensure that SWT-based applications like Eclipse
are scaled proportionately to the resolution of the monitor.</span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="font-weight: normal;">Sometimes this automatic scale doesn't work or looks not nice - in this cases there are <a href="https://www.eclipse.org/eclipse/news/4.6/platform.php#swt-autoscale-tweaks">ways to tweak the default behavior</a>. </span> </div>
<h4 style="text-align: left;">
GTK3 support </h4>
<div style="text-align: left;">
As if it would be not enough UI nonsense introduced with new themes, <a href="http://javaclipse.blogspot.de/2015/06/mars-on-linux.html">Eclipse 4.5+ uses GTK3</a> instead of GTK2 on Linux by default. Slick, useful, clean widgets from GTK2 are replaced by a pixel eating monsters from GTK3. The only solution for that is to use GTK3 themes with more "human" button sizes, but good GTK3 themes <a href="https://github.com/jpfleury/clearlooks-phenix">are very rare</a>. Unfortunately, GTK3 is here to stay and GTK2 will be obsoleted sooner or later.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
One can still switch to GTK2 however: either export <b>SWT_GTK3=0</b> in the shell before starting Eclipse or add this <b>two </b>lines to your eclipse.ini:<br />
<br /></div>
<pre>--launcher.GTK_version
2</pre>
<h4 style="text-align: left;">
Modeled UI</h4>
<div style="text-align: left;">
Eclipse 4.x UI layout is more flexible and removes some restrictions 3.x Eclipse had. Now one can place editors and views in the same stack and move editors outside of the main window. FWIW, I personally never used this flexibility, but there are always corner cases where this could be useful.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSQGbRSTT6hQtpLvGl1SjyZhwraGkEYRIQakkXUUSAAPBVFbl_T170n_NkuA1qiP-npJaMYALtIpnU0UVSDh3L02cfHydAbZA6KijfD5QrZSDmioxEatqUMMOEICDssOdQj6igu54T_9I/s1600/e4_flexibility.png" imageanchor="1" style="margin-left: auto; margin-right: auto;" title=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSQGbRSTT6hQtpLvGl1SjyZhwraGkEYRIQakkXUUSAAPBVFbl_T170n_NkuA1qiP-npJaMYALtIpnU0UVSDh3L02cfHydAbZA6KijfD5QrZSDmioxEatqUMMOEICDssOdQj6igu54T_9I/s1600/e4_flexibility.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Flexible UI</td></tr>
</tbody></table>
<br />
Unfortunately, with flexibility comes also complexity and bugs. So migration from 3.x workspace to 4.x with opened editors results in editors without close buttons and close menus (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=509712">bug 509712</a>). First time user who don't know this are surprised and are helpless to find out how to close the editor in the new world. Another bug (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=511798">511798</a>) is also not nice: if you have two editors in the split screen mode (like in example above), you will see an ugly white bar over them. <br />
<h4 style="text-align: left;">
Quick access <Ctrl+3></h4>
One shortcut every Eclipse user should learn is <Ctrl+3>, or "Quick Access". You can open views, start commands etc, very handy. To make it more prominent for new users, a permanent text box was added in the top right corner in Eclipse 4.x. Unfortunately, this changed the location and size of the resulting dialog, which a step backwards compared to 3.x. Instead to open in front of user and have appropriate size and location, it opens somewhere far right, with a small size where nothing really fits into.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeTfsu1Gv9wlZy5ie9fZOmSKOSuAX3DF21vcXdEouu222wCIJVczcipnpLExoVqDl3HwSJTSXrTO87cigznLQ_2ZC9BlQWDz0XRccyoeyunu3rlwBqWfecaRnQg3CWLeuekP9Oq8EyVXM/s1600/quick_assist_default.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeTfsu1Gv9wlZy5ie9fZOmSKOSuAX3DF21vcXdEouu222wCIJVczcipnpLExoVqDl3HwSJTSXrTO87cigznLQ_2ZC9BlQWDz0XRccyoeyunu3rlwBqWfecaRnQg3CWLeuekP9Oq8EyVXM/s1600/quick_assist_default.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Crippled Quick Assist in 4.x</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
Fortunately, there is a workaround which allows to restore 3.x L&F. One has to right click on the thin text box border and if one has luck, one will be able to click on the "Hide" menu:<br />
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiCaS6i_R3L6CPuKjoClU7cttASxED-LOsyLSZ9FzcgGiW8Ny6AoLQZO0J0aAlkc-YdyVu3KmyLRdzQy9hVtYlgNTuAkBlyGT-X489NHefIqRxrkzHiYLiC_YDbk76h0AhQ50BUDd_VT0/s1600/hide_quick_assist.png" imageanchor="1" style="margin-left: auto; margin-right: auto;" title=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiCaS6i_R3L6CPuKjoClU7cttASxED-LOsyLSZ9FzcgGiW8Ny6AoLQZO0J0aAlkc-YdyVu3KmyLRdzQy9hVtYlgNTuAkBlyGT-X489NHefIqRxrkzHiYLiC_YDbk76h0AhQ50BUDd_VT0/s1600/hide_quick_assist.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Hide that ugly box!</td></tr>
</tbody></table>
<br />
and voila, the old good quick assist appears at the expected location and with size where everything fits:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUjv9v_ogtY7AWeE_28RHucYmMl4QcMHFDznMXWrZmcUHVOiiV-jnJorkTQy8dMDG99HZ-Lt6JYXqg3b7KUiuni1oOgw07KQDXMyz_ueph9tejrdeenl4MewlGRVDJbysTMH9OM_hAcL8/s1600/quick_assist_like3x.png" imageanchor="1" style="margin-left: auto; margin-right: auto; outline: 1px dashed red;" title=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUjv9v_ogtY7AWeE_28RHucYmMl4QcMHFDznMXWrZmcUHVOiiV-jnJorkTQy8dMDG99HZ-Lt6JYXqg3b7KUiuni1oOgw07KQDXMyz_ueph9tejrdeenl4MewlGRVDJbysTMH9OM_hAcL8/s1600/quick_assist_like3x.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Welcome back, quick assist with 3.x L&F!</td></tr>
</tbody></table>
<h4 style="text-align: left;">
Open resource <Ctrl+Shift+R></h4>
<div style="text-align: left;">
Open Resource dialog got some love. It can now filter duplicated resources, show or hide derived resources, show only files from specific working set. Additionally, files can be either opened with a default editor or user can choose which editor should be used to open them.</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmEgCdwqv6tikpR4rn7HsAdDsEgINDMxZp0fAJ2nyemA82YN3s6oKku7KvZrS448yYjDepNzn3SssGJ_m_1KPDUvPC2KQRnekGpw390lfeI51KDKgTJ9pLe7zWaOnvx1WmA2JHw7uSAf4/s1600/open_resource.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" title=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmEgCdwqv6tikpR4rn7HsAdDsEgINDMxZp0fAJ2nyemA82YN3s6oKku7KvZrS448yYjDepNzn3SssGJ_m_1KPDUvPC2KQRnekGpw390lfeI51KDKgTJ9pLe7zWaOnvx1WmA2JHw7uSAf4/s1600/open_resource.png" title="" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvvvehJEhMgnfOyWmByralGmwI-s7khDOtP3KEAy1C2G7z39qhJbWrXhofCNGhsbmGOnTEXt-NLVBROyo7WV0lCI3KwpNLjsStLrC6reAUfJhAZLsaXPsomjo7PdgZo89oRODH7plmMSs/s1600/open_resource2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvvvehJEhMgnfOyWmByralGmwI-s7khDOtP3KEAy1C2G7z39qhJbWrXhofCNGhsbmGOnTEXt-NLVBROyo7WV0lCI3KwpNLjsStLrC6reAUfJhAZLsaXPsomjo7PdgZo89oRODH7plmMSs/s1600/open_resource2.png" title="" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<h4 style="text-align: left;">
Split editor</h4>
<div style="text-align: left;">
Sometimes one want to see code from two functions at same time - in a large file this is of course not possible, therefore there is now a new <b>Window > Editor > Toggle Split Editor</b> menu:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUOJs-C3bXVaEYkd_Xe4WNMKuRFnSsGzf4ofTNY0M36AtCUEuMOEH7jm6U3HM47xZSdgzaYA6izHPEeRT5ceddbpIx4rvhVX-adi-uF3Wa-r1l_USS8IafWgUtZEaLR_xWnYAuvrVJSZ8/s1600/spliteditor.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUOJs-C3bXVaEYkd_Xe4WNMKuRFnSsGzf4ofTNY0M36AtCUEuMOEH7jm6U3HM47xZSdgzaYA6izHPEeRT5ceddbpIx4rvhVX-adi-uF3Wa-r1l_USS8IafWgUtZEaLR_xWnYAuvrVJSZ8/s1600/spliteditor.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Split editor vertical</td></tr>
</tbody></table>
</div>
<h4 style="text-align: left;">
Word wrap <Alt+Shift+Y></h4>
<div style="text-align: left;">
<a href="http://javaclipse.blogspot.de/2015/11/can-you-believe-it.html">Believe or not</a>, it took only 12 years for Eclipse to implement soft wrapping in text editors. But better later then never, we have now a button on the toolbar and a shortcut <Alt+Shift+Y> to toggle word wrapping in the current editor:<br />
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img alt="" class="transparent" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLwecXj0M83h7KVl_KeGELua97Z8sgPj-ElKDC5eavQKG-wzzwSKrVFfVekfhXvBzKKxTlnr2MvaK7LhQUAdTsmsa4xE29i4s2f4ENKvu2nImkeaDBZOYHtklSK5tT5oZUBbhCC58lIRU/s1600/word_wrap.png" style="margin-left: auto; margin-right: auto;" title="" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Word wrap!</td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<h4 style="text-align: left;">
Configure left and right sides in Compare editors</h4>
<div style="text-align: left;">
Another one change we waited about 10 years <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=213780">finally quietly made into</a> Eclipse 4.6.2 release: one can configure Eclipse to show the new changes on the <b>right</b> side of the diff editor! Unbelievable, but differently to the rest of the world, Eclipse always has shown local changes not on the right but on the left side, which was and is quite surprising for everyone.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Since the old way was there for a decade, by default, the compare editor still shows the local changes on the left side, but the user finally can change this! There are two ways to do so: a new "swap left and right view" button in the compare editor toolbar:<br />
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcyshFP7h-8QLU2yYXqOIDss0yoPZanzLDqIrnoPkyIOOKAJYXkj0HcY0GOx4NuhaWBCgdOyTJJB1IiDW8MHnU36gkecMOYQIiZDbxX3gT3ybo6V-QtO-OHeLynO8CFJCT80iMYA7ipro/s1600/compare_swapped.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcyshFP7h-8QLU2yYXqOIDss0yoPZanzLDqIrnoPkyIOOKAJYXkj0HcY0GOx4NuhaWBCgdOyTJJB1IiDW8MHnU36gkecMOYQIiZDbxX3gT3ybo6V-QtO-OHeLynO8CFJCT80iMYA7ipro/s1600/compare_swapped.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Local changes on the <b>right</b> side!</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
and the <b>Window > Preferences > General > Compare / Patch > Text Compare > Swap left and right</b>:<br />
</div>
<div style="text-align: left;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOueD29drc-mwfv9EGkNMPhNsJB00fEv8lXIQCByeB4CdmiQ7GSQasSasfGQOFcVF6qZaharoBrIg9LLjsiXPjvos3zyJz33T1YTa1S43TKH8cGCLVMySC9-ACYb0RUyyIINuoP7u8ZUg/s1600/compare_swap_sides_prefs.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOueD29drc-mwfv9EGkNMPhNsJB00fEv8lXIQCByeB4CdmiQ7GSQasSasfGQOFcVF6qZaharoBrIg9LLjsiXPjvos3zyJz33T1YTa1S43TKH8cGCLVMySC9-ACYb0RUyyIINuoP7u8ZUg/s1600/compare_swap_sides_prefs.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Preference to see local changes on the <b>right</b> side</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<h4 style="text-align: left;">
Console improvements </h4>
<div style="text-align: left;">
Word wrap button is also added to all I/O consoles, where it enables soft word wrapping for long output. Beside this, I/O consoles got "automatic scroll lock" mode, which is automatically enabled by scrolling up in the Console view using keys, mouse wheel, or scroll bar. When you scroll down to the end of the console, the scroll lock is automatically released again.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEenJ5q21WMDLGF0UD-Ma1sS-Hj743KsFEaWkYvRxL5-WNs3rEInpLyFLemcB4JHtB2a-cLFm6_HffkS198-rxWdWnBjP_4-3Y2myekL_Bl0BAodGLfFowBJNS6Kf_xICle71MqOQ7OkI/s1600/console_improvements.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEenJ5q21WMDLGF0UD-Ma1sS-Hj743KsFEaWkYvRxL5-WNs3rEInpLyFLemcB4JHtB2a-cLFm6_HffkS198-rxWdWnBjP_4-3Y2myekL_Bl0BAodGLfFowBJNS6Kf_xICle71MqOQ7OkI/s1600/console_improvements.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Console with word wrap and scroll lock</td></tr>
</tbody></table>
</div>
<h4 style="text-align: left;">
Root of all evil</h4>
<div style="text-align: left;">
<strike>Don't drink and drive</strike> Don't run Eclipse as root! This happens seldom, but if it happens, it will you make busy for the next few hours. Finally, Eclipse helps us and allows prevent to start it with root rights via new command line option: <b>-protect root</b>.<b> </b>This option will make sure Eclipse don't start if you have root rights on Linux.</div>
<div style="text-align: left;">
<br /></div>
<h4 style="text-align: left;">
Show in system explorer</h4>
<div style="text-align: left;">
Right click on any file or folder in Eclipse and say <b>Show In > System Explorer</b>. This will open system default "Explorer" and highlight the selected file or folder. In case the system default "Explorer" doesn't open (Linux), the command line to launch it can be configured under <b>Window > Preferences > General > Workspace > </b>Command for launching system explorer.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij0AYS2xnu5wlHIExOyL2K5ZUJQd7FWuN9LB9BOdPHKCoFkY7k60zB_vUvXoPTO09hjBxxQiIJ-oP1t4I0c8CnuX-kcu5uUdDEtJxi9pNVzDsMdHZpvzSFDoU43cN3WSXtH_q99irHi3U/s1600/show_in_system_explorer.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij0AYS2xnu5wlHIExOyL2K5ZUJQd7FWuN9LB9BOdPHKCoFkY7k60zB_vUvXoPTO09hjBxxQiIJ-oP1t4I0c8CnuX-kcu5uUdDEtJxi9pNVzDsMdHZpvzSFDoU43cN3WSXtH_q99irHi3U/s1600/show_in_system_explorer.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Show In System Explorer</td></tr>
</tbody></table>
</div>
<h4 style="text-align: left;">
Improved Open With ... Other dialog</h4>
<div style="text-align: left;">
The <b>Open With > Other...</b> dialog now has:<br />
</div>
<div style="text-align: left;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9RNxmWNukzRmvjfiD_joYtBx9SNjd5_4MJG8mc7SfKMOCa2vUDECZD-DoqCXJp-Atwi99tn9xidww4pJPGtzp0Tv0pRSnIEzzzz0wiTbxkJNOYnDR1kkJWjPt707G1rZIogtVSO7PE4E/s1600/open_with_editor.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9RNxmWNukzRmvjfiD_joYtBx9SNjd5_4MJG8mc7SfKMOCa2vUDECZD-DoqCXJp-Atwi99tn9xidww4pJPGtzp0Tv0pRSnIEzzzz0wiTbxkJNOYnDR1kkJWjPt707G1rZIogtVSO7PE4E/s1600/open_with_editor.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Open With... extended</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<ul>
<li>a filter field</li>
<li>remembers last used choice </li>
<li>options to remember the selected editor as default for the selected file name or type.</li>
</ul>
<h4 style="text-align: left;">
Tabs "Close..." menus</h4>
<div style="text-align: left;">
The context menu of editor and view tabs now offer <b>Close Tabs to the Left</b> and <b>Close Tabs to the Right</b> menu:<br />
</div>
<div style="text-align: left;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtyz4u67Kc4sWkK0xtktBp9cdLP1jMGch34JOJcQtkbDOJqjrxAGy6knNBvDSniG715AxNFgycHlo8faI3rGNXIFOeLXJLEsWLYZX2lwzWP6h1ShcavHUehAgnLlXNaxsqbEyk7SEEoDo/s1600/close_tabs_menu.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtyz4u67Kc4sWkK0xtktBp9cdLP1jMGch34JOJcQtkbDOJqjrxAGy6knNBvDSniG715AxNFgycHlo8faI3rGNXIFOeLXJLEsWLYZX2lwzWP6h1ShcavHUehAgnLlXNaxsqbEyk7SEEoDo/s1600/close_tabs_menu.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Tabs menu</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<h4 style="text-align: left;">
MRU or automatic editor shuffling</h4>
In classic 2.x versions of Eclipse the editors tab placement strategy
was simple: they were shown in exact the order they were opened by the user. This is how all tools in the universe work. Then, in Eclipse 3.0 this simple universal standard was changed to show the most recently used tabs (MRU) first, and <b>automatically</b> reorder tabs to always show few last used if there is not enough place to show all. This change was highly controversial, see lengthy discussions in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=68684">bug 68684</a>. Finally, via <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=461736">bug 461736</a> the
tab visibility strategy has has been turned into a separate preference, so everyone can decide if MRU should be turned on or off.<br />
<br />
The new preference can be found under
<b>Window > Preferences > General > Appearance > Visible Tabs on overflow > Show most recently used tabs:</b><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw0OmFTtdKtw8LNZs-dwca7CGpRK9Fd5MUZUGfH3AVbmAv0B71ecDnTGQcHWafuHYQeygEbisYtkUUF9bHq32NVU98Ox9MWpwR9P9Z0pyZI3nKCIGOTTH0NpXrQa4bHfsp3cEMAmA1Eys/s1600/mru_off.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw0OmFTtdKtw8LNZs-dwca7CGpRK9Fd5MUZUGfH3AVbmAv0B71ecDnTGQcHWafuHYQeygEbisYtkUUF9bHq32NVU98Ox9MWpwR9P9Z0pyZI3nKCIGOTTH0NpXrQa4bHfsp3cEMAmA1Eys/s1600/mru_off.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">MRU off!</td></tr>
</tbody></table>
<br />
<h4 style="text-align: left;">
UI responsiveness monitoring</h4>
<div style="text-align: left;">
This feature is might be uninteresting for the end user, but it greatly helps IDE developers to recognize misbehaved code which causes UI freezes. UI responsiveness monitoring can be turned on via <b>Window > Preferences > General > UI Responsiveness Monitoring</b>.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8hKiqDCUCJ8Ju4A8UvPAysePWsklrALlwysmvkyTiCyYYq6gxlQoA3eXhczS2aH7H3pIbUDGf6HnaFWjM7Twfxp9BYOy7YJxiwmLvedb4EA91rfBdb8W0lXNkZXdb2pCi1jICzdpuk70/s1600/ui_responsiveness_settings.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8hKiqDCUCJ8Ju4A8UvPAysePWsklrALlwysmvkyTiCyYYq6gxlQoA3eXhczS2aH7H3pIbUDGf6HnaFWjM7Twfxp9BYOy7YJxiwmLvedb4EA91rfBdb8W0lXNkZXdb2pCi1jICzdpuk70/s1600/ui_responsiveness_settings.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">UI responsiveness preferences</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
Please enable monitoring and please report UI freezes (they are reported to the Eclipse error log) to <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform">bugzilla</a>.</div>
<h4 style="text-align: left;">
Copy/paste for files improved</h4>
<div style="text-align: left;">
<Ctrl+C > / <Ctrl+V> of a files in same folder in explorer views to create a copy automatically proposes now just the old name followed by the digit 2 (or 3, etc., if that name is already taken). This is really handy if one wants create few file duplicates in same folder.</div>
<h4 style="text-align: left;">
Shortcut for Skip All Breakpoints
<b> </b></h4>
<div style="text-align: left;">
A very handy <b>Ctrl+Alt+B</b> has been added as the shortcut for <b>Skip All Breakpoints</b>:</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpdoY9qJWqSo6goOb6epiXdYt_3go6JrwyucoJvlzpcD4n_RhAOku53-xKKhxsGtfpZt0kb2gJ0dYDYEMrvjfstcZo9_5_h-2EGhFiYP1jj8508hAeaZ5bEA4EnMXDoE1z0aZ6nL9rTr0/s1600/skip-all-breakpoints.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" title=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpdoY9qJWqSo6goOb6epiXdYt_3go6JrwyucoJvlzpcD4n_RhAOku53-xKKhxsGtfpZt0kb2gJ0dYDYEMrvjfstcZo9_5_h-2EGhFiYP1jj8508hAeaZ5bEA4EnMXDoE1z0aZ6nL9rTr0/s1600/skip-all-breakpoints.png" title="" /></a></div>
<h4 style="text-align: left;">
Zoom font in editors <Ctrl++> and <Ctrl+-></h4>
<span style="font-weight: normal;">In text editors, you can now use Zoom In <Ctrl++> or <Ctrl+=> and Zoom Out <Ctrl+-> commands
to increase and decrease the font size.</span> Like a change in the <b>Window > General > Appearance > Colors and Fonts</b> preference page, the commands persistently
change the font size in all editors of the same type. If the editor type's font is configured to use a default font,
then that default font will be zoomed.<br />
<br />
<h4 style="text-align: left;">
Automatic save of dirty editors</h4>
<div style="text-align: left;">
Auto-save of dirty editors is now available in Eclipse. The autosave option is <b>disabled by default</b>.
A new autosave preference page (<b>Window > Preferences > General > Editors > Autosave</b>)
is available and allows to enable/disable the autosave and change the
interval of autosave.
The countdown is reset on keyboard activity, mouse click, or when a
popup is displayed (e.g. content assist, preference page, ...).<br />
</div>
<div style="text-align: left;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWFRy0CAUoJ9uVBRYiZ_wywEzXG9LyMJNSGaWvQFtChEc63WIWnPVVWWoD7Jtzh7k4gXnk6Q6q-SRx4yVjsTZv44F3E-SSgYNtP7RPuWcxiccxx-6nM5M12AApYr1Sp8kiS6fM0v9stuU/s1600/autosave_editors.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWFRy0CAUoJ9uVBRYiZ_wywEzXG9LyMJNSGaWvQFtChEc63WIWnPVVWWoD7Jtzh7k4gXnk6Q6q-SRx4yVjsTZv44F3E-SSgYNtP7RPuWcxiccxx-6nM5M12AApYr1Sp8kiS6fM0v9stuU/s1600/autosave_editors.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Autosave preferences</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<h4 style="text-align: left;">
Workspace selection dialog</h4>
</div>
<div style="text-align: left;">
The workspace selection dialog now allows you to start a previously selected
workspace directly via a link. The path to
the workspace is shortened. The full path is available if you hover over the link.
You can remove existing entries via the context menu.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdFP3I8hAvAoT8OYaqnCgRtqxHC6eXicPpcwiDkuPjgbG7ZW3nfTGN4T0VDelnPujgXLeEu34F9p0QkT8QAgDCgNJOuYn9Mp74mfmHeFK_JXAN1PRpYidGfyfJNEG7bnWFEWUynzz6y5Y/s1600/workspace_selection.png" imageanchor="1" style="margin-left: auto; margin-right: auto;" title=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdFP3I8hAvAoT8OYaqnCgRtqxHC6eXicPpcwiDkuPjgbG7ZW3nfTGN4T0VDelnPujgXLeEu34F9p0QkT8QAgDCgNJOuYn9Mp74mfmHeFK_JXAN1PRpYidGfyfJNEG7bnWFEWUynzz6y5Y/s1600/workspace_selection.png" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Workspace selection dialog</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
<h4 style="text-align: left;">
Screen space tweaks</h4>
<div style="text-align: left;">
Main toolbar can be hidden (<b>Window > Appearance > Hide Toolbar</b>), and Eclipse window can be put in the "Full Screen" mode without title bar (<b>Window > Appearance > Toggle Full Screen</b>). In 4.7 there will be another tweak: <b>Window > Appearance > Hide Status Bar</b>. Guess what it will do :-)</div>
<h4 style="text-align: left;">
Print button is hidden</h4>
<div style="text-align: left;">
Yep,
the global toolbar does not show "Print" button by default, to save
space. It turned out, no one actually uses this function, so why should
it be on the main toolbar?</div>
<h4 style="text-align: left;">
Default text editor for unknown files</h4>
<div style="text-align: left;">
Since ever Eclipse tried to open a system editor for files which did not have a dedicated editor in Eclipse. In 4.x there is a possibility to stop this and to chose to always use default text editor from Eclipse instead.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
On the <b>Window > Preferences > General > Editors > File Association</b> page, you can now define an editor selection
strategy for unassociated file types. Three strategies are proposed out-of-the-box:
</div>
<ul>
<li><b>System Editor; if none: Text Editor</b> (default) will open the system editor associated with the file, if available. If no system editor
is associated with the given file, fall back to the Eclipse Text Editor</li>
<li><b>Text Editor</b> will always open Eclipse's Text Editor on unassociated file types</li>
<li><b>Ask via pop-up</b> will open the same dialog as using <b>Open With > Other...</b> on a file and let you choose which
editor to use (inside or outside the IDE)</li>
</ul>
Keep in mind that in any case, it's possible to assign an editor
for an unassociated file type either via this same preference page,
or via the <b>Open With > Other...</b> context-menu on the file<br />
<br />
<h4 style="text-align: left;">
Eclipse sources are in Git</h4>
<div style="text-align: left;">
Along with 4.x transition, all Eclipse sources were moved to Git (from CVS). This opened a really nice path for contributions. If you are interested in Eclipse hacking, or just want to fix this nasty XYZ bug - please consider to contribute back to the community: <a href="https://wiki.eclipse.org/Platform_UI/How_to_Contribute">https://wiki.eclipse.org/Platform_UI/How_to_Contribute</a>.</div>
</div>
</div>
</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com1tag:blogger.com,1999:blog-342159971341432126.post-79878807448351225712016-06-19T20:24:00.000+02:002016-06-19T20:24:03.943+02:00FindBugs 3.1.0 preview #2<div dir="ltr" style="text-align: left;" trbidi="on">
Week ago I've wrote about <a href="http://javaclipse.blogspot.com/2016/06/findbugs-on-java-9.html">FindBugs on Java 9</a> first preview. This FindBugs build was based on my private snapshot builds of <a href="http://asm.ow2.org/" style="background-color: white; color: #009eb8; display: inline; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px; outline: none; text-decoration: none; transition: color 0.3s;">ASM</a><span style="background-color: white; color: #333333; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px;"> and </span><a href="https://commons.apache.org/proper/commons-bcel/" style="background-color: white; color: #009eb8; display: inline; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px; outline: none; text-decoration: none; transition: color 0.3s;">BCEL</a> projects. Now I'm happy to announce that we've finally got official RC/alpha builds from both projects supporting Java 9, so I've updated the FindBugs 3.1.0 preview to use exact those released binaries.<br />
<br />
The <a href="http://javaclipse.blogspot.com/2016/06/findbugs-on-java-9.html">original steps</a> to get FindBugs Eclipse plugin 3.1.0 preview working on Java 9 are almost same, except that now the step 5 (plugin installation) is changed and you should do this:<br />
<span style="background-color: white;"><ul style="text-align: left;">
<li><span style="color: #333333; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px;">Go to the </span><span style="color: #333333; font-family: Helvetica Neue Light, HelveticaNeue-Light, Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 14px; line-height: 19.6px;"><a href="https://github.com/findbugsproject/findbugs/releases/tag/3.1.0_preview2">https://github.com/findbugsproject/findbugs/releases/tag/3.1.0_preview2</a> page and download <a href="https://github.com/findbugsproject/findbugs/releases/download/3.1.0_preview2/findbugs_3.1.0_preview2_update_site_3.1.0.20160619-68c6293.zip">findbugs_3.1.0_preview2_update_site_3.1.0.20160619-68c6293.zip</a> to local folder. Now in Eclipse, go to </span></span><i style="color: #333333; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px;">Help -> Install New Software -> Add... -> Archive...</i><span style="color: #333333; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px;"> -> select this </span><span style="color: #333333; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px;"><b>findbugs_3.1.0_preview2_update_site_3.1.0.20160619-68c6293.zip</b> file, give the update site any name you like, click on OK and now you can update the </span><a href="http://findbugs.sourceforge.net/" style="color: #009eb8; display: inline; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px; outline: none; text-decoration: none; transition: color 0.3s initial initial;">FindBugs</a><span style="color: #333333; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px;"> plugin to 3.1.0 version with Java 9 support.</span></li>
</ul>
<div>
<span style="color: #333333; font-family: Helvetica Neue Light, HelveticaNeue-Light, Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 14px; line-height: 19.6px;">So it would be nice if you could test this and <a href="https://github.com/findbugsproject/findbugs/issues">report bugs</a>.</span></span></div>
</span></div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-85050359167497782952016-06-09T20:34:00.000+02:002016-06-19T20:07:57.924+02:00Quick setup for developing on pure SDK<div dir="ltr" style="text-align: left;" trbidi="on">
There is Oomph and other tools around, but they all add significant overhead in case you simply want use latest nightly Eclipse SDK build for hacking on Eclipse platform or EGit.<br />
<br />
I've merged three install files (from Platform UI, EGit and my own) to one, so all what I need after downloading a fresh nightly Eclipse SDK build is to go File -> Import -> Install Software Items from File -> select <a href="http://andrei.gmxhome.de/ui_egit_tools.p2f">ui_egit_tools.p2f</a> file, check all boxes, and relax. On next restart the SDK is ready for hacking.</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-7336338320148588062016-06-09T18:23:00.000+02:002016-06-19T20:07:41.516+02:00FindBugs on Java 9<div dir="ltr" style="text-align: left;" trbidi="on">
We have summer in Germany and as usually in sommer time I had my yearly surgery visit with some parts of me broken in some unnatural ways. After those visits I usually enjoy nice days at home playing around with my preferred toys. So to continue this <a href="http://www.jroller.com/andyl/entry/my_luna_release">summer break</a> tradition, I've released today a <a href="https://github.com/findbugsproject/findbugs/releases/tag/3.1.0_preview1">preview of FindBugs 3.1.0 with Java 9 support</a>.<br />
<br />
This preview build includes standalone <a href="http://findbugs.sourceforge.net/">FindBugs</a> binary and an offline (archived) update site with 3.1.0 <a href="http://findbugs.sourceforge.net/">FindBugs</a> Eclipse plugin, both learned Java 9 now.<br />
<br />
See the <a href="https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2016-June/004286.html">preview release notes</a> with details.<br />
<br />
Please note, that this is a <b>preview</b> build. I mean, Java 9 is still "work in progress", each new Java build may break something (and does it on regular base, see for example <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=493761">bug 493761</a>). The two main bytecode libraries we use in FindBugs (<a href="http://asm.ow2.org/">ASM</a> and <a href="https://commons.apache.org/proper/commons-bcel/">BCEL</a>) are also still "work in progress" and have not yet officially released they Java 9 compatible builds, so everything is really "in flow".<br />
<br />
But our JUnit tests pass, my smoke test passes too, and I've got confirmation from one user (<a href="https://github.com/findbugsproject/findbugs/issues/105">thanks, Vincent!</a>) that his own tests were fine too. So this really sounds like a solide, well tested preview :-)<br />
<br />
I hope you will test the preview too because we need confidence that everything works as expected before releasing this <strike>crap</strike> to the world. <span style="font-size: large;">So please go, <a href="https://github.com/findbugsproject/findbugs/releases/tag/3.1.0_preview1">download</a> and test that damn bytes now, you!</span><br />
<br />
<i>But how can I test Java 9, FindBugs and Eclipse? </i><br />
<i>There is no official Eclipse build supporting Java 9?</i><br />
<br />
That's easy if you follow steps below (please read them carefully!).<br />
<ol style="text-align: left;">
<li>Download Java 9 SDK for your platform from <a href="https://jdk9.java.net/download/">https://jdk9.java.net/download/</a>.</li>
<li>Download Eclipse 4.6 RC4a SDK for your platform from <a href="http://download.eclipse.org/eclipse/downloads/drops4/S-4.6RC4a-201606061100/">http://download.eclipse.org/eclipse/downloads/drops4/S-4.6RC4a-201606061100/</a>.</li>
<li>If you plan to use Java 9 as <b>runtime</b> platform for Eclipse, you will hit <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=493761">bug 493761</a>, so to be able to run Eclipse on Java 9, after unzipping Eclipse, please modify eclipse.ini and add this 2 lines right after "-vmargs" line:<br /><br />
<pre>-vmargs
-addmods
java.se.ee
</pre>
<br /> This is how my own eclipse.ini looks like on Linux GTK2:
<br /><br /><pre>-startup
plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444
-vm
/opt/java/jdk-9/bin
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
--launcher.appendVmargs
--launcher.GTK_version
2
-vmargs
-addmods
java.se.ee
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx4G
</pre>
</li>
<li>In Eclipse, install <a href="https://wiki.eclipse.org/Java9">JDT Java 9 patch</a> from this site (see instructions on the page how): <a href="http://download.eclipse.org/eclipse/downloads/drops4/P20160609-0900/">http://download.eclipse.org/eclipse/downloads/drops4/P20160609-0900/</a>.</li>
<li>Go to the <a href="https://github.com/findbugsproject/findbugs/releases/tag/3.1.0_preview1">https://github.com/findbugsproject/findbugs/releases/tag/3.1.0_preview1</a> page and download <a href="http://update_site_3.1.0.20160609-91ad577.zip/">update_site_3.1.0.20160609-91ad577.zip</a> to local folder. Now in Eclipse, go to <i>Help -> Install New Software -> Add... -> Archive...</i> -> select this <b>update_site_3.1.0.20160609-91ad577.zip</b> file, give the update site any name you like, click on OK and now you can update the <a href="http://findbugs.sourceforge.net/">FindBugs</a> plugin to 3.1.0 version with Java 9 support.</li>
<li><strike>Enjoy</strike>. II mean, <b>test :-)</b>. <br />P.S.Bug tracker for issues: <a href="https://github.com/findbugsproject/findbugs/issues">https://github.com/findbugsproject/findbugs/issues</a>.</li>
</ol>
</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-41180366130382541062016-03-11T16:41:00.000+01:002016-03-15T07:42:45.301+01:00Stable tests and transition to Java 8<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
Java is a nice language, but it cannot prevent you from doing stupid things.<br />
<br />
During Java 7 to 8 transition I've spend most of the time not by fixing compile errors (there were actually no compile errors) but by fixing "unstable" code where the software was behaving differently on Java 8 compared with Java 7. The reason for many of such differences was the unfortunate choice of the Java Map/Set containers used in our code - and in this post I would like to explain how one can write more stable code.<br />
<br />
You may know that Java offers very rich standard class library, and offers many implementations for Map/Set interfaces. In most cases the "unstable" code was using HashMap / HashSet classes, which are usually the perfect, "default" choice for code using Map/Set functionality ... unless you change the hash function and your code relies on the iteration order over the map/set data.<br />
<br />
One can easily break the tests by using "foreach" loops and HashMap. Check and guess what would be printed out for the code below:<br />
<br /></div>
<pre>Map<String, Object> map = new HashMap<>();
map.put("2", "World");
map.put("1", "Hello");
for(Entry<?, ?> entry : map.entrySet()){
System.out.println(entry.getKey() + ": " + entry.getValue());
}
</pre>
<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
And the answer is... In fact, you can't answer this question without running this code because the HashMap documentation states clearly:<br />
<br />
<blockquote class="tr_bq">
"This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time."</blockquote>
<br />
The code above <b>may</b> print "1: Hello\n2: World" or "2: World\n1: Hello".<br />
<br />
The iteration in the "foreach" loop depends on internal HashMap algorithms which are <b>not guaranteed</b> to remain stable over different versions. Even worse, the iteration order may change after inserting/removing entries into/from the map!<br />
<br />
In general this is not a problem if no one iterates over the map or set and the map/set is private - but it is definitely a problem if the map/set is exposed to the "external" caller code. Such code can iterate over the map/set and if doing so it can rely on the iteration order: Huston, we have a problem :-).<br />
<br />
Exact this happened during our Java 7 to Java 8 transition: the internal hash algorithm was changed and so the iteration order in HashMap/HashSet instances was changed too - almost all tests with hard coded expectations about map/set entries order were broken.<br />
<br />
Any test trying to iterate over a HashMap is deemed to be unstable, therefore one should know and use stable map classes:</div>
<pre>// Prints *always*:
// 2: World
// 1: Hello
map = new LinkedHashMap<>();
map.put("2", "World");
map.put("1", "Hello");
for(Entry<?, ?> entry : map.entrySet()){
System.out.println(entry.getKey() + ": " + entry.getValue());
}
// Prints *always*:
// 1: Hello
// 2: World
map = new TreeMap<>();
map.put("2", "World");
map.put("1", "Hello");
for(Entry<?, ?> entry : map.entrySet()){
System.out.println(entry.getKey() + ": " + entry.getValue());
}</pre>
<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
The important point here is: iteration order depends on the concrete Map
or Set implementation, as documented in the class Javadoc, and one must actually read this Javadoc carefully. <br />
<br />
Here is a small summary about maps and sets in Java which everyone should know.<br />
<h2>
Stable iteration order</h2>
The classes below have well defined, <b>guaranteed</b> iteration order.<br />
<h3>
Insertion order</h3>
<code>LinkedHashMap</code><br />
<code>LinkedHashSet</code><br />
<code>ConcurrentSkipListMap</code><br />
<code>CopyOnWriteArraySet</code><br />
<h3>
Key "natural" sort order</h3>
<code>TreeMap</code><br />
<code>TreeSet</code><br />
<code>ConcurrentSkipListSet</code><br />
<h3>
Enum definition order</h3>
<code>EnumMap</code><br />
<code>EnumSet</code><br />
<h2>
Not guaranteed iteration order</h2>
The classes below have <b>unspecified</b>
iteration order, thus the order is not "predictable" and not guaranteed
to remain stable and even can change at runtime after map/set
modification (entry removal/addition).<br />
<code>HashMap</code><br />
<code>HashSet</code><br />
<code>Hashtable</code><br />
<code>IdentityHashMap</code><br />
<code>IdentityHashSet</code><br />
<code>ConcurrentHashMap</code><br />
<code>WeakHashMap</code><br />
<h2>
When to use what?</h2>
So should we all now use <code>TreeMap</code>?<br />
<table class="wysiwyg-macro" data-macro-body-type="RICH_TEXT" data-macro-id="c4a0a8e2-1161-4da7-80a5-ba3b52516c80" data-macro-name="warning" data-macro-schema-version="1" data-mce-style="background-image: url('http://eshare.advantest.com/plugins/servlet/confluence/placeholder/macro-heading?definition=e3dhcm5pbmd9&locale=en_GB&version=2'); background-repeat: no-repeat;" style="background-image: url("/plugins/servlet/confluence/placeholder/macro-heading?definition=e3dhcm5pbmd9&locale=en_GB&version=2"); background-repeat: no-repeat;"><tbody>
<tr><td class="wysiwyg-macro-body"><span style="font-size: large;"><span data-mce-style="color: #ff0000;" style="color: red;"><b>OMG, NO!!!</b></span></span></td></tr>
</tbody></table>
We should always use the best suitable implementation, best fitting for our <b>concrete</b> use case.<br />
There is a reason why there are multiple different Map/Set implementations!<br />
The rule of thumb is:<br />
<ul>
<li>Standard code which does not iterate over entries, code for private caches etc can use <code>HashMap</code> <code>/ HashSet</code>.</li>
<li>Use<code> LinkedHashMap</code> / <code>LinkedHashSet</code>
for maps exposed as part of the API to other components. The API
exposing Map/Set objects should not make any assumptions how they will
be used, and if nothing else is documented, better to use a map with
predictable iteration order, so that client code does not suffer from
"random" iteration order.</li>
<li><code>TreeMap</code> / <code>TreeSet</code>
should only be used if there is a requirement for the map/set to be
sorted. It should not be used in other cases because the map/set needs
to maintain the sort order and it might cost an extra overhead.</li>
<li><code>Hashtable</code> should not be used in any code (it is too old/too slow).</li>
<li><code>EnumMap</code> / <code>EnumSet</code> are ... surprise ... to be used with Enum keys only - but they are pretty fast with them.</li>
<li><code>WeakHashMap</code> is for memory sensitive caches which can be regenerated at any time.</li>
<li><code>IdentityHashMap</code> uses object identity instead of <code>equals()</code>
to compare keys and is best suitable if the equal() implementation of
the key is not suitable for mapping (e.g. for List objects used as
keys).</li>
<li>All other Map/Set versions should be used only if one knows what they really intended to be used for.</li>
</ul>
</div>
</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-13859991805809187712016-03-06T16:35:00.001+01:002016-06-19T20:08:18.088+02:00Update site for FindBugs Eclipse plugin compatible with Eclipse 4.6<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;">I've uploaded a fresh snapshot of </span><a href="http://findbugs.sourceforge.net/" style="background-color: white; color: #009eb8; display: inline; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px; outline: none; text-decoration: none; transition: color 0.3s;">FindBugs</a><span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;"> Eclipse plugin to </span><span style="color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif;"><span style="font-size: 14px; line-height: 19.6px;"><a href="https://github.com/findbugsproject/findbugs/releases/tag/3.0.2_preview2">https://github.com/findbugsproject/findbugs/releases/tag/3.0.2_preview2</a>. </span></span><span style="color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif;"><span style="background-color: white; font-size: 14px; line-height: 19.6px;">There are zips for both the Eclipse update site and standalone version </span></span><span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;">of </span><a href="http://findbugs.sourceforge.net/" style="background-color: white; color: #009eb8; display: inline; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px; outline: none; text-decoration: none; transition: color 0.3s;">FindBugs</a><span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;">.</span><br />
<span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;"><br /></span>
<span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;">You can either use the zipped update site or use my default update site </span><span style="color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif;"><span style="font-size: 14px; line-height: 19.6px;"><a href="http://andrei.gmxhome.de/eclipse">http://andrei.gmxhome.de/eclipse</a> which now also contains the most recent </span></span><a href="http://findbugs.sourceforge.net/" style="background-color: white; color: #009eb8; display: inline; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px; outline: none; text-decoration: none; transition: color 0.3s;">FindBugs</a><span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;"> Eclipse plugin snapshot.</span><br />
<span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;"><br /></span>
<span style="color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif;"><span style="background-color: white; font-size: 14px; line-height: 19.6px;">The only reason for this preview build is to have </span></span><a href="http://findbugs.sourceforge.net/" style="background-color: white; color: #009eb8; display: inline; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px; outline: none; text-decoration: none; transition: color 0.3s;">FindBugs</a><span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;"> Eclipse plugin update site compatible with Eclipse 4.6.</span><span style="color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif;"><span style="background-color: white; font-size: 14px; line-height: 19.6px;"> D</span></span><span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;">ue some organisational issues we are unable to reach </span><a href="http://findbugs.sourceforge.net/" style="background-color: white; color: #009eb8; display: inline; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6px; outline: none; text-decoration: none; transition: color 0.3s;">FindBugs</a><span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;"> project owner and to put the update to the official project site at </span><span style="color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif;"><span style="font-size: 14px; line-height: 19.6px;"><a href="http://findbugs.sourceforge.net/">http://findbugs.sourceforge.net</a> (which still points to the old Google Code project)</span></span><span style="background-color: white; color: #333333; font-family: "helvetica neue light" , , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px; line-height: 19.6px;">.</span></div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-16558907018215422662015-11-22T22:08:00.000+01:002015-11-22T22:09:59.201+01:00AnyEdit 2.6.0 for beta testers<div dir="ltr" style="text-align: left;" trbidi="on">
I did some bigger <a href="https://github.com/iloveeclipse/anyedittools/releases/tag/2.6.0">changes</a> in <a href="http://andrei.gmxhome.de/anyedit/">AnyEdit</a> plugin related to "Compare To/Replace With" menu entries.<br />
<br />
They are now contributed differently to avoid duplicated menu entries and to better support workspace external files. Together with the <a href="http://download.eclipse.org/egit/updates-nightly">latest nightly build of EGit</a> one can see this menus first time in the Git Repositories view:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFGbi0VzIk-Sp75KttEwSY6eocpM6yPY8-fQ6Wqr8sD6t3GfnisoDAndxUThDLHYxLdgo88rMPvHkdy-E5tbRHPChfUq51N1SIuoSRAEMIqNsWHrUzlyAQJi3WJK5hGbcEtw2WWs0cQXk/s1600/compare_with_external.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="343" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFGbi0VzIk-Sp75KttEwSY6eocpM6yPY8-fQ6Wqr8sD6t3GfnisoDAndxUThDLHYxLdgo88rMPvHkdy-E5tbRHPChfUq51N1SIuoSRAEMIqNsWHrUzlyAQJi3WJK5hGbcEtw2WWs0cQXk/s640/compare_with_external.png" width="640" /></a></div>
<br />
<br />
This <a href="https://github.com/iloveeclipse/anyedittools/releases/download/2.6.0/2.6.0_beta_update_site.zip">beta offline update site</a> contains the not yet released 2.6.0 version of AnyEdit.<br />
<br />
It would be really nice if you could test and report possible regressions. If no one complain, I will release this in a week or so.<br />
<br />
P.S: be aware, I've dropped support for Eclipse 3.7 in AnyEdit. While technically this still should work, I do not plan to support Eclipse 3.7 anymore. Eclipse 3.8 is now the minimal platform version for AnyEdit.</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-88412292272619773942015-11-10T23:53:00.000+01:002015-11-11T06:42:07.963+01:00Can you believe it?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: left;">
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35779">1 bug</a>, <a href="https://bugs.eclipse.org/bugs/page.cgi?id=voting/bug.html&bug_id=35779">236 votes</a>, 12 years, <a href="https://git.eclipse.org/c/platform/eclipse.platform.text.git/commit/?id=b9b2985767adb11853f4c90f70695ca3596336ed">3 commits</a>, 472 changed lines and 2 icons later: <a href="http://download.eclipse.org/eclipse/downloads/drops4/I20151110-0800/">http://download.eclipse.org/eclipse/downloads/drops4/I20151110-0800</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLwecXj0M83h7KVl_KeGELua97Z8sgPj-ElKDC5eavQKG-wzzwSKrVFfVekfhXvBzKKxTlnr2MvaK7LhQUAdTsmsa4xE29i4s2f4ENKvu2nImkeaDBZOYHtklSK5tT5oZUBbhCC58lIRU/s1600/word_wrap.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35779" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLwecXj0M83h7KVl_KeGELua97Z8sgPj-ElKDC5eavQKG-wzzwSKrVFfVekfhXvBzKKxTlnr2MvaK7LhQUAdTsmsa4xE29i4s2f4ENKvu2nImkeaDBZOYHtklSK5tT5oZUBbhCC58lIRU/s1600/word_wrap.png" title="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35779" /></a></div>
<br />
P.S.:<br />
There are <b>for sure</b> few bugs here and there, so please help: <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform&component=Text">report bugs to platform/text</a> or <a href="https://wiki.eclipse.org/Platform_UI/How_to_Contribute">contribute patches</a>!<br />
P.P.S.:<br />
just found <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=481873">a bug</a> while preparing this screenshot :-)<br />
<br /></div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-5074490949566412442015-11-02T22:47:00.000+01:002015-11-11T06:42:07.958+01:00Icon issues with Eclipse 4.6<div dir="ltr" style="text-align: left;" trbidi="on">
In Eclipse 4.6 M3 many platform UI icons were changed from *.gif to *.png and old *.gif icons were removed.<br />
<br />
If your plugin have referenced those icons via icon="platform:/plugin/../*.gif" scheme like below:<br />
<br />
<pre>icon="platform:/plugin/org.eclipse.ui/icons/full/eview16/tasks_tsk.gif"
</pre>
<br />
then it is time to fix those icon references, or your icons will be shown in Eclipse 4.6 as nice red squares and your error log will grow and grow :-(<br />
<br />
So why <b>I'm</b> writing about this? If you want use <a href="http://findbugs.sourceforge.net/">FindBugs</a> Eclipse plugin with Eclipse 4.6, you will see that the last officially released 3.0.1 version used lot of platform icons and now affected by exact this icon type change. Don't worry, there is already an update for the plugin available, but due some organisational issues unfortunately not via the usual update site.<br />
<br />
How you can update to the fixed 3.0.2 <a href="http://findbugs.sourceforge.net/">FindBugs</a> plugin build then?<br />
<br />
Go to the <a href="https://github.com/findbugsproject/findbugs/releases/tag/3.0.2_preview">https://github.com/findbugsproject/findbugs/releases/tag/3.0.2_preview</a> page and download <a href="https://github.com/findbugsproject/findbugs/releases/download/3.0.2_preview/fb_3.0.2_preview.zip">fb_3.0.2_preview.zip</a>. Now in Eclipse, go to <i>Help -> Install New Software -> Add... -> Archive...</i> -> select this <i>fb_3.0.2_preview.zip</i> file, give the update site any name you like, click on OK and now you can update the <a href="http://findbugs.sourceforge.net/">FindBugs</a> plugin.<br />
<br />
Enjoy.<br />
<br /></div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0tag:blogger.com,1999:blog-342159971341432126.post-69513532055336983832015-06-30T16:32:00.000+02:002015-06-30T20:32:41.708+02:00Mars on Linux<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://www.eclipse.org/community/eclipse_newsletter/2015/june/">Eclipse is landed on Mars</a>, and now <a href="https://projects.eclipse.org/projects/eclipse.platform.ui/who">Platform UI team</a> (as well as <a href="https://projects.eclipse.org/projects/eclipse.platform.swt/who">SWT</a> and <a href="https://projects.eclipse.org/projects/technology.egit/who">EGit teams</a>) start
to receive new bug reports from our end users. That's OK, business as
usual after each release. Not OK is that we could get much less bug
reports, especially from our Linux users. Why?<br />
<br />
Eclipse Mars on
Linux uses first time GTK3 toolkit by default (all versions before 4.5
were on GTK2), and that is the major driver for new bugs from Linux
users. I'm writing this on Linux, and <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Eclipse&component=SWT&list_id=12111954&product=Platform&query_format=advanced&short_desc=gtk3&short_desc_type=allwordssubstr">know what I'm talking about</a>. Eclipse SWT team <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=340067">crafted the SWT GTK3 port with tremendous effort</a>,
but unfortunately GTK3 exists an a bunch of (partly incompatible)
versions with different API behavior, and developing a widget toolkit on
top of it is a pain, not a pleasure (IMHO).<br />
<br />
The major issue with
GTK3 is that if SWT is broken, it affects each and every Eclipse UI
plugin, at most unexpected places! Anyway, now this is default toolkit
and we must know how to work with it (or workaround it).<br />
<br />
So if you are on Linux and see a new UI regression on Eclipse Mars, please be aware that <b>if</b>
this a GTK3 issue, there is easy way to fix it - switch to back to the
GTK2 version (which is still supported by Eclipse 4.5). But before
switching the toolkit - try to help Eclipse and report the issue you
observe, so that the next release has a bug fix for it!<br />
<h3>
1. Search for similar bugs</h3>
Before reporting, please <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Eclipse&component=SWT&list_id=12111954&product=Platform&query_format=advanced&short_desc=gtk&short_desc_type=allwordssubstr">search for bugs</a>!
All properly reported GTK related bugs contain [GTK], [GTK2] or [GTK3]
keywords in the summary. If your bug is already reported, do not report
another one, but just add extra details you want to mention.<br />
<h3>
2. Check if the GTK3 to blame? </h3>
Try to check if your issue is GTK3 related: switch to GTK2. Either export <b>SWT_GTK3=0</b> in the shell before starting Eclipse or add this two lines to your eclipse.ini:<br />
<pre>--launcher.GTK_version
2</pre>
which has exact the same effect. If this helps, we will know that the problem is most likely GTK3 related.<br />
<h3>
3. Check if the GTK+ theme to blame?</h3>
Not always the GTK itself is a problem, but the current GTK theme (widget style).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiXANJUr9jNhIQ9iz_Z4khXdKE33gojcOVCrpNN0YJXaBzr6VmydKL-jf8YoBxElrxuq5_VOIpL8AUFi_4hYIMfWS4D7NRxrTQMwq1sXeLdaBo194AMxmDI-fstolAz_ATLs_eJKCKRuc/s1600/gtk_appearance_theme.png" /></div>
<br />
GTK applications can be "styled" - they can look and feel differently on same GTK version due the currently selected "style" or "theme". There are various GTK themes available, and some are better for use with Eclipse as others.<br />
<br />
<b>Beware of oxygen-gtk theme on GTK3!</b> This pair is known to be <b>extremely</b> buggy!<br />
<br />
Unfortunately, many distributions set the default KDE GTK theme to oxygen-gtk. It worked well in the past with the old GTK2, but on GTK3 this can be a source of multiple issues. If you are using KDE desktop, the first thing you should do is to check if you are using oxygen-gtk. If so, switch to another theme (Adwaita or <a href="https://github.com/jpfleury/clearlooks-phenix">Clearlooks-Phenix</a>). Later one is my favorite, and I even forked it to make it working on GTK2 <a href="https://github.com/iloveeclipse/clearlooks-phenix">in the way I like it</a> :-).<br />
<br />
Please note, that after switching GTK theme it is highly recommended to restart Eclipse to avoid unexpected side effects of half-zombied theme artifacts. If the problem do not disappear after restart we know it is independent from the theme.<br />
<h3>
4. Report the bug</h3>
If your bug is not <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Eclipse&component=SWT&list_id=12111954&product=Platform&query_format=advanced&short_desc=gtk3&short_desc_type=allwordssubstr">on the list</a>, prepare the information we need to triage it properly! First and foremost we want know exact Eclipse and GTK version used. Eclipse version is shown in the "About" dialog, GTK version is not that easy to retrieve. If you are on Eclipse 4.5, you can see GTK version used by SWT in the "Help -> About -> Installation Details -> Configuration" dialog - search for the "<b>org.eclipse.swt.internal.gtk.version</b>" property, it looks like:<br />
<pre>org.eclipse.swt.internal.gtk.version=2.24.28 </pre>
<br />
But of course on Linux we want use command line tools :-)<br />
For the rpm - based distributions (Fedora, RHEL, CentOS) it's easy: just call<br />
<pre>rpm -q gtk2; rpm -q gtk3</pre>
and you will see something like:<br />
<pre>gtk2-2.24.28-1.fc21.x86_64
gtk3-3.14.13-2.fc21.x86_64</pre>
<br />
For the debian based distributions (Ubuntu & Co) I know about two commands:<br />
<pre>apt list | grep installed | grep libgtk2.; apt list | grep installed | grep libgtk-3.</pre>
or <br />
<pre>dpkg -l | grep libgtk2.; dpkg -l | grep libgtk-3.</pre>
but both of them aren't that concise as rpm and print lot of unneeded information. Please also note inconsistent naming schema: <b>libgtk2</b> but <b>libgtk-3</b>. Nice and makes lot of sense, isn't?<br />
<br />
Now we know the installed GTK version we can go and submit bug report against <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform&component=SWT">Platform/SWT</a>. <br />
<b>NB</b>: please also add your operating system details, desktop environment (Unity/Gnome/KDE) and GTK+ theme used.<br />
<br />
<b>P.S.</b><br />
From my personal point of view SWT GTK3 port is still not on par with GTK2 and ideally shouldn't be made default for 4.5 - it <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=456345">wastes lot of space</a> and introduces <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Eclipse&component=SWT&list_id=12111954&product=Platform&query_format=advanced&short_desc=gtk3&short_desc_type=allwordssubstr">multiple regressions</a>. But the decision was made and only way to fix it now is to <a href="http://www.jroller.com/andyl/entry/from_outsider_to_insider">contribute to Eclipse</a>.</div>
Andrey Loskutovhttp://www.blogger.com/profile/09548188399628810900noreply@blogger.com0