mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-21 05:00:59 +00:00
268ac4a951
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20878 a592a061-630c-0410-9148-cb99ea01b6c8
190 lines
6.8 KiB
Plaintext
190 lines
6.8 KiB
Plaintext
-*- text -*-
|
|
|
|
This is a task list/todo list for future LyX releases. There is
|
|
one (?) major task left to be done:
|
|
|
|
o Buffer structure rewrite
|
|
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.
|
|
|
|
In addition, there are a lot of small tasks that should be performed
|
|
that have 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 reentrant(?)
|
|
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, type-safe "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
|
|
particular 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 no non-compatible commands are running at
|
|
the same time.
|
|
- setup file descriptors where communicating with
|
|
the processes can take place.
|
|
o pass an info receiver around in the object structure.
|
|
(this instead of passing minibuffers, and lyxerrors.)
|
|
|
|
================
|
|
|
|
Also a lot of new features are thought of:
|
|
|
|
o rewrite of table code.
|
|
- colortbl - multirow
|
|
- hhline - dcolumn
|
|
o index support (and multiple indices support)
|
|
- multind ?
|
|
o tocs for each section
|
|
- minitoc
|
|
o multiple table of contents
|
|
- multitoc
|
|
o trivlist?
|
|
o better version control (both document and file wise)
|
|
- version.sty
|
|
- cvs
|
|
- svn
|
|
- sccs
|
|
o character styles (similar to emph and noun)
|
|
Will make a lot of small things conceptual instead of
|
|
specific. Will be a lot 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 abbreviations (static macros)
|
|
o add an 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 single 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 rotating and scaling of text
|
|
o PSTricks (we should be able to support some of this package)
|
|
o better reference support
|
|
- varioref
|
|
o online configuration
|
|
So that users should not need to edit lyxrc
|
|
manually. 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 references to external documents
|
|
- xr.sty
|
|
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 appropriate.
|
|
- 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 possibility 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 independent 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 have 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 packages are already supported:
|
|
- 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 - graphics
|
|
|
|
(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
|