Mercurial > emacs
annotate lisp/nxml/TODO @ 107521:54f3a4d055ee
Document font-use-system-font.
* cmdargs.texi (Font X): Move most content to Fonts.
* frames.texi (Fonts): New node. Document font-use-system-font.
* emacs.texi (Top):
* xresources.texi (Table of Resources):
* mule.texi (Defining Fontsets, Charsets): Update xrefs.
| author | Chong Yidong <cyd@stupidchicken.com> |
|---|---|
| date | Sat, 20 Mar 2010 13:24:06 -0400 |
| parents | e547a98225c5 |
| children |
| rev | line source |
|---|---|
| 86361 | 1 * High priority |
| 2 | |
| 3 ** Command to insert an element template, including all required | |
| 4 attributes and child elements. When there's a choice of elements | |
| 5 possible, we could insert a comment, and put an overlay on that | |
| 6 comment that makes it behave like a button with a pop-up menu to | |
| 7 select the appropriate choice. | |
| 8 | |
| 9 ** Command to tag a region. With a schema should complete using legal | |
| 10 tags, but should work without a schema as well. | |
| 11 | |
| 12 ** Provide a way to conveniently rename an element. With a schema should | |
| 13 complete using legal tags, but should work without a schema as well. | |
| 14 | |
| 15 * Outlining | |
| 16 | |
| 17 ** Implement C-c C-o C-q. | |
| 18 | |
| 19 ** Install pre/post command hook for moving out of invisible section. | |
| 20 | |
| 21 ** Put a modify hook on invisible sections that expands them. | |
| 22 | |
| 23 ** Integrate dumb folding somehow. | |
| 24 | |
| 25 ** An element should be able to be its own heading. | |
| 26 | |
| 27 ** Optimize to avoid complete buffer scan on each command. | |
| 28 | |
| 29 ** Make it work with HTML-style headings (i.e. level indicated by | |
| 30 name of heading element rather than depth of section nesting). | |
| 31 | |
| 32 ** Recognize root element as a section provided it has a title, even | |
| 33 if it doesn't match section-element-name-regex. | |
| 34 | |
| 35 ** Support for incremental search automatically making hidden text | |
| 36 visible. | |
| 37 | |
| 38 ** Allow title to be an attribute. | |
| 39 | |
| 40 ** Command that says to recognize the tag at point as a section/heading. | |
| 41 | |
| 42 ** Explore better ways to determine when an element is a section | |
| 43 or a heading. | |
| 44 | |
| 45 ** rng-next-error needs to either ignore invisible portion or reveal it | |
| 46 (maybe use isearch oriented text properties). | |
| 47 | |
| 48 ** Errors within hidden section should be highlighted by underlining the | |
| 49 ellipsis. | |
| 50 | |
| 51 ** Make indirect buffers work. | |
| 52 | |
| 53 ** How should nxml-refresh outline recover from non well-formed tags? | |
| 54 | |
| 55 ** Hide tags in title elements? | |
| 56 | |
| 57 ** Use overlays instead of text properties for holding outline state? | |
| 58 Necessary for indirect buffers to work? | |
| 59 | |
| 60 ** Allow an outline to go in the speedbar. | |
| 61 | |
| 62 ** Split up outlining manual section into subsections. | |
| 63 | |
| 64 ** More detail in the manual about each outlining command. | |
| 65 | |
| 66 ** More menu entries for hiding/showing? | |
| 67 | |
| 68 ** Indication of many lines have been hidden? | |
| 69 | |
| 70 * Locating schemas | |
| 71 | |
| 72 ** Should rng-validate-mode give the user an opportunity to specify a | |
| 73 schema if there is currently none? Or should it at least give a hint | |
| 74 to the user how to specify a non-vacuous schema? | |
| 75 | |
| 76 ** Support for adding new schemas to schema-locating files. Add | |
| 77 documentElement and namespace elements. | |
| 78 | |
| 79 ** C-c C-w should be able to report current type id. | |
| 80 | |
| 81 ** Implement doctypePublicId. | |
| 82 | |
| 83 ** Implement typeIdBase. | |
| 84 | |
| 85 ** Implement typeIdProcessingInstruction. | |
| 86 | |
| 87 ** Support xml:base. | |
| 88 | |
| 89 ** Implement group. | |
| 90 | |
| 91 ** Find preferred prefix from schema-locating files. Get rid of | |
| 92 rng-preferred-prefix-alist. | |
| 93 | |
| 94 ** Inserting document element with vacuous schema should complete using | |
| 95 document elements declared in schema locating files, and set schema | |
| 96 appropriately. | |
| 97 | |
| 98 ** Add a ruleType attribute to the <include> element? | |
| 99 | |
| 100 ** Allow processing instruction in prolog to contain the compact syntax | |
| 101 schema directly. | |
| 102 | |
| 103 ** Use RDDL to locate a schema based on the namespace URI. | |
| 104 | |
| 105 ** Should not prompt to add redundant association to schema locating | |
| 106 file. | |
| 107 | |
| 108 ** Command to reload current schema. | |
| 109 | |
| 110 * Schema-sensitive features | |
| 111 | |
| 112 ** Should filter dynamic markup possibilities using schema validity, by | |
| 113 adding hook to nxml-mode. | |
| 114 | |
| 115 ** Dynamic markup word should (at least optionally) be able to look in | |
| 116 other buffers that are using nxml-mode. | |
| 117 | |
| 118 ** Should clicking on Invalid move to next error if already on an error? | |
| 119 | |
| 120 ** Take advantage of a:documentation. Needs change to schema format. | |
| 121 | |
| 122 ** Provide feasible validation (as in Jing) toggle. | |
| 123 | |
| 124 ** Save the validation state as a property on the error overlay to enable | |
| 125 more detailed diagnosis. | |
| 126 | |
| 127 ** Provide an Error Summary buffer showing all the validation errors. | |
| 128 | |
| 129 ** Pop-up menu. What is useful? Tag a region (should be greyed out if | |
| 130 the region is not balanced). Suggestions based on error messages. | |
| 131 | |
| 132 ** Have configurable list of namespace URIs so that we can provide | |
| 133 namespace URI completion on extension elements or with schema-less | |
| 134 documents. | |
| 135 | |
| 136 ** Allow validation to handle XInclude. | |
| 137 | |
| 138 ** ID/IDREF support. | |
| 139 | |
| 140 * Completion | |
| 141 | |
| 142 ** Make it work with icomplete. Only use a function to complete when | |
| 143 some of the possible names have undeclared namespaces. | |
| 144 | |
| 145 ** How should C-return in mixed text work? | |
| 146 | |
| 147 ** When there's a vacuous schema, C-return after < will insert the | |
| 148 end-tag. Is this a bug or a feature? | |
| 149 | |
| 150 ** After completing start-tag, ensure we don't get unhelpful message | |
| 151 from validation | |
| 152 | |
| 153 ** Syntax table for completion. | |
| 154 | |
| 155 ** Should complete start-tag name with a space if namespace attributes | |
| 156 are required. | |
| 157 | |
| 158 ** When completing start-tag name with no prefix and it doesn't match | |
| 159 should try to infer namespace from local name. | |
| 160 | |
| 161 ** Should completion pay attention to characters after point? If so, | |
| 162 how? | |
| 163 | |
| 164 ** When completing start-tag name, add required atts if only one required | |
| 165 attribute. | |
| 166 | |
| 167 ** When completing attribute name, add attribute value if only one value | |
| 168 is possible. | |
| 169 | |
| 170 ** After attribute-value completion, insert space after close delimiter | |
| 171 if more attributes are required. | |
| 172 | |
| 173 ** Complete on enumerated data values in elements. | |
| 174 | |
| 175 ** When in context that allows only elements, should get tag | |
| 176 completion without having to type < first. | |
| 177 | |
| 178 ** When immediately after start-tag name, and name is valid and not | |
| 179 prefix of any other name, should C-return complete on attribute names? | |
| 180 | |
| 181 ** When completing attributes, more consistent to ignore all attributes | |
| 182 after point. | |
| 183 | |
| 184 ** Inserting attribute value completions needs to be sensitive to what | |
| 185 delimiter is used so that it quotes the correct character. | |
| 186 | |
| 187 ** Complete on encoding-names in XML decl. | |
| 188 | |
| 189 ** Complete namespace declarations by searching for all namespaces | |
| 190 mentioned in the schema. | |
| 191 | |
| 192 * Well-formed XML support | |
| 193 | |
| 194 ** Deal better with Mule-UCS | |
| 195 | |
| 196 ** Deal with UTF-8 BOM when reading. | |
| 197 | |
| 198 ** Complete entity names. | |
| 199 | |
| 200 ** Provide some support for entity names for MathML. | |
| 201 | |
| 202 ** Command to repeat the last tag. | |
| 203 | |
| 204 ** Support for changing between character references and characters. | |
| 205 Need to check that context is one in which character references are | |
| 206 allowed. xmltok prolog parsing will need to distinguish parameter | |
| 207 literals from other kinds of literal. | |
| 208 | |
| 209 ** Provide a comment command to bind to M-; that works better than the | |
| 210 normal one. | |
| 211 | |
| 212 ** Make indenting in a multi-line comment work. | |
| 213 | |
| 214 ** Structure view. Separate buffer displaying element tree. Be able to | |
| 215 navigate from structure view to document and vice-versa. | |
| 216 | |
| 217 ** Flash matching >. | |
| 218 | |
| 219 ** Smart selection command that selects increasingly large syntactically | |
| 220 coherent chunks of XML. If point is in an attribute value, first | |
| 221 select complete value; then if command is repeated, select value plus | |
| 222 delimiters, then select attribute name as well, then complete | |
| 223 start-tag, then complete element, then enclosing element, etc. | |
| 224 | |
| 225 ** ispell integration. | |
| 226 | |
| 227 ** Block-level items in mixed content should be indented, e.g: | |
| 228 <para>This is list: | |
| 229 <ul> | |
| 230 <li>item</li> | |
| 231 | |
| 232 ** Provide option to indent like this: | |
| 233 | |
| 234 ** <para>This is a paragraph | |
| 235 occupying multiple lines.</para> | |
| 236 | |
| 237 ** Option to add make a / that closes a start-tag electrically insert a | |
| 238 space for the XHTML guys. | |
| 239 | |
| 240 ** C-M-q should work. | |
| 241 | |
| 242 * Datatypes | |
| 243 | |
| 244 ** Figure out workaround for CJK characters with regexps. | |
| 245 | |
| 246 ** Does category C contain Cn? | |
| 247 | |
| 248 ** Do ENTITY datatype properly. | |
| 249 | |
| 250 * XML Parsing Library | |
| 251 | |
| 252 ** Parameter entity parsing option, nil (never), t (always), | |
| 253 unless-standalone (unless standalone="yes" in XML declaration). | |
| 254 | |
| 255 ** When a file is currently being edited, there should be an option to | |
| 256 use its buffer instead of the on-disk copy. | |
| 257 | |
| 258 * Handling all XML features | |
| 259 | |
| 260 ** Provide better support for editing external general parsed entities. | |
| 261 Perhaps provide a way to force ignoring undefined entities; maybe turn | |
| 262 this on automatically with <?xml encoding=""?> (with no version | |
| 263 pseudo-att). | |
| 264 | |
| 265 ** Handle internal general entity declarations containing elements. | |
| 266 | |
| 267 ** Handle external general entity declarations. | |
| 268 | |
| 269 ** Handle default attribute declarations in internal subset. | |
| 270 | |
| 271 ** Handle parameter entities (including DTD). | |
| 272 | |
| 273 * RELAX NG | |
| 274 | |
| 275 ** Do complete schema checking, at least optionally. | |
| 276 | |
| 277 ** Detect include/external loops during schema parse. | |
| 278 | |
| 279 ** Coding system detection for schemas. Should use utf-8/utf-16 per the | |
| 280 spec. But also need to allow encodings other than UTF-8/16 to support | |
| 281 CJK charsets that Emacs cannot represent in Unicode. | |
| 282 | |
| 283 * Catching XML errors | |
| 284 | |
| 285 ** Check public identifiers. | |
| 286 | |
| 287 ** Check default attribute values. | |
| 288 | |
| 289 * Performance | |
| 290 | |
| 291 ** Explore whether overlay-recenter can cure overlays performance | |
| 292 problems. | |
| 293 | |
| 294 ** Cache schemas. Need to have list of files and mtimes. | |
| 295 | |
| 296 ** Make it possible to reduce rng-validate-chunk-size significantly, | |
| 297 perhaps to 500 bytes, without bad performance impact: don't do | |
| 298 redisplay on every chunk; pass continue functions on other uses of | |
| 299 rng-do-some-validation. | |
| 300 | |
| 301 ** Cache after first tag. | |
| 302 | |
| 303 ** Introduce a new name class that is a choice between names (so that | |
| 304 we can use member) | |
| 305 | |
| 306 ** intern-choice should simplify after patterns with same 1st/2nd args | |
| 307 | |
| 308 ** Large numbers of overlays slow things down dramatically. Represent | |
| 309 errors using text properties. This implies we cannot incrementally | |
| 310 keep track of the number of errors, in order to determine validity. | |
| 311 Instead, when validation completes, scan for any characters with an | |
| 312 error text property; this seems to be fast enough even with large | |
| 313 buffers. Problem with error at end of buffer, where there's no | |
| 314 character; need special variable for this. Need to merge face from | |
| 315 font-lock with the error face: use :inherit attribute with list of two | |
| 316 faces. How do we avoid making rng-valid depend on nxml-mode? | |
| 317 | |
| 318 * Error recovery | |
| 319 | |
| 320 ** Don't stop at newline in looking for close of start-tag. | |
| 321 | |
| 322 ** Use indentation to guide recovery from mismatched end-tags | |
| 323 | |
| 324 ** Don't keep parsing when currently not well-formed but previously | |
| 325 well-formed | |
| 326 | |
| 327 ** Try to recover from a bad start-tag by popping an open element if | |
| 328 there was a mismatched end-tag unaccounted for. | |
| 329 | |
| 330 ** Try to recover from a bad start-tag open on the hypothesis that there | |
| 331 was an error in the namespace URI. | |
| 332 | |
| 333 ** Better recovery from ill-formed XML declarations. | |
| 334 | |
| 335 * Useability improvements | |
| 336 | |
| 337 ** Should print a "Parsing..." message during long movements. | |
| 338 | |
| 339 ** Provide better position for reference to undefined pattern error. | |
| 340 | |
| 341 ** Put Well-formed in the mode-line when validating against any-content. | |
| 342 | |
| 343 ** Trim marking of illegal data for leading and trailing whitespace. | |
| 344 | |
| 345 ** Show Invalid status as soon as we are sure it's invalid, rather than | |
| 346 waiting for everything to be completely up to date. | |
| 347 | |
| 348 ** When narrowed, Valid or Invalid status should probably consider only | |
| 349 validity of narrowed region. | |
| 350 | |
| 351 * Bug fixes | |
| 352 | |
| 353 ** Need to give an error for a document like: <foo/><![CDATA[ ]]> | |
| 354 | |
| 355 ** Make nxml-forward-balanced-item work better for the prolog. | |
| 356 | |
| 357 ** Make filling and indenting comments work in the prolog. | |
| 358 | |
| 359 ** Should delete RNC Input buffers. | |
| 360 | |
| 361 ** Figure out what regex use for NCName and use it consistently, | |
| 362 | |
| 363 ** Should have not-well-formed tokens in ref. | |
| 364 | |
| 365 ** Require version in XML declaration? Probably not because prevents | |
| 366 use for external parsed entities. At least forbid standalone | |
| 367 without version. | |
| 368 | |
| 369 ** Reject schema that compiles to rng-not-allowed-ipattern. | |
| 370 | |
| 371 ** Move point backwards on schema parse error so that it's on the right token. | |
| 372 | |
| 373 * Internal | |
| 374 | |
| 375 ** Use rng-quote-string consistently. | |
| 376 | |
| 377 ** Use parsing library for XML to texinfo conversion. | |
| 378 | |
| 379 ** Rename xmltok.el to nxml-token.el. Use nxml-t- prefix instead of | |
| 380 xmltok-. Change nxml-t-type to nxml-t-token-type, nxml-t-start to | |
| 381 nxml-t-token-start. | |
| 382 | |
| 383 ** Can we set fill-prefix to nil and rely on indenting? | |
| 384 | |
| 385 ** xmltok should make available replacement text of entities containing | |
| 386 elements | |
| 387 | |
| 388 ** In rng-valid, instead of using modification-hooks and | |
| 389 insert-behind-hooks on dependent overlays, use same technique as | |
| 390 nxml-mode. | |
| 391 | |
| 392 ** Port to XEmacs. Issues include: Unicode (XEmacs seems to be based on | |
| 393 Mule-UCS); overlays/text properties vs extents; absence of | |
| 394 fontification-functions hook. | |
| 395 | |
| 396 * Fontification | |
| 397 | |
| 398 ** Allow face to depend on element qname, attribute qname, attribute | |
| 399 value. Use list with pairs of (R . F), where R specifies regexps and | |
| 400 F specifies faces. How can this list be made to depend on the | |
| 401 document type? | |
| 402 | |
| 403 * Other | |
| 404 | |
| 405 ** Support RELAX NG XML syntax (use XML parsing library). | |
| 406 | |
| 407 ** Support W3C XML Schema (use XML parsing library). | |
| 408 | |
| 409 ** Command to infer schema from current document (like trang). | |
| 410 | |
| 411 * Schemas | |
| 412 | |
| 413 ** XSLT schema should take advantage of RELAX NG to express cooccurrence | |
| 414 constraints on attributes (e.g. xsl:template). | |
| 415 | |
| 416 * Documentation | |
| 417 | |
| 418 ** Move material from README to manual. | |
| 419 | |
| 420 ** Document encodings. | |
| 421 | |
| 422 * Notes | |
| 423 | |
| 424 ** How can we allow an error to be displayed on a different token from | |
| 425 where it is detected? In particular, for a missing closing ">" we | |
| 426 will need to display it at the beginning of the following token. At | |
| 427 the moment, when we parse the following token the error overlay will | |
| 428 get cleared. | |
| 429 | |
| 430 ** How should rng-goto-next-error deal with narrowing? | |
| 431 | |
| 432 ** Perhaps should merge errors having same start position even if they | |
| 433 have different ends. | |
| 434 | |
| 435 ** How to handle surrogates? One possibility is to be compatible with | |
| 436 utf8.e: represent as sequence of 4 chars. But utf-16 is incompatible | |
| 437 with this. | |
| 438 | |
| 439 ** Should we distinguish well-formedness errors from invalidity errors? | |
| 440 (I think not: we may want to recover from a bad start-tag by implying | |
| 441 an end-tag.) | |
| 442 | |
| 443 ** Seems to be a bug with Emacs, where a mouse movement that causes | |
| 444 help-echo text to appear counts as pending input but does not cause | |
| 445 idle timer to be restarted. | |
| 446 | |
| 447 ** Use XML to represent this file. | |
| 448 | |
| 449 ** I had a TODO which said simply "split-string". What did I mean? | |
| 450 | |
| 451 ** Investigate performance on large files all on one line. | |
| 452 | |
|
107210
e547a98225c5
* TODO: Replace reference to CVS with explicit version number.
Glenn Morris <rgm@gnu.org>
parents:
86361
diff
changeset
|
453 * Issues for Emacs versions >= 22 |
| 86361 | 454 |
| 455 ** Take advantage of UTF-8 CJK support. | |
| 456 | |
| 457 ** Supply a next-error-function. | |
| 458 | |
| 459 ** Investigate this NEWS item "Emacs now tries to set up buffer coding | |
| 460 systems for HTML/XML files automatically." | |
| 461 | |
| 462 ** Take advantage of the pointer text property. | |
| 463 | |
| 464 ** Leverage char-displayable-p. | |
| 465 | |
| 466 Local variables: | |
| 467 mode: outline | |
| 468 end: |
