To Do List
=================================

Unfiled
=======================================================================================

 - Bug fixing batch #1:
   [Skill: Medium, Work: 12hrs, Bounty: $25]

* Bug #346777    Cannot change the editor font
* Bug #351214    Anjuta doesn't respect Gnome blinking cursor preference
* Bug #357151    a + character in a directory name confuses anjuta
* Bug #357541    can't launch Anjuta project file from Nautilus
* Bug #357820    Goto / Previous history should return to previous cursor ...


 - Automated tests for Anjuta:
   [Skill: Basic, Work: 20hrs]

Implement automated tests for Anjuta using either LDTP (http://ldtp.freedesktop.org/wiki/) or Dogtail (http://people.redhat.com/zcerza/dogtail/), which ever is better. Test cases should cover existing features and be able to easily extend for future features. The implementation should alow running the test cases in an automated setup (such as a remote server with a sutable running platform).


 - Implement IAnjutaEditorPrint:
   Implement it using Gtk 2.10 Printing stuff


 - Relocate 'Autoformat' code from document-manager plugin:
   [Skill: Basic, Work: 3hr, Bounty: $50]

Relocate 'Autoformat' code from document-manager plugin to language-support-cpp-java plugin.

Currently Autoformat code that is specific to c and c++ (uses indent program) is located in document-manager plugin (legacy). It should now be moved to language-support-cpp-java plugin that specializes in c/c++ processing. Preferences, UI, and processing should all be moved to the new place. At the same time, the indent configuration dialog should be fixed to fit in smaller size, presumably using notebook widget (currently it is huge and not screen appropriate for lower resolution).

This is partly done but somebody has to fix the new "indent" plugin!

libanjuta
=======================================================================================

 - Plugins reference counting:
   Implement plugins reference counting. Loading a plugin gets 1 ref and when ref count reaches 0, plugin is deactivated.


 - Preferences keys with no defaults do not register:
   Preferences keys without default values (defined in .glade file) are not registered during preferences registeration. This results in gconf type mismatch when the keys are queried.

Plugin: Editor
=======================================================================================

 - Apply prefererences:
   Hidden editor preferences (those which are not settable from preferences dialog) are not applied now.


 - Update on configure syntax highlighting:
   When syntax highlighting colors/fonts are changed, the changes are not propagated to all editors, but it should, just like a gconf key.


 - Move CVS directories:
   Move data/properties/ and scintilla/ directories (by CVS surgery, and not by add/remove) into plugins/editor/ directory.

Plugin: Project Manager
=======================================================================================

 - Complete Makefile project manager backend:
   [Skill: High, Work: 50hrs, Bounty: $700]

There is some initial work done for makefile based project management in gnome-build (src/backends/libgbf_mkfile) and Anjuta. Most of the base implementations have been done. The tasks is to completed this backend so that it works just like automake-backend. All the project interfaces from Anjuta via gnome-build should work meaningfully for this backend (as far as Makefile based structure would allow). Further details can be acquired by following the mailing list thread:

http://sourceforge.net/mailarchive/message.php?msg_id=12687933

Plugin: Automake Build
=======================================================================================

 - Define compile commands:
   Define compile commands for various file extensions. Normally, plugin should search for a Makefile and invoke it with correct target (for example for a c file, it will be 'make file.o'). There should be a file that contains regexs for deriving target from a file name for invoking 'make'. Also, if there is no Makefile found in the directory with which to invoke the compile command, user should be prompted to create a Makefile (possibly filling it up with some template contents).


 - Build parameters dialog:
   Add a 'Build parameters dialog' in Build menu that brings up a dialog to configure environment variables and make parameters for the build. They would be set when ever the build is started. Also they need to be session saved and restored.

Plugin: Symbol Browser
=======================================================================================

 - Possible memory leak:
   Investigate possible memory lead on load/unload of symbol-browser.


 - Workspace symbols not updated:
   Although, file symbols are updated when the file is saved, corresponding workspace symbols are not updated. That is when "goto symbol" to a symbol in this file from some other place is activated (eg. symbol pane), the old location is used.


 - Tags search do not retrieve all matching symbols:
   Tags search (plugins/editor/aneditor.cxx) during calltips query do not retrieve all matching function prototypes. Perhaps, the tags are not sorted, leading to incomplete binary search. Investigate it in tag-manager/ directory.

Documentation
=======================================================================================

 - Update:
   All documents need update.

libanjuta-interfaces
=======================================================================================

 - Documentation:
   Add gdoc API documentation in libanjuta.idl.

Plugin: Project Wizard
=======================================================================================

 - More templates:
   Create more project templates, such as gnome, sdl, x11 etc..

anjuta
=======================================================================================

 - Apply http://live.gnome.org/GnomeGoals:
   [Skill: Low, Work: 20hrs]

Investigate general usability and HIG issues in Anjuta, come up with solutions that counter them and solve them. Issues such as Dialog consistencies, Navigational usabilities, Menus organization, features usablities should be investigated.

Plugin: Debugger
=======================================================================================

 - Remote debugging support:
   [Skill: medium, Work: 40h]
Remote debugging support in Anjuta debugger.


 - Rewrite a working inspect/evaluate dialog:
   [Skill: Medium, Work: 20hrs]

Currently, this dialog use the same debug tree widget used by the local  variables and watch display. I think we should keep the same widget for all this but we need perhaps to add a few options (local variables cannot be removed by example).

Plugin: Terminal
=======================================================================================

 - Be able to create multiple terminals:
   Be able to create multiple terminals

Plugin: Glade
=======================================================================================

 - Polish up interface:
   Add a label before the list of loaded glade projects ("Files:").
Add stock icon. Deactivate glade plugin when last glade file is closed.


 - Connect callback signal:
   Connect signal callback selection signal from glade and goto the signal implementation when a signal handler is selected in glade. Create the signal prototype if it is not found.


 - Complete Glade 3 integration:
   [Skill: High, Work: 30hrs, Bounty: $100]

We already have glade3 integration in anjuta working. But the implementation is incomplete and not fully usable. It should interface with Anjuta glade plugin for signals navigation, stubs creations and project files negotiations.

Signals navigation" means when user selects a signal in glade properties editor, Anjuta automatically brings up the implementation of that signal in its editor. This can be accomplished with SymbolBrowser plugin in anjuta, that keeps tab on all symbol updates in the project. Using the signal handler signature, Anjuta glade plugin can take help of symbol-browser plugin to find the location of function definitions in the project.

"Stubs creation" means when the user adds new signals, Anjuta glade plugin automatically creates the stub for the signal handler using gtk signal introspection. The signal prototype can be identified with the introspection. Where and how the stubs are added in project is a matter
of dissussion.

"Project files negotiation" means when user adds file via glade (e.g. images in dialogs), glade will notify anjuta to add the file in project and give a change to relocate it within the project. Anjuta needs to handle this request and add the files in project (possibly prompting user for relocation). Anjuta also needs to make sure glade is able to find them later.

Also, the the glade widget editor should be embed in Anjuta (glade-3 already has the necessary widgets).

