Open Community Experience (OCX)

What’s new in Eclipse since the last OCX in Mainz

14:57 · 21 Apr 2026 – 23 Apr 2026 · YouTube

About this talk

This talk covers the new features and enhancements introduced in the Eclipse IDE and platform over the past 18 months. The speaker, Federico, a senior software developer at Vector Informatik, highlights significant updates across several versions, emphasizing contributions from the community. Key improvements include high DPI scaling for Windows, support for SVG images, and the integration of Edge as the default browser. The terminal view is now included by default, improving functionality, along with updates to the light theme and enhanced support for JUnit 6. The speaker also discusses advancements in debugging, including auto-resuming trigger points and conditional breakpoints, making the debugging process more efficient for developers.

Full transcript

[music] >> So, hello everyone. Welcome to this presentation today. Hopefully, you all had a great lunch and you're not about to get sleep. Um today's presentation is what's new in the Eclipse IDE, uh well, in the Eclipse platform actually, since the last OCX in Mainz, which was October 24. By the way, 18 months ago. My name is Federico. I'm a senior software developer engineer at Vector Informatik

and I've been a platform committer since 2023. So, time flies. And because I do not want this one to uh be one of those presentations where I just rush you through all the cool new features that Eclipse brought in the past 18 months, you're going to be you're going to see exactly why in a sec because there has been new and noteworthy entries. I mean, how's that

for an active community, right? We're going to be [applause] We're going to be covering six releases or only parts of it because it's been 18 months. And uh well, 91 of those are feature requests. I have to admit I was astonished to see how many features does uh how many new and noteworthy stuff, not only features JDT brings out. I thought platform platform was the most active,

but no. So, here you have the breakdown. Um JDT being clearly in the lead and then platform and PDE. Um I didn't focus on CDT, sorry. And um here's the release uh rhythm. As you can see, it's rather constant. There are spikes in there. 436 is the biggest one with 22 22 new and new noteworthy And um I am 438 and 439, so um December last year

and January this year are uh very strong with API and JDT activity. I don't want it to be one of these uh presentations where the last slide is the last one you see and you don't you don't remember it. So, let me say first and foremost, thank you to the community who made this releases possible and that makes every release possible. 158 contributors I counted in these

six releases. There are probably more. And so, thank you for that. Ordered alphabetically, not in the married order. And today I'm going to show you my very own personal top 15. Only that. For the rest, I'm going to refer you to the new and noteworthy, which is there on the internet. Let's start with the one that I was proud of because I was part of that, too.

And it's the monitor specific UI scaling for Windows. It had been already delivered on the 434 as an experimental feature. So, March last year and it had been active It has been activated by default in June, so 3 months later. Thank you to the feedback from the community. It's still being worked on. I mean, there are some things here and there that are being polished. So, if

you find something, please report it. Here's how you can Well, actually deactivate it if you don't want it for whatever reason. It's activated by default and I don't know if you see it in here. Yeah, I think you can appreciate the the difference between the before and after or actually without the high DPI and with it's the same release. there you go. [snorts] Big win. Our colleagues

were actually irritated that it looks so good when we released that. No joke. Now there's support for SVG images. Previously, you had to deliver PNGs in various size. You probably remember these at 2x images for double scaling or for bigger resolution. Now you can just drop SVGs in there one file and it's going to be scaled automatically. Also, thank you for the to the contributors for that.

There's also an improved Yeah, the improved disabled icons generation. Previously, you also had to deliver the pictures to um the disabled pictures of the icons that you shipped. Now you can just the icon itself and SWT is going to do the disablement or there's disabled There's grayed out and there's desaturated two different algorithms. And here you can see it looks rather good. GTK does it a little

bit different, but in SWT. The next one also the result of hard work and probably months of work. Edge is now the default or it is the default browser for Windows ever since 4.25. Yeah, so March last year. That was a huge win and I think if I recall correctly, that allowed the SAP people to build their very nice chat window for for your app up agent.

>> [snorts] >> Really good. And as you all know, Internet Explorer was deprecated a long time ago. So it was long time overdue. great win. Console. Yes, every major IDE has this. Eclipse now has it, too. You can You have it installed per default in the last release. It has been released uh as an optional stuff in September last year. But now it comes It ships with

the default installation. And basically, you can just open the terminal view and just select a terminal in there, whatever you have installed in your system, and it's going to work with syntax coloring, auto completion, everything. Here you see how I use my Git with Git Bash in my IDE. Really cool. You can also attach a console to your run configuration if you want to use it while

you're programming and launching your product or application. Another one, the improved light theme. Um the light theme the improvements were released as a preview in 433, so um March, yeah. you had to select it separately, but in uh 435 they have been incorporated to the standard light theme. So one uh few stuff changed like um the flat look, no more 3D gradients, so it looks a little

bit more modern, more similar to other major IDEs. And one concept that I really really loved and never really paid attention until someone explained it to me is like there's this main actor, which is your code, and there's the supporting actors, which are all the views like package explorer and the and the terminal, the console, whatever, and those the supporting actors get darker colors, so you can

focus, I mean the code really draws your attention, so that's your main actor. Really cool. Also, a lot of work probably. >> Matthias can told us didn't tell us. Enhanced folding for control statements. Uh yeah, up until um March last year, you couldn't fold methods or inside methods actually, so if, while, whatever loop, control statements, you couldn't fold them. Now you can. And uh yeah. Easier to

develop and less clutter in my opinion. And then one funny thing, there is one improvement that I've been working on, it's going to come the next in the next release, is like since this one used the AST, when you have generated classes that are huge, it led to performance problems, but it because it was a bad performance, it actually led me to discover two issues. ASTs also

foldings were being generated for stuff that wasn't being shown, so I fixed those and then I said like, let's reorder the code. Let's not use AST, let's just use tokens. I mean, read the code and parse Easier. Um here you will see it's a mark experimental. The screenshot is old. It is actually just stable right now and is activated by default. You can deactivate it if you

don't like it, but there is honestly, there is no performance hit. Started in June this year. There's custom folding regions. This one was developed strongly together with Daniel because we were working on the same class more specifically my student and Daniel were working on the same class. So, um I can explain to you this one, too. You can define regions custom regions by using special words in

comments. For example, region marks the start of a region and end region marks the end of a region. And when you do that, you can go from this code where you have region and region region and region to folded code. Daniel had the idea that he saw in some other IDEs and other languages, I think. Pretty delete. There's now Eclipse support for JUnit 6. Also, um when

I was reading through this this morning, I saw that a lot of the heavyweights of the community went to that. So, thank you for that. And you? Um you can now use JUnit 6. You will get you can include it in the in the JUnit test case wizard when you add new test case. And here's the second part of the wizard. You can also include it in

the quick fix when you use annotations like test, test factory, parameterized test, or repeated test. You see there's a new option to add JUnit 6. And there's also just manually go into your build path and add it to the dialogue using the dialogue there. I mean, the drop down now has JUnit 6. Works pretty good and requires Java 17, by the way. Collapsing stack frames. This was

one of the first one that I noticed and I was instantly happy about it because when I'm debugging, the first thing that you notice is there's there's your code and there's everything else you have to sift through. And by activating this collapse stack frames here how do you call it? The hamburger? Hamburger? You go from that to this. Your code is visible, the rest is collapsed. And

158 collapsed frames. This is really useful. And when you copy the code, by you still see the full stack trace last time I checked. There's the auto resuming trigger points, also a huge width one for when you're doing those huge debug sessions and you don't know what has to happen or you know what has to happen before you can finally debug that dead in there. You can

define um the so-called trigger points like this one with a T here and what it does is when you define one of those, every other breakpoint is just deactivated and they will only get activated when you walk through the trigger point. So, if you know something has to happen before the next breakpoint becomes really useful or relevant, you can use that and it saves a lot of

time in debugging. >> [sighs] >> Mhm. You can also make it conditional, of course, but now this one was already there. And um you can choose to continue the execution on hit because you you don't want to [snorts] see what happens in there the values of that stuff. You only know that some point that needs to be reached or just stop in there. And you can make

it conditional. Sorry, this is the part with the condition. Um yeah, conditional points were already there if I remember correctly. Um but just a quick refresher, you can add conditions in here and only if this condition is met this breakpoint is going to be activated, which means for trigger points that if that condition is not met the trigger point is not walked through. keep that in mind.

Um ah yeah, and well, in here proof of that, you can see that there are trigger points in lines 5, 6, 7, and 8. The set the the trigger point in the set the trigger point is in line 7 and um you only stop on line 8 because you decide to Oh, actually well, this screenshot is is wrong. You will stop in line 7 and then line

8. Important part is lines 5 and 6, they you don't stop on those because they were deactivated at the time the trigger point was still active. Does it show Javadoc from the annotations? There's a quick fix for hover. Really useful for those who, like me, want to see what is the real the replacement [clears throat] for that deprecated method. You usually have to go to the method

because the Javadoc well, the hover only said like this method is deprecated. Now you have a new option to say show me the Javadoc and you can actually see the Javadoc without the need to navigate in anywhere else. >> So, that removes the friction. one, well, actually many new um quick assist refactoring, which is turn the class into a record. So, you can take this class A

and turn it into a record. Um what you need for that is that the class only has to have one or more private fields that need to be initialized in the constructor and only getters that returns only the field itself. And the class may not uh extend or implement anything that is not object or extend object or implement anything. You may override methods like hash code, to

string, and equals. They're going to be taken into the record. And this is how it looks like after. So, just record. Plain old. Really good for modernizing There's also grouping breakpoints by enablement. Pretty self-explanatory. You can choose to group them by enablement here and they will going to be Before you had this and now you have the enabled ones and the second one is the disabled ones.

By the way, I didn't put it into these slides, but there's also the working uh if you unfold here, I think. You have the actually working sets of breakpoints. Really cool stuff. It was delivered before, so I It's not in on these slides. So, but you heard it here. Try it out. Really good one for when you're working switching between features. And that was it. >> [music]