summaryrefslogtreecommitdiffstats
path: root/doc/api/FutureTasks.dox
blob: fbed119a68c28de2cab7fdfa83774104bd0d57e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/** \file FutureTasks.dox
  * \brief Future tasks and ideas for the next release of KDevelop
  */
/** \page FutureTasks Future tasks and ideas for the next release of KDevelop

\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 KDevelop 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 KAction plugged into KPopupMenu, 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 kdelibs/kutils/kreplace.* and kdelibs/kutils/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...)

*/