mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 10:58:52 +00:00
85798535a1
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@632 a592a061-630c-0410-9148-cb99ea01b6c8
255 lines
9.3 KiB
Plaintext
255 lines
9.3 KiB
Plaintext
-*- text -*-
|
|
|
|
This is a tasklist/todo list for the 0.13.x development series. We
|
|
should perhaps name these seies LyX3 as a common name. As I see it
|
|
there are three major tasks to be done:
|
|
|
|
o Buffer structure rewrite
|
|
So that it will be easier to expand for
|
|
new and unknow future features.
|
|
The main problems with the current structure is that
|
|
is intended to be viewed by only one window at the
|
|
time. It also uses characters as the smallest unit, it
|
|
would probably be better to use something a bit
|
|
bigger.
|
|
The LyXText class does not necessarily need to change
|
|
a lot, it could be per-view. However all the special
|
|
code in it needs to be (re)moved. Also a lot of the
|
|
functionality needs to be relocated.
|
|
o GUI independence.
|
|
Should be a compile time switch what gui (toolkit)
|
|
you wish to use. We are going to support Xforms first,
|
|
and I am sure that GTK and Qt will follow soon. I also
|
|
plan to do support for Fl (even a text only toolkit
|
|
should be possible. ncurses perhaps. Even the
|
|
lyxserver could be a special case of this: a view with
|
|
no view being able to coexist with other views or alone)
|
|
We will do this by providing an interface all the
|
|
toolkits will need to follow. Functions that the LyX
|
|
core will expect to be there.
|
|
|
|
When these three is finished, we will probably declare a code freeze
|
|
and try to release a new version. Hopefully other features has also
|
|
been added, and none removed.
|
|
|
|
|
|
====================
|
|
|
|
In addition to these there are a lot of small tasks that should be
|
|
performed, that has no direct bearing on features, but are more geared
|
|
towards code quality:
|
|
|
|
o always try to use POSIX commands.
|
|
o switch to use POSIX signals
|
|
o make as much as possible of the code reentreanant(?)
|
|
should make it easier to move to threads later. Albeit
|
|
this is not a huge goal we have some parts of the code
|
|
that would benefit from threads. (forking is not that
|
|
nice...)
|
|
o signal slot mechanism
|
|
We are going to use the signal/slot implementation
|
|
found in libsigc++. This will hopefully give us better
|
|
interface, leaner code, typesafe "callbacks". I have
|
|
been using signal/slots for other projects and it works
|
|
like a charm.
|
|
o other code rewrites to make multiple buffers/windows
|
|
possible, without too much hassle.
|
|
- get rid of most of the global variables. In
|
|
perticular current_view is a problem.
|
|
- non shared variables in shared structures
|
|
o make source documentation better. Remember that the better
|
|
we document LyX internals the easier is it for new
|
|
developers to begin working on LyX.
|
|
|
|
|
|
Some other things related to structure and services in the code:
|
|
o class FileInfo does way too much, move the unneeded parts to
|
|
a super class or friends.
|
|
o a process manager class to handle execution of external
|
|
commands.
|
|
- ensure that not too many commands are executed at
|
|
the same time.
|
|
- ensure that non-compatible commands are running at
|
|
the same time.
|
|
- to setup file descriptors where communicating with
|
|
the processes can take place.
|
|
o pass an inforeceiver around in the object structure.
|
|
(this instead of passing minibuffers, and lyxerrors.)
|
|
|
|
================
|
|
|
|
Also a lot of new features are thought of, only some of these are likely
|
|
to make it into 0.14:
|
|
|
|
o rewrite of table code. Should probably be written as some
|
|
kind of an inset. At least get the code out of the kernel.
|
|
- colortbl -multirow
|
|
- hhline -multicolumn
|
|
- dcolumn
|
|
o index support (and multiple indeces support)
|
|
- multind ?
|
|
o tocs for each section
|
|
- minitoc
|
|
o multiple table of contentes
|
|
- multitoc
|
|
o trivlist?
|
|
o better version control (both document and file wise)
|
|
- version.sty
|
|
- cvs
|
|
- sccs
|
|
o I am sure mathed improvements. (Alejandro's department)
|
|
- better macro support
|
|
- better amsmath support
|
|
o character styles (similar to emph and noun)
|
|
Will make a lot of small things conceptual instead of
|
|
specific. Will be alot easier to change the
|
|
presentation of a filename f.ex. This is actually very
|
|
important, because this is where the user can't be
|
|
conceptual in the current version.
|
|
o macro support. Similar to the math-macro support, but
|
|
usable in regular text too.
|
|
o support for abbrevations (static macros)
|
|
o add a incremental search function.
|
|
o change the "Find and Replace" to Query Replace.
|
|
o better/more search functions:
|
|
- replace & find next
|
|
- replace & find previous
|
|
We should perhaps try to make the interface a bit
|
|
emacs like, that should at least give us the
|
|
features we want.
|
|
o improved template support.
|
|
o collapse "New" and "New from Template" into one item.
|
|
o make lyx recognize some file types (i.e. gzipped) and do
|
|
the right thing when encountering them.
|
|
o We should look at all the LyX specific paragraph styles and
|
|
check carefully that we really need them. We should also try
|
|
to collapse some of them into singel items (i.e. chapter and
|
|
chapter*)
|
|
o the "LyX-Code" environment should be removed. Add a verbatim
|
|
environment instead.
|
|
o tabbing support
|
|
This would be a special inset that is line based (no
|
|
breaking of lines), where tabstops can be set and used.
|
|
|
|
o picture support
|
|
A special insets with some basic drawing
|
|
capabilities.
|
|
|
|
o better graphics support
|
|
I have begun doing something about this. There are
|
|
several things here that need to be dont. We have alreay
|
|
decided to use graphicx.sty instead of graphics.sty. This
|
|
makes several things easier. There is also some work in
|
|
progress to separate the inset and the creation of the Xpm
|
|
(Ximages) completely. I imagin this as the InsetGraphics
|
|
asking a GraphicsCache for a graphics with certain
|
|
parameters set and get a handle to the finished
|
|
transformation of the graphics. Hopefully this should make
|
|
it quite easy for LyX to support several/many graphics
|
|
formats, both on screen and on hard copy.
|
|
|
|
o rotating and scaling of text
|
|
o PSTricks (we should be able to support some of this package)
|
|
o better reference support
|
|
- varioref
|
|
o better citation support
|
|
Especially the support for some of the main
|
|
bibtex supplied styles are needed. (harvard natbib...)
|
|
A complete support for natbib should perhaps be enough.
|
|
o improved spellchecker
|
|
- an ispell class should be made, this should
|
|
take care of communicating with the ispell
|
|
process.
|
|
o online configuration
|
|
So that users should not need to edit lyxrc
|
|
manualy. This has now been "half" done; it is now
|
|
possible to save the current configuration with the
|
|
lyx command "preferences-save". We need to add code so
|
|
that the preferences can be set from inside LyX too.
|
|
o better fontsupport
|
|
T1-lib font renderer.
|
|
o better latex code quality
|
|
This means reading LaTeX books to get an better idea
|
|
on how things are done in the latex world.
|
|
o perhaps find better names for the paragraph styles
|
|
"paragraph" and "subparagraph"
|
|
o support for filecontents
|
|
This can make a latex document selfcontained, all the
|
|
needed graphics can be in the document.
|
|
o support for optional args to latex commands
|
|
- For sectioning commands I have an idea on how we can
|
|
do this: have a popup on RMB to set properties.
|
|
o pdf support
|
|
pdftex
|
|
o hyperlink support
|
|
- url.sty (or better packages)
|
|
- hyperref.sty
|
|
o references to external documents
|
|
- xr.sty
|
|
o better babel support
|
|
- make it possible to tune the language strings
|
|
- the possibility for several languages in the same
|
|
document.
|
|
o title page support
|
|
o draft copy
|
|
- draftcopy.sty
|
|
o better float support (allow user to make its own floats)
|
|
o support newtheorem (allow user to make its own thorem like envirs)
|
|
o a bit more wysiwyg where it is appropiate.
|
|
- show bullets the way they will be on paper
|
|
- show a few more characters as they will be on paper
|
|
(--, ---)
|
|
o online generation of new paragraph styles (or editing or old
|
|
ones)
|
|
o support for inlined sectioning commands (i.e. \paragraph{} )
|
|
o we should parse the command line ourselves.
|
|
o remove support for XResources, with multiple toolkits it
|
|
will be impossible to manage. And they are not very needed
|
|
either.
|
|
o the possebility to collapse parts of the document.
|
|
(i.e. collapse the contents of a section. Would make moving
|
|
parts of the document around very easy)
|
|
o better LyXServer support
|
|
- perhaps use UNIX sockets instead of pipes
|
|
- make a decent protocol with return codes.
|
|
- make it indepentent of the GUI
|
|
- prob: concurrency (locks)
|
|
o other packages to support:
|
|
- listings.sty
|
|
- keyval (we should not use it directly, but know how
|
|
to parse options for it.)
|
|
- here.sty
|
|
- ulem.sty
|
|
- indentfirst.sty
|
|
- lscape.sty
|
|
|
|
I am sure others has a list as long as mine...
|
|
|
|
|
|
======================
|
|
|
|
We should also do some work to enhance the support we already have for
|
|
some packages, I think these are the packages supported by 0.12:
|
|
- longtable - color (papercolor boxes?)
|
|
- setspace (should support setting spacing on individual paragraphs)
|
|
- psnffs packages
|
|
- geometry - makeidx
|
|
- verbatim - algorithm
|
|
- inputenc - fancyhdr (we only have _very_ basic support)
|
|
- fontenc - a4
|
|
- graphics - a4wide
|
|
|
|
(I am sure I have forgot some, please fill me in.)
|
|
|
|
|
|
======================
|
|
|
|
If you have other wishes for features, or comments, please let us know.
|
|
|
|
Lgb
|
|
|
|
Interesting links:
|
|
|
|
http://freshmeat.net/appindex/1999/11/30/943979651.html
|
|
http://freshmeat.net/appindex/1999/12/09/944757708.html
|