NewAndNoteworthyNB82

All the features of NetBeans IDE 8.2 are in the process of being added to this page, which is a work in progress.

The release schedule of NetBeans IDE 8.2 is here: http://wiki.netbeans.org/NetBeans_82

Note: NetBeans IDE 9, scheduled to be released together with Java 9, will focus heavily on Java, i.e., see these links:

Editor Multicarets

Shortcuts to work with multiple carets in NB editor

Description Shortcut (win/linux) Shortcut (mac) Shortcut (Eclipse/Idea keymap) Add/remove caret and enter multi-caret mode Ctrl+Shift+Click Cmd+Shift+Click Ctrl+Shift+Click Add caret for the next occurence and enter multi-caret mode Ctrl+J Cmd+J Alt+J Add caret for all occurences and enter multi-caret mode Ctrl+Alt+Shift+J Ctrl+Cmd+Shift+J Ctrl+Alt+Shift+J Add caret on previous line and enter multi-caret mode Alt+Shift+[ Ctrl+Shift+[ or Alt+Cmd+Up Alt+Shift+[ Add caret on next line and enter multi-caret mode Alt+Shift+] Ctrl+Shift+] or Alt+Cmd+Down Alt+Shift+] Remove last added caret Alt+Shift+J Ctrl+Shift+J Alt+Shift+J Paste clipboard content as lines over the multiple carets Ctrl+Shift+L Cmd+Shift+L or Alt+Cmd+V Ctrl+Shift+L Remove all extra carets and return to normal mode Escape Escape Escape

Media:MultiCaret.webm

HTML 5

Grunt/Gulp

Gulp/Grunt tasks are now available also from the Navigator

Completely new and much more powerful way to define advanced/custom tasks

Support for Grunt directories with extra tasks (the --tasks parameter)

PHP

PHP 7 Support

Support for PHP 7, namely:

Return type declarations

Scalar type declarations

Combined comparison (spaceship) and null coalesce operators

Group use declarations

Anonymous classes

Generator delegation

PHP version in Project Properties dialog

Editor

Spellchecker for PHPDoc comments

Support for @return $this

Support for {@inheritdoc} tag

Code completion for custom code templates

Project

Custom annotations specific for PHP project can be defined. These annotations are available in code completion like the globally specified ones.

Symfony

Symfony 3 support

Navigate to Action/View (Symfony 2 & Symfony 3)

PHPUnit

Support for PHPUnit 5

Continuous test results

Possibility to test project using just phpunit command

Code Sniffer

Support for phpcs.xml configuration file

FTP Support

Possibility to assign external IP address

Docker

Brand new support for Docker right inside your NetBeans.

Control

Docker instance registration.

Control multiple local or remote instances from the IDE.

Perform common actions without leaving IDE.

Full terminal and log support.

Pull new images from comfortable dialog.

Container management.

Editor

A Dockerfile may be built in the IDE.

IDE provides the Dockerfile editor with syntax highlighting.

Debugger

Source Maps Support

Web client JavaScript debugger and node.js debugger is using generated source maps to allow debugging in the original source files.

Pin Watches

Watches may not only be shown in Variables/Watches window, but also be pinned into an editor area.

When you hover your mouse over a variable or a selection, a tooltip with it' s value is shown. The tooltip now contains a pin icon, which when clicked, creat es a watch pinned into the editor.

The pin watch window is displayed instead of the tooltip. It's location can be adjusted by dragging with a mouse.

The watch updates it's value like a watch in the watches window, but in addition to that, it keeps the last known value, even after the debugging session finishes.

The pin watch window contains two icons on the right side: comment icon and close icon. Clicking on the comment icon shows a text field where you can place comments about this particular watch.

When the pin watch displays structured values, it shows an expansion icon on the left side. When expanded, a view with it's children is shown:

Variables/Watches window does not show the watches that are pinned into the editor by default, but it's possible to view them there as well, via "Show Pinned Watches" context action.

Java Profiler

SQL Queries Profiling

New profiling mode SQL Queries has been added to enable profiling calls from Java processes to databases using a JDBC connection. The profiler displays live list of executed SQL queries with times and execution counts, including the invocation paths. Filtering based on statement type, command type and related tables is available. The collected data can be saved to a snapshot for offline analysis.

Colored Profiling Results

The profiler now enables coloring profiling results based on user-defined filters. This is especially useful for SQL profiling to visually filter out Java EE frameworks calls by displaying their results in gray, but can be used for any other frameworks and user classes. The defined filters can be also easily added to results filters or instrumentation filters.

Java

Custom Actions on Compile on Save for Ant-based projects. See http://wiki.netbeans.org/FaqCompileOnSave#Custom_Actions_on_Compile_on_Save ( Issue 252595

Code-templates: prioritizing parameters Issue 181703

JavaScript

This release brings mainly support of ECMAScript 6 and selected features of ECMAScript Next. The all basic new features from ECMAScript 6 are supported now as well as major features of ECMAScript Next. There is also basic support for JSX.

ECMAScript 6 Support

Generators

In navigator window the generator is marked with '*' badge.

Example, when the generator is defined as private and priviliged methods.

Generator as private and priviliged methods

Generator as a class method

NetBeans offers code completion with documentation for Generators. You can see on the following pictures code completion for generator methods like 'next', 'return' and 'throw'. Also offer property 'done' and 'value' of the result object that is returned from the 'next' method.

Shorthand Property Names

NetBeans now understands to shorthand property names in object initializers.

First example shows that the IDE knows about the properties of object 'o' and that the property 'c' is a object with its properties. NetBeans offer the right properties of 'o.c', user can simple refactor the properties etc.

The next example shows that NetBeans understands to new possible written way of method names

and also understands the computed property names. The computed property names are not offered in cc and are not displayed in the navigator.

Constants

NetBeans is able to handle constants, display in navigator, code completion etc.

Template Literals

NetBeans is able to handle template literals. Also there is implemented support of the javascript expressions inside template literals. In these expressions works everything as usual (code completion, mark occurrences, go to declaration, etc.).





New Number Literals

ECMA Script 6 brings new hexa, binary and octal literals. NetBeans mark these literals with bold gray letter x, b and o. This can be changed in editor options. Also NetBeans offers code completion for these literals.

String Literals and RegExp Literals

This is not ECMA6 Script specific feature, but now NetBeans offer code completion after string and regexp literals.

Destructuring Assignment

Simple Array Destructuring Assignment

Array Destructuring Assignment with Default Values

Array Destructuring Assignment from a Function

Swap values of two variables

Simple Object Destructuring Assignment

Object Destructuring Assignment without a Declaration

Object Destructuring Assignment, when a property is not defined

Object destructuring assignment to new variable names

Setting a function parameter's default value

Supporting Modules

NetBeans now understands the modules according ECMA6 Script specification. The picture below shows that user also can navigate to the file from which are imported objects and properties.

Object Property Assignment

NetBeans are able to handle creating properties through Object.assign() method as is shown on the picture below.





Default Parameter Values

NetBeans handles default parameter values and use it to obtain information about the type of the parameter as is displayed on the pictures below.

Block Scope Declarations

NetBeans handles block scope declarations of functions and variables.

ECMAScript Next Support

NetBeans now supports the major features of ECMAScript Next aka ECMAScript 7 or 2016. Note the ECMA spec is in draft mode and may change after the NetBeans release.

You can configure project to be ECMAScript 7.

There is a helpful hint notifying about ECMAScript 7 features being used in project configured to ECMAScript 6 or even ECMAScript 5.

Async Functions

Async functions are properly parsed and async and await is colored as being keyword.

Trailing Commas in Function Parameter Lists and Calls

Trailing commas are allowed as described in specification.

Rest/Spread Properties

Rest and spread operator is allowed even for object properties.

Class and Property Decorators

Decorators on class and properties is handled including occurence marking and navigation.

Class Property Declarations

Property declarations inside class body is handled and properly displayed in navigator.

Exponentiation Operator and Standard Library

Exponentiation operator is parsed ok and NetBeans also offers new features of standard library which met the stage 4 of specification:

Array.prototype.includes

Object.values/Object.entries

String.prototype.padStart/String.prototype.padEnd

Object.getOwnPropertyDescriptors

JSX Support

The big thing is JSX is now properly parsed and colored in the editor.

Node.js Support

Because NetBeans 8.2 is able to parse code written in ECMA Script 6, NetBeans is also able to parse source files of Node.js 4.0 and newer versions. This means better editor support.

Return Statement in Global Context

ECMA Script specification doesn't allow to use return statement in global context. Node.js sources often use it and NetBeans reports it as error. NetBeans 8.2 are able detect a Node.js source and parse such source file even if there is a return statement in global context. The source has start on the first line with shebang, contains node and has to be at least 12 characters long.





Formatter

The formatter was enhanced and allows to specify maximum number blank lines for class and object body and array initializer.

C/C++

UI for Run/Debug launchers

launcher.properties is a file located in nbproject and used to manage Run/Debug command configurations.

Now it's possible to manage these configurations using the new UI. To open the configuration window click "Manage Launchers..." from a project's context menu.

After you create necessary launchers you will be able to select how to Run or Debug your project from it's context menu.

Modifying a PATH var: prepending or appending a toolchain path

Some users experienced a problem when a toolchain directory was unconditionally prepended to the PATH variable (e.g. when user's build system uses some tools from /usr/bin, including cross-compiler).

New option in Project Properties -> Build allows to specify if this addition is needed. By default the $TOOLS_PATH will be prepended, but you can change this in Options -> C/C++ -> Build tools -> ...

Auto-detection of correct compiler used by user's build system

Sometimes user's build system uses the custom toolchain, which was not detected automatically by NetBeans. In case the real compiler doesn't match to the active one, code model can cause unexpected to user results.

When creating a project with existing sources you will be suggested to create a toolchain with the real compiler in case it doesn't match to any existing.

Env variable in text fields

You can use environment variables when creating a project with existing sources or project from binary.

Build analyzer based on tool collection wrapper

IDE creates a tool collection wrapper on Windows and Mac.

The wrapper is used to build project. As result all compile command lines are stored and used for configure code assistance.

Clean C/C++ cache

Sometimes internal parser used for Code Assistance is not recovered after "Code Assistance->Reparse Project", so the workaround was to close IDE, clean cache dir and start IDE again. Now it can be done more easily: in project's context menu use new action "Code Assistance->Clean C/C++ cache and restart IDE"

Terminal extensions

Open Files in Editor from terminal

Simply type "ideopen file1 file2..." and IDE will open specified files in Editor. It's even more useful feature in case you are using a Remote Terminal.

Shortcuts support

Terminal is able to

Switch tabs using Alt+1 .. Alt+0

Open new tabs with Ctrl+Alt+Shift+T shortcut (by default)

It's a convenient way to work with tabs keyboard only.

Allow terminal to open hyperlinks

Terminal able to open links to files with absolute paths now. You can print a hyperlink in terminal with an escape sequence. Example of such sequence: fprintf(stdout, "(\033]10;%s;%s\007)]

", "/home/ilia/NetBeansProjects/CppApplication_48/main.cpp:20", "main.cpp:20"); where :lineNumber is optional.

Search in terminal

Search feature is implemented in Terminal now. You can lookup previous (Shift + F3) and next (F3, Enter) occurrences, close the Find Bar with (ESC).

Pin Watches

Watches may not only be shown in Variables/Watches window, but also be pinned into an editor area.

See more in Java Pin Watches description.

Distinguish Read/Write access in Find Usages

Find Usages: mark differently read, write and read/write access to variable (Bug #268402)