NewAndNoteworthyNB81

(Difference between revisions)
Line 675: Line 675:
[[File:Netbeans-cnd-switch.png]]
[[File:Netbeans-cnd-switch.png]]
 +
 +
==Experimental lldb-mi support==
 +
 +
[[File:Netbeans-cnd-lldb-mi.png]]
 +
 +
We've included an lldb-mi support. In order to get NetBeans work with lldb on Mac follow the instruction:
 +
 +
* Build lldb-mi on Mac (http://lldb.llvm.org/build.html).
 +
* Before starting an IDE init the LLDB_DEBUGSERVER_PATH environment variable with the path to debugserver (it is supplied as a part of command line tools) and export it.
 +
* To make the IDE use the lldb instruction set add the additional -J-Dcnd.debugger.lldb=true parameter into the NetBeans run command.

Revision as of 09:09, 25 March 2015

Contents

Bundling with JRE

HTML/JS, PHP and C/C++ NetBeans bundles now include Java Runtime Environment and do not require a separate Java installation. File:Bundling.png

Java

Editor

  • "Organize Members" now respects dependencies between fields and initializers to prevent compile errors/semantic changes. This includes a new setting in code generator options. Issue 249199

File:SortUsingDependencies.png

  • Navigator now distinguishes methods, which implement methods from super-classes/interfaces Issue 250553

File:NavigatorMethodIconOverlay.png

Maven

  • Show documentation of goals in goal navigator Issue 244363

File:MAvenShowDocForGoal.png

  • Use pom content to determine what maven binaries to use and download if necessary Issue 247128
    • Based on the <prerequisite> element or maven enforcer plugin configuration, NetBeans tries to guess the right version of maven binaries to use and downloads it from http://archive.apache.org
    • Can be configured at Tools|Java|Maven|Experimental

File:MavenDownloadConfig.png

Refactoring

  • "Find Usages" provides a 'Show only Tests' filter Issue 248250

File:FindUsagesFilterByTest.png

  • "Find Usages" analyzes access to Collections via add/remove/set/put and Arrays too Issue 246630

Profiler

Redesigned profiler with easier setup and improved features:

File:Profiler.png

  • Simplified profiler setup
    • One-click profiling without setting up anything
    • Selecting methods/classes for detailed profiling using checkboxes in results
    • Improved attaching to running processes, selected PID is remembered for subsequent sessions
  • New features
    • Monitoring CPU utilization
    • Thread dumps from profiled application
    • Displaying merged results of selected threads in CPU views
  • Improved live profiling views
    • Live forward and reverse call trees in CPU results
    • Live allocation trees in Memory results
    • Simplified tweaking settings during a profiling session
  • Engine improvements
    • Significantly faster connection to an already running process
    • Limited outgoing calls from profiled methods
    • Memory profiling for selected classes
  • Polished profiler UI
    • One profiler window with all actions, settings and results
    • Separate Snapshots window to manage persisted profiling data
    • Reimplemented profiler tables and treetables to deliver native looking appearance
  • Improved profiler integration into the IDE
    • Polished Profile menu
    • Introduced Attach to Project action
    • Added Profile Class/Method actions into Navigator

Debugger

Instead of using @Test(timeout=xxx), which ends the debugging session after the timeout, use DisabledOnDebug. For example: @Rule public TestRule timeout = new DisableOnDebug(new Timeout(1000));

Java FX

Java EE

Remote WebLogic

Support for development on remote WebLogic instances.

image:weblogic_step1.png

image:weblogic_step2.png

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).

image:HTMLJS-options.png


JavaScript Frameworks

KnockoutJS

Added support for Knockout 3.2.0.

  • New bindings in code completion for data-bind
    • component
    • textInput
  • Updated model for code completion
    • Includes e.g., pureComputed observables
  • Support for Knockout custom components

Code completion for Knockout custom components

Custom HTML elements registered in Knockout JavaScript file using ko.components.register function

image:Ko32 01.jpg

Code completion for component binding

image:Ko32 03.jpg

image:Ko32 05.jpg

image:Ko32 04.jpg

Code completion for custom component's parameters

image:Ko32 cc params.png

image:Ko32 cc params2.png

Go to Declaration

Supports multiple source locations (e.g., component is registered in debug and minified JS files, both are present in the project)

image:Ko32 02.jpg

AngularJS

Added support for Angular 1.2 and 1.3

Editor support and CC improvements

  • "Controller As"

image:Angular CtrlAs.jpg

  • One-time binding expressions

image:Angular bindOnce.jpg

  • Tracking expressions "track by" and Alias expressions "as" in ng-repeat

image:Angular ngRepeatTrackByAs.jpg

  • ModelOptions directive

image:Angular modelOptions.jpg

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.

image: JadeColoring.png

In Options dialog the colors can be altered.

image: JadeColoringOptions.png

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

image: JadeHtmlColoring.png

and coloring of JavaScript parts comes from javascript editor support.

image: JadeJSColoring.png

