3 This is a task list/todo list for future LyX releases. There is
4 one (?) major task left to be done:
6 o Buffer structure rewrite
7 The main problems with the current structure is that
8 is intended to be viewed by only one window at the
9 time. It also uses characters as the smallest unit, it
10 would probably be better to use something a bit
12 The LyXText class does not necessarily need to change
13 a lot, it could be per-view. However all the special
14 code in it needs to be (re)moved. Also a lot of the
15 functionality needs to be relocated.
17 In addition, there are a lot of small tasks that should be performed
18 that have no direct bearing on features, but are more geared towards
21 o always try to use POSIX commands.
22 o switch to use POSIX signals
23 o make as much as possible of the code reentrant(?)
24 should make it easier to move to threads later. Albeit
25 this is not a huge goal we have some parts of the code
26 that would benefit from threads. (forking is not that
28 o signal slot mechanism
29 We are going to use the signal/slot implementation
30 found in libsigc++. This will hopefully give us better
31 interface, leaner code, type-safe "callbacks". I have
32 been using signal/slots for other projects and it works
34 o other code rewrites to make multiple buffers/windows
35 possible, without too much hassle.
36 - get rid of most of the global variables. In
37 particular current_view is a problem.
38 - non-shared variables in shared structures
39 o make source documentation better. Remember that the better
40 we document LyX internals, the easier is it for new
41 developers to begin working on LyX.
43 Some other things related to structure and services in the code:
44 o class FileInfo does way too much, move the unneeded parts to
45 a super class or friends.
46 o a process manager class to handle execution of external
48 - ensure that not too many commands are executed at
50 - ensure that no non-compatible commands are running at
52 - setup file descriptors where communicating with
53 the processes can take place.
54 o pass an info receiver around in the object structure.
55 (this instead of passing minibuffers, and lyxerrors.)
59 Also a lot of new features are thought of:
61 o rewrite of table code.
64 o index support (and multiple indices support)
66 o tocs for each section
68 o multiple table of contents
71 o better version control (both document and file wise)
76 o character styles (similar to emph and noun)
77 Will make a lot of small things conceptual instead of
78 specific. Will be a lot easier to change the
79 presentation of a filename f.ex. This is actually very
80 important, because this is where the user can't be
81 conceptual in the current version.
82 o macro support. Similar to the math-macro support, but
83 usable in regular text too.
84 o support for abbreviations (static macros)
85 o add an incremental search function.
86 o change the "Find and Replace" to Query Replace.
87 o better/more search functions:
89 - replace & find previous
90 We should perhaps try to make the interface a bit
91 emacs like, that should at least give us the
93 o improved template support.
94 o collapse "New" and "New from Template" into one item.
95 o make lyx recognize some file types (i.e. gzipped) and do
96 the right thing when encountering them.
97 o We should look at all the LyX specific paragraph styles and
98 check carefully that we really need them. We should also try
99 to collapse some of them into single items (i.e. chapter and
101 o the "LyX-Code" environment should be removed. Add a verbatim
104 This would be a special inset that is line-based (no
105 breaking of lines), where tabstops can be set and used.
107 A special insets with some basic drawing
109 o rotating and scaling of text
110 o PSTricks (we should be able to support some of this package)
111 o better reference support
113 o online configuration
114 So that users should not need to edit lyxrc
115 manually. This has now been "half" done; it is now
116 possible to save the current configuration with the
117 lyx command "preferences-save". We need to add code so
118 that the preferences can be set from inside LyX too.
120 T1-lib font renderer.
121 o better latex code quality
122 This means reading LaTeX books to get an better idea
123 on how things are done in the latex world.
124 o perhaps find better names for the paragraph styles
125 "paragraph" and "subparagraph"
126 o support for filecontents
127 This can make a latex document selfcontained, all the
128 needed graphics can be in the document.
129 o support for optional args to latex commands
130 - For sectioning commands I have an idea on how we can
131 do this: have a popup on RMB to set properties.
132 o references to external documents
137 o better float support (allow user to make its own floats)
138 o support newtheorem (allow user to make its own thorem like envirs)
139 o a bit more wysiwyg where it is appropriate.
140 - show bullets the way they will be on paper
141 - show a few more characters as they will be on paper
143 o online generation of new paragraph styles (or editing or old
145 o support for inlined sectioning commands (i.e. \paragraph{} )
146 o we should parse the command line ourselves.
147 o remove support for XResources, with multiple toolkits it
148 will be impossible to manage. And they are not very needed
150 o the possibility to collapse parts of the document.
151 (i.e. collapse the contents of a section. Would make moving
152 parts of the document around very easy)
153 o better LyXServer support
154 - perhaps use UNIX sockets instead of pipes
155 - make a decent protocol with return codes.
156 - make it independent of the GUI
157 - prob: concurrency (locks)
158 o other packages to support:
160 - keyval (we should not use it directly, but know how
161 to parse options for it.)
167 I am sure others have a list as long as mine...
170 ======================
172 We should also do some work to enhance the support we already have for
173 some packages, I think these packages are already supported:
174 - longtable - color (papercolor boxes?)
175 - setspace (should support setting spacing on individual paragraphs)
178 - verbatim - algorithm
179 - inputenc - fancyhdr (we only have _very_ basic support)
182 (I am sure I have forgot some, please fill me in.)
185 ======================
187 If you have other wishes for features, or comments, please let us know.