The following is a list of ideas of functionality which would be nice to have in rst.el. In the examples a @ stands for the cursor.
Imagine
.. list-table:: :@
with the cursor at the asterisk
There should be a command which offers all the possible options for this particular directive as completion
May be skeleton.el can also be useful
Imagine
.. @
There should be a command which offers all directives as completion
May be this should work for other keywords as well
May be this could work even at the beginning of the line
Completion must be bound to M-TAB
Imagine
|@
or
[@
or
_@
There should be a command which offers all defined substitutions / footnotes / links as completion
Imagine
Aspect of something =================== This is about the `aspect of something`_@
There should be a command which asks you for an alias for the link, add the alias and change the link
.. _aspects of something: Aspect of something =================== This is about the `aspects of something`_@
These things must be filled special:
Definitions
Filling of
* VeryLongWordSuchAsAnURLVeryLongWordSuchAsAnURLVeryLongWordSuchAsAnURLVeryLongWordSuchAsAnURLVeryLongWordSuchAsAnURL
should work as expected by not breaking the line
May be fill-nobreak-predicate can help here
These things may not be filled at all
May be defining an own auto-fill-function may be useful
Filling of a re-indented item doesn't work as expected:
* Something just indented once more by the user though continuation line is not indented already
See also Filling of section headers
It should be generally possible to shift one more to the right
For item lists the best tab should be on the same level as the last item:
* bla @
The second best tab should be where text starts:
* bla @
<backtab> should be used to indent in the other direction
<tab> could obsolete C-c C-r <tab>
For this the indentation needs to be determined at the start instead of per line
<tab> over list works:
Text * GGGGGG * SSSSSSSSSSSSSSS * TTTTTTTT * ZZZZZZZZ
<tab> over list doesn't work:
Text * GGGGGG * SSSSSSSSSSSSSSS * TTTTTTTT * ZZZZZZZZ
An indenting tab on the head of a list item should indent the whole list item instead of only the first line
May be refill-mode can be useful
It would be nice to differentiate between text files using reStructuredText and other general text files. If we had a function to automatically guess whether a .txt file is following the reStructuredText conventions, we could trigger rst-mode without having to hard-code this in every text file, nor forcing the user to add a local mode variable at the top of the file. We could perform this guessing by searching for a valid adornment at the top of the document or searching for reStructuredText directives further on.
May be aligning can be used to get results like this
Some: | Field |
---|---|
Longer name: | Aligned |
Even longer name: | |
More aligned |
Options to use cl-lib
There are various options, and you'll have to judge for yourself which is best for your particular case: - live with the warnings. - switch to cl-lib and ask users of older Emacsen to install cl-lib
(available in GNU ELPA).
- add things like (unless (fboundp 'cl-letf) (defalias 'cl-letf 'letf)).
- change the code to use something else (e.g. for flet, you can switch to using either defadvice or (let ((f1 (lambda ..))) ...).
- ...
—Stefan Monnier
Remove own implementations then