summaryrefslogtreecommitdiff
path: root/etc/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'etc/TODO')
-rw-r--r--etc/TODO586
1 files changed, 579 insertions, 7 deletions
diff --git a/etc/TODO b/etc/TODO
index b8c55bff92b..296800dd1e3 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -12,7 +12,46 @@ it best. Since Emacs is an FSF-copyrighted package, please be
prepared to sign legal papers to transfer the copyright on your work
to the FSF.
-* Simple tasks. These don't require much emacs knowledge, they are
+* Tentative plan for Emacs-24
+
+** Bidi
+** lexbind: I haven't checked the status of the code recently, so
+ I don't know how realistic it is to include it. But it's been around
+ for a long time, and I trust Miles, so I have hope.
+** concurrency: including it as an "experimental" compile-time option
+ sounds good. Of course there might still be big questions around
+ "which form of concurrency" we'll want.
+** Overhaul of customize: sounds wonderful.
+** some kind of color-theme: agreed.
+** better support for dynamic embedded graphics: I like this idea (my
+ mpc.el code could use it for the volume widget), tho I wonder if the
+ resulting efficiency will be sufficient.
+** Spread Semantic.
+** Improve the "code snippets" support: consolidate skeleton.el, tempo.el,
+ and expand.el (any other?) and then advertise/use/improve it.
+** Improve VC: yes, there's a lot of work to be done there :-(
+ And most of it could/should make it into Emacs-23.3.
+** package manager.
+
+** Random things that cross my mind right now that I'd like to see (some of
+them from my local hacks), but it's not obvious at all whether they'll
+make it.
+*** multiple inheritance for keymaps (to get rid of the
+ fix_submap_inheritance hack and to more cleanly express the
+ relationship between minibuffer-local-*-map): I've had this locally
+ for a long time, but the details of the semantics is somewhat ... delicate.
+*** Derive from prog-mode in more places, close bug#5532.
+*** prog-mode could/should provide a better fill-paragraph default
+ that uses syntax-tables to recognize string/comment boundaries.
+*** provide more completion-at-point-functions. Make existing
+ in-buffer completion use completion-at-point.
+*** "functional" function-key-map that would make it easy to add (and
+ remove) mappings like "FOO-mouse-4 -> FOO-scroll-down",
+ "FOO-tab -> ?\FOO-\t", "uppercase -> lowercase", "[fringe KEY...] ->
+ [KEY]", "H-FOO -> M-FOO", "C-x C-y FOO -> H-FOO", ...
+
+
+* Simple tasks. These don't require much Emacs knowledge, they are
suitable for anyone from beginners to experts.
** Convert modes that use view-mode to be derived from special-mode instead.
@@ -66,9 +105,6 @@ for users to customize.
** erase-buffer should perhaps disregard read-only properties of text.
-** Make occur correctly handle matches that span more than one line,
- as well as overlapping matches.
-
** Fix the kill/yank treatment of invisible text. At the moment,
invisible text is placed in the kill-ring, so that the contents of
the ring may not correspond to the text as displayed to the user.
@@ -92,8 +128,6 @@ for users to customize.
** Enhance scroll-bar to handle tall line (similar to line-move).
-** Make occur handle multi-line matches cleanly with context.
-
** In Custom buffers, put the option that turns a mode on or off first,
using a heuristic of some kind?
@@ -147,7 +181,14 @@ dired buffers and DTRT WRT `auto-revert-mode'.
http://lists.gnu.org/archive/html/emacs-devel/2008-08/msg00456.html
* Important features:
-
+** Extended text-properties (to make overlays "obsolete")
+*** Several text-property planes
+This would get us rid of font-lock-face property (and I'd be happy to
+get rid of char-property-alias-alist as well) since font-lock would
+simply use the `face' property in the `font-lock' plane.
+Each property would come with an Elisp merge-function. The merge
+would be performed in add-text-properties.
+*** zero-width text-properties.
** Having tabs above a window to switch buffers in it.
** "Perspectives" are named persistent window configurations. We have
@@ -584,6 +625,537 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
the window associated with that modeline.
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg02416.html
+* Things to be done for specific packages or features
+
+** NeXTstep port
+
+*** Bugs
+
+**** (mouse-avoidance-mode 'banish) then minimize Emacs, will pop window back
+up on top of all others
+
+**** free_frame_resources, face colors
+
+**** Numeric keysetting bug.
+
+*** Mac-related
+
+**** Open file:/// URLs.
+
+**** Put frame autopositioning into C code somewhere -- if loc = same, offset.
+
+**** Automap ctrl-mouse-1 to mouse-3.
+
+**** Deal with Finder aliases somehow.
+
+**** Ctrl-F2 won't pull up menus.
+
+*** Other / Low Priority:
+
+**** Better recognition of unicode scripts / Greek / composition.
+
+**** Undo for color-drag face customization.
+
+** ImageMagick support
+
+*** image-type-header-regexps priorities the jpeg loader over the
+ImageMagick one. This is not wrong, but how should a user go about
+prefering the ImageMagick loader? The user might like zooming etc in jpegs.
+
+Try (setq image-type-header-regexps nil) for a quick hack to prefer
+ImageMagick over the jpg loader.
+
+*** For some reason its unbearably slow to look at a page in a large
+image bundle using the :index feature. The ImageMagick "display"
+command is also a bit slow, but nowhere near as slow as the Emacs
+code. It seems ImageMagick tries to unpack every page when loading the
+bundle. This feature is not the primary usecase in Emacs though.
+
+ImageMagick 6.6.2-9 introduced a bugfix for single page djvu load. It
+is now much faster to use the :index feature, but still not very fast.
+
+*** Try to cache the num pages calculation. It can take a while to
+calculate the number of pages, and if you need to do it for each page
+view, page-flipping becomes uselessly slow.
+
+*** Integrate with image-dired.
+
+*** Integrate with docview.
+
+*** Integrate with image-mode.
+Some work has been done, e.g. M-x image-transform-fit-to-height will
+fit the image to the height of the Emacs window.
+
+*** Look for optimizations for handling images with low depth.
+Currently the code seems to default to 24 bit RGB which is costly for
+images with lower bit depth.
+
+*** Decide what to do with some uncommitted imagemagick support
+functions for image size etc.
+
+*** Test with more systems.
+Tested on Fedora 12, 14, and the libmagick that ships with it.
+I also tried using an ImageMagick compiled from their SVN, in
+parallel with the one packaged by Fedora, it worked well.
+Ubuntu 8.04 was tested, but it seems it ships a broken ImageMagick.
+
+** nxml mode
+
+*** High priority
+
+**** Command to insert an element template, including all required
+attributes and child elements. When there's a choice of elements
+possible, we could insert a comment, and put an overlay on that
+comment that makes it behave like a button with a pop-up menu to
+select the appropriate choice.
+
+**** Command to tag a region. With a schema should complete using legal
+tags, but should work without a schema as well.
+
+**** Provide a way to conveniently rename an element. With a schema should
+complete using legal tags, but should work without a schema as well.
+
+*** Outlining
+
+**** Implement C-c C-o C-q.
+
+**** Install pre/post command hook for moving out of invisible section.
+
+**** Put a modify hook on invisible sections that expands them.
+
+**** Integrate dumb folding somehow.
+
+**** An element should be able to be its own heading.
+
+**** Optimize to avoid complete buffer scan on each command.
+
+**** Make it work with HTML-style headings (i.e. level indicated by
+name of heading element rather than depth of section nesting).
+
+**** Recognize root element as a section provided it has a title, even
+if it doesn't match section-element-name-regex.
+
+**** Support for incremental search automatically making hidden text visible.
+
+**** Allow title to be an attribute.
+
+**** Command that says to recognize the tag at point as a section/heading.
+
+**** Explore better ways to determine when an element is a section
+or a heading.
+
+**** rng-next-error needs to either ignore invisible portion or reveal it
+(maybe use isearch oriented text properties).
+
+**** Errors within hidden section should be highlighted by underlining the
+ellipsis.
+
+**** Make indirect buffers work.
+
+**** How should nxml-refresh outline recover from non well-formed tags?
+
+**** Hide tags in title elements?
+
+**** Use overlays instead of text properties for holding outline state?
+Necessary for indirect buffers to work?
+
+**** Allow an outline to go in the speedbar.
+
+**** Split up outlining manual section into subsections.
+
+**** More detail in the manual about each outlining command.
+
+**** More menu entries for hiding/showing?
+
+**** Indication of many lines have been hidden?
+
+*** Locating schemas
+
+**** Should rng-validate-mode give the user an opportunity to specify a
+schema if there is currently none? Or should it at least give a hint
+to the user how to specify a non-vacuous schema?
+
+**** Support for adding new schemas to schema-locating files.
+Add documentElement and namespace elements.
+
+**** C-c C-w should be able to report current type id.
+
+**** Implement doctypePublicId.
+
+**** Implement typeIdBase.
+
+**** Implement typeIdProcessingInstruction.
+
+**** Support xml:base.
+
+**** Implement group.
+
+**** Find preferred prefix from schema-locating files. Get rid of
+rng-preferred-prefix-alist.
+
+**** Inserting document element with vacuous schema should complete using
+document elements declared in schema locating files, and set schema
+appropriately.
+
+**** Add a ruleType attribute to the <include> element?
+
+**** Allow processing instruction in prolog to contain the compact syntax
+schema directly.
+
+**** Use RDDL to locate a schema based on the namespace URI.
+
+**** Should not prompt to add redundant association to schema locating file.
+
+**** Command to reload current schema.
+
+*** Schema-sensitive features
+
+**** Should filter dynamic markup possibilities using schema validity, by
+adding hook to nxml-mode.
+
+**** Dynamic markup word should (at least optionally) be able to look in
+other buffers that are using nxml-mode.
+
+**** Should clicking on Invalid move to next error if already on an error?
+
+**** Take advantage of a:documentation. Needs change to schema format.
+
+**** Provide feasible validation (as in Jing) toggle.
+
+**** Save the validation state as a property on the error overlay to enable
+more detailed diagnosis.
+
+**** Provide an Error Summary buffer showing all the validation errors.
+
+**** Pop-up menu. What is useful? Tag a region (should be greyed out if
+the region is not balanced). Suggestions based on error messages.
+
+**** Have configurable list of namespace URIs so that we can provide
+namespace URI completion on extension elements or with schema-less documents.
+
+**** Allow validation to handle XInclude.
+
+**** ID/IDREF support.
+
+*** Completion
+
+**** Make it work with icomplete. Only use a function to complete when
+some of the possible names have undeclared namespaces.
+
+**** How should C-return in mixed text work?
+
+**** When there's a vacuous schema, C-return after < will insert the end-tag.
+Is this a bug or a feature?
+
+**** After completing start-tag, ensure we don't get unhelpful message
+from validation
+
+**** Syntax table for completion.
+
+**** Should complete start-tag name with a space if namespace attributes
+are required.
+
+**** When completing start-tag name with no prefix and it doesn't match
+should try to infer namespace from local name.
+
+**** Should completion pay attention to characters after point? If so, how?
+
+**** When completing start-tag name, add required atts if only one required
+attribute.
+
+**** When completing attribute name, add attribute value if only one value
+is possible.
+
+**** After attribute-value completion, insert space after close delimiter
+if more attributes are required.
+
+**** Complete on enumerated data values in elements.
+
+**** When in context that allows only elements, should get tag
+completion without having to type < first.
+
+**** When immediately after start-tag name, and name is valid and not
+prefix of any other name, should C-return complete on attribute names?
+
+**** When completing attributes, more consistent to ignore all attributes
+after point.
+
+**** Inserting attribute value completions needs to be sensitive to what
+delimiter is used so that it quotes the correct character.
+
+**** Complete on encoding-names in XML decl.
+
+**** Complete namespace declarations by searching for all namespaces
+mentioned in the schema.
+
+*** Well-formed XML support
+
+**** Deal better with Mule-UCS
+
+**** Deal with UTF-8 BOM when reading.
+
+**** Complete entity names.
+
+**** Provide some support for entity names for MathML.
+
+**** Command to repeat the last tag.
+
+**** Support for changing between character references and characters.
+Need to check that context is one in which character references are
+allowed. xmltok prolog parsing will need to distinguish parameter
+literals from other kinds of literal.
+
+**** Provide a comment command to bind to M-; that works better than the
+normal one.
+
+**** Make indenting in a multi-line comment work.
+
+**** Structure view. Separate buffer displaying element tree.
+Be able to navigate from structure view to document and vice-versa.
+
+**** Flash matching >.
+
+**** Smart selection command that selects increasingly large syntactically
+coherent chunks of XML. If point is in an attribute value, first
+select complete value; then if command is repeated, select value plus
+delimiters, then select attribute name as well, then complete
+start-tag, then complete element, then enclosing element, etc.
+
+**** ispell integration.
+
+**** Block-level items in mixed content should be indented, e.g:
+ <para>This is list:
+ <ul>
+ <li>item</li>
+
+**** Provide option to indent like this:
+ <para>This is a paragraph
+ occupying multiple lines.</para>
+
+**** Option to add make a / that closes a start-tag electrically insert a
+space for the XHTML guys.
+
+**** C-M-q should work.
+
+*** Datatypes
+
+**** Figure out workaround for CJK characters with regexps.
+
+**** Does category C contain Cn?
+
+**** Do ENTITY datatype properly.
+
+*** XML Parsing Library
+
+**** Parameter entity parsing option, nil (never), t (always),
+unless-standalone (unless standalone="yes" in XML declaration).
+
+**** When a file is currently being edited, there should be an option to
+use its buffer instead of the on-disk copy.
+
+*** Handling all XML features
+
+**** Provide better support for editing external general parsed entities.
+Perhaps provide a way to force ignoring undefined entities; maybe turn
+this on automatically with <?xml encoding=""?> (with no version
+pseudo-att).
+
+**** Handle internal general entity declarations containing elements.
+
+**** Handle external general entity declarations.
+
+**** Handle default attribute declarations in internal subset.
+
+**** Handle parameter entities (including DTD).
+
+*** RELAX NG
+
+**** Do complete schema checking, at least optionally.
+
+**** Detect include/external loops during schema parse.
+
+**** Coding system detection for schemas. Should use utf-8/utf-16 per the
+spec. But also need to allow encodings other than UTF-8/16 to support
+CJK charsets that Emacs cannot represent in Unicode.
+
+*** Catching XML errors
+
+**** Check public identifiers.
+
+**** Check default attribute values.
+
+*** Performance
+
+**** Explore whether overlay-recenter can cure overlays performance problems.
+
+**** Cache schemas. Need to have list of files and mtimes.
+
+**** Make it possible to reduce rng-validate-chunk-size significantly,
+perhaps to 500 bytes, without bad performance impact: don't do
+redisplay on every chunk; pass continue functions on other uses of
+rng-do-some-validation.
+
+**** Cache after first tag.
+
+**** Introduce a new name class that is a choice between names (so that
+we can use member)
+
+**** intern-choice should simplify after patterns with same 1st/2nd args
+
+**** Large numbers of overlays slow things down dramatically. Represent
+errors using text properties. This implies we cannot incrementally
+keep track of the number of errors, in order to determine validity.
+Instead, when validation completes, scan for any characters with an
+error text property; this seems to be fast enough even with large
+buffers. Problem with error at end of buffer, where there's no
+character; need special variable for this. Need to merge face from
+font-lock with the error face: use :inherit attribute with list of two
+faces. How do we avoid making rng-valid depend on nxml-mode?
+
+*** Error recovery
+
+**** Don't stop at newline in looking for close of start-tag.
+
+**** Use indentation to guide recovery from mismatched end-tags
+
+**** Don't keep parsing when currently not well-formed but previously
+well-formed
+
+**** Try to recover from a bad start-tag by popping an open element if
+there was a mismatched end-tag unaccounted for.
+
+**** Try to recover from a bad start-tag open on the hypothesis that there
+was an error in the namespace URI.
+
+**** Better recovery from ill-formed XML declarations.
+
+*** Useability improvements
+
+**** Should print a "Parsing..." message during long movements.
+
+**** Provide better position for reference to undefined pattern error.
+
+**** Put Well-formed in the mode-line when validating against any-content.
+
+**** Trim marking of illegal data for leading and trailing whitespace.
+
+**** Show Invalid status as soon as we are sure it's invalid, rather than
+waiting for everything to be completely up to date.
+
+**** When narrowed, Valid or Invalid status should probably consider only
+validity of narrowed region.
+
+*** Bug fixes
+
+**** Need to give an error for a document like: <foo/><![CDATA[ ]]>
+
+**** Make nxml-forward-balanced-item work better for the prolog.
+
+**** Make filling and indenting comments work in the prolog.
+
+**** Should delete RNC Input buffers.
+
+**** Figure out what regex use for NCName and use it consistently,
+
+**** Should have not-well-formed tokens in ref.
+
+**** Require version in XML declaration? Probably not because prevents
+use for external parsed entities. At least forbid standalone without version.
+
+**** Reject schema that compiles to rng-not-allowed-ipattern.
+
+**** Move point backwards on schema parse error so that it's on the right token.
+
+*** Internal
+
+**** Use rng-quote-string consistently.
+
+**** Use parsing library for XML to texinfo conversion.
+
+**** Rename xmltok.el to nxml-token.el. Use nxml-t- prefix instead of
+xmltok-. Change nxml-t-type to nxml-t-token-type, nxml-t-start to
+nxml-t-token-start.
+
+**** Can we set fill-prefix to nil and rely on indenting?
+
+**** xmltok should make available replacement text of entities containing
+elements
+
+**** In rng-valid, instead of using modification-hooks and
+insert-behind-hooks on dependent overlays, use same technique as nxml-mode.
+
+**** Port to XEmacs. Issues include: Unicode (XEmacs seems to be based on
+Mule-UCS); overlays/text properties vs extents; absence of
+fontification-functions hook.
+
+*** Fontification
+
+**** Allow face to depend on element qname, attribute qname, attribute
+value. Use list with pairs of (R . F), where R specifies regexps and
+F specifies faces. How can this list be made to depend on the document type?
+
+*** Other
+
+**** Support RELAX NG XML syntax (use XML parsing library).
+
+**** Support W3C XML Schema (use XML parsing library).
+
+**** Command to infer schema from current document (like trang).
+
+*** Schemas
+
+**** XSLT schema should take advantage of RELAX NG to express cooccurrence
+constraints on attributes (e.g. xsl:template).
+
+*** Documentation
+
+**** Move material from README to manual.
+
+**** Document encodings.
+
+*** Notes
+
+**** How can we allow an error to be displayed on a different token from
+where it is detected? In particular, for a missing closing ">" we
+will need to display it at the beginning of the following token. At the
+moment, when we parse the following token the error overlay will get cleared.
+
+**** How should rng-goto-next-error deal with narrowing?
+
+**** Perhaps should merge errors having same start position even if they
+have different ends.
+
+**** How to handle surrogates? One possibility is to be compatible with
+utf8.e: represent as sequence of 4 chars. But utf-16 is incompatible
+with this.
+
+**** Should we distinguish well-formedness errors from invalidity errors?
+(I think not: we may want to recover from a bad start-tag by implying
+an end-tag.)
+
+**** Seems to be a bug with Emacs, where a mouse movement that causes
+help-echo text to appear counts as pending input but does not cause
+idle timer to be restarted.
+
+**** Use XML to represent this file.
+
+**** I had a TODO which said simply "split-string". What did I mean?
+
+**** Investigate performance on large files all on one line.
+
+*** Issues for Emacs versions >= 22
+
+**** Take advantage of UTF-8 CJK support.
+
+**** Supply a next-error-function.
+
+**** Investigate this NEWS item "Emacs now tries to set up buffer coding
+systems for HTML/XML files automatically."
+
+**** Take advantage of the pointer text property.
+
+**** Leverage char-displayable-p.
+
* Internal changes
** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction