]> git.lyx.org Git - lyx.git/blob - development/attic/lyx3/LyX3-Tasks
* es/Intro.lyx: Accept all changes and disable CT
[lyx.git] / development / attic / lyx3 / LyX3-Tasks
1 -*- text -*-
2
3 This is a task list/todo list for future LyX releases. There is 
4 one (?) major task left to be done:
5
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
11                 bigger.
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.
16
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 
19 code quality:
20
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
27                 nice...)
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
33                 like a charm.
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.
42
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
47           commands.
48                 - ensure that not too many commands are executed at
49                   the same time.
50                 - ensure that no non-compatible commands are running at
51                   the same time.
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.)
56
57 ================
58
59 Also a lot of new features are thought of:
60
61         o rewrite of table code. 
62                 - colortbl  - multirow
63                 - hhline    - dcolumn
64         o index support (and multiple indices support)
65                 - multind ?
66         o tocs for each section
67                 - minitoc
68         o multiple table of contents
69                 - multitoc
70         o trivlist?
71         o better version control (both document and file wise)
72                 - version.sty
73                 - cvs
74                 - svn
75                 - sccs
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:
88                 - replace & find next
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
92                 features we want.
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
100           chapter*)
101         o the "LyX-Code" environment should be removed. Add a verbatim
102           environment instead.
103         o tabbing support
104                  This would be a special inset that is line-based (no
105           breaking of lines), where tabstops can be set and used.
106         o picture support
107                  A special insets with some basic drawing
108                  capabilities.
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
112                 - varioref
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.
119         o better fontsupport
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
133                 - xr.sty
134         o title page support
135         o draft copy
136                 - draftcopy.sty
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
142                   (--, ---)
143         o online generation of new paragraph styles (or editing or old
144           ones)
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
149           either.
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:
159                 - listings.sty
160                 - keyval (we should not use it directly, but know how
161                         to parse options for it.)
162                 - here.sty
163                 - ulem.sty
164                 - indentfirst.sty
165                 - lscape.sty
166
167 I am sure others have a list as long as mine...
168
169
170 ======================
171
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)
176         - psnffs packages
177         - geometry      - makeidx
178         - verbatim      - algorithm
179         - inputenc      - fancyhdr (we only have _very_ basic support)
180         - fontenc       - graphics
181
182 (I am sure I have forgot some, please fill me in.)
183
184
185 ======================
186
187 If you have other wishes for features, or comments, please let us know.
188
189         Lgb