## Code Fusion X: Enhanced Developement Environment.

The following is a list of new features or enhancements to existing feature which would help Code Fusion become a premire developement environment for native developers. This list is not inclusive, please feel free to add to it (see end of document for contact information).

Editor:

> Static source code highlighting.
> Dynamic source code highlighting (On the fly).
> Handling of tab spaces.
> Enhanced brace matching.
> Symbol completion.
> Show white space feature.

Source Code Comprehension:

> Java packages support.
> Namespaces support.
> C++ template support.
> Enhanced object oriented bowsering tool.
> Perl parser.

IDE features:

> Integrated Project Editor, Target Manager and Target Editor in Symbol browser.
> Support for sub targets and complex builds.
> Build tree mirrowing source tree structure.
> Per file compiler settings.
> Enhanced Java support.
> Enhanced versioning control interface.
> Automatic ChangeLog entry generation.
> More Tool Chains supported (Note: is a Code Fusion 1.1 requirement)
> Intergrate the Build/Make Window into main editor/browser Window.
> Export Makefile.am.

GUI:

> Better tool bar support.
> Preferences dialog make over.

Misc.:

> Stand alone editor.
> Better reuse/context checkbox solutions.
> Upgrade Manager.

Developement focus and support aids:

> SNUG email list (Source Navigator User Group).
> Code Fusion focus groups.
> Competitor evaluation.

####

#### Static source code highlighting.

This does not work well in every case.
TODO: specific examples of where it fails.

#### Dynamic source code highlighting.

This only was for a sub set of syntax which static source code highlighting can highlight.
TODO: specific list of unsupported syntax and examples.

#### Handling of tab spaces.

Source Navigator fails to consistanty honor the tab settings which the user can select in the preferences dialog. For example, if the user has selected "tabs to spaces", auto indent will still use tab space instead of spaces.

#### Enhanced brace matching.

Source Navigator does have basic 'on the fly' brace match abilities. These could do with much enhancement to help users resolve unmatch braces in source code projects.

#### Symbol completion.

Once the user has started typing a symbol, for example, a function call starting with foo, symbol completion will help them quick find the symbol they desire, in this case it may list symbols such as foo_bar, foo_class, foo_bar_big_long_function_name_nobody_wants_to_type_out, then user can the select the symbol without having to type out the whole symbol name.

#### Show White spaces feature.

This would allow you the user to toggle where white spaces (spaces, tabs, return charactors) where displayed as WYSIWUG or repersented by a set of symbols (usually, small dot, right arrow and return arow).

#### Enhanced object oriented bowsering tool.

Although $PRODUCT_NAME does have OO related browsing features, such as the class browser and hierachy browser, many engineers seem to need a more powerful OO visualization tool. A good place to start for generating the requirements for such a tool would be Benjamin Kosnik <bkoz@cygnus.com>.

### IDE features:

#### Integrated Project Editor, Target Manager and Target Editor in Symbol browser.

Combining IDE feature with project creation and management tool will help the user to have easier access to the Code Fusion functionality. At the moment (Code Fusion 1.0) the IDE features are "bolted on", the user has to hunt for them in a menu, it is unlikely the user will fine these features/tool with great easy, unless reading the documentation or have the feature demostrated.

TODO: Proposel and Screen shots of the planned intergration.

### Misc.:

#### Upgrade Manager.

An upgrade manager would allow Code Fusion to be upgrade safely via binary patches (simply replacing .tob files). The Upgrade Manager would normally be invisable to the user, only when there is something wrong with an binary patch will the Upgrade Manager notify the user that they need other upgrades. For example, a user downloads and installs a new V1.1 sninit.tob to
fix bug A, how ever V1.1 sninit.tob also fixes bug C and requires V2.3 of multimake.tob, the upgrade manager would notify the user that they have to (or it's recommended to) download the latest version of multimake.tob. Currently we can supply binary patches in the form of .tob files, but if something goes wrong (i.e. the user installs the wrong version or gets the new and old files mixed up) the only thing that can be done is reinstall the product.

Contact information: Please feel free to contact me (irox@cygnus.com) or sn-project@cygnus.com with any questions or comments regarding this document. Spelling and grammar correction welcome.