Mercurial > emacs
annotate lisp/nxml/TODO @ 110523:a5ad4f188e19
Synch Semantic to CEDET 1.0.
Move CEDET ChangeLog entries to new file lisp/cedet/ChangeLog.
* semantic.el (semantic-version): Update to 2.0.
(semantic-mode-map): Add "," and "m" bindings.
(navigate-menu): Update.
* semantic/symref.el (semantic-symref-calculate-rootdir):
New function.
(semantic-symref-detect-symref-tool): Use it.
* semantic/symref/grep.el (semantic-symref-grep-shell): New var.
(semantic-symref-perform-search): Use it. Calculate root dir with
semantic-symref-calculate-rootdir.
(semantic-symref-derive-find-filepatterns): Improve error message.
* semantic/symref/list.el
(semantic-symref-results-mode-map): New bindings.
(semantic-symref-auto-expand-results): New option.
(semantic-symref-results-dump): Obey auto-expand.
(semantic-symref-list-expand-all, semantic-symref-regexp)
(semantic-symref-list-contract-all)
(semantic-symref-list-map-open-hits)
(semantic-symref-list-update-open-hits)
(semantic-symref-list-create-macro-on-open-hit)
(semantic-symref-list-call-macro-on-open-hits): New functions.
(semantic-symref-list-menu-entries)
(semantic-symref-list-menu): New vars.
(semantic-symref-list-map-open-hits): Move cursor to beginning of
match before calling the mapped function.
* semantic/doc.el
(semantic-documentation-comment-preceeding-tag): Do nothing if the
mode doesn't provide comment-start-skip.
* semantic/scope.el
(semantic-analyze-scope-nested-tags-default): Strip duplicates.
(semantic-analyze-scoped-inherited-tag-map): Take the tag we are
looking for as part of the scoped tags list.
* semantic/html.el (semantic-default-html-setup): Add
senator-step-at-tag-classes.
* semantic/decorate/include.el
(semantic-decoration-on-unknown-includes): Change light bgcolor.
(semantic-decoration-on-includes-highlight-default): Check that
the include tag has a postion.
* semantic/complete.el (semantic-collector-local-members):
(semantic-complete-read-tag-local-members)
(semantic-complete-jump-local-members): New class and functions.
(semantic-complete-self-insert): Save excursion before completing.
* semantic/analyze/complete.el
(semantic-analyze-possible-completions-default): If no completions
are found, return the raw by-name-only completion list. Add FLAGS
arguments. Add support for 'no-tc (type constraint) and
'no-unique, or no stripping duplicates.
(semantic-analyze-possible-completions-default): Add FLAGS arg.
* semantic/util-modes.el
(semantic-stickyfunc-show-only-functions-p): New option.
(semantic-stickyfunc-fetch-stickyline): Don't show stickytext for
the very first line in a buffer.
* semantic/util.el (semantic-hack-search)
(semantic-recursive-find-nonterminal-by-name)
(semantic-current-tag-interactive): Deleted.
(semantic-describe-buffer): Fix expand-nonterminal. Add
lex-syntax-mods, type relation separator char, and command
separation char.
(semantic-sanity-check): Only message if called interactively.
* semantic/tag.el (semantic-tag-deep-copy-one-tag): Copy the
:filename property and the tag position.
* semantic/lex-spp.el (semantic-lex-spp-lex-text-string):
Add recursion limit.
* semantic/imenu.el (semantic-imenu-bucketize-type-members):
Make this buffer local, not the obsoleted variable.
* semantic/idle.el: Add breadcrumbs support.
(semantic-idle-summary-current-symbol-info-default)
(semantic-idle-tag-highlight)
(semantic-idle-completion-list-default): Use
semanticdb-without-unloaded-file-searches for speed, and to
conform to the controls that specify if the idle timer is supposed
to be parsing unparsed includes.
(semantic-idle-symbol-highlight-face)
(semantic-idle-symbol-maybe-highlight): Rename from *-summary-*.
Callers changed.
(semantic-idle-work-parse-neighboring-files-flag): Default to nil.
(semantic-idle-work-update-headers-flag): New var.
(semantic-idle-work-for-one-buffer): Use it.
(semantic-idle-local-symbol-highlight): Rename from
semantic-idle-tag-highlight.
(semantic-idle-truncate-long-summaries): New option.
* semantic/ia.el (semantic-ia-cache)
(semantic-ia-get-completions): Deleted. Callers changed.
(semantic-ia-show-variants): New command.
(semantic-ia-show-doc): If doc is empty, don't make a temp buffer.
(semantic-ia-show-summary): If there isn't anything to show, say so.
* semantic/grammar.el (semantic-grammar-create-package):
Save the buffer even in batch mode.
* semantic/fw.el
(semanticdb-without-unloaded-file-searches): New macro.
* semantic/dep.el (semantic-dependency-find-file-on-path):
Fix case dereferencing ede-object when it is a list.
* semantic/db-typecache.el (semanticdb-expand-nested-tag)
(semanticdb-typecache-faux-namespace): New functions.
(semanticdb-typecache-file-tags)
(semanticdb-typecache-merge-streams): Use them.
(semanticdb-typecache-file-tags): When deriving tags from a file,
give the mode a chance to monkey with the tag copy.
(semanticdb-typecache-find-default): Wrap find in save-excursion.
(semanticdb-typecache-find-by-name-helper): Merge found names down.
* semantic/db-global.el
(semanticdb-enable-gnu-global-in-buffer): Don't show messages if
GNU Global is not available and we don't want to throw an error.
* semantic/db-find.el (semanticdb-find-result-nth-in-buffer):
When trying to normalize the tag to a buffer, don't error if
set-buffer method doesn't exist.
* semantic/db-file.el (semanticdb-save-db): Simplify msg.
* semantic/db.el (semanticdb-refresh-table): If forcing a
refresh on a file not in a buffer, use semantic-find-file-noselect
and delete the buffer after use.
(semanticdb-current-database-list): When calculating root via
hooks, force it through true-filename and skip the list of
possible roots.
* semantic/ctxt.el (semantic-ctxt-imported-packages): New.
* semantic/analyze/debug.el
(semantic-analyzer-debug-insert-tag): Reset standard output to
current buffer.
(semantic-analyzer-debug-global-symbol)
(semantic-analyzer-debug-missing-innertype): Change "prefix" to
"symbol" in messages.
* semantic/analyze/refs.el: (semantic-analyze-refs-impl)
(semantic-analyze-refs-proto): When calculating value, make sure
the found tag is 'similar' to the originating tag.
(semantic--analyze-refs-find-tags-with-parent): Attempt to
identify matches via imported symbols of parents.
(semantic--analyze-refs-full-lookup-with-parents): Do a deep
search during the brute search.
* semantic/analyze.el
(semantic-analyze-find-tag-sequence-default): Be robust to
calculated scopes being nil.
* semantic/bovine/c.el (semantic-c-describe-environment): Add
project macro symbol array.
(semantic-c-parse-lexical-token): Add recursion limit.
(semantic-ctxt-imported-packages, semanticdb-expand-nested-tag):
New overrides.
(semantic-expand-c-tag-namelist): Split a full type from a typedef
out to its own tag.
(semantic-expand-c-tag-namelist): Do not split out a typedef'd
inline type if it is an anonymous type.
(semantic-c-reconstitute-token): Use the optional initializers as
a clue that some function is probably a constructor. When
defining the type of these constructors, split the parent name,
and use only the class part, if applicable.
* semantic/bovine/c-by.el:
* semantic/wisent/python-wy.el: Regenerate.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 18 Sep 2010 22:49:54 -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: |