EditorPlan71

(Difference between revisions)
(JDK 8)
(Java Project Improvements)
 
(67 intermediate revisions not shown)
Line 11: Line 11:
==Full text index==
==Full text index==
-
Find Usages and related refactorings for methods and fields can be made faster ({{iz|169958}}, {{iz|120145}}) - a full text index would be very helpful '''(Tomas)'''
+
Find Usages and related refactorings for methods and fields can be made faster ({{iz|169958}} (wontfix???), {{iz|120145}} (fixed ????)) - a full text index would be very helpful '''(Tomas,5)'''
==Remove obsolete code in editor==
==Remove obsolete code in editor==
Line 19: Line 19:
==Editor Performance improvements==
==Editor Performance improvements==
===View Hierarchy Improvements===
===View Hierarchy Improvements===
-
{{iz|197534}} - Improve efficiency of HighlightingManager together with View Hierarchy - Partial rewrite of Highlighting Manager to not rebuild views in case higher z-order layers (such as selection highlighting or caret row highlighting) get changed.
+
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]{{iz|197534}} - Improve efficiency of HighlightingManager together with View Hierarchy - Partial rewrite of Highlighting Manager to not rebuild views in case higher z-order layers (such as selection highlighting or caret row highlighting) get changed.
===Document Content Management===
===Document Content Management===
Line 28: Line 28:
==Transactional index==
==Transactional index==
-
({{iz|182653}}) Use data from old index while indexing is running (where possible)
+
[[Image:no_EditorPlan68.png | Image:no_EditorPlan68.png]]
 +
({{iz|182653}}) Use data from old index while indexing is running (where possible) '''60 days'''
 +
 
Some features like Lucene Indexes already lock the index only in time of index update not during the whole indexing but the index reader client is negatively affected by the IO. Improving the index caching should help, see Improve Go To Type.
Some features like Lucene Indexes already lock the index only in time of index update not during the whole indexing but the index reader client is negatively affected by the IO. Improving the index caching should help, see Improve Go To Type.
Line 38: Line 40:
==Misc performance improvements==
==Misc performance improvements==
-
{{iz|187282}} (cndreq, API) Allow to exclude embedded langs for source root  
+
{{iz|187282}} (cndreq, API) Allow to exclude embedded langs for source root '''(Tomas, 5 days)'''
-
{{iz|172312}} (cndreq) Lucene 2.4.1 consumes more memory than it should
+
{{iz|186744}} (marked as fixed in 7.0???) (API) Adding library causes huge I/O load - deleting files on background does not solve the problem, it's already done on background. The rename and clean up in idleIO will work fine. But the idleIO is not an API (even friend API). It's in the MasterFS FileChangeManager. This requires an idleIO to be added at least into the ProvidedExtensions like runPriorityIO. '''(Tomas, 2 days)'''
-
{{iz|186744}} (API) Adding library causes huge I/O load - deleting files on background does not solve the problem, it's already done on background. The rename and clean up in idleIO will work fine. But the idleIO is not an API (even friend API). It's in the MasterFS FileChangeManager. This requires an idleIO to be added at least into the ProvidedExtensions like runPriorityIO. '''(Tomas)'''
+
{{iz|195814}} Improve Go To File performance for non source file.
 +
The Go To File has two parts. The first one is handling source files and is provided by parsing.api. This part is reasonably fast (for typical set up < 1s).
 +
The second part handles files which are not under source roots (parsing.api does not know about them) and it does file system search. The second part may take minutes. '''(Tomas, 5 days)'''
 +
 
 +
