]> git.lyx.org Git - lyx.git/blob - development/lyx3/LyX3-Tasks
some using changes small changes in lyxfont and some other things, read the Changelog
[lyx.git] / development / lyx3 / LyX3-Tasks
1 -*- text -*-
2
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:
6
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
14                 bigger.
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 GUI independence.
20                 Should be a compile time switch what gui (toolkit)
21                 you wish to use. We are going to support Xforms first,
22                 and I am sure that GTK and Qt will follow soon. I also
23                 plan to do support for Fl (even a text only toolkit
24                 should be possible. ncurses perhaps. Even the
25                 lyxserver could be a special case of this: a view with
26                 no view being able to coexist with other views or alone)
27                 We will do this by providing an interface all the
28                 toolkits will need to follow. Functions that the LyX
29                 core will expect to be there. 
30
31 When these three is finished, we will probably declare a code freeze
32 and try to release a new version. Hopefully other features has also
33 been added, and none removed.
34
35
36 ====================
37
38 In addition to these there are a lot of small tasks that should be
39 performed, that has no direct bearing on features, but are more geared
40 towards code quality:
41
42         o always try to use POSIX commands.
43         o switch to use POSIX signals
44         o make as much as possible of the code reentreanant(?)
45                 should make it easier to move to threads later. Albeit
46                 this is not a huge goal we have some parts of the code
47                 that would benefit from threads. (forking is not that
48                 nice...) 
49         o signal slot mechanism
50                 We are going to use the signal/slot implementation
51                 found in libsigc++. This will hopefully give us better
52                 interface, leaner code, typesafe "callbacks". I have
53                 been using signal/slots for other projects and it works
54                 like a charm.
55         o other code rewrites to make multiple buffers/windows
56           possible, without too much hassle.
57                 - get rid of most of the global variables. In
58                   perticular current_view is a problem.
59                 - non shared variables in shared structures 
60         o make source documentation better. Remember that the better
61           we document LyX internals the easier is it for new
62           developers to begin working on LyX.
63
64
65 Some other things related to structure and services in the code:
66         o class FileInfo does way too much, move the unneeded parts to
67           a super class or friends.
68         o a process manager class to handle execution of external
69           commands.
70                 - ensure that not too many commands are executed at
71                   the same time.
72                 - ensure that non-compatible commands are running at
73                   the same time. 
74                 - to setup file descriptors where communicating with
75                   the processes can take place.
76         o pass an inforeceiver around in the object structure.
77           (this instead of passing minibuffers, and lyxerrors.)
78
79 ================
80
81 Also a lot of new features are thought of, only some of these are likely
82 to make it into 0.14:
83
84         o rewrite of table code. Should probably be written as some
85           kind of an inset. At least get the code out of the kernel.
86                 - colortbl  -multirow
87                 - hhline    -multicolumn
88                 - dcolumn
89         o index support (and multiple indeces support)
90                 - multind ?
91         o tocs for each section
92                 - minitoc
93         o multiple table of contentes
94                 - multitoc
95         o trivlist?
96         o better version control (both document and file wise)
97                 - version.sty
98                 - cvs
99                 - sccs 
100         o I am sure mathed improvements. (Alejandro's department)
101                 - better macro support
102                 - better amsmath support
103         o character styles (similar to emph and noun)
104                 Will make a lot of small things conceptual instead of
105                 specific. Will be alot easier to change the
106                 presentation of a filename f.ex. This is actually very
107                 important, because this is where the user can't be
108                 conceptual in the current version.
109         o macro support. Similar to the math-macro support, but
110           usable in regular text too.
111         o support for abbrevations (static macros)
112         o add a incremental search function.
113         o change the "Find and Replace" to Query Replace.
114         o better/more search functions:
115                 - replace & find next
116                 - replace & find previous
117                 We should perhaps try to make the interface a bit
118                 emacs like, that should at least give us the 
119                 features we want.
120         o improved template support.
121         o collapse "New" and "New from Template" into one item.
122         o make lyx recognize some file types (i.e. gzipped) and do
123           the right thing when encountering them.
124         o We should look at all the LyX specific paragraph styles and
125           check carefully that we really need them. We should also try
126           to collapse some of them into singel items (i.e. chapter and
127           chapter*)
128         o the "LyX-Code" environment should be removed. Add a verbatim
129           environment instead.
130         o tabbing support
131                  This would be a special inset that is line based (no
132           breaking of lines), where tabstops can be set and used.
133
134         o picture support
135                  A special insets with some basic drawing
136                  capabilities. 
137
138         o better graphics support
139                  I have begun doing something about this. There are
140           several things here that need to be dont. We have alreay
141           decided to use graphicx.sty instead of graphics.sty. This
142           makes several things easier. There is also some work in
143           progress to separate the inset and the creation of the Xpm
144           (Ximages) completely. I imagin this as the InsetGraphics
145           asking a GraphicsCache for a graphics with certain
146           parameters set and get a handle to the finished
147           transformation of the graphics. Hopefully this should make
148           it quite easy for LyX to support several/many graphics
149           formats, both on screen and on hard copy. 
150
151         o rotating and scaling of text
152         o PSTricks (we should be able to support some of this package)
153         o better reference support
154                 - varioref
155         o better citation support
156                 Especially the support for some of the main
157                 bibtex supplied styles are needed. (harvard natbib...)
158                 A complete support for natbib should perhaps be enough.
159         o improved spellchecker
160                 - an ispell class should be made, this should
161                   take care of communicating with the ispell
162                   process.
163         o online configuration
164                 So that users should not need to edit lyxrc
165                 manualy. This has now been "half" done; it is now
166                 possible to save the current configuration with the
167                 lyx command "preferences-save". We need to add code so
168                 that the preferences can be set from inside LyX too.
169         o better fontsupport
170                 T1-lib font renderer.
171         o better latex code quality
172                 This means reading LaTeX books to get an better idea
173                 on how things are done in the latex world. 
174         o perhaps find better names for the paragraph styles
175           "paragraph" and "subparagraph"
176         o support for filecontents
177                 This can make a latex document selfcontained, all the
178                 needed graphics can be in the document.
179         o support for optional args to latex commands
180                 - For sectioning commands I have an idea on how we can
181                   do this: have a popup on RMB to set properties.
182         o pdf support
183                 pdftex
184         o hyperlink support
185                 - url.sty (or better packages)
186                 - hyperref.sty
187         o references to external documents
188                 - xr.sty
189         o better babel support
190                 - make it possible to tune the language strings
191                 - the possibility for several languages in the same
192                   document. 
193         o title page support
194         o draft copy
195                 - draftcopy.sty
196         o better float support (allow user to make its own floats)
197         o support newtheorem (allow user to make its own thorem like envirs)
198         o a bit more wysiwyg where it is appropiate.
199                 - show bullets the way they will be on paper
200                 - show a few more characters as they will be on paper
201                   (--, ---)
202         o online generation of new paragraph styles (or editing or old
203           ones)
204         o support for inlined sectioning commands (i.e. \paragraph{} )
205         o we should parse the command line ourselves.
206         o remove support for XResources, with multiple toolkits it
207           will be impossible to manage. And they are not very needed
208           either.
209         o the possebility to collapse parts of the document.
210           (i.e. collapse the contents of a section. Would make moving
211            parts of the document around very easy)
212         o better LyXServer support
213                 - perhaps use UNIX sockets instead of pipes
214                 - make a decent protocol with return codes.
215                 - make it indepentent of the GUI
216                 - prob: concurrency (locks)
217         o other packages to support:
218                 - listings.sty
219                 - keyval (we should not use it directly, but know how
220                         to parse options for it.)
221                 - here.sty
222                 - ulem.sty
223                 - indentfirst.sty
224                 - lscape.sty
225
226 I am sure others has a list as long as mine...
227
228
229 ======================
230
231 We should also do some work to enhance the support we already have for
232 some packages, I think these are the packages supported by 0.12:
233         - longtable     - color (papercolor boxes?)
234         - setspace (should support setting spacing on individual paragraphs)
235         - psnffs packages
236         - geometry      - makeidx
237         - verbatim      - algorithm
238         - inputenc      - fancyhdr (we only have _very_ basic support)
239         - fontenc       - a4
240         - graphics      - a4wide
241
242 (I am sure I have forgot some, please fill me in.)
243
244
245 ======================
246
247 If you have other wishes for features, or comments, please let us know.
248
249         Lgb
250
251 Interesting links:
252
253 http://freshmeat.net/appindex/1999/11/30/943979651.html
254 http://freshmeat.net/appindex/1999/12/09/944757708.html