3 This is a tasklist/todo list for the 0.13.x development series. We
4 should perhaps name these seies LyX3 as a common name. As I see it
5 there are three major tasks to be done:
7 o Buffer structure rewrite
8 So that it will be easier to expand for
9 new and unknow future features.
10 The main problems with the current structure is that
11 is intended to be viewed by only one window at the
12 time. It also uses characters as the smallest unit, it
13 would probably be better to use something a bit
15 The LyXText class does not necessarily need to change
16 a lot, it could be per-view. However all the special
17 code in it needs to be (re)moved. Also a lot of the
18 functionality needs to be relocated.
19 o Switch to LaTeX as fileformat
20 Will ease move from latex to LyX a lot.
21 Also will let people work both in (ex) emacs
22 and LyX on the same files.
24 Should be a compile time switch what gui (toolkit)
25 you wish to use. We are going to support Xforms first,
26 and I am sure that GTK and Qt will follow soon. I also
27 plan to do support for Fl (even a text only toolkit
28 should be possible. ncurses perhaps. Even the
29 lyxserver could be a special case of this: a view with
30 no view being able to coexist with other views or alone)
31 We will do this by providing an interface all the
32 toolkits will need to follow. Functions that the LyX
33 core will expect to be there.
35 When these three is finished, we will probably declare a code freeze
36 and try to release a new version. Hopefully other features has also
37 been added, and none removed.
42 In addition to these there are a lot of small tasks that should be
43 performed, that has no direct bearing on features, but are more geared
46 o always try to use POSIX commands.
47 o switch to use POSIX signals
48 o make as much as possible of the code reentreanant(?)
49 should make it easier to move to threads later. Albeit
50 this is not a huge goal we have some parts of the code
51 that would benefit from threads. (forking is not that
53 o signal slot mechanism
54 We are going to use the signal/slot implementation
55 found in libsigc++. This will hopefully give us better
56 interface, leaner code, typesafe "callbacks". I have
57 been using signal/slots for other projects and it works
59 o other code rewrites to make multiple buffers/windows
60 possible, without too much hassle.
61 - get rid of most of the global variables. In
62 perticular current_view is a problem.
63 - non shared variables in shared structures
64 o make source documentation better. Remember that the better
65 we document LyX internals the easier is it for new
66 developers to begin working on LyX.
69 Some other things related to structure and services in the code:
70 o class FileInfo does way too much, move the unneeded parts to
71 a super class or friends.
72 o a process manager class to handle execution of external
74 - ensure that not too many commands are executed at
76 - ensure that non-compatible commands are running at
78 - to setup file descriptors where communicating with
79 the processes can take place.
80 o pass an inforeceiver around in the object structure.
81 (this instead of passing minibuffers, and lyxerrors.)
82 o remove code that is never used, or close to never used.
83 Support for reverse video, fast selection and mono
88 Also a lot of new features are thought of, only some of these are likely
91 o rewrite of table code. Should probably be written as some
92 kind of an inset. At least get the code out of the kernel.
96 o index support (and multiple indeces support)
98 o tocs for each section
100 o multiple table of contentes
103 o better version control (both document and file wise)
107 o I am sure mathed improvements. (Alejandro's department)
108 - better macro support
109 - better amsmath support
110 o character styles (similar to emph and noun)
111 Will make a lot of small things conceptual instead of
112 specific. Will be alot easier to change the
113 presentation of a filename f.ex. This is actually very
114 important, because this is where the user can't be
115 conceptual in the current version.
116 o macro support. Similar to the math-macro support, but
117 usable in regular text too.
118 o support for abbrevations (static macros)
119 o add a incremental search function.
120 o change the "Find and Replace" to Query Replace.
121 o better/more search functions:
122 - replace & find next
123 - replace & find previous
124 We should perhaps try to make the interface a bit
125 emacs like, that should at least give us the
127 o improved template support.
128 o collapse "New" and "New from Template" into one item.
129 o make lyx recognize some file types (i.e. gzipped) and do
130 the right thing when encountering them.
131 o We should look at all the LyX specific paragraph styles and
132 check carefully that we really need them. We should also try
133 to collapse some of them into singel items (i.e. chapter and
135 o the "LyX-Code" environment should be removed. Add a verbatim
139 o better graphics support
140 o rotating and scaling of text
141 o PSTricks (we should be able to support some of this package)
142 o better reference support
144 o better citation support
145 Especially the support for some of the main
146 bibtex supplied styles are needed. (harvard natbib...)
147 A complete support for natbib should perhaps be enough.
148 o improved spellchecker
149 - an ispell class should be made, this should
150 take care of communicating with the ispell
152 o online configuration
153 So that users should not need to edit lyxrc
154 manualy. This has now been "half" done; it is now
155 possible to save the current configuration with the
156 lyx command "preferences-save". We need to add code so
157 that the preferences can be set from inside LyX too.
159 T1-lib font renderer.
160 o better latex code quality
161 This means reading LaTeX books to get an better idea
162 on how things are done in the latex world.
163 o perhaps find better names for the paragraph styles
164 "paragraph" and "subparagraph"
165 o support for filecontents
166 This can make a latex document selfcontained, all the
167 needed graphics can be in the document.
168 o support for optional args to latex commands
169 - For sectioning commands I have an idea on how we can
170 do this: have a popup on RMB to set properties.
174 - url.sty (or better packages)
176 o references to external documents
178 o better babel support
179 - make it possible to tune the language strings
180 - the possibility for several languages in the same
185 o better float support (allow user to make its own floats)
186 o support newtheorem (allow user to make its own thorem like envirs)
187 o a bit more wysiwyg where it is appropiate.
188 - show bullets the way they will be on paper
189 - show a few more characters as they will be on paper
191 o online generation of new paragraph styles (or editing or old
193 o support for inlined sectioning commands (i.e. \paragraph{} )
194 o we should parse the command line ourselves.
195 o remove support for XResources, with multiple toolkits it
196 will be impossible to manage. And they are not very needed
198 o the possebility to collapse parts of the document.
199 (i.e. collapse the contents of a section. Would make moving
200 parts of the document around very easy)
201 o better LyXServer support
202 - perhaps use UNIX sockets instead of pipes
203 - make a decent protocol with return codes.
204 - make it indepentent of the GUI
205 - prob: concurrency (locks)
206 o other packages to support:
207 - keyval (we should not use it directly, but know how
208 to parse options for it.)
214 I am sure others has a list as long as mine...
217 ======================
219 We should also do some work to enhance the support we already have for
220 some packages, I think these are the packages supported by 0.12:
221 - longtable - color (papercolor boxes?)
222 - setspace (should support setting spacing on individual paragraphs)
225 - verbatim - algorithm
226 - inputenc - fancyhdr (we only have _very_ basic support)
230 (I am sure I have forgot some, please fill me in.)
233 ======================
235 If you have other wishes for features, or comments, please let us know.
241 http://freshmeat.net/appindex/1999/11/30/943979651.html
242 http://freshmeat.net/appindex/1999/12/09/944757708.html