Make indexers cancelable, see {{iz|197811}} '''(Tomas, 10 days)'''
=New features=
=New features=
Line 48: Line 54:
==Misc Features==
==Misc Features==
-
{{iz|196937}} - Drag and drop of a Web Service client code into Java ME project for Telefonica
+
{{iz|196937}} - Drag and drop of a Web Service client code into Java ME project for Telefonica '''(Anton)'''
 +
 
 +
{{iz|199405}} - Create java.queries - abstraction for working with Java without JavaC '''(Tomas, 10 days)'''[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
 +
 
 +
==JavaFX 2 Support ==
 +
 
 +
{{iz|198730}} - CSS3 support for FX 2 '''(Anton)'''
==Java Project Improvements ==
==Java Project Improvements ==
-
{{iz|46863}} Permit library names to contain spaces '''(Tomas)'''
+
{{iz|46863}} Permit library names to contain spaces '''(Tomas, 10 days)'''
 +
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
-
{{iz|182388}} (j2ee,API) Provide api to set the DisplayName of a Library created programmatically '''(Tomas)'''
+
{{iz|182388}} (j2ee,API) Provide api to set the DisplayName of a Library created programmatically '''(Tomas, 1 day)'''
 +
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
-
{{iz|123464}} Improve UI for resolving broken references
+
{{iz|123464}} Improve UI for resolving broken references '''(Tomas, 10 days)'''
-
{{iz|193436}} Allow library registration using AnnotationProcessor
+
{{iz|193436}} Allow library registration using AnnotationProcessor '''(Tomas, 2 days)'''
-
{{iz|178503}} Allow adding sources/javadoc from the Libraries node
+
{{iz|178503}} Allow adding sources/javadoc from the Libraries node '''(Tomas, 3 days)''' [[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
-
{{iz|174506}} Run File for any java file with main methods should accept command line parameters
+
{{iz|174506}} Run File for any java file with main methods should accept command line parameters '''(Tomas, 3 days)'''
-
{{iz|139865}} Cannot run Applet project
+
{{iz|139865}} Cannot run Applet project '''(Tomas, 3 days)'''
-
{{iz|181265}} Add filter warnings possibility into the output window
+
Improve creation of a Java Project From Existing Sources {{iz|194533}} and {{iz|190242}}. Partially done in NB 6.9, the wizard is now able to find source roots in selected folder but it should do it automatically for base project folder. The base project folder should be accessible from files tab as requested in {{iz|194533}}. '''(Tomas, 5 days)'''
 +
 
 +
{{iz|197734}}  Modify J2SEProject build scripts to use TestNG if available '''(Tomas, 10 days)'''
 +
 
 +
{{iz|47498}} Javadoc & Sources for Freeform, Autoproject, Maven, unknown binaries'''(Tomas, 10 days)'''
 +
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
 +
 
 +
{{iz|199313}} JFX binding to JavaPlatform '''(Tomas, 1 days)'''
 +
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
 +
 
 +
{{iz|201340}} White list support '''(Tomas, 20 days)'''
 +
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
==General Infrastructure Improvements==
==General Infrastructure Improvements==
-
{{iz|135492}} Simplify Coloring Profiles creation '''(Maros)'''
+
[[Image:no_EditorPlan68.png | Image:no_EditorPlan68.png]]{{iz|135492}} Simplify Coloring Profiles creation  
{{iz|144579}} (cndreq, API) Add support for child nodes to MimeLookup Preferences
{{iz|144579}} (cndreq, API) Add support for child nodes to MimeLookup Preferences
 +
 +
{{iz|180262}} Incorrect check of indexer's being up-to-date '''(Tomas, 5 days)'''
 +
 +
Move stable part of java.api.common into regular api (java.project). Currently there in no way how 3rd party project implementors can use the utilities in java.api.common which causes copy paste programming. At least some parts of this module like QuerySupport should be cleaned up and moved to stable API. '''(Tomas, 5 days)'''
 +
 +
Remove implementation dependency of java.source on parsing.api. A support friend bridge module has to be created. The parsing.api and java.source will depend on it. '''(Tomas, 15 days)'''
 +
 +
Make parsing.api a stable API. The parsing.api is a base API for any language implementation in the IDE. But the API is still in development mode. The parsing.api should become a stable API. '''(Tomas, 1 days)'''
 +
 +
Improve java caches to support Annotation Processors generating java source from multiple source files, see {{iz|196104}} '''(Tomas, 5 days)'''
==Editor Usability Improvements==
==Editor Usability Improvements==
 +
{{iz|89607}} Double-click-drag-select and Triple-click-drag-select
{{iz|89607}} Double-click-drag-select and Triple-click-drag-select
Line 82: Line 118:
{{iz|197522}} - Improve support for RTL text
{{iz|197522}} - Improve support for RTL text
-
==Javadoc Improvements==
+
{{iz|116926}} - Show whitespace
-
{{iz|20672}} Word wrap for javadoc comments
+
-
{{iz|25509}} Javadoc comments syntax coloring
+
{{iz|}} - Code Breadcrumbs
 +
 
 +
{{iz|}} - Only show section
 +
 
 +
{{iz|13857}} - Cutting/Copying vertical blocks of text: Rectangular Edit Tools
 +
 
 +
{{iz|}} - Reformat on Paste
 +
 
 +
{{iz|155422}} - Transfer Types on Paste
 +
 
 +
{{iz|}} - Block coloring
 +
 
 +
{{iz|}} - Middle Click scroll -
 +
 
 +
{{iz|}} - Unsurround
 +
 
 +
{{iz|}} - Advanced Bookmarks
 +
 
 +
{{iz|140719}} - Save Actions
 +
 
 +
{{iz|56401}} - Extended Clipboard
 +
 
 +
==Javadoc Improvements==
 +
{{iz|20672}} Word wrap for javadoc comments '''(Dusan) '''
 +
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
-
{{iz|42223}} Embedded HTML editing in Javadoc comments
+
{{iz|25509}} Javadoc comments syntax coloring '''(Honza B., 5) '''
==Refactoring==
==Refactoring==
-
{{iz|100758}} Beans refactoring
+
{{iz|100758}} Beans refactoring '''(Honza B., 10)'''
-
{{iz|197194}} More scopes for Find Usages
+
{{iz|183703}} Import Statements Organizer '''(Honza B., 10)'''  [[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
-
{{iz|65780}} Change Method Parameters Usability Improvements
+
{{iz|197194}} More scopes for Find Usages '''(Ralph, 15)'''
 +
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
-
{{iz|18370}} Import Statements Organizer
+
{{iz|197189}} Implement Introdoce Method Parameters Refactoring '''(Honza, 10)'''
-
{{iz|48427}} Integrate Refactoring Undo with Editor Undo and Local History
+
{{iz|65780}} Change Method Parameters Usability Improvements '''(Ralph, 15)'''
 +
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
-
{{iz|154900}} Support nested classes in "Move" and "Copy" refactoring
+
{{iz|94325}} Find usages of a package, requires api change {{iz|131944}} '''(Tomas, 5 days)'''
-
{{iz|197189}} Implement Introdoce Method Parameters Refactoring
+
{{iz|25377}} Batch "fix imports" for entire project [[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
-
{{iz|197190}} Implement Replace Constructor With Factory Method/builder
+
{{iz|57545}} Inline Method/Variable Refactoring '''(Ralph, 15)'''
 +
[[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
-
{{iz|30140}} Implement Code Migration Tool - "Upgrades" (e.g. to JDK7)
+
{{iz|30140}} Implement Code Migration Tool - "Upgrades" (e.g. to JDK7) '''(Honza L., Honza B., 10)''' [[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
 +
 
 +
{{iz|197193}} Custom Refactorings - DSL for declarative custom refactorings. '''(Honza L., Honza B.)''' [[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
==Hints==
==Hints==
-
E.g. unused assignment, unbalanced set/get to/from Collection/array.
+
* unused assignment (Honza L. 2) [[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
 +
* unbalanced set/get to/from Collection/array (Honza L. 1) [[Image:yes_EditorPlan68.png | Image:yes_EditorPlan68.png]]
==JDK 8==
==JDK 8==
-
Jigsaw support in java project and editor support (module-info) '''(Tomas)'''
+
Jigsaw support in java project and editor support (module-info) also related to {{iz|196497}} api change '''(Tomas)''' '''David: is the issue number correct?'''
Support for JDK8 as possible and needed.
Support for JDK8 as possible and needed.
Line 123: Line 188:
To support quick navigation through and exploration of large projects. Possible supported queries:
To support quick navigation through and exploration of large projects. Possible supported queries:
-
* Go to Type/File(/possibly Symbol)
+
* Go to Type/File(/possibly Symbol) '''(Honza L., Honza B., Tomas, 15)'''
-
* Find Usages through whole project (all known projects), even those not opened in the IDE.
+
* Find Usages through whole project (all known projects), even those not opened in the IDE. '''(Honza L., Honza B., 20)'''
This does *not* include downloadable index that would eliminate initial scan.
This does *not* include downloadable index that would eliminate initial scan.
-
 
-
===Jackpot===
 
-
 
-
{{iz|197193}} Integrate Jackpot with NetBeans
 
-
 
-
DSL for declarative custom refactorings.
 
===Code completion productivity===
===Code completion productivity===
Show most useful completion items at the top - extension of smart (type) code completion.
Show most useful completion items at the top - extension of smart (type) code completion.

Current revision as of 09:21, 19 September 2011

Disclaimer: The content of this NetBeans development wiki page is intended for pre-planning purposes ONLY. The development, release, and timing of any feature or functionality described here should not be treated as final, and is subject to change at any time at the sole discretion of Oracle. For information about NetBeans software releases please visit the NetBeans Roadmap.

Contents

Planning for NetBeans 7.1 (JET Team)

High Level Plan

Plan for previous release

Plan for further releases

Performance

Full text index

Find Usages and related refactorings for methods and fields can be made faster (Issue 169958 (wontfix???), Issue 120145 (fixed ????)) - a full text index would be very helpful (Tomas,5)

Remove obsolete code in editor

Lower the editor memory footprint by removing the old Syntax (the former version of lexer) and old syntax-based indenter.

Editor Performance improvements

View Hierarchy Improvements

Image:yes_EditorPlan68.pngIssue 197534 - Improve efficiency of HighlightingManager together with View Hierarchy - Partial rewrite of Highlighting Manager to not rebuild views in case higher z-order layers (such as selection highlighting or caret row highlighting) get changed.

Document Content Management

Issue 196508 - Improve document content of BaseDocument - Editor document content management will start to share existing positions with the same offset for multiple clients.

Annotation Handling Performance

Issue 197747 - Performance improvements of org.netbeans.editor.Annotations and related classes

Transactional index

Image:no_EditorPlan68.png (Issue 182653) Use data from old index while indexing is running (where possible) 60 days

Some features like Lucene Indexes already lock the index only in time of index update not during the whole indexing but the index reader client is negatively affected by the IO. Improving the index caching should help, see Improve Go To Type.

Complete Transactional Index support requires several changes:

  • The threading model of parsing has to be changed from a single dedicated parser thread to a concurrent model where the indexer (parser) is called by a non dedicated thread concurrently to the parser thread. This is an incompatible API change in the threading model which may affect existing languages depending on the single threaded model. On the other hand the Indexing API never declared the single threaded model.
  • The disk caches have to be transactional. The Lucene index supports transactions, but a custom storage implementation such as Java Signature Files have to be updated to support transactions as well. The transactional cache introduces higher IO load as the disk operations are done twice (the first time in a log phase, the second time in a commit phase - simpler).
  • The biggest problem is how to avoid OOM situations. Currently the dedicated parser thread uses VM telemetry to prevent OOME. This approach will not work as there will be more parsing threads running concurrently and consuming memory.
  • The JavaCustomIndexer and JavaBinaryIndexer have to be rewritten so that they can handle requests even before the up-to-date check is finished.

Misc performance improvements

Issue 187282 (cndreq, API) Allow to exclude embedded langs for source root (Tomas, 5 days)

Issue 186744 (marked as fixed in 7.0???) (API) Adding library causes huge I/O load - deleting files on background does not solve the problem, it's already done on background. The rename and clean up in idleIO will work fine. But the idleIO is not an API (even friend API). It's in the MasterFS FileChangeManager. This requires an idleIO to be added at least into the ProvidedExtensions like runPriorityIO. (Tomas, 2 days)

Issue 195814 Improve Go To File performance for non source file. The Go To File has two parts. The first one is handling source files and is provided by parsing.api. This part is reasonably fast (for typical set up < 1s). The second part handles files which are not under source roots (parsing.api does not know about them) and it does file system search. The second part may take minutes. (Tomas, 5 days)

Make indexers cancelable, see Issue 197811 (Tomas, 10 days)

New features

Misc Features

Issue 196937 - Drag and drop of a Web Service client code into Java ME project for Telefonica (Anton)

Issue 199405 - Create java.queries - abstraction for working with Java without JavaC (Tomas, 10 days)Image:yes_EditorPlan68.png

JavaFX 2 Support

Issue 198730 - CSS3 support for FX 2 (Anton)

Java Project Improvements

Issue 46863 Permit library names to contain spaces (Tomas, 10 days) Image:yes_EditorPlan68.png

Issue 182388 (j2ee,API) Provide api to set the DisplayName of a Library created programmatically (Tomas, 1 day) Image:yes_EditorPlan68.png

Issue 123464 Improve UI for resolving broken references (Tomas, 10 days)

Issue 193436 Allow library registration using AnnotationProcessor (Tomas, 2 days)

Issue 178503 Allow adding sources/javadoc from the Libraries node (Tomas, 3 days) Image:yes_EditorPlan68.png

Issue 174506 Run File for any java file with main methods should accept command line parameters (Tomas, 3 days)

Issue 139865 Cannot run Applet project (Tomas, 3 days)

Improve creation of a Java Project From Existing Sources Issue 194533 and Issue 190242. Partially done in NB 6.9, the wizard is now able to find source roots in selected folder but it should do it automatically for base project folder. The base project folder should be accessible from files tab as requested in Issue 194533. (Tomas, 5 days)

Issue 197734 Modify J2SEProject build scripts to use TestNG if available (Tomas, 10 days)

Issue 47498 Javadoc & Sources for Freeform, Autoproject, Maven, unknown binaries(Tomas, 10 days) Image:yes_EditorPlan68.png

Issue 199313 JFX binding to JavaPlatform (Tomas, 1 days) Image:yes_EditorPlan68.png

Issue 201340 White list support (Tomas, 20 days) Image:yes_EditorPlan68.png

General Infrastructure Improvements

Image:no_EditorPlan68.pngIssue 135492 Simplify Coloring Profiles creation

Issue 144579 (cndreq, API) Add support for child nodes to MimeLookup Preferences

Issue 180262 Incorrect check of indexer's being up-to-date (Tomas, 5 days)

Move stable part of java.api.common into regular api (java.project). Currently there in no way how 3rd party project implementors can use the utilities in java.api.common which causes copy paste programming. At least some parts of this module like QuerySupport should be cleaned up and moved to stable API. (Tomas, 5 days)

Remove implementation dependency of java.source on parsing.api. A support friend bridge module has to be created. The parsing.api and java.source will depend on it. (Tomas, 15 days)

Make parsing.api a stable API. The parsing.api is a base API for any language implementation in the IDE. But the API is still in development mode. The parsing.api should become a stable API. (Tomas, 1 days)

Improve java caches to support Annotation Processors generating java source from multiple source files, see Issue 196104 (Tomas, 5 days)

Editor Usability Improvements

Issue 89607 Double-click-drag-select and Triple-click-drag-select

Issue 41807 - Zoom editor window as in FF/Opera/Word

Issue 21237 - Redo should be possible after save

Issue 197522 - Improve support for RTL text

Issue 116926 - Show whitespace

Issue - Code Breadcrumbs

Issue - Only show section

Issue 13857 - Cutting/Copying vertical blocks of text: Rectangular Edit Tools

Issue - Reformat on Paste

Issue 155422 - Transfer Types on Paste

Issue - Block coloring

Issue - Middle Click scroll -

Issue - Unsurround

Issue - Advanced Bookmarks

Issue 140719 - Save Actions

Issue 56401 - Extended Clipboard

Javadoc Improvements

Issue 20672 Word wrap for javadoc comments (Dusan) Image:yes_EditorPlan68.png

Issue 25509 Javadoc comments syntax coloring (Honza B., 5)

Refactoring

Issue 100758 Beans refactoring (Honza B., 10)

Issue 183703 Import Statements Organizer (Honza B., 10) Image:yes_EditorPlan68.png

Issue 197194 More scopes for Find Usages (Ralph, 15) Image:yes_EditorPlan68.png

Issue 197189 Implement Introdoce Method Parameters Refactoring (Honza, 10)

Issue 65780 Change Method Parameters Usability Improvements (Ralph, 15) Image:yes_EditorPlan68.png

Issue 94325 Find usages of a package, requires api change Issue 131944 (Tomas, 5 days)

Issue 25377 Batch "fix imports" for entire project Image:yes_EditorPlan68.png

Issue 57545 Inline Method/Variable Refactoring (Ralph, 15) Image:yes_EditorPlan68.png

Issue 30140 Implement Code Migration Tool - "Upgrades" (e.g. to JDK7) (Honza L., Honza B., 10) Image:yes_EditorPlan68.png

Issue 197193 Custom Refactorings - DSL for declarative custom refactorings. (Honza L., Honza B.) Image:yes_EditorPlan68.png

Hints

  • unused assignment (Honza L. 2) Image:yes_EditorPlan68.png
  • unbalanced set/get to/from Collection/array (Honza L. 1) Image:yes_EditorPlan68.png

JDK 8

Jigsaw support in java project and editor support (module-info) also related to Issue 196497 api change (Tomas) David: is the issue number correct?

Support for JDK8 as possible and needed.

Preview

Server Side Queries

To support quick navigation through and exploration of large projects. Possible supported queries:

  • Go to Type/File(/possibly Symbol) (Honza L., Honza B., Tomas, 15)
  • Find Usages through whole project (all known projects), even those not opened in the IDE. (Honza L., Honza B., 20)

This does *not* include downloadable index that would eliminate initial scan.

Code completion productivity

Show most useful completion items at the top - extension of smart (type) code completion.

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