NewAndNoteworthyNB81
m (→Editor: added link to 254111) |
|||
(122 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
- | = | + | =Updated GlassFish server= |
+ | The bundled GlassFish Server Open Source Edition has been updated to the latest version 4.1.1. | ||
- | ==KnockoutJS== | + | =Updated Tomcat server= |
+ | The bundled Apache Tomcat server has been updated to the latest version 8.0.27. | ||
+ | |||
+ | =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]] | ||
+ | |||
+ | =Bundling with JUnit= | ||
+ | JUnit is now included in the NetBeans bundles. | ||
+ | The installation process of previous versions required an internet connection to download and install JUnit. {{iz|245637}} | ||
+ | |||
+ | =Java= | ||
+ | ==Editor== | ||
+ | * "Organize Members" now respects dependencies | ||
+ | ** dependencies between fields and initializers will be respected to prevent compile errors/semantic changes | ||
+ | ** Enum values won't get ordered | ||
+ | ** It includes also a new setting in code generator options. {{iz|249199}} | ||
+ | [[File:SortUsingDependencies.png]] | ||
+ | * Navigator now distinguishes methods, which implement methods from super-classes/interfaces {{iz|250553}} | ||
+ | [[File:NavigatorMethodIconOverlay.png]] | ||
+ | * Code completion | ||
+ | ** Improved preselection of the most relevant item {{iz|240570}}, {{iz|254111}} | ||
+ | ** Improved prefix completion {{iz|251017}}, {{iz|251037}}, {{iz|237897}} | ||
+ | ** Improved completion of enum values {{iz|251669}} | ||
+ | ** "Exlude classes" is always available and invokeable using the "Fix Code..." shortcut {{iz|237381}}, {{iz|237384}} | ||
+ | |||
+ | * New code templates | ||
+ | ** "''junit''" and "''testng''" for creating stubs of test methods {{iz|251158}} | ||
+ | ** "''systrace''" for creating manual tracing like "''System.out.println("com.foo.MyClass.process())''" {{iz|148947}} | ||
+ | |||
+ | ==Maven== | ||
+ | * Support for Maven 3.3.x {{iz|251213}} | ||
+ | * Show documentation of goals in goal navigator {{iz|244363}} | ||
+ | [[File:MAvenShowDocForGoal.png]] | ||
+ | * Use pom content to determine what maven binaries to use and download if necessary {{iz|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]] | ||
+ | * Improved performance loading maven projects {{iz|250869}} {{iz|250872}} {{iz|251990}} | ||
+ | * Added dialog for providing VM-arguments, when running a main class {{iz|251934}} | ||
+ | [[File:VM-Arguments.jpg]] | ||
+ | |||
+ | ==Refactoring== | ||
+ | * "Find Usages" supports searches within dependencies {{iz|55291}} | ||
+ | [[File:Findusages.png]] | ||
+ | |||
+ | More details can be found at https://blogs.oracle.com/geertjan/entry/netbeans_find_usages_includes_dependencies and http://wiki.netbeans.org/FindUsagesDependencies | ||
+ | * "Find Usages" provides more filters {{iz|248250}} | ||
+ | [[File:Findusagesfilter.jpg]] | ||
+ | |||
+ | * "Find Usages" analyzes access to Collections via add/remove/set/put and Arrays too {{iz|246630 }} | ||
+ | * Refactoring actions now have default shortcuts {{iz|250815}} | ||
+ | |||
+ | ==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== | ||
+ | * Faster evaluation of variables/watches {{iz|249305}} | ||
+ | * Support for DisableOnDebug-Rule (JUnit 4.12) {{iz|161568}} | ||
+ | Instead of using <code>@Test(timeout=xxx)</code>, which ends the debugging session after the timeout, use <code>DisabledOnDebug</code>. For example: | ||
+ | <code> | ||
+ | @Rule public TestRule timeout = new DisableOnDebug(new Timeout(1000)); | ||
+ | </code> | ||
+ | |||
+ | =Java FX= | ||
+ | |||
+ | * Support for Gluon Scene Builder {{iz|251308}} | ||
+ | |||
+ | =Java EE= | ||
+ | ==Remote WebLogic== | ||
+ | |||
+ | Support for development on remote WebLogic instances including SSL/TLS support. | ||
+ | |||
+ | [[image:weblogic_step1.png]] | ||
+ | |||
+ | [[image:weblogic_remote.png]] | ||
+ | |||
+ | ==Support for WildFly 9 and 10== | ||
+ | * WildFly management port is configurable | ||
+ | * WildFly Servlet distribution is supported | ||
+ | |||
+ | =JavaScript/HTML5= | ||
+ | |||
+ | ==JavaScript Frameworks/Technologies== | ||
+ | |||
+ | ===KnockoutJS=== | ||
Added support for '''Knockout 3.2.0'''. | Added support for '''Knockout 3.2.0'''. | ||
* New bindings in code completion for ''data-bind'' | * New bindings in code completion for ''data-bind'' | ||
Line 34: | Line 152: | ||
[[image:Ko32 02.jpg]] | [[image:Ko32 02.jpg]] | ||
- | ==AngularJS== | + | ===AngularJS=== |
Added support for '''Angular 1.2''' and '''1.3''' | Added support for '''Angular 1.2''' and '''1.3''' | ||
====Editor support and CC improvements==== | ====Editor support and CC improvements==== | ||
Line 53: | Line 171: | ||
[[image:Angular modelOptions.jpg]] | [[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==== | |
- | [[image: | + | 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: | + | [[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: | + | [[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. | |
- | + | ||
- | + | ||
- | = | + | ===Node.js Support=== |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | =Node.js Support= | + | |
Support for Node.js has been added. This includes: | Support for Node.js has been added. This includes: | ||
Line 111: | Line 219: | ||
[[image:Nb81-nodejs-1.png]] | [[image:Nb81-nodejs-1.png]] | ||
- | * New project wizard | + | * New project wizard... |
[[image:Nb81-nodejs-2.png]] | [[image:Nb81-nodejs-2.png]] | ||
+ | |||
+ | * ...possibly using Express generator | ||
+ | |||
+ | [[image:Nb81-nodejs-2-1.png]] | ||
* Project problems detection | * Project problems detection | ||
Line 151: | Line 263: | ||
[[image:Nb81-nodejs-11.png]] | [[image:Nb81-nodejs-11.png]] | ||
- | ===Node.js Editor=== | + | ====Node.js Editor==== |
* Control - hover functionality | * Control - hover functionality | ||
Line 158: | Line 270: | ||
[[image:CmdHover.png]] | [[image:CmdHover.png]] | ||
- | =Gulp Support= | + | * Code Templates to create HTTP server/client: <code>nodehttp</code>/<code>nodenet</code> {{iz|254424}} |
+ | [[File:nodejscodetemplate.jpg]] | ||
+ | |||
+ | ====Node.js Debugger==== | ||
+ | |||
+ | * Projects with configured node.js debug the node.js execution on Debug Project action. | ||
+ | |||
+ | ===Grunt Support=== | ||
+ | |||
+ | Existing Grunt support has been improved. | ||
+ | |||
+ | * Advanced tasks can be run via project's context menu | ||
+ | |||
+ | [[image:Nb81-grunt-1.png]] | ||
+ | |||
+ | * Parameters can be easily specified, if needed | ||
+ | |||
+ | [[image:Nb81-grunt-2.png]] | ||
+ | |||
+ | * Or via context menu of the Grunt file itself; notice that a few last "advanced" targets are remembered | ||
+ | |||
+ | [[image:Nb81-grunt-3.png]] | ||
+ | |||
+ | ===Gulp Support=== | ||
Support for Gulp has been added, it works exactly the same way as the existing Grunt support. This includes: | Support for Gulp has been added, it works exactly the same way as the existing Grunt support. This includes: | ||
Line 177: | Line 312: | ||
[[image:Nb81-gulp-04.png]] | [[image:Nb81-gulp-04.png]] | ||
+ | |||
+ | * Parameters can be easily specified, if needed | ||
+ | |||
+ | [[image:Nb81-gulp-06.png]] | ||
+ | |||
+ | * Or via context menu of the Gulp file itself; notice that a few last "advanced" targets are remembered | ||
+ | |||
+ | [[image:Nb81-gulp-07.png]] | ||
* Gulp output can be reviewed in the Output window | * Gulp output can be reviewed in the Output window | ||
Line 182: | Line 325: | ||
[[image:Nb81-gulp-05.png]] | [[image:Nb81-gulp-05.png]] | ||
- | = | + | ==JavaScript Editor== |
- | + | ||
- | + | ===Code Completion=== | |
- | [[image: | + | 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]] | ||
+ | |||
+ | === Parser Options=== | ||
+ | |||
+ | JS parsing errors can be disabled. This is useful for bleeding-edge JS frameworks, which are not yet supported by NetBeans. {{iz|251797 }} | ||
+ | |||
+ | See also https://blogs.oracle.com/geertjan/entry/future_proof_netbeans_ide_filter | ||
+ | |||
+ | [[File:reactjs-filtered-errors-2.png]] | ||
+ | |||
+ | ==JavaScript Debugger== | ||
+ | |||
+ | ===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]] | ||
+ | |||
+ | ==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]] | ||
+ | |||
+ | ==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). | ||
+ | |||
+ | [[image:HTMLJS-options.png]] | ||
+ | |||
+ | =PHP= | ||
+ | |||
+ | ==Project== | ||
+ | |||
+ | If project has more Test Files defined, each Test Files can now be easily tested. | ||
+ | |||
+ | [[image:Nb81-php-project-1.png]] | ||
+ | |||
+ | ==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]] | ||
+ | |||
+ | * Build file appears among Important Files | ||
+ | |||
+ | [[image:Nb81-php-phing-4-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]] | ||
+ | |||
+ | * Parameters can be easily specified, if needed | ||
+ | |||
+ | [[image:Nb81-php-phing-6.png]] | ||
+ | |||
+ | * Or via context menu of the build file itself; notice that a few last "advanced" targets are remembered | ||
+ | |||
+ | [[image:Nb81-php-phing-4-1.png]] | ||
+ | |||
+ | * Phing output can be reviewed in the Output window | ||
+ | |||
+ | [[image:Nb81-php-phing-5.png]] | ||
+ | |||
+ | ==Codeception Support== | ||
+ | |||
+ | Support for Codeception PHP testing framework has been added. It works the same way as the existing support for PHPUnit, atoum and Nette Tester frameworks. It means: | ||
+ | |||
+ | * Global configuration in IDE Options: | ||
+ | |||
+ | [[image:Nb81-php-codeception-01.png]] | ||
+ | |||
+ | * Project Properties (if enabled in project): | ||
+ | |||
+ | [[image:Nb81-php-codeception-02.png]] | ||
+ | |||
+ | * Commands on project's node: | ||
+ | |||
+ | [[image:Nb81-php-codeception-03.png]] | ||
+ | |||
+ | * Creating new tests: | ||
+ | |||
+ | [[image:Nb81-php-codeception-04.png]] | ||
+ | |||
+ | * Running tests: | ||
+ | |||
+ | [[image:Nb81-php-codeception-05.png]] | ||
+ | |||
+ | * Code coverage: | ||
+ | |||
+ | [[image:Nb81-php-codeception-06.png]] | ||
+ | |||
+ | * Debugging: | ||
+ | |||
+ | [[image:Nb81-php-codeception-07.png]] | ||
+ | |||
+ | ==Composer== | ||
+ | |||
+ | Composer Libraries are now visible directly in the Projects view: | ||
+ | |||
+ | [[image:Nb81-php-composer-libs-node.png]] | ||
+ | |||
+ | |||
+ | ==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 | ||
+ | |||
+ | [[image:Nb81-php-nette-tester-1.png]] | ||
+ | |||
+ | * Show report for code coverage | ||
+ | |||
+ | [[image:Nb81-php-nette-tester-2.png]] | ||
+ | |||
+ | * See tested lines in files | ||
+ | |||
+ | [[image:Nb81-php-nette-tester-3.png]] | ||
+ | |||
+ | |||
+ | ==Symfony== | ||
+ | |||
+ | New PHP project with Symfony2 framework can still be created using sandbox but now also using the Symfony installer: | ||
+ | |||
+ | [[image:Nb81-php-sf2-1.png]] | ||
+ | |||
+ | [[image:Nb81-php-sf2-2.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 | ||
+ | * Regenerating JNI header files from Java classes or adding the new ones to the C/C++ existing projects | ||
+ | * Navigation in editor from Java (JNI or JNA)methods to C++ implementation | ||
+ | * Fast generating of boilerplate code to access Java classes/methods/fields from the context menu (right click on Java symbol -> Mixed Development). JNI signature of any Java symbol also could be acquired in that way. | ||
+ | * 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. | ||
+ | <pre> | ||
+ | /// | ||
+ | /// \param argc | ||
+ | /// \param argv | ||
+ | /// \return | ||
+ | int main(int argc, char** argv) { | ||
+ | return 0; | ||
+ | } | ||
+ | </pre> | ||
+ | [[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, | ||
+ | <pre> | ||
+ | if (1) { | ||
+ | printf("1"); | ||
+ | } else if (2) { | ||
+ | printf("2"); | ||
+ | } else { | ||
+ | printf("3"); | ||
+ | } | ||
+ | </pre> | ||
+ | can be folded to | ||
+ | <pre>if (1) {...3 lines} else if (2) {...3 lines} else {...3 lines}</pre> | ||
+ | or | ||
+ | <pre> | ||
+ | if (1) {...3 lines} else if (2) { | ||
+ | printf("2"); | ||
+ | } else {...3 lines}</pre> | ||
+ | Same for all other conditional statements, iteration statements, etc. | ||
+ | |||
+ | ==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. | ||
+ | |||
+ | ==Call Graph enhancements== | ||
+ | |||
+ | [[File:Netbeans-cnd-call graph.png]] | ||
+ | |||
+ | The Call Graph feature was extended: | ||
+ | * Variables and fields now can be the starting points of graph | ||
+ | * Icons were added to nodes to distinguish variables from functions | ||
+ | * Exporting a graph in the text format (GraphML, an XML-based file format for graphs) is now possible | ||
+ | * If a function is called multiple times from another it's possible to see and navigate to any of these calls instead of the first one only. | ||
+ | |||
+ | ==New audits and hints== | ||
+ | |||
+ | Couple of new inspections and hints were added: | ||
+ | * Missed guard lock hint [https://netbeans.org/bugzilla/show_bug.cgi?id=253019 [bug 253019]] | ||
+ | * Include header should be first include in implementation hint [https://netbeans.org/bugzilla/show_bug.cgi?id=253192 [bug 253192]] | ||
+ | * Functionality for checking code for security flaws [https://netbeans.org/bugzilla/show_bug.cgi?id=253019 [bug 253019]] | ||
+ | * Missing constructor in a derived class hint [https://netbeans.org/bugzilla/show_bug.cgi?id=224779 [bug 224779]] | ||
+ | |||
+ | ==Refactoring== | ||
+ | |||
+ | [[File:Netbeans-cnd-introduce.png]] | ||
+ | |||
+ | New refactorings added: | ||
+ | * Introduce method [https://netbeans.org/bugzilla/show_bug.cgi?id=156905 [bug 156905]] | ||
+ | * Introduce variable [https://netbeans.org/bugzilla/show_bug.cgi?id=156906 [bug 156906]] | ||
+ | * Inline macro [https://netbeans.org/bugzilla/show_bug.cgi?id=252863 [bug 252863]] | ||
+ | |||
+ | ==Remote== | ||
+ | |||
+ | [[File:Netbeans-cnd-remote wizard.png]] | ||
+ | |||
+ | Two options were added to the New Remote Host Setup wizard: | ||
+ | * Automatically find compilers and tools checkbox (enabled by default). Disabling this action will save a noticeable amount of time (Toolchain should be added manually later). | ||
+ | * Check ASL-based remote file permissions checkbox (disabled by default). | ||
+ | |||
+ | =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]] | ||
+ | |||
+ | |||
+ | =Platform= | ||
+ | |||
+ | ==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]] | ||
+ | |||
+ | ==Jump To== | ||
+ | * Improved performance of "Go to File"/"Go To Type"/"Go To Symbol" {{iz|246161}}, {{iz|251535}}, {{iz|251532}}, {{iz|246793}}, {{iz|248941}} | ||
+ | * Highlighting options {{iz|245291}} {{iz|252155}} {{iz|252162}} | ||
+ | [[File:HighlightingOptions.png]] | ||
+ | |||
+ | ==Editor== | ||
+ | * Colors of folding sidebar can be customized. Configure it via "Code Folding", "Code Folding Bar", "Code Folding Border" at Options|Fonts & Colors|Highlighting {{iz|229039}} | ||
+ | * Colors of sidebar can be customized. Configure it via "Editor sidebar background" at Options|Fonts & Colors|Highlighting {{iz|243229}} | ||
+ | * Breadcrumbs for XML-mimetypes {{iz|228120}} | ||
+ | |||
+ | ==Other== | ||
+ | * "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]] | ||
+ | * Added "Open in Terminal" action to Mainmenu|Tools and context menu of a file (Tools|Open in Terminal) | ||
+ | [[File:OpenInTerminal.jpg]] | ||
+ | * Support for INI-files (also in PHP bundles. Install it via plugin manager "INI File Editor Support") {{iz|248310}} | ||
+ | * New default handling of hidden files ({{iz|246521}}). For more information, see [[HiddenFilesInNB81]]. | ||
+ | |||
+ | =Versioning= | ||
+ | |||
+ | ==General== | ||
+ | * Commit dialog: Diff tabs support default keyboard shortcuts for next/previous diff {{iz|250546}} | ||
+ | |||
+ | ==Git== | ||
+ | |||
+ | ===General=== | ||
+ | * Upgrade JGit to 3.6.2 {{iz|250448}} | ||
+ | * SSH proxy support {{iz|245905}} | ||
+ | * Annotations sidebar can be configured (Show Revison, Date, Author) {{iz|246137}} | ||
+ | [[File:AnnotationBarConfig.png]] | ||
+ | * Adding repository-level versions of git actions {{iz|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 {{iz|225787}} | ||
+ | ** to get this working make sure that Tools -> Options -> Team -> Versioning -> Git | Project Node Format contains "{tracking_status}" variable | ||
+ | [[File:GitTrackingStatus.png]] | ||
+ | * Offer sync of the current with tracked branch after Fetch {{iz|248332}} | ||
+ | * Show git output when pushing {{iz|233106}} | ||
+ | |||
+ | ===Commit dialog=== | ||
+ | * Current branch is shown in title bar {{iz|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) {{iz|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. {{iz|248334}} | ||
+ | |||
+ | ===Diff=== | ||
+ | * Full diff for selected files in diff window {{iz|247366}} {{iz|248254}} | ||
+ | [[File:diffofselection.jpg]] | ||
+ | * Full diff in commit window now ignores excluded files {{iz|248711}} | ||
- | [[ | + | === Stash functionality === |
+ | * "Shelve changes" is now primarily implemented with Git stashes {{iz|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.) {{iz|224986}} | ||
+ | [[File:StashesNode.png]] |
Current revision as of 10:53, 5 December 2015
Updated GlassFish server
The bundled GlassFish Server Open Source Edition has been updated to the latest version 4.1.1.
Updated Tomcat server
The bundled Apache Tomcat server has been updated to the latest version 8.0.27.
Bundling with JRE
HTML/JS, PHP and C/C++ NetBeans bundles now include Java Runtime Environment and do not require a separate Java installation.
Bundling with JUnit
JUnit is now included in the NetBeans bundles. The installation process of previous versions required an internet connection to download and install JUnit. Issue 245637
Java
Editor
- "Organize Members" now respects dependencies
- dependencies between fields and initializers will be respected to prevent compile errors/semantic changes
- Enum values won't get ordered
- It includes also a new setting in code generator options. Issue 249199
- Navigator now distinguishes methods, which implement methods from super-classes/interfaces Issue 250553
- Code completion
- Improved preselection of the most relevant item Issue 240570, Issue 254111
- Improved prefix completion Issue 251017, Issue 251037, Issue 237897
- Improved completion of enum values Issue 251669
- "Exlude classes" is always available and invokeable using the "Fix Code..." shortcut Issue 237381, Issue 237384
- New code templates
- "junit" and "testng" for creating stubs of test methods Issue 251158
- "systrace" for creating manual tracing like "System.out.println("com.foo.MyClass.process())" Issue 148947
Maven
- Support for Maven 3.3.x Issue 251213
- Show documentation of goals in goal navigator Issue 244363
- 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
- Improved performance loading maven projects Issue 250869 Issue 250872 Issue 251990
- Added dialog for providing VM-arguments, when running a main class Issue 251934
Refactoring
- "Find Usages" supports searches within dependencies Issue 55291
More details can be found at https://blogs.oracle.com/geertjan/entry/netbeans_find_usages_includes_dependencies and http://wiki.netbeans.org/FindUsagesDependencies
- "Find Usages" provides more filters Issue 248250
- "Find Usages" analyzes access to Collections via add/remove/set/put and Arrays too Issue 246630
- Refactoring actions now have default shortcuts Issue 250815
Profiler
Redesigned profiler with easier setup and improved features:
- 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
- Faster evaluation of variables/watches Issue 249305
- Support for DisableOnDebug-Rule (JUnit 4.12) Issue 161568
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
- Support for Gluon Scene Builder Issue 251308
Java EE
Remote WebLogic
Support for development on remote WebLogic instances including SSL/TLS support.
Support for WildFly 9 and 10
* WildFly management port is configurable * WildFly Servlet distribution is supported
JavaScript/HTML5
JavaScript Frameworks/Technologies
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
Code completion for component binding
Code completion for custom component's parameters
Go to Declaration
Supports multiple source locations (e.g., component is registered in debug and minified JS files, both are present in the project)
AngularJS
Added support for Angular 1.2 and 1.3
Editor support and CC improvements
- "Controller As"
- One-time binding expressions
- Tracking expressions "track by" and Alias expressions "as" in ng-repeat
- ModelOptions directive
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.
- Code Templates to create HTTP server/client:
nodehttp
/nodenet
Issue 254424
Node.js Debugger
- Projects with configured node.js debug the node.js execution on Debug Project action.
Grunt Support
Existing Grunt support has been improved.
- Advanced tasks can be run via project's context menu
- Parameters can be easily specified, if needed
- Or via context menu of the Grunt file itself; notice that a few last "advanced" targets are remembered
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
- Parameters can be easily specified, if needed
- Or via context menu of the Gulp file itself; notice that a few last "advanced" targets are remembered
- 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.
Similarly the code completion offers CSS classes defined in css file inside the string of parameter in method document.getElementsByClassName().
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.
Parser Options
JS parsing errors can be disabled. This is useful for bleeding-edge JS frameworks, which are not yet supported by NetBeans. Issue 251797
See also https://blogs.oracle.com/geertjan/entry/future_proof_netbeans_ide_filter
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
Project
If project has more Test Files defined, each Test Files can now be easily tested.
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
- Build file appears among Important Files
- 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
- Parameters can be easily specified, if needed
- Or via context menu of the build file itself; notice that a few last "advanced" targets are remembered
- Phing output can be reviewed in the Output window
Codeception Support
Support for Codeception PHP testing framework has been added. It works the same way as the existing support for PHPUnit, atoum and Nette Tester frameworks. It means:
- Global configuration in IDE Options:
- Project Properties (if enabled in project):
- Commands on project's node:
- Creating new tests:
- Running tests:
- Code coverage:
- Debugging:
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:
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.
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
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
- Regenerating JNI header files from Java classes or adding the new ones to the C/C++ existing projects
- Navigation in editor from Java (JNI or JNA)methods to C++ implementation
- Fast generating of boilerplate code to access Java classes/methods/fields from the context menu (right click on Java symbol -> Mixed Development). JNI signature of any Java symbol also could be acquired in that way.
- 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
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.
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; }
Code Folding for compound blocks
Block folding were added to compound statement (if-else, do-while, while, etc).
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.
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:
- 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.
Call Graph enhancements
The Call Graph feature was extended:
- Variables and fields now can be the starting points of graph
- Icons were added to nodes to distinguish variables from functions
- Exporting a graph in the text format (GraphML, an XML-based file format for graphs) is now possible
- If a function is called multiple times from another it's possible to see and navigate to any of these calls instead of the first one only.
New audits and hints
Couple of new inspections and hints were added:
- Missed guard lock hint [bug 253019]
- Include header should be first include in implementation hint [bug 253192]
- Functionality for checking code for security flaws [bug 253019]
- Missing constructor in a derived class hint [bug 224779]
Refactoring
New refactorings added:
- Introduce method [bug 156905]
- Introduce variable [bug 156906]
- Inline macro [bug 252863]
Remote
Two options were added to the New Remote Host Setup wizard:
- Automatically find compilers and tools checkbox (enabled by default). Disabling this action will save a noticeable amount of time (Toolchain should be added manually later).
- Check ASL-based remote file permissions checkbox (disabled by default).
Testing
Unit Testing
HTML5/Javascript Node.js Application
Mocha
Support for Mocha has been added. This includes:
- Configuration of the mocha executable and options
- Integration with Test Results window
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
- Configuration options
Maven Java Application, Web application, EJB Module, Enterprise Application Client
- Wizard to create selenium test file
- Integration with Tools -> Create/Update Tests menu action for Selenium
- Run all selenium project's tests
- Integration with Test Results window
PHP Application
- Configuration of the selenium tests folder location
- Wizard to create selenium test file
- Integration with Tools -> Create/Update Tests menu action for PHPUnit and Selenium
- Run all selenium project's tests
- Integration with Test Results window
HTML5/Javascript Node.js Application
- Configuration of the selenium tests folder location
- Run all selenium project's tests
- Run/debug specific selenium test
- Integration with Test Results window
- Wizards to create selenium related files
Mocha
- Configuration of testing provider options
Protractor
- Configuration of testing provider options
Platform
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.
- PHP - if the existing project contains composer.json file.
Jump To
- Improved performance of "Go to File"/"Go To Type"/"Go To Symbol" Issue 246161, Issue 251535, Issue 251532, Issue 246793, Issue 248941
- Highlighting options Issue 245291 Issue 252155 Issue 252162
Editor
- Colors of folding sidebar can be customized. Configure it via "Code Folding", "Code Folding Bar", "Code Folding Border" at Options|Fonts & Colors|Highlighting Issue 229039
- Colors of sidebar can be customized. Configure it via "Editor sidebar background" at Options|Fonts & Colors|Highlighting Issue 243229
- Breadcrumbs for XML-mimetypes Issue 228120
Other
- "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.
- Added "Open in Terminal" action to Mainmenu|Tools and context menu of a file (Tools|Open in Terminal)
- Support for INI-files (also in PHP bundles. Install it via plugin manager "INI File Editor Support") Issue 248310
- New default handling of hidden files (Issue 246521). For more information, see HiddenFilesInNB81.
Versioning
General
- Commit dialog: Diff tabs support default keyboard shortcuts for next/previous diff Issue 250546
Git
General
- Upgrade JGit to 3.6.2 Issue 250448
- SSH proxy support Issue 245905
- Annotations sidebar can be configured (Show Revison, Date, Author) Issue 246137
- 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
- Offer sync of the current with tracked branch after Fetch Issue 248332
- Show git output when pushing Issue 233106
Commit dialog
- Current branch is shown 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 for selected files in diff window Issue 247366 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