Code Folding

The logical parts of the template can be folded together.

image: JadeFolding.png

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.

image: JadeCC.png

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.

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.

image:GetElementById.png‎


Similarly the code completion offers CSS classes defined in css file inside the string of parameter in method document.getElementsByClassName().

image:GetElementByClassName.png‎

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.

image: JsDocTypeDefSupport.png

NetBeans displayed the type in the navigator as well.

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

image: JsDocTypeDefSupportCodeCompletion.png

@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.

image: JsDocCallback01.png

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.

image: JsDocCallback02.png

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.

image: JsDocCallback03.png

Other Improvements

Marking optional parameter using Google Compiler Syntax.

image:JsDocParamInGCS.png‎

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.

image:Js braces format.png

JSON Editor

Code Folding

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

image:ArrayJSONFolding.png‎

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

image:JsonFoldOptions.png‎

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

image:shadowDOM.png

DOM Breakpoints

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

image:DOMBreakpoints.png

JavaScript Debugging

Conditional Breakpoints

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

image:JavaScriptConditionalBreakpoints.png

Node.js Support

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

  • Configuration of the Node.js executable

image:Nb81-nodejs-1.png

  • New project wizard...

image:Nb81-nodejs-2.png

  • ...possibly using Express generator

image:Nb81-nodejs-2-1.png

  • Project problems detection

image:Nb81-nodejs-3.png

  • Running JS files via Node.js

image:Nb81-nodejs-4.png

  • Project specific configuration of Node.js

image:Nb81-nodejs-5.png

  • Configuration of start file

image:Nb81-nodejs-6.png

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

image:Nb81-nodejs-7.png

  • In this case, browser can be opened on project run

image:Nb81-nodejs-8.png

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

image:Nb81-nodejs-9.png

  • Libraries node in the Projects view

image:Nb81-nodejs-10.png

  • Running any npm script

image:Nb81-nodejs-11.png

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.

image:CmdHover.png

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

image:Nb81-gulp-01.png

  • gulpfile is shown among Important Files

image:Nb81-gulp-02.png

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

image:Nb81-gulp-03.png

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

image:Nb81-gulp-04.png

  • Gulp output can be reviewed in the Output window

image:Nb81-gulp-05.png

Testing

Unit Testing

HTML5/Javascript Node.js Application

Mocha

Support for Mocha has been added. This includes:

  • Configuration of the mocha executable and options

image:Nb81-mocha-01.png

  • Integration with Test Results window

image:Nb81-mocha-03.png

Integration Testing - Support for Selenium 2.0

Support for Selenium 2.0 has been added. This includes:

Selenium Standalone Server

  • Server registered under Services tab

image:Nb81-selenium-server-02.png

  • Configuration options

image:Nb81-selenium-server-01.png

Maven Java Application, Web application, EJB Module, Enterprise Application Client

  • Wizard to create selenium test file

image:Nb81-java-01.png

  • Integration with Tools -> Create/Update Tests menu action for Selenium

image:Nb81-java-02.png

  • Run all selenium project's tests

image:Nb81-java-03.png

  • Integration with Test Results window

image:Nb81-java-04.png

PHP Application

  • Configuration of the selenium tests folder location

image:Nb81-php-01.png

  • Wizard to create selenium test file

image:Nb81-php-02.png

  • Integration with Tools -> Create/Update Tests menu action for PHPUnit and Selenium

image:Nb81-php-03.png

  • Run all selenium project's tests

image:Nb81-php-04.png

  • Integration with Test Results window

image:Nb81-php-05.png

HTML5/Javascript Node.js Application

  • Configuration of the selenium tests folder location

image:Nb81-selenium-node-01.png

  • Run all selenium project's tests

image:Nb81-protractor-03.png

  • Run/debug specific selenium test

image:Nb81-protractor-04.png

  • Integration with Test Results window

image:Nb81-protractor-05.png

  • Wizards to create selenium related files

image:Nb81-selenium-node-02.png

Mocha

  • Configuration of testing provider options

image:Nb81-mocha-02.png

Protractor

  • Configuration of testing provider options

image:Nb81-protractor-01.png

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

image:Nb81-php-phing-1.png

  • New build file can be created

image:Nb81-php-phing-2.png

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

image:Nb81-php-phing-3.png

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

image:Nb81-php-phing-4.png

  • Phing output can be reviewed in the Output window

image:Nb81-php-phing-5.png


Composer

Composer Libraries are now visible directly in the Projects view:

image:Nb81-php-composer-libs-node.png

Projects

Simple Opening of Existing Projects

There is no need to import existing projects into NetBeans using the New Project wizard for the following areas:

  • HTML5 - if the existing project contains package.json or bower.json files.

image:Nb81-autoproject-html5.png

  • PHP - if the existing project contains composer.json file.

image:Nb81-autoproject-php.png

