Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 344555 - Request to commit EGLDoc to EDT
Summary: Request to commit EGLDoc to EDT
Status: NEW
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: EDT (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-05-03 08:05 EDT by Aaron Allsbrook CLA
Modified: 2017-02-23 14:19 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aaron Allsbrook CLA 2011-05-03 08:05:12 EDT
Currently EGLDoc is a closed source effort run by Aaron Allsbrook.  I have done the initial work to port the model input to use the EDT model.  I would like to propose that the code be committed to EDT for reuse and community maintenance, and community driven requirements.
Comment 1 Aaron Allsbrook CLA 2011-05-08 22:15:15 EDT
Some additional details around the existing EGLDoc 

EGLDoc Technical Approach
- General Usecase.  From Eclipse based IDE a user will select an EGL project.  By right clicking on the project element in the project explorer or navigator a context menu option will appear allowing a user to create "Run EGLDoc".  After egldoc runs the project will contain a new folder at the root named "doc".  This folder will contain a number of generated html files describing the EGL content of the project. Those html files will model a similar pattern and informational structure to that of JavaDoc.

Is currently implemented with the following architecture

One eclipse plugin containing

EGLDocPopup - Eclipse implementation for context menu - the extension point -org.eclipse.ui.popupMenus

EGLDocManager - Controls the EGLDoc lifecycle.  First requests a build of the EGL code.  It then walks the EDT model for each part.  As parts are identified it passes those parts to file writers that print the appropriate documenation templates.  Several of the file writers take their own complete objects for writing.  The EGLDocManager will visit the EDT model elements to build those temporary objects.

EGLDocGenerator - Forces the compile of the EGL source code into the IR objects.   

Multiple file writers
AbstractSummaryWriter - 
CSSWriter - creates the EGLDoc css file
DocWriter - Super class for EGLDoc - currently provides now implementation
IndexWriter - creates the index.html file that defines the frames for the different part definitions
OverViewFrameWriter - Overview html for the top left pain.  Describes all the available packages in the project and offers the ability to see all parts in the project
OVerViewSummaryWriter - shows the primary view with the list of all packages in the project 
PackageSummaryWriter - Content area content for the selection of a pacakge.  It includes a list of the parts in the package
PartsFrameWriter - Navigation area html for the parts in the package
PartSummaryWriter - Content area for the selection of a part.  Lists the fields and functions.
Comment 2 Aaron Allsbrook CLA 2011-05-09 16:39:48 EDT
EGL Input Source Requirements
Currently the EGLDoc generation has little in the way of expectations of the EGL source code.  It expects valid source code and identifies field and function in each part.  Currently limitations include the ability 

Output
Each part gets it own entry in the documentation.  Meaning a new html file will be created for each part.  EX.  Handler, Library, Record, Global Function etc... This differs from the possible file structure that may contain multiple parts in one file.  In the part html information about the 
- part stereotype, 
- file location, 
- source statement
- fields, 
- functions   

Finally from the source comments are captured.  Currently EGLDoc will identify a file location for a specific part/function/or field.  Using reverse parsing EGLDoc will build a complete string that captures all comments directly above the area of interest.  This information is not captured in the model so it must derived via file reads.  Comments are required to be of the style //.  The comments are inserted into the EGLDoc using the formatting captured in the source code itself.

Many future enhancements exist for capturing comments.  Those include, support for /**/ notation, handling of carriage returns, annotation support, etc
Comment 3 Lisa Lasher CLA 2011-08-26 18:09:09 EDT
changing to Enhancement, as this isn't really a defect.
Comment 4 Matt Heitz CLA 2013-01-03 14:22:04 EST
Setting the Target Milestone correctly for all bugs (set to Future in this case).