The JetBrains Blog https://blog.jetbrains.com Developer Tools for Professionals and Teams Tue, 20 Jun 2023 19:02:43 +0000 en-US hourly 1 https://blog.jetbrains.com/wp-content/uploads/2023/02/cropped-icon-512-32x32.png The JetBrains Blog https://blog.jetbrains.com 32 32 DataSpell 2023.2 EAP 2 Is Out! https://blog.jetbrains.com/dataspell/2023/06/dataspell-2023-2-eap-2/ Tue, 20 Jun 2023 18:59:31 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/Blog_Featured_image_1280x600_DataSpell-2x.png https://blog.jetbrains.com/?post_type=dataspell&p=364835 In the second EAP build for DataSpell 2023.2 we improved Jupyter Notebooks synchronization with external applications.

To catch up on all of the new features DataSpell 2023.2 will bring, check out our previous EAP blog posts.

The Toolbox App is the easiest way to get the EAP builds and keep both your stable and EAP versions up to date. You can also manually download the EAP builds from our website.

Download DataSpell 2023.2 EAP

Improved Jupyter Notebooks Synchronization with External Applications

In this release, we have made significant improvements to the synchronization of Jupyter notebook changes between DataSpell and external applications such as Git or the browser version of Jupyter. You can now effortlessly switch between DataSpell and external applications, and any changes made in either will be perfectly synchronized.

We encourage you to share your feedback on the new features on Twitter or in our issue tracker, where you can also report any bugs you find in the EAP versions. 

We’re excited to hear what you think!

]]>
IntelliJ IDEA 2023.1.3 Is Out! https://blog.jetbrains.com/idea/2023/06/intellij-idea-2023-1-3/ Tue, 20 Jun 2023 17:19:18 +0000 https://blog.jetbrains.com/?post_type=idea&p=365135 The third bug-fix update for v2023.1 is now available.

You can update to this version from inside the IDE, using the Toolbox App, or using snaps if you are a Ubuntu user. You can also download it from our website.

Here are the most notable fixes and updates that IntelliJ IDEA 2023.1.3 brings:

  • We fixed the issue that was causing the IDE to crash when using the navigation feature in Raycast. [IDEA-317346]
  • Navigation to implementations works as expected in decompiled classes. [IDEA-308933]
  • The issue with launching multi-module projects using the Quarkus run configuration has been resolved. [IDEA-317297]
  • The issue that caused the deletion of records from the list of local tasks has been fixed. [IDEA-274672]
  • We fixed the issues that were causing the main menu groups to malfunction and not process actions correctly on macOS. [IDEA-319117], [IDEA-318603
  • Several issues that affected working in LightEdit mode have been fixed [IDEA-315639], [IDEA-315526], [IDEA-316537].
  • Building JPS projects utilizing JDK 8 with both JDK and project files stored on WSL no longer fails. [IDEA-319240]
  • The IDE no longer erroneously reports autowiring errors in @ConfigurationProperties for fields set via application.properties when using Lombok in Spring Boot projects. [IDEA-319269]
  • Several issues appearing when setting active Spring profiles have been fixed. [IDEA-177780], [IDEA-177783], [IDEA-309671], [IDEA-314635]

You can find a full list of the resolved issues in the release notes.

We always look forward to your feedback and bug reports in our issue tracker.

Happy developing!

]]>
Toolbox App 2.0 Beta Streamlines Installation and Improves Integrations https://blog.jetbrains.com/toolbox-app/2023/06/toolbox-app-2-0-beta/ Tue, 20 Jun 2023 16:59:20 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/tb-release-featured_blog_1280x720.png https://blog.jetbrains.com/?post_type=toolbox-app&p=364611 We’re starting a preview of the biggest update to the Toolbox App yet!

We’ve listened to the feedback we’ve received from our users, analyzed the most voted bug reports in our tracker, and refactored the installation layout to address most of the pain points.

To try out the Beta, make sure you’re using Toolbox App version 1.28, open Settings, and select EAP from the Update to list.

Read on to learn about the most important changes we’ve made in this release.

Installations and updates reworked from the ground up

Default installation directories

The Toolbox App previously installed tools in a custom directory with an ever-changing path. This is now a thing of the past. The default installation directory now conforms to your operating system’s guidelines and never changes.

Toolbox App 2.0 uses the following default directories to install tools:

  • Windows: %LocalAppData%\Programs (FOLDERID_UserProgramFiles)
  • macOS: ~/Applications
  • Linux: ~/.local/share/JetBrains/Toolbox/apps (no change)

Please note that the Toolbox App can only install applications to user-writable directories (for example, the user’s home directory). In a future release, we’re planning to implement the ability to elevate permissions, which would allow installation to system-wide directories.

Permanent paths

In previous versions, the Toolbox App installed updates in the directory with a version number as its name, so each new version had a new path on the filesystem. Now it puts the new version into exactly the same directory, ensuring a permanent path for each tool.

Installing multiple versions of the same tool side by side is still possible. The Toolbox App will disambiguate them automatically, and you can set custom names in the tool’s settings if you wish.

Updates

The process of updating your tools is as easy as before. The only change is that, when you try to update a running tool, the Toolbox App performs all the necessary actions (downloading, unpacking, etc.) in the background, except for actually copying new files to the tool installation directory. After that, it enters the “Update Pending” state, which means that the only thing left is to wait until the tool stops running. As soon as you close the tool, its files will be replaced with their new versions, and then you can continue working.

This improves the compatibility of your installed tools with a number of OS and third-party applications, and has allowed us to eliminate different workarounds both in the Toolbox App and around it. Thanks to the permanent installation paths, pinned Start Menu items on Windows or docked apps on macOS are no longer invalidated after an update.

For IntelliJ-based tools, the default plugin directories are now used, which eliminates certain issues that used to occur during downgrading. We’ll explain all fixes in more detail in the public release blog post in several weeks.

Known issues

Unfortunately, this drastic change comes with several limitations:

  • Instant rollback is temporarily not available.
  • The tool installation directory can’t be changed (for now). However, if you specified a custom directory in the previous version of the Toolbox App, the new version will honor it (on macOS, it should be in /Applications or ~/Applications).
  • The Start Menu shortcuts for your tools will be unpinned by Windows one last time (TBX-3331), and the Desktop and Taskbar shortcuts may appear “broken”, though that state can be easily fixed by clicking the shortcut. This happens only during the migration from Toolbox App 1.28 to 2.0.

Migration

In order to provide the improvements we are introducing, the Toolbox App will need to migrate any tools you have installed through its previous versions. After updating to version 2.0, it will run the migration, which can take a few seconds to several minutes, depending on the number of tools.

After the migration, all tools will be moved to their new locations, while all tool settings will be preserved during this process.

Although the migration cannot be undone, rollback to v1.28 is still possible. In this case, the Toolbox App will not lose your IntelliJ tools and their settings, but they will be displayed as manually installed (as, from the point of view of Toolbox App 1.28, they are no longer installed through it). Please let us know if the new installation layout does not work for you.

We’ve also introduced many other quality-of-life improvements in this version. Please see the full release notes for more information.

Please try the Beta and share your feedback with us in the comments to this blog post or submit an issue in our YouTrack issue tracker.

Thank you,
The Toolbox App team

]]>
Mastering the New UI https://blog.jetbrains.com/ruby/2023/06/mastering-the-new-ui/ Tue, 20 Jun 2023 13:14:28 +0000 https://blog.jetbrains.com/?post_type=ruby&p=364771 Hi everyone!

We’re excited to introduce a new series of blog posts showcasing our favorite RubyMine features. Join us as we explore tips, tricks, and enhancements that will boost your productivity and streamline your development process.

In the first blog post, we’ll dive into RubyMine’s freshly-introduced user interface (UI). We revamped the IDE’s look and feel to reduce visual complexity, provide easy access to essential features, and gradually reveal advanced functionality when needed.

Starting from version 2022.3, you can enable the New UI in the IDE settings in Settings | Appearance & Behavior | New UI.

New users of the 2023.2 EAP have the New UI enabled by default.

Themes, icons, and fonts

  • Experience improved contrast and a consistent color palette with our new Light, Light with Light Header, and Dark themes.To change your theme quickly from the editor, press Ctrl+`, click Theme in the Switch popup, and choose the desired theme.
  • The New UI comes with a new set of icons that have more distinguishable shapes and colors designed for legibility and visual balance.
  • In the New UI, the Inter font is used on all supported OSs. The Classic UI used the default OS fonts, which differed depending on the platform.

Navigation bar

The navigation bar has been relocated to the bottom of the main window, providing a fresh perspective.

If you prefer the previous location, you can easily move it back to the top or hide it entirely. Simply go to the main menu and select View | Appearance | Navigation Bar.

Compact mode

The New UI comes with the Compact mode, which is perfect for working on smaller 11’’ – 13’’ screens. It reduces toolbar and tool window header heights, optimizes spacing and padding, and features smaller icons and buttons.

Enable the Compact mode by selecting View | Appearance | Compact Mode from the main menu.

Window header

We simplified the main window header while adding new widgets for quick access to useful features. New widgets hide actions in drop-down menus to simplify the layout.

  1. Main menu
    For Windows and Linux users, the main menu is now accessible via the hamburger icon. Use the Alt+\ shortcut to open the main menu using your keyboard.You can bring back the full menu by enabling the Show main menu in separate toolbar option in Settings | Appearance & Behavior | New UI.
  2. Project widget
    Use the Project widget to switch between recent projects, create new ones, or access existing ones.
  3. VCS widget
    With the new VCS widget, you can view the current branch, easily switch between your repository’s branches, and quickly access the most popular VCS actions like updating the project, committing, and pushing changes.It has replaced the branch widget previously located in the status bar and VCS action icons in the navigation bar.
  4. Run widget
    With the updated Run widget, you can select and start run/debug configurations, choose the mode (run or debug), and manage existing configurations.It also displays the state of the process when running or debugging, providing convenient options to restart or stop the process.

Editor

In the New UI, we’ve made improvements to RubyMine’s editor tabs and gutter to achieve better legibility.

Editor tabs now use more space and feature a larger font. Working with multiple editor tabs is now more convenient: You can choose between using a scroll bar or squeezing the tabs to fit the screen. Go to Settings | Editor | General | Editor Tabs | Show tabs in and select the desired option.

The gutter has also received an update, with breakpoints now placed over line numbers by default, saving horizontal space. Additionally, folding icons now appear on hover, and we’ve introduced a new color scheme for annotations (Git Blame) to help you identify recent changes faster.

Tool windows

Customize your IDE’s layout for quick access to frequently-used tool windows. Drag tool window icons to the desired location and organize them to your preference. Use vertical and horizontal splits to arrange tool windows, and hide or display tool windows under the More tool windows popup.

Run tool window

We moved the toolbar with run actions to the tool window tabs for easier access.

Debug tool window

We’ve consolidated separate toolbars for main debug actions, optimizing screen space.

Additionally, when there is a single running configuration, tabs for switching between the Threads & Variables view and Console now appear in the tool window tabs.

These changes to RubyMine’s new UI are designed to enhance your development experience with a streamlined and visually pleasing environment. We encourage you to give it a try and, if you come across any problems or have suggestions for new features, share your feedback in our issue tracker. Stay tuned for more upcoming posts in this series, where we’ll explore other exciting features.

Happy developing!

The RubyMine team

]]>
RubyMine 2023.2 EAP 5: Improved User Experience and New Live Templates https://blog.jetbrains.com/ruby/2023/06/rubymine-2023-2-eap-5-improved-user-experience-and-new-live-templates/ Mon, 19 Jun 2023 18:00:45 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/Blog_Featured_image_1280x600_RubyMine-2.png https://blog.jetbrains.com/?post_type=ruby&p=363868 The latest EAP version of RubyMine 2023.2 is now available. You can download it from our website or via the free Toolbox App.

We’ll be outlining some of the key improvements in this post.

Pinned run configurations in the Run widget

To enhance the experience of managing multiple run configurations, we have made it possible to pin your preferred configurations in the Run widget. Adding a run configuration to the Pinned section is simple: Open the kebab menu (three dots) next to the configuration’s name and select Pin. If you have multiple pinned configurations, you can effortlessly rearrange them by dragging and dropping them within the list.

File sorting by modification time in the Project view

RubyMine 2023.2 EAP 5 introduces a long-awaited feature: the ability to arrange files by modification time in the Project view. With this new functionality, RubyMine will automatically arrange your files based on their modification time. To enable this feature, simply open the kebab menu (three dots) in the Project view and select Tree Appearance | Sort by Modification Time.

Improved main toolbar customization

We have expanded the customization options for the main toolbar in the new UI. You can now conveniently add actions to the toolbar using a drop-down menu. To do this, simply right-click on any widget, choose Add to Main Toolbar, and explore the wide range of available options.

New live templates for React hooks

With this build, we’ve introduced a new set of live templates for React hooks. To access them, navigate to Settings and select Editor | Live Templates | React hooks. Explore this new collection of live templates and enjoy a more efficient development experience with React hooks.

The full list of improvements in this version is available in the release notes.

To learn about the latest features as they come out, follow RubyMine on Twitter. We post product news and tips several times a week.

We’d love to hear more about your experience with RubyMine. Schedule a 40–60 minute call with us to discuss it and get answers to any questions you might have!

We encourage you to share your thoughts in the comments below and to suggest and vote for new features in the issue tracker.

Happy developing!

The RubyMine team

]]>
PhpStorm 2023.2 EAP #4 https://blog.jetbrains.com/phpstorm/2023/06/phpstorm-2023-2-eap-4/ Mon, 19 Jun 2023 13:19:26 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/ps-release-featured_blog_1280x720-2.png https://blog.jetbrains.com/?post_type=phpstorm&p=364712 This build includes a bunch of usability improvements, such as abilities to pin Run configurations and sort files by modification time in the Project view.

The EAP allows you to try new features from the upcoming PhpStorm version, 2023.2. EAP builds are free to use and you can install them side by side with a stable version of PhpStorm. If something doesn’t work correctly, you can quickly switch back to the previous version without interfering with your workflow.

Pin Run configurations

To add a run configuration to the Pinned section, open the kebab menu (three dots) next to its name and select Pin. If you have multiple pinned configurations, you can easily rearrange them with drag and drop.

Sort files by modification time in the Project view 

Starting with PhpStorm 2023.2 EAP #4, it is possible to arrange your files in the Project view based on their modification time. To enable this feature, open the kebab menu (three dots) in the Project view and then select Tree Appearance | Sort by Modification Time.


Please see the release notes for the complete list of changes in the EAP #4 build.

  • Important! PhpStorm EAP builds are not fully tested and may be unstable.
  • You can install an EAP build side by side with a stable PhpStorm version to try out the latest features.
  • EAP builds are free to use and don’t require a license. However, they expire 30 days after the build date and then you’ll have to download a new build.

Please let us know about any problems you find by reporting them to our issue tracker or commenting on this post.

]]>
Introducing the Brand New JetBrains Merchandise Store https://blog.jetbrains.com/blog/2023/06/19/introducing-the-brand-new-jetbrains-merchandise-store/ Mon, 19 Jun 2023 12:22:40 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/Merchandise_store-2x.png https://blog.jetbrains.com/?post_type=blog&p=363728 You’ve been waiting for it, and now the JetBrains Merchandise Store is just a click away! 

Wear your love for coding on your sleeve, on a tote bag, or on your laptop. However you want to display your passion, the brand-new JetBrains merchandise store has you covered!

Shop JetBrains Gear

What we have on offer for you

We offer a wide variety of essential gear, like T-shirts, hoodies, stickers, and pins, as well as other JetBrains and product-branded apparel and accessories. 

All of our items are made with high-quality materials to ensure that they are long-lasting and enjoyable to use, and most of our clothing is made of organic cotton. We plan to expand our product line gradually after listening to the feedback from fans. Moreover, we’re already working on minimizing our environmental footprint, and will continue doing so. 

Our items are shipped worldwide (except for some countries) from a warehouse in Germany, with delivery terms and costs varying from country to country. Check out the store FAQ for more details, and don’t hesitate to contact the Customer Support team if you have any questions.

What’s next? 

The JetBrains store has a lot of quality gear, but it still has a lot of room to grow! While we are successful in creating software development tools you love, a fan shop is a different story. 

We are still learning what makes the perfect piece of merchandise and identifying the best process for getting the products into your hands. We want to ensure that your experience with the store is as satisfying as the tools you enjoy using. 

We’ve got an experienced managing partner and store provider, Brand Addition, who’s supporting us along the way, but we are also keen to know what you think.

Stock up on JetBrains gear from our shop and show it off in action! 

Share photos or videos of yourself using our items on social media, and be sure to tag @jetbrains or our products and add the #JetBrainsGear hashtag.

Shop JetBrains Gear

Let’s spread The Drive to Develop together! 📸

Your JetBrains team

]]>
GoLand 2023.2 EAP #5 Is Out with an Intention Action to Update Dependencies in go.mod   https://blog.jetbrains.com/go/2023/06/16/goland-2023-2-eap-5/ Fri, 16 Jun 2023 17:22:14 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/05/Blog_Featured_image_1280x600_GoLand-2x-1.png https://blog.jetbrains.com/?post_type=go&p=364449 The fifth GoLand 2023.2 EAP build is now available!

You can get it via the Toolbox App, download it from our website, use a snap package (for Ubuntu), or from inside GoLand, select Check IDE updates for: Early Access Program in Settings | Appearance & Behavior | System Settings | Updates.

Download GoLand 2023.2 EAP

Intention actions to update dependencies in go.mod 

We’ve added several intention actions and inspections to help you update dependencies in go.mod files faster. 

Now, when you open your go.mod file, GoLand highlights outdated dependencies. You can hover over the highlighted versions of a given package and use a quick-fix to update it.

You can also update all dependencies to their patches or latest major versions, and there is an option to update only direct dependencies.

The outdated dependencies are highlighted thanks to the Dependency update available inspection. We’ve also added two more inspections: 

  1. Deprecated dependency shows deprecated dependencies in strikethrough text.
  1. Retracted dependency version shows retracted version numbers in strikethrough text.  

You can manage these inspections, including their scope and severity, in Settings / Preferences | Editor | Inspections | Go modules.

Version control systems

Option to commit specific lines of code

GoLand 2023.2 EAP 5 introduces a highly anticipated feature to selectively commit specific parts of code chunks. To perform a partial commit, select the lines within a chunk and call Include these lines into commit from the context menu. The chunk will be divided into individual lines with the selected ones highlighted. You can add or exclude lines from the selection using checkboxes or the context menu. 

Docker 

Preview of files inside Docker image layers 

It is now easy to access and preview the contents of a Docker image layer in the Services view. Select the image from the list, select Show layers, and click Analyze image for more information. You can then view a list of the files stored in the layer and easily open a selected file in the editor by right-clicking on the file and calling the Open File (or Download File for binaries) option. 

Set Docker container to run as a Before Launch task for run configurations

It is now possible to set a Docker run configuration to run before another configuration by designating it a Before Launch task. The IDE will wait for the container that is currently running to be healthy, and then it will launch the next run configuration. To set up a queue, first create a required Docker run configuration and then add it to the container via Modify options | Add before launch task | Run configuration.

Kubernetes 

Support for multiple kubeconfig files within a single project 

We have introduced a new feature that allows you to set up multiple kubeconfig files within a single project. This simplifies the experience of handling multiple clusters or working with environments on different clusters in the same project. To set the files up, go to File | Settings | Build, Execution, Deployment | Kubernetes. 

Ability to view deployment logs

You can now view logs for deployments in Kubernetes clusters from the Services tool window. Right-click on Deployment in the tree and then select Follow Log or Download Log from the context menu. 

That’s it for today! We’d love to hear what you think about the new features. Get in touch with us on Twitter, leave your comments here, open an issue in our tracker, or drop us a message in the Gophers Slack #goland channel. Thanks!

]]>
ReSharper C++ 2023.2 EAP: Support for the C++23 Standard Library Modules https://blog.jetbrains.com/rscpp/2023/06/16/resharper-cpp-2023-2-eap5/ Fri, 16 Jun 2023 15:22:35 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/05/Blog_Featured_image_1280x600_ReSharperCPP-2x.png https://blog.jetbrains.com/?post_type=rscpp&p=364095 The new Early Access build is here with support for the C++23 standard library modules and C++20’s [[no_unique_address]] attribute, new code formatter settings, and other updates. Read on for more details and check out the full list of issues we’ve fixed in this update.

You can download the EAP builds from our website or via the Toolbox App.

DOWNLOAD RESHARPER C++ EAP

C++20 and C++23 updates

The C++23 standard library introduces two named modules: std and std.compat (P2465). You can now use import std or import std.compat to import the entire standard library instead of using a precompiled header or including specific headers for the parts of the standard library that you need. This way you’ll also get all the usual benefits associated with the C++20 modules, including much faster compilation time and the absence of hidden dependencies on the standard library internals.

In addition to shipping the source code for the std and std.compat modules in the standard library, Visual Studio 17.6 introduced a new setting that enables the automatic building of these modules when using the /std:c++latest switch (Project Properties | C/C++ | Language | Build ISO C++23 Standard Library Modules). As of this EAP build, ReSharper C++ will correctly resolve import directives for standard library modules and automatically build the necessary ones. This makes it much easier to experiment with modules and benefit from improved compilation time (depending on the size of your project, of course).

C++23 Standard Library Module

C++20 added char8_t, a new fundamental, unsigned integral type that stores one UTF-8 code unit. The recently accepted paper P2513 allows the initialization of a char or unsigned char array with a UTF-8 string literal. Visual Studio has supported this proposal since the 17.4 release, and now ReSharper C++ supports it as well. Interestingly, this change has also been backported to C++20 as a defect report. Yes, the language standard can have bug-fix updates too!

Compatibility and portability fix for char8_t

We’ve also introduced support for the C++20’s new [[no_unique_address]] attribute, which can be used instead of relying on the empty base class optimization. [[no_unique_address]] indicates that a unique address is not required for a non-static data member of a class (P0840), allowing the compiler to lay out members of the class in a more efficient way. ReSharper C++ now takes [[no_unique_address]] into account when calculating the size of an object.

[[no_unique_address]]

Code analysis

ReSharper C++ now highlights the #error and #warning diagnostic preprocessor directives according to their severity level:
#error and #warning diagnostic preprocessor directives

We’ve improved the evaluation engine to support aggregate initialization of constexpr arrays.
aggregate initialization of constexpr arrays

This EAP build also brings a new compatibility inspection for forward declarations of C-style enums. Since the size of a C-style enum depends on its contents, the C++ standard forbids forward-declaring them without specifying the underlying type. MSVC, however, still accepts forward declarations like that, which can lead to non-portable code:

ISO C++ forbids forward enum declarations without underlying type

Code formatting

In this EAP build, we’ve improved the formatting for bit-field members. The options to align initializers and declaration names in columns now support bit-fields. We’ve also added two new formatter settings specifically for bit-fields:

  • Spaces before and after the colon in bit-field declarations.
  • Alignment of bit-field sizes in columns.

formatting for bit-field members
Finally, there is a new setting to turn off indentation in member initializer lists.

Among other noteworthy updates, the Safe Delete refactoring now handles conflicts in dependent code. And for Unreal Engine 5.1 projects, we’ve introduced support for the UE_INLINE_GENERATED_CPP_BY_NAME macro, which lets you inline generated files into your module to improve compilation time. UE_INLINE_GENERATED_CPP_BY_NAME is now correctly handled when ordering #include directives, and it does not cause issues for the Rename refactoring.

That’s all for now! Please try out the new build and share your feedback with us. If you encounter any issues, don’t hesitate to report them to our issue tracker.

DOWNLOAD RESHARPER C++ EAP

Your ReSharper C++ team
JetBrains
The Drive to Develop

]]>
Rider 2023.2 EAP 5: Improved Support for C#, Better Performance Profiling, and More. https://blog.jetbrains.com/dotnet/2023/06/16/rider-2023-2-eap-5/ Fri, 16 Jun 2023 15:11:51 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/Blog_Featured_image_1280x600-1.png https://blog.jetbrains.com/?post_type=dotnet&p=363862 The latest installment in our Early Access Program for Rider 2023.2 is here. But before you download this build, let’s go over the most important updates it contains.

C# support

Support for default parameter values in lambdas

As part of our work on supporting C# 12 language updates, we’re introducing support for default parameter values in lambda expressions in Rider 2023.2. In addition to the standard set of warning messages associated with recognizing this syntax, we’ve also tweaked an existing inspection, The parameter has the same default value, to account for default parameter values in lambdas. This inspection will also be triggered when an invocation has an argument value that is the same as the default value of the parameter in the invoked delegate, making the expression redundant.

New inspections for improved control over object disposal

Rider 2023.2 introduces two new code inspections designed to address scenarios where the state of a returned object may be negatively influenced by its early disposal or the early disposal of the object that spawned it.

When a variable is captured by a using statement, it ensures that the object is properly disposed of when it goes out of scope. Returning an object captured by a using statement can be problematic because it extends the lifespan of the returned object beyond the method scope, causing the object to be disposed of immediately after returning. This can lead to unexpected behavior and resource-related issues.

The Return of a variable captured by ‘using’ statement inspection alerts you in cases where the returned object is immediately disposed of.

Similarly, the Return of a task produced by ‘using’-captured object inspection identifies scenarios where a Task is produced by an object captured by a using statement and then immediately returned. To extend the lifetime of the disposable object enough for Task completion, a corresponding quick-fix will introduce asynchronous awaiting for that Task before its return. 

Terminal migration to ConPTY on Windows

JetBrains Rider includes an embedded terminal emulator to work with a command-line shell from inside the IDE. Previous versions of Rider relied on a third-party WinPTY library as a terminal emulation layer on Windows. For Rider 2023.2, we’re switching to the OS-provided ConPTY for versions of Windows that support it. While no visible changes are expected, the switch opens the door for further improvements to the terminal and the run console.

Performance profiling

Group by Thread for sampling, tracing, and line-by-line snapshots

The dotTrace Profiler inside Rider 2023.2 introduces the Group by Thread option and corresponding button in the Call Tree panel for performance snapshots. This option organizes sampling, tracing, and line-by-line snapshots based on individual threads, allowing for deeper insight into thread-specific performance issues. 

Using this grouping method can also give you a birds-eye view of the project’s performance, as the call trees with the most ancestors will end up at the top of the list, making any hotspots glaringly obvious. 

Once you’ve clicked on the Group by Thread toggle button, you will see the call trees organized by thread. You can navigate from one thread to another by using the keyboard, and the trees will expand at once. Red-colored percentage values to the left of the call tree indicate higher subtree power, helping you pinpoint potential performance bottlenecks at a glance. 

Notable fixes

  • We added support for the UE_INLINE_GENERATED_CPP_BY_NAME include, which improves compile time when added to your project’s .cpp file (RSCPP-34358).
  • We fixed a bug that caused the reformatting of project files after a user executed any project modification actions (RIDER-40468).

Known vulnerabilities

A vulnerability exists in .NET 6.0, .NET7.0, and NuGet where a potential race condition that can lead to a symlink attack on Linux. Non-Linux platforms are not affected.

Our team is aware of the issue, and we’re working on eliminating it.

For the full list of resolved issues, please refer to our issue tracker.

That’s it for now! Please share your feedback on the latest EAP builds of Rider in the comments below or on social media.

]]>
ReSharper 2023.2 EAP 5: Improved Control Over Object Disposal, Support for Default Lambda Parameters, and C++23 Standard Library Modules. https://blog.jetbrains.com/dotnet/2023/06/16/resharper-2023-2-eap-5/ Fri, 16 Jun 2023 15:11:40 +0000 https://blog.jetbrains.com/wp-content/uploads/2023/06/Blog_Featured_image_1280x600_ReSharper-2x.png https://blog.jetbrains.com/?post_type=dotnet&p=363864 The latest build for the ReSharper 2023.2 Early Access Program is available for download from our website. 

Let’s take a look at what’s inside!

C# support

Support for default parameter values in lambdas

As part of our work on supporting C# 12 language updates, we’re introducing support for default parameter values in lambda expressions in ReSharper 2023.2. In addition to the standard set of warning messages associated with recognizing this syntax, we’ve also tweaked an existing inspection, The parameter has the same default value, to account for default parameter values in lambdas. This inspection will also be triggered when an invocation has an argument value that is the same as the default value of the parameter in the invoked delegate, making the expression redundant.

New inspections for improved control over object disposal

ReSharper 2023.2 introduces two new code inspections designed to address scenarios where the state of a returned object may be negatively influenced by its early disposal or the early disposal of the object that spawned it.

When a variable is captured by a using statement, it ensures that the object is properly disposed of when it goes out of scope. Returning an object captured by a using statement can be problematic because it extends the lifespan of the returned object beyond the method scope, causing the object to be disposed of immediately after returning. This can lead to unexpected behavior and resource-related issues.

The Return of a variable captured by ‘using’ statement inspection alerts you in cases where the returned object is immediately disposed of.

Similarly, the Return of a task produced by ‘using’-captured object inspection identifies scenarios where a Task is produced by an object captured by a using statement and then immediately returned. To extend the lifetime of the disposable object enough for Task completion, a corresponding quick-fix will introduce asynchronous awaiting for that Task before its return. 

C++ support

This EAP build brings support for the C++23 standard library modules and C++20’s [[no_unique_address]] attribute, new code formatter settings, and other updates. 

For more details, please refer to this blog post.

dotTrace

Group by Thread for sampling, tracing, and line-by-line snapshots

dotTrace 2023.2 introduces the Group by Thread option and corresponding button in the Call Tree panel for performance snapshots. This option organizes sampling, tracing, and line-by-line snapshots based on individual threads, allowing for deeper insight into thread-specific performance issues. 

Using this grouping method can also give you a birds-eye view of the project’s performance, as the call trees with the most ancestors will end up at the top of the list, making any hotspots glaringly obvious. 

Once you’ve clicked on the Group by Thread toggle button, you will see the call trees organized by thread. You can navigate from one thread to another by using the keyboard, and the trees will expand at once. Red-colored percentage values to the left of the call tree indicate higher subtree power, helping you pinpoint potential performance bottlenecks at a glance. 

That’s it for now! For the full list of improvements and fixes that made it into the latest EAP build, please check out our issue tracker. As always, we’d love to hear your opinions and suggestions in the comments below.

]]>
IntelliJ IDEA 2023.2 EAP 5: Option to Commit Specific Lines of Code, Ability to Run Tomcat on WSL, Docker Updates, and More https://blog.jetbrains.com/idea/2023/06/intellij-idea-2023-2-eap-5/ Fri, 16 Jun 2023 14:31:47 +0000 https://blog.jetbrains.com/?post_type=idea&p=362938 IntelliJ IDEA 2023.2 EAP 5 is out! The new build offers long-awaited support for partial commits and the ability to run and debug applications in WSL Tomcat, as well as improvements for the HTTP Client, Docker, Kubernetes, Swagger, and more. 

You can get the latest build from our website, through the free Toolbox App, or via snaps for Ubuntu. 

This blog post provides the most notable improvements introduced in IntelliJ IDEA 2023.2 EAP 5. If you want to learn about the refinements included in the previous EAP builds, check out these blog posts.  

Version control systems

Option to commit specific lines of code

IntelliJ IDEA 2023.2 EAP 5 introduces a highly anticipated feature to selectively commit specific parts of code chunks. To perform a partial commit, select the lines within a chunk and call Include these lines into commit from the context menu. The chunk will be divided into individual lines with the selected ones highlighted. You can add or exclude lines from the selection using checkboxes or the context menu.  

Frameworks and technologies 

Updated UI for the Run/Debug widget in the Services tool window

We’ve reworked the UI for running and debugging actions in the Services view to make the look and feel of the toolbar consistent with the main Run/Debug widget.  

Ability to run and debug Tomcat on WSL 

As of IntelliJ IDEA 2023.2 EAP 5, it is possible to run and debug applications deployed to Tomcat on the Windows Subsystem for Linux (WSL). To work with Tomcat-based applications on WSL, you need to have the JAVA_HOME environment variable declared in either the /etc/environment or ~/.bashrc file.

Support for Swagger and OpenAPI schemas in the HTTP Client 

The HTTP Client is now capable of understanding Swagger and OpenAPI specifications and providing corresponding code completion options for JSON requests.

JSON body completion in JavaScript 

The IDE now provides completion for JSON object keys in JavaScript code, for instance code with the fetch() call or the axios library. It now supports Spring MVC server endpoints, and we plan to expand the number of supported server frameworks in the future.

Support for JavaScript imports in the HTTP Client

It is now possible to share common JavaScript code for HTTP Client request handlers via imported modules.

PDF and HTML previews for responses in the HTTP Client

IntelliJ IDEA is now able to display previews of PDF and HTML files right in the results of requests in the HTTP Client.

Improvements for Swagger Codegen

The IDE now provides a better user experience when setting up Swagger Codegen configurations. First, we’ve reworked the Edit Swagger Codegen Configuration dialog, making tailoring the run configuration to your requirements more straightforward. 

Additionally, it is now possible to access the Swagger Codegen run configuration right from the gutter without having to specify any additional settings.

Auto-completion for Spring Boot configuration keys in VM options 

While setting up a new Spring Boot run configuration, the VM options field provides auto-completion options for keys appearing after the -D flag.

Support for Spring AOP in Kotlin

We’ve extended IntelliJ IDEA’s support for utilizing AspectJ in Spring applications. The IDE now provides analysis and completion for Kotlin code, just as it already did for Java code. 

Support for editing AsyncAPI files

It is now possible to conveniently work with the AsyncAPI specification format in IntelliJ IDEA. The IDE supports schema validation functionality and provides code completion for references, the Endpoints view, and the Editor Preview pane. 

Docker 

Preview of files inside Docker image layers 

It is now easy to access and preview the contents of a Docker image layer in the Services view. Select the image from the list, select Show layers, and click Analyze image for more information. You can then view a list of the files stored in the layer and easily open a selected file in the editor by right-clicking on the file and calling the Open File (or Download File for binaries) option. 

Set Docker container to run as a Before Launch task for run configurations

It is now possible to set Docker run configuration to run before another configuration by designating it a Before Launch task. The IDE will wait for the container that is currently running to be healthy, and then it will launch the next run configuration. To set up a queue, first create a required Docker run configuration and then add it to the container via Modify options | Add before launch task | Run configuration.

Kubernetes 

Support for multiple kubeconfig files within a single project 

We have introduced a new feature that allows you to set up multiple kubeconfig files within a single project. This simplifies the experience of handling multiple clusters or working with environments on different clusters in the same project. To set the files up, go to File | Settings | Build, Execution, Deployment | Kubernetes. 

Ability to view deployment logs

You can now view logs for deployments in Kubernetes clusters from the Services tool window. Right-click on Deployment in the tree and then select Follow Log or Download Log from the context menu. 

These are the most noteworthy updates for this week! For the full list of implemented changes, please refer to the release notes. Stay tuned to learn about the other features expected in the major IntelliJ IDEA 2023.2 release. 

Your feedback is very important to us, so please make sure to participate in the Early Access Program, test out the new features, and let us know what you think about them. You can do so via the Submit Feedback form available from the Help menu, in the comments section under this blog post, or by reaching out to us on Twitter. If you encounter any bugs, please report them to our issue tracker

Happy developing! 

]]>