Tools

  • Added "Open in Terminal" action to Mainmenu|Tools and context menu of a file (Tools|Open in Terminal)
  • Support for INI-files (... in NON-PHP-bundles. Install it via plugin manager "INI File Editor Support") Issue 248310

Versioning

Git

General

  • Upgrade JGit to 3.6.2 Issue 250448
  • Annotations sidebar can be configured (Show Revison, Date, Author)

File:AnnotationBarConfig.png

  • Adding repository-level versions of git actions Issue 247552
    • New actions available "Add All - Repository","Revert All Modifications - Repository", "Commit All - Repository", "Resolve All Conflicts - Repository", "Diff All To HEAD - Repository", "Show Repository History"

Fetching/Pushing

  • Show number of incoming/outgoing changes from/to upstream in the versioning label of the project Issue 225787
    • to get this working make sure that Tools -> Options -> Team -> Versioning -> Git | Project Node Format contains "{tracking_status}" variable

File:GitTrackingStatus.png

Commit dialog

  • Commit dialog: Show information about current branch in title bar Issue 248280
  • Commit dialog: added ruler and monospace font

Repository browser

  • Allow opening any git repo to Git Repository Browser (by choosing "Open repository" in the context menu of the Repository Browser) Issue 247615
  • 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
  • Full diff for selected files in diff window Issue 248254
  • Full diff in commit window now ignores excluded files Issue 248711

Stash functionality

  • "Shelve changes" is now primarily implemented with Git stashes Issue 249458
  • "Shelve changes" action is added to the Git popup menu
  • 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

File:StashesNode.png


C/C++

New Project Wizard

Creating a project with existing sources had several lacks:

  • Not obvious how to set build command for non-makefile project
  • Configure project by build log and build result is tricky.
  • Build result field confuses users.
  • Wizard does not store configure script arguments in project meta data.

New Project Wizard solves the problems above and, as a result, makes pre-build and build steps more clear and understandable.

File:Netbeans-cnd-newwizard.png

Pre-Build step can be customized later with the new property tab "Pre-Build" (Accessible from Project Properties -> Build -> Pre-Build).

A new C/C++ sample (HelloCMakeWorld) was added, CMake unmanaged project with the pre-build step.

SVN, Git and Mercurial support in Remote mode

Implemented support for SVN, Git and Mercurial Version Control Systems for remote projects.

Feature allows to use VCS in full remote mode the same way as in a local one. User can customize remote VCS preferences in Tools -> Options -> Team -> Remote Mercurial/Git/Subversion

and in Tools -> Options -> Fonts & Colors -> Remote Mercurial/Git/Subversion

File:Netbeans-cnd-remote2.png

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:

  • Generating an auxiliary C++ JNI project from Java code that allows your Java and C++ code to interact
  • Navigation in editor from Java (JNI or JNA)methods to C++ implementation
  • Debugging both Java and C++ code at once (breakpoints can be placed and will be hit in java and c++ files without the need to adjust a debugger)
  • Step Into action on a Javamethod will switch a debugger to the corresponding c++ function

File:Netbeans-cnd-mixeddev.png

Edit Properties of Multiple Files

Feature allows user to modify and apply properties for multiple files or folders in the context of the same project.

File:netbeans-cnd-properties.png

For example, user wants to change

  • include directories
  • preprocessor definitions
  • whether to exclude the file from code assistance
  • the kind of tool used to compile the file

It can be done now by calling Properties menu item on multiple files (or folders) and modifying properties which are mutual to the selected nodes.

Support Doxygen C++ comments

A number of projects uses a doxygen-style single line "///" comments for documentation. Type "///" in editor and press tab to generate a doxygen-style documentation template.

/// 
/// \param argc
/// \param argv
/// \return 
int main(int argc, char** argv) {
    return 0;
}

File:netbeans-cnd-doxygen.png

Code Folding for compound blocks

Block folding were added to compound statement (if-else, do-while, while, etc).

File:netbeans-cnd-folds.png

For example,

 
if (1) {
    printf("1");
} else if (2) {
    printf("2");
} else {
    printf("3");
}

can be folded to

if (1) {...3 lines} else if (2) {...3 lines} else {...3 lines}

or

if (1) {...3 lines} else if (2) {
    printf("2");
} else {...3 lines}

Same for all other conditional statements, iteration statements, etc.

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.

File:netbeans-cnd-terminalpin.png

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.

File:netbeans-cnd-showinoutput.png

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.

File:netbeans-cnd-assist2.png

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.

File:netbeans-cnd-sendTo.png

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.

File:Netbeans-cnd-switch.png

Experimental lldb-mi support

File:Netbeans-cnd-lldb-mi.png

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

  • Build lldb-mi on Mac (http://lldb.llvm.org/build.html).
  • Before starting an IDE init the LLDB_DEBUGSERVER_PATH environment variable with the path to debugserver (it is supplied as a part of command line tools) and export it.
  • To make the IDE use the lldb instruction set add the additional -J-Dcnd.debugger.lldb=true parameter into the NetBeans run command.
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo