/** \file FutureTasks.dox * \brief Future tasks and ideas for the next release of TDevelop */ /** \page FutureTasks Future tasks and ideas for the next release of TDevelop \section codereftodo Code Refactoring / Improvements: - Core - Make sure all lib interfaces are available via DCOP - Find a nicer way to remove dynamic menu entries from context menus - Resolve the path handling mess - Project name should be able to contain spaces - Import existing directory: Should be named "Import existing project" and more intuitive (wizard-like) - Question from the wizard: "I have found C++ files in your project directory. Should C++ be the primary language of your project?" User: [Yes/No] => Next Step... - Something intuitive for the binary/-ies (for debugger and execution of program), libtool ([Yes/No] for the debugger), build tool (qmake, automake,...?), etc.., too. - use mimetype to determine code files, not extension (see bug # - Make the help buttons (that we already have) open the TDevelop Handbook on the correct page (or the index if the subject is not covered yet). - New and improved VCS framework (Needs better description) - Another look at the plugin system (Nees better description) - Another look at the project files (shared, non-shared, session) - fix(redesign?) project language switching - editor handling could be made a bit saner if editor plugin switching was an after-restart-only feature - Programming Language Support Parts - Create base classes for language support parts: - AntlrLanguageSupport - AntlrBackgroundParser - AntlrProblemReporter - Same for: - YaccLanguageSupport - YaccBackgroundParser - YaccProblemReporter - There is a possibility to create even something like - LanguageSupportBase Look at java, pascal and ada support parts to get more inspiration. There should be base classes for ada, java and pascal language supports - too much code duplication. - CppSupportPart - Extended "make member" functionality - run on a .h to implement stubs for all unimplemented non-abstract methods - Code Refactoring - text hint type info tooltips (edit mode) - text hint value info tooltips (debug mode) - Make the language plugin know stuff like what file patterns to look for (for instance, "find in files" needs this) - Build tools Parts - Show .po files in project management - Custom actions for groups, targets and files for project managers: - any menu item should be a TDEAction plugged into TDEPopupMenu, also we need to define shortcuts for any such action, also we should make sure those actions are properly executed from a shortcut. - AutoProjectPart - Should be able to DND files from other targets / file list / konq to add to targets - Should loose the experimental crashy and nonstandard "add files" dialog - Update configure.in when sub projects are added and the project doesn't use am_edit - Keep the correctly cased project name and save it to the project file - Debugger Parts - Create a debugger support base classes. Make the current GDB support a plugin. - Implement parts for other debuggers i.e. DBX, WDB, Ladebug, JDB, XDB, bashdb, the Perl debugger, or the Python debugger. We can use DDD as inspiration. - General debugger - variable widget - set variable by editing the value in the tree - cast value by editing the type in the tree - disassembly - add breakpoint display - set breakpoint by selecting a line as in the edit window - allow scrolling of disassembled code about and below current limits - add source to disassembled code as comments - basically just re-work the whole disassemble window :) - Bugs - Fix "core file" handling - Fix "attach to" handling - Breakpoints can disappear at odd times - When the target program crashes, the debugger can't be started again. (intermittant?) - Break on method() - could have multiple methods which require a choice. How to handle this? - Plugins - DocTreeViewPart - Implement plugin system for doctreeview. - improve documentation browsing - Check if a man page exists before offering the context menu item 'Goto manpage' - right click -> set as bookmark in docviewer - ClassViewPart - Implement language-dependant plugin system for classview: - namespaces/classes/functions are not always applicable to a language, we need a way to correctly fill a class view and combo boxes - only a language support can do that properly. - Distinguish vanilla c++ support from c++ + Qt extensions and show signals/slots in the class view only with Qt. (is this still valid?) - KonsoleViewPart - Perhaps use konsole part for the application frontend - cd's when selecting a file, but doesn't when selecting a dir, desired: a menu option to "cd" to that directory - QEditor - Replace editors/qeditor/koReplace.* and editors/qeditor/koFind.* with tdelibs/tdeutils/kreplace.* and tdelibs/tdeutils/kfind.* \section extensiontodo Extensions / New Functionality: - Core - implement multiple-views per document (why?) - Document manager (not obviously useful) - Implement Add Plugin - Show intro page on startup - Programming Language Support Parts - Build tools Parts - Plugins - better sourcenav part (all navigation tools should be supported with at least a "back" action - forward much less important) - Integrate kontact's TODO-List and knotes plugin. (We need something like a server/client system that all the knotes/toto-clients are always synced.) - a generic macro-tool (if possible, probably best implemented as a KTE plugin) - Free grouping of files in file group plugin \section misctodo Miscellaneous (and possibly invalid) items: - UI bugs - Editor options dialog missing when all views are closed (virtually impossible to fix) - If you click an error in the output view, "Next Error"/"Previous Error" should then start from that point (already implemented?) - Messages in status bar would look nicer if they appeared with the same border as other items (impossible) - Browser tool bar should truncate long menu entries so it doesn't take so much space (already implemented?) - Extend KDevPlugin-API in order to have a preferred border for at least the selection parts (Automake Manager, Class Browser, File Groups, etc...) */