JDK 11 support
NetBeans 10.0 will include support for JDK 11, including:
- update of nbjavac module
- removal of Java EE and Corba modules from the JDK
- var support for implicitly typed lambda expressions
Primary tasks for JDK 11 uptake in Apache NetBeans are:
|1||nb-javac jdk11 uptake||NETBEANS-802 nb-javac JDK11 upgrade||Dusan.Balek|
Done, nb-javac repository https://hg.netbeans.org/main/nb-java-x
refreshed with JDK11-b24.
NetBeans - nb-javac 11 upgrade testing :
|NETBEANS-803 nb-javac 11 upgrade in NetBeans|
Done, updated nb-javac jars under libs.javacapi and libs.javacimpl. Updated nb-javac plugin.
Java EE and CORBA modules removal: http://openjdk.java.net/jeps/320
|NETBEANS-805 Update any dependencies on Java EE and CORBA modules||Arunava|
No dependencies found
Dynamic Class-File Constants
|NETBEANS-804 Update any dependent code for JDK11 Class-file format change||Arunava|
Investigating based on Jan's inputs regarding impacted code areas.
Var support for implicitly typed lambda expressions.
|NETBEANS-806 Var support for Lambda Parameters|
Feature wiki: LVTI Support for Lamdba Parameters in NetBeans 10
List of Enhancements/Bugs below.
|6||Deprecation of Nashorn JS Engine|
Var Support in Lambda expression parameters
Identified below enhancements/bugs to support this feature in Apache NetBeans.
Apache Jira Id
NETBEANS-860: Proposed new hint "Convert Lambda to Use 'var' Parameter Types"
for Lambda expression
NETBEANS-859: Hint :"Use explicit parameter type" is not working with var type
|Verified fixed w JDK-8204674|
|3||Bug||NETBEANS-862: Autocomplete for var keyword not supported in Lambda parameter|
|4||Bug||NETBEANS-863: Refactor rename of var type Lambda parameter is not proper||Verified fixed w JDK-8204674||Arusinha||Minor|
NETBEANS-1021: use explicit params type throws exception for invalid lambda params types
Done Pull Request #819
- Groovy: https://github.com/apache/incubator-netbeans/pull/904
- JUnit 5: https://github.com/apache/incubator-netbeans/pull/892
Modules in the "groovy" cluster are included in Apache NetBeans for the first time. I.e., all Groovy features in Apache NetBeans GitHub are part of Apache NetBeans 10.
- Add simple infrastructure to write Groovy Hints: https://github.com/apache/incubator-netbeans/pull/902
- Add trait support for Groovy: https://github.com/apache/incubator-netbeans/pull/901
- First stab at flow typing: https://github.com/apache/incubator-netbeans/pull/903
- Automatically detect JTReg from OpenJDK configuration: https://github.com/apache/incubator-netbeans/pull/925
- Register the expanded JDK as a Java Platform: https://github.com/apache/incubator-netbeans/pull/918
- Various improvements to make the OpenJDK project work better: https://github.com/apache/incubator-netbeans/pull/897
With NetBeans existing JUnit and Maven integration, the introduction of JUnit 5 didn't need much work, as in a lot of cases, NetBeans defers to Maven, and in particular the Maven Surefire plugin to execute tests. No work has been implemented for Ant specific JUnit 5 integration.
New JUnit 5 Library
Introducing support for JUnit 5.3.1 a new Library has been added to NetBeans.
Default version of JUnit when creating Java 8+ applications
When working with a Maven based Java 8+ project with no existing tests, or test framework defined in the project pom file, the IDE will use JUnit 5 as the default JUnit version, and add in the appropriate dependencies.
Support for Run / Debug Focused Test Methods
JUnit 5 introduced a new @Testable annotation, any method that includes an annotation that inherits from this, will be allowed to be executed with these action menu items.
New JUnit 5 Test Template
Default JUnit 5 Test Template provided out of the box. Note JUnit 5 doesn't currently support test suite's for its Jupiter engine, so the template provided will attempt to create a test suite using the Vintage engine.
Updated IDE Hints for JUnit 5's Assertion class
Introduced updated assertArrayEquals hints to support JUnit 5 as the method signatures have changed since JUnit 4.
A big addition to NetBeans 10 is that it will once again support PHP. Features will include support for PHP 7.0 through 7.3, PHPStan and Twig, as well as editing and debugging enhancements.
PHP 7.3 Support
- Allow a trailing comma in function calls
- list() Referenct Assignment
- Flexible Heredoc and Nowdoc Syntaxes
PHP 7.2 Support
- Trailing Commas In List Syntax
- Coloring for object type
- PHP version in Project Properties dialog
PHP 7.1 Support
- Class constant visibility
- Multi catch exception handling
- Nullable types
- Support for keys in list()
- Coloring for new keywords(void, iterable)
- PHP version in Project Properties dialog
PHP 7.0 Support
- Context sensitive lexer
- Options (Tools > Options > PHP > Code Analysis > PHPStan)
- Inspect (Source > Inspect... > Configuration: PHPStan)
- Hint for void return types
- Hint for incorrect non-abstract methods
- Suggestion for the strict types declaration. It is suggested when the caret is on the line which contains "<?php" and the file doesn't have the declaration.
- Lowercase code completion for TRUE, FALSE, and NULL constants. Enabled by default.
- Code folding for arrays
- Code foldings for use statements
- Code folding for php tags
- New vardoc support (/** @var VarType $varType */)
- Option for comment completion. Enabled by default. (Tools > Options > Editor > Code Completion > Language: PHP)
- Conditional breakpoints
- Autocompletion for delimiters, brackets, and quotes
- Support for the palette