Editor support and CC improvements

Jade Node Template Engine Support

This release brings new support of Jade Template Engine. NetBeans recognize files with .jade extension and new Jade template file can be created through New File wizard. The Jade template file is located in HTML5 / JavaScript category. The Jade support covers mainly the editor features.

Coloring

There are examples of coloring Jade Template files.

In Options dialog the colors can be altered.

The default colors reflects default colors of Html files. Also the colors of html parts comes from the Html editor.

The coloring of plain text comes from html editor support

and coloring of JavaScript parts comes from javascript editor support.

Code Folding

The logical parts of the template can be folded together.

Code Completion

The support provides code completion of html tags, offers css ids and css classes used in the project. Also javascript code completion works on the appropriate places.

Indentation

After ENTER, a beginning of the new line is always indented as the previous line. One exception is a new line after the first line of a comment. In such case, the new line indentation is an indentation of the previous line plus 1 to continue with the writing of a comment.

Node.js Support

Support for Node.js has been added. This includes:

Configuration of the Node.js executable

New project wizard...

...possibly using Express generator

Project problems detection

Running JS files via Node.js

Project specific configuration of Node.js

Configuration of start file

Node.js project can have Site Root (its own frontend part)

In this case, browser can be opened on project run

Synchronization of changes between project and its package.json (project name, start file)

Libraries node in the Projects view

Running any npm script

Node.js Editor

Control - hover functionality

When you place the mouse cursor over an runtime module name in require method and press CTRL / Command, then the documentation for the module is displayed.

Gulp Support

Support for Gulp has been added, it works exactly the same way as the existing Grunt support. This includes:

Configuration of the Gulp executable

gulpfile is shown among Important Files

Gulp tasks can be assigned to common IDE actions in the Project Properties dialog

Any Gulp task can be run via project's context menu

Gulp output can be reviewed in the Output window

JavaScript Editor

Code Completion

If the code completion is called inside the string of parameter in method of document.getElementsById(), then it is able to offer all used values of ids attributes in the html and css files in the project.

JSDoc support improvements

@typedef

NetBeans now understand to the @typedef tag for defining custom types. In the example below is defined new type MyContext.Address. The type is mentioned in the parameter definition of createAddress method. As you can see NetBeans recognise the type and it can be marked as occurrence and the usage of the type can be also renamed. Also the '~' is supported.

NetBeans displayed the type in the navigator as well.

When NetBeans know the type, it can be used in code completion.

@callback

NetBeans are able to precess @callback JSDoc tag. On the example below there is defined a callback Request.requestCallback with two parameters. These callback is used as a parameter of the Request.send method. Matching name of the callback is marked via the mark occurrences functionality and it can be renamed.

On the picture above is also displayed that the callback is shown in the navigator. It has special icon, static method with circle arrow. This item in navigator navigates into the callback definition.

When you call code completion in the function call that has at least one parameter of a callback type, then NetBeans offers generating the callback function.

The code completion item of the callback function template has the same icon as in the navigator. After applying the template the generated code looks like on the picture below.

Other Improvements

Marking optional parameter using Google Compiler Syntax.

Braces formatting

Braces placement options have been added to the Editor/Formatting/JavaScript category in Options. When the code is reformatted, braces in JavaScript sources are placed according to the these settings.

JavaScript Debugger

Conditional Breakpoints

It is possible to specify condition on a JavaScript breakpoint. The breakpoint is hit when the condition evaluates to true.

JSON Editor

Code Folding

The code folding of the JSON editor was improved. It's possible to fold arrays of objects.

Also there are new options for folding editor in the Options dialog.

Web Application Inspection

Shadow DOM Support

Shadow DOM nodes are shown in Browser DOM view

Elements of shadow DOM can be selected/inspected in Chrome browser

Styling information for shadow DOM nodes is shown in CSS Styles view

DOM Breakpoints

DOM breakpoints are visualized in Browser DOM view (elements with a breakpoint are marked by a breakpoint badge).

New HTML/JS category in Options

All panels with options related to HTML5 and JavaScript technologies have been moved under a new top-level category HTML/JS in the Options window (Tools / Options, or NetBeans / Preferences... on OSX).

PHP

Phing Support

Support for Phing has been added, it works exactly the same way as the Grunt/Gulp support. This includes:

Configuration of the Phing executable

New build file can be created

Phing targets can be assigned to common IDE actions in the Project Properties dialog

Any Phing target can be run via project's context menu

Phing output can be reviewed in the Output window

Composer

Composer Libraries are now visible directly in the Projects view:

Nette Tester

Support for code coverage has been added to Nette Tester, it works exactly the same way as for PHPUnit and atoum.

Enable code coverage for project

Show report for code coverage

See tested lines in files

Symfony

New PHP project with Symfony2 framework can still be created using sandbox but now also using the Symfony installer:

Mixed Development support

Provides editor features like navigation from Java methods to C++ functions when JNI or JNA technologies are used. Makes debugging of mixed applications mostly seamless. Also helps with creation of JNI projects directly from Java classes.
Features:

Pinnable terminal

"Pin Tab" action was added to the Terminal popup menu.
IDE will restore all pinned tabs with saved preferences (host, title, working dir) after restart or after reopening Terminal component.
After user pins the tab, a new dialog appears and user is suggested to specify terminal title and working directory.
Current title and current working directory are default values.

Navigating from compiler hint in editor to output log

This feature allows user to navigate from a line with a compiler error/warning in editor to the corresponding line in the build log.

Press Alt+Enter on the line with error and select "Show in Output" item. IDE will find an error line in the output window.

Configure Code Assistance action is added for full remote projects

Added Code Assistance support for full remote projects.
Code Assistance wizard lets you specify how your code will be parsed by the built-in parser used for the code assistance features of the IDE.

SendTo Utility

The SendTo utility makes it easier to run any external script on selected files from within the IDE.
You can use two types of scripts with SendTo:

Scripts that act on selected files

Scripts that act on selected text

The utility includes a small set of pre-defined scripts that you can modify to serve your particular needs. You can also add new scripts.

To execute a SendTo script that acts on selected files, do one of the following:

Right-click on a file in the Projects window and choose Tools > Send To > script_name

Right-click on an open file's tab in the Source Editor and choose Send To > script_name

If the selected script has a validation script, that script is executed first to determine whether the selected script can be applied to the selected files.

To execute a SendTo script that acts on selected text:

Select the text in the Source Editor, right-click and choose Send To > script_name

Generate missing switch clauses

The IDE can generate missing case clauses in switch statement, including the default clause.

Experimental lldb-mi support

We've included an lldb-mi support. In order to get NetBeans work with lldb on Mac follow the instruction:

Repository browser

Add rebasing to branch context menu in the repository browser. Allow synchronize of the current branch. If a merge is needed, user is asked to continue with either merge or rebase. Issue 248334

Diff

Full diff off of all modified files (Both in Git -> Diff or the diff opened from the commit window, cancel the current selection in the file table (i.e. make no file selected) and click on the panel displaying: "Select a file or click to view the overall diff" -> after a click you'll get the textual diff for all files.) Issue 247366

Stash functionality

Stashes are now displayed in the repository browser view under the Stashes node. Stashes may be saved either from the repo browser when selecting Stash changes from the popup on the Stashes node or by invoking Stash Changes action from the Quick Search view. To apply a stash it's enough to dbl-click on its relevant node and to drop the stash simple Delete is available on the node.) Issue 224986