Mercurial > emacs
comparison etc/TODO @ 110286:75aed7131b9b
* lisp/nxml/TODO: Remove.
* etc/NEWS: Move nxml TODO items here.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Wed, 08 Sep 2010 19:34:25 -0700 |
parents | dc71fe13a42c |
children | 3e933e6f8752 |
comparison
equal
deleted
inserted
replaced
110285:dc71fe13a42c | 110286:75aed7131b9b |
---|---|
668 Tested on Fedora 12, 14, and the libmagick that ships with it. | 668 Tested on Fedora 12, 14, and the libmagick that ships with it. |
669 I also tried using an ImageMagick compiled from their SVN, in | 669 I also tried using an ImageMagick compiled from their SVN, in |
670 parallel with the one packaged by Fedora, it worked well. | 670 parallel with the one packaged by Fedora, it worked well. |
671 Ubuntu 8.04 was tested, but it seems it ships a broken ImageMagick. | 671 Ubuntu 8.04 was tested, but it seems it ships a broken ImageMagick. |
672 | 672 |
673 ** nxml mode | |
674 | |
675 *** High priority | |
676 | |
677 **** Command to insert an element template, including all required | |
678 attributes and child elements. When there's a choice of elements | |
679 possible, we could insert a comment, and put an overlay on that | |
680 comment that makes it behave like a button with a pop-up menu to | |
681 select the appropriate choice. | |
682 | |
683 **** Command to tag a region. With a schema should complete using legal | |
684 tags, but should work without a schema as well. | |
685 | |
686 **** Provide a way to conveniently rename an element. With a schema should | |
687 complete using legal tags, but should work without a schema as well. | |
688 | |
689 *** Outlining | |
690 | |
691 **** Implement C-c C-o C-q. | |
692 | |
693 **** Install pre/post command hook for moving out of invisible section. | |
694 | |
695 **** Put a modify hook on invisible sections that expands them. | |
696 | |
697 **** Integrate dumb folding somehow. | |
698 | |
699 **** An element should be able to be its own heading. | |
700 | |
701 **** Optimize to avoid complete buffer scan on each command. | |
702 | |
703 **** Make it work with HTML-style headings (i.e. level indicated by | |
704 name of heading element rather than depth of section nesting). | |
705 | |
706 **** Recognize root element as a section provided it has a title, even | |
707 if it doesn't match section-element-name-regex. | |
708 | |
709 **** Support for incremental search automatically making hidden text visible. | |
710 | |
711 **** Allow title to be an attribute. | |
712 | |
713 **** Command that says to recognize the tag at point as a section/heading. | |
714 | |
715 **** Explore better ways to determine when an element is a section | |
716 or a heading. | |
717 | |
718 **** rng-next-error needs to either ignore invisible portion or reveal it | |
719 (maybe use isearch oriented text properties). | |
720 | |
721 **** Errors within hidden section should be highlighted by underlining the | |
722 ellipsis. | |
723 | |
724 **** Make indirect buffers work. | |
725 | |
726 **** How should nxml-refresh outline recover from non well-formed tags? | |
727 | |
728 **** Hide tags in title elements? | |
729 | |
730 **** Use overlays instead of text properties for holding outline state? | |
731 Necessary for indirect buffers to work? | |
732 | |
733 **** Allow an outline to go in the speedbar. | |
734 | |
735 **** Split up outlining manual section into subsections. | |
736 | |
737 **** More detail in the manual about each outlining command. | |
738 | |
739 **** More menu entries for hiding/showing? | |
740 | |
741 **** Indication of many lines have been hidden? | |
742 | |
743 *** Locating schemas | |
744 | |
745 **** Should rng-validate-mode give the user an opportunity to specify a | |
746 schema if there is currently none? Or should it at least give a hint | |
747 to the user how to specify a non-vacuous schema? | |
748 | |
749 **** Support for adding new schemas to schema-locating files. | |
750 Add documentElement and namespace elements. | |
751 | |
752 **** C-c C-w should be able to report current type id. | |
753 | |
754 **** Implement doctypePublicId. | |
755 | |
756 **** Implement typeIdBase. | |
757 | |
758 **** Implement typeIdProcessingInstruction. | |
759 | |
760 **** Support xml:base. | |
761 | |
762 **** Implement group. | |
763 | |
764 **** Find preferred prefix from schema-locating files. Get rid of | |
765 rng-preferred-prefix-alist. | |
766 | |
767 **** Inserting document element with vacuous schema should complete using | |
768 document elements declared in schema locating files, and set schema | |
769 appropriately. | |
770 | |
771 **** Add a ruleType attribute to the <include> element? | |
772 | |
773 **** Allow processing instruction in prolog to contain the compact syntax | |
774 schema directly. | |
775 | |
776 **** Use RDDL to locate a schema based on the namespace URI. | |
777 | |
778 **** Should not prompt to add redundant association to schema locating file. | |
779 | |
780 **** Command to reload current schema. | |
781 | |
782 *** Schema-sensitive features | |
783 | |
784 **** Should filter dynamic markup possibilities using schema validity, by | |
785 adding hook to nxml-mode. | |
786 | |
787 **** Dynamic markup word should (at least optionally) be able to look in | |
788 other buffers that are using nxml-mode. | |
789 | |
790 **** Should clicking on Invalid move to next error if already on an error? | |
791 | |
792 **** Take advantage of a:documentation. Needs change to schema format. | |
793 | |
794 **** Provide feasible validation (as in Jing) toggle. | |
795 | |
796 **** Save the validation state as a property on the error overlay to enable | |
797 more detailed diagnosis. | |
798 | |
799 **** Provide an Error Summary buffer showing all the validation errors. | |
800 | |
801 **** Pop-up menu. What is useful? Tag a region (should be greyed out if | |
802 the region is not balanced). Suggestions based on error messages. | |
803 | |
804 **** Have configurable list of namespace URIs so that we can provide | |
805 namespace URI completion on extension elements or with schema-less documents. | |
806 | |
807 **** Allow validation to handle XInclude. | |
808 | |
809 **** ID/IDREF support. | |
810 | |
811 *** Completion | |
812 | |
813 **** Make it work with icomplete. Only use a function to complete when | |
814 some of the possible names have undeclared namespaces. | |
815 | |
816 **** How should C-return in mixed text work? | |
817 | |
818 **** When there's a vacuous schema, C-return after < will insert the end-tag. | |
819 Is this a bug or a feature? | |
820 | |
821 **** After completing start-tag, ensure we don't get unhelpful message | |
822 from validation | |
823 | |
824 **** Syntax table for completion. | |
825 | |
826 **** Should complete start-tag name with a space if namespace attributes | |
827 are required. | |
828 | |
829 **** When completing start-tag name with no prefix and it doesn't match | |
830 should try to infer namespace from local name. | |
831 | |
832 **** Should completion pay attention to characters after point? If so, how? | |
833 | |
834 **** When completing start-tag name, add required atts if only one required | |
835 attribute. | |
836 | |
837 **** When completing attribute name, add attribute value if only one value | |
838 is possible. | |
839 | |
840 **** After attribute-value completion, insert space after close delimiter | |
841 if more attributes are required. | |
842 | |
843 **** Complete on enumerated data values in elements. | |
844 | |
845 **** When in context that allows only elements, should get tag | |
846 completion without having to type < first. | |
847 | |
848 **** When immediately after start-tag name, and name is valid and not | |
849 prefix of any other name, should C-return complete on attribute names? | |
850 | |
851 **** When completing attributes, more consistent to ignore all attributes | |
852 after point. | |
853 | |
854 **** Inserting attribute value completions needs to be sensitive to what | |
855 delimiter is used so that it quotes the correct character. | |
856 | |
857 **** Complete on encoding-names in XML decl. | |
858 | |
859 **** Complete namespace declarations by searching for all namespaces | |
860 mentioned in the schema. | |
861 | |
862 *** Well-formed XML support | |
863 | |
864 **** Deal better with Mule-UCS | |
865 | |
866 **** Deal with UTF-8 BOM when reading. | |
867 | |
868 **** Complete entity names. | |
869 | |
870 **** Provide some support for entity names for MathML. | |
871 | |
872 **** Command to repeat the last tag. | |
873 | |
874 **** Support for changing between character references and characters. | |
875 Need to check that context is one in which character references are | |
876 allowed. xmltok prolog parsing will need to distinguish parameter | |
877 literals from other kinds of literal. | |
878 | |
879 **** Provide a comment command to bind to M-; that works better than the | |
880 normal one. | |
881 | |
882 **** Make indenting in a multi-line comment work. | |
883 | |
884 **** Structure view. Separate buffer displaying element tree. | |
885 Be able to navigate from structure view to document and vice-versa. | |
886 | |
887 **** Flash matching >. | |
888 | |
889 **** Smart selection command that selects increasingly large syntactically | |
890 coherent chunks of XML. If point is in an attribute value, first | |
891 select complete value; then if command is repeated, select value plus | |
892 delimiters, then select attribute name as well, then complete | |
893 start-tag, then complete element, then enclosing element, etc. | |
894 | |
895 **** ispell integration. | |
896 | |
897 **** Block-level items in mixed content should be indented, e.g: | |
898 <para>This is list: | |
899 <ul> | |
900 <li>item</li> | |
901 | |
902 **** Provide option to indent like this: | |
903 <para>This is a paragraph | |
904 occupying multiple lines.</para> | |
905 | |
906 **** Option to add make a / that closes a start-tag electrically insert a | |
907 space for the XHTML guys. | |
908 | |
909 **** C-M-q should work. | |
910 | |
911 *** Datatypes | |
912 | |
913 **** Figure out workaround for CJK characters with regexps. | |
914 | |
915 **** Does category C contain Cn? | |
916 | |
917 **** Do ENTITY datatype properly. | |
918 | |
919 *** XML Parsing Library | |
920 | |
921 **** Parameter entity parsing option, nil (never), t (always), | |
922 unless-standalone (unless standalone="yes" in XML declaration). | |
923 | |
924 **** When a file is currently being edited, there should be an option to | |
925 use its buffer instead of the on-disk copy. | |
926 | |
927 *** Handling all XML features | |
928 | |
929 **** Provide better support for editing external general parsed entities. | |
930 Perhaps provide a way to force ignoring undefined entities; maybe turn | |
931 this on automatically with <?xml encoding=""?> (with no version | |
932 pseudo-att). | |
933 | |
934 **** Handle internal general entity declarations containing elements. | |
935 | |
936 **** Handle external general entity declarations. | |
937 | |
938 **** Handle default attribute declarations in internal subset. | |
939 | |
940 **** Handle parameter entities (including DTD). | |
941 | |
942 *** RELAX NG | |
943 | |
944 **** Do complete schema checking, at least optionally. | |
945 | |
946 **** Detect include/external loops during schema parse. | |
947 | |
948 **** Coding system detection for schemas. Should use utf-8/utf-16 per the | |
949 spec. But also need to allow encodings other than UTF-8/16 to support | |
950 CJK charsets that Emacs cannot represent in Unicode. | |
951 | |
952 *** Catching XML errors | |
953 | |
954 **** Check public identifiers. | |
955 | |
956 **** Check default attribute values. | |
957 | |
958 *** Performance | |
959 | |
960 **** Explore whether overlay-recenter can cure overlays performance problems. | |
961 | |
962 **** Cache schemas. Need to have list of files and mtimes. | |
963 | |
964 **** Make it possible to reduce rng-validate-chunk-size significantly, | |
965 perhaps to 500 bytes, without bad performance impact: don't do | |
966 redisplay on every chunk; pass continue functions on other uses of | |
967 rng-do-some-validation. | |
968 | |
969 **** Cache after first tag. | |
970 | |
971 **** Introduce a new name class that is a choice between names (so that | |
972 we can use member) | |
973 | |
974 **** intern-choice should simplify after patterns with same 1st/2nd args | |
975 | |
976 **** Large numbers of overlays slow things down dramatically. Represent | |
977 errors using text properties. This implies we cannot incrementally | |
978 keep track of the number of errors, in order to determine validity. | |
979 Instead, when validation completes, scan for any characters with an | |
980 error text property; this seems to be fast enough even with large | |
981 buffers. Problem with error at end of buffer, where there's no | |
982 character; need special variable for this. Need to merge face from | |
983 font-lock with the error face: use :inherit attribute with list of two | |
984 faces. How do we avoid making rng-valid depend on nxml-mode? | |
985 | |
986 *** Error recovery | |
987 | |
988 **** Don't stop at newline in looking for close of start-tag. | |
989 | |
990 **** Use indentation to guide recovery from mismatched end-tags | |
991 | |
992 **** Don't keep parsing when currently not well-formed but previously | |
993 well-formed | |
994 | |
995 **** Try to recover from a bad start-tag by popping an open element if | |
996 there was a mismatched end-tag unaccounted for. | |
997 | |
998 **** Try to recover from a bad start-tag open on the hypothesis that there | |
999 was an error in the namespace URI. | |
1000 | |
1001 **** Better recovery from ill-formed XML declarations. | |
1002 | |
1003 *** Useability improvements | |
1004 | |
1005 **** Should print a "Parsing..." message during long movements. | |
1006 | |
1007 **** Provide better position for reference to undefined pattern error. | |
1008 | |
1009 **** Put Well-formed in the mode-line when validating against any-content. | |
1010 | |
1011 **** Trim marking of illegal data for leading and trailing whitespace. | |
1012 | |
1013 **** Show Invalid status as soon as we are sure it's invalid, rather than | |
1014 waiting for everything to be completely up to date. | |
1015 | |
1016 **** When narrowed, Valid or Invalid status should probably consider only | |
1017 validity of narrowed region. | |
1018 | |
1019 *** Bug fixes | |
1020 | |
1021 **** Need to give an error for a document like: <foo/><![CDATA[ ]]> | |
1022 | |
1023 **** Make nxml-forward-balanced-item work better for the prolog. | |
1024 | |
1025 **** Make filling and indenting comments work in the prolog. | |
1026 | |
1027 **** Should delete RNC Input buffers. | |
1028 | |
1029 **** Figure out what regex use for NCName and use it consistently, | |
1030 | |
1031 **** Should have not-well-formed tokens in ref. | |
1032 | |
1033 **** Require version in XML declaration? Probably not because prevents | |
1034 use for external parsed entities. At least forbid standalone without version. | |
1035 | |
1036 **** Reject schema that compiles to rng-not-allowed-ipattern. | |
1037 | |
1038 **** Move point backwards on schema parse error so that it's on the right token. | |
1039 | |
1040 *** Internal | |
1041 | |
1042 **** Use rng-quote-string consistently. | |
1043 | |
1044 **** Use parsing library for XML to texinfo conversion. | |
1045 | |
1046 **** Rename xmltok.el to nxml-token.el. Use nxml-t- prefix instead of | |
1047 xmltok-. Change nxml-t-type to nxml-t-token-type, nxml-t-start to | |
1048 nxml-t-token-start. | |
1049 | |
1050 **** Can we set fill-prefix to nil and rely on indenting? | |
1051 | |
1052 **** xmltok should make available replacement text of entities containing | |
1053 elements | |
1054 | |
1055 **** In rng-valid, instead of using modification-hooks and | |
1056 insert-behind-hooks on dependent overlays, use same technique as nxml-mode. | |
1057 | |
1058 **** Port to XEmacs. Issues include: Unicode (XEmacs seems to be based on | |
1059 Mule-UCS); overlays/text properties vs extents; absence of | |
1060 fontification-functions hook. | |
1061 | |
1062 *** Fontification | |
1063 | |
1064 **** Allow face to depend on element qname, attribute qname, attribute | |
1065 value. Use list with pairs of (R . F), where R specifies regexps and | |
1066 F specifies faces. How can this list be made to depend on the document type? | |
1067 | |
1068 *** Other | |
1069 | |
1070 **** Support RELAX NG XML syntax (use XML parsing library). | |
1071 | |
1072 **** Support W3C XML Schema (use XML parsing library). | |
1073 | |
1074 **** Command to infer schema from current document (like trang). | |
1075 | |
1076 *** Schemas | |
1077 | |
1078 **** XSLT schema should take advantage of RELAX NG to express cooccurrence | |
1079 constraints on attributes (e.g. xsl:template). | |
1080 | |
1081 *** Documentation | |
1082 | |
1083 **** Move material from README to manual. | |
1084 | |
1085 **** Document encodings. | |
1086 | |
1087 *** Notes | |
1088 | |
1089 **** How can we allow an error to be displayed on a different token from | |
1090 where it is detected? In particular, for a missing closing ">" we | |
1091 will need to display it at the beginning of the following token. At the | |
1092 moment, when we parse the following token the error overlay will get cleared. | |
1093 | |
1094 **** How should rng-goto-next-error deal with narrowing? | |
1095 | |
1096 **** Perhaps should merge errors having same start position even if they | |
1097 have different ends. | |
1098 | |
1099 **** How to handle surrogates? One possibility is to be compatible with | |
1100 utf8.e: represent as sequence of 4 chars. But utf-16 is incompatible | |
1101 with this. | |
1102 | |
1103 **** Should we distinguish well-formedness errors from invalidity errors? | |
1104 (I think not: we may want to recover from a bad start-tag by implying | |
1105 an end-tag.) | |
1106 | |
1107 **** Seems to be a bug with Emacs, where a mouse movement that causes | |
1108 help-echo text to appear counts as pending input but does not cause | |
1109 idle timer to be restarted. | |
1110 | |
1111 **** Use XML to represent this file. | |
1112 | |
1113 **** I had a TODO which said simply "split-string". What did I mean? | |
1114 | |
1115 **** Investigate performance on large files all on one line. | |
1116 | |
1117 *** Issues for Emacs versions >= 22 | |
1118 | |
1119 **** Take advantage of UTF-8 CJK support. | |
1120 | |
1121 **** Supply a next-error-function. | |
1122 | |
1123 **** Investigate this NEWS item "Emacs now tries to set up buffer coding | |
1124 systems for HTML/XML files automatically." | |
1125 | |
1126 **** Take advantage of the pointer text property. | |
1127 | |
1128 **** Leverage char-displayable-p. | |
1129 | |
673 * Internal changes | 1130 * Internal changes |
674 | 1131 |
675 ** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction | 1132 ** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction |
676 since the mark bit is no longer stored in the Lisp_Object itself. | 1133 since the mark bit is no longer stored in the Lisp_Object itself. |
677 | 1134 |