This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Summary: | Use code completion hints supplied by annotation processors | ||
---|---|---|---|
Product: | java | Reporter: | brucechapman <brucechapman> |
Component: | Editor | Assignee: | Dusan Balek <dbalek> |
Status: | RESOLVED FIXED | ||
Severity: | blocker | CC: | dkonecny, jglick, pcw, sj-nb |
Priority: | P3 | Keywords: | API, API_REVIEW_FAST |
Version: | 6.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | ENHANCEMENT | Exception Reporter: | |
Bug Depends on: | |||
Bug Blocks: | 111065 | ||
Attachments: |
Patch adding getCompletions implementation to the ServiceProviderProcessor.
Proposed patch |
Description
brucechapman
2007-07-28 08:55:34 UTC
FYI: I have added a very rudimentary support for annotation processors (completions and messages) to the Extended Java Editor module here: http://kenai.com/projects/pelmel more about the annotation processors support is here: http://kenai.com/projects/pelmel/pages/AnnotationProcessors I am also attaching a patch for the NetBeans' ServiceProviderProcessor, that proposes types for the "service" attribute. Jesse, would you mind if I would apply the patch? Thanks. Created attachment 85368 [details]
Patch adding getCompletions implementation to the ServiceProviderProcessor.
Go ahead but [JG01] What is the purpose of the first two if-clauses? Seems to me that if these are ever true, there is a bug in the 269 container. [JG02] Shouldn't TypeCompletion.getValue return fqn + ".class"? [JG01] Some of the conditions in the first two ifs may be validly true, according to the API - "annotated" (element) may be null (is "userText" is non-null), "annotation" may be validly null too (if "annotated" is not null). Some of the conditions are to make the method robust - they might be true if the user changes his/hers code enough (e.g. changing the @Target of the annotation to METHOD). processingEnv == null would probably mean a container bug. [JG02] Pelmel is currently not able to handle fqn + ".class" properly, but I am going to fix that so we can return fqn + ".class" if preferred (Pelmel should do the correct thing in both cases after the fix). Recently, an initial support for running annotation processors inside Java editor has been implemented for j2se projects. (see changeset: http://hg.netbeans.org/main/rev/d59a1df3507f). In order to use the code completion hints supplied by annotation processors in JavaCompletionProvider, I would like to propose a small extension to the java.source API (diff is attached). Created attachment 94490 [details]
Proposed patch
[JG03] Catch RuntimeException from processor.getCompletions and log with processor impl class name but continue. OK. Thanks for review. Fixed in jet-main. http://hg.netbeans.org/jet-main/rev/497bc30d2c8f Integrated into 'main-golden', will be available in build *201003040200* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/497bc30d2c8f User: Dusan Balek <dbalek@netbeans.org> Log: Issue #111292: Use code completion hints supplied by annotation processors - fixed. |