Avoid an endless loop when updating a project
[anjuta.git] / TODO
blobbd2e1dc1a8f388d405d2f84685590779a3b8c2bd
1 To Do List
2 =================================
4 Unfiled
5 =======================================================================================
7  - Bug fixing batch #1:
8    [Skill: Medium, Work: 12hrs, Bounty: $25]
10 * Bug #346777    Cannot change the editor font
11 * Bug #351214    Anjuta doesn't respect Gnome blinking cursor preference
12 * Bug #357151    a + character in a directory name confuses anjuta
13 * Bug #357541    can't launch Anjuta project file from Nautilus
14 * Bug #357820    Goto / Previous history should return to previous cursor ...
17  - Automated tests for Anjuta:
18    [Skill: Basic, Work: 20hrs]
20 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).
23  - Implement IAnjutaEditorPrint:
24    Implement it using Gtk 2.10 Printing stuff
27  - Relocate 'Autoformat' code from document-manager plugin:
28    [Skill: Basic, Work: 3hr, Bounty: $50]
30 Relocate 'Autoformat' code from document-manager plugin to language-support-cpp-java plugin.
32 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).
34 This is partly done but somebody has to fix the new "indent" plugin!
36 libanjuta
37 =======================================================================================
39  - Plugins reference counting:
40    Implement plugins reference counting. Loading a plugin gets 1 ref and when ref count reaches 0, plugin is deactivated.
43  - Preferences keys with no defaults do not register:
44    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.
46 Plugin: Editor
47 =======================================================================================
49  - Apply prefererences:
50    Hidden editor preferences (those which are not settable from preferences dialog) are not applied now.
53  - Update on configure syntax highlighting:
54    When syntax highlighting colors/fonts are changed, the changes are not propagated to all editors, but it should, just like a gconf key.
57  - Move CVS directories:
58    Move data/properties/ and scintilla/ directories (by CVS surgery, and not by add/remove) into plugins/editor/ directory.
60 Plugin: Project Manager
61 =======================================================================================
63  - Complete Makefile project manager backend:
64    [Skill: High, Work: 50hrs, Bounty: $700]
66 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:
68 http://sourceforge.net/mailarchive/message.php?msg_id=12687933
70 Plugin: Automake Build
71 =======================================================================================
73  - Define compile commands:
74    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).
77  - Build parameters dialog:
78    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.
80 Plugin: Symbol Browser
81 =======================================================================================
83  - Possible memory leak:
84    Investigate possible memory lead on load/unload of symbol-browser.
87  - Workspace symbols not updated:
88    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.
91  - Tags search do not retrieve all matching symbols:
92    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.
94 Documentation
95 =======================================================================================
97  - Update:
98    All documents need update.
100 libanjuta-interfaces
101 =======================================================================================
103  - Documentation:
104    Add gdoc API documentation in libanjuta.idl.
106 Plugin: Project Wizard
107 =======================================================================================
109  - More templates:
110    Create more project templates, such as gnome, sdl, x11 etc..
112 anjuta
113 =======================================================================================
115  - Apply http://live.gnome.org/GnomeGoals:
116    [Skill: Low, Work: 20hrs]
118 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.
120 Plugin: Debugger
121 =======================================================================================
123  - Remote debugging support:
124    [Skill: medium, Work: 40h]
125 Remote debugging support in Anjuta debugger.
128  - Rewrite a working inspect/evaluate dialog:
129    [Skill: Medium, Work: 20hrs]
131 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).
133 Plugin: Terminal
134 =======================================================================================
136  - Be able to create multiple terminals:
137    Be able to create multiple terminals
139 Plugin: Glade
140 =======================================================================================
142  - Polish up interface:
143    Add a label before the list of loaded glade projects ("Files:").
144 Add stock icon. Deactivate glade plugin when last glade file is closed.
147  - Connect callback signal:
148    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.
151  - Complete Glade 3 integration:
152    [Skill: High, Work: 30hrs, Bounty: $100]
154 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.
156 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.
158 "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
159 of dissussion.
161 "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.
163 Also, the the glade widget editor should be embed in Anjuta (glade-3 already has the necessary widgets).