Search Top Index
HELP VED_INDEXIFY A.Sloman Dec 1988 Updated A.Sloman June 1991 ENTER indexify ENTER heading ENTER g or ENTER indexify <string> ENTER heading <string> ENTER g <string> Facilities for building headings and tables of contents and accessing desired sections of a VED file. The <string> argument defaults to the value of ved_g_string CONTENTS - (Use ENTER g to access required sections) -- Overview -- ENTER indexify (build or re-build table of contents) -- ENTER g (Go to table of contents, or to section indicated) -- ENTER heading (Format current line as a heading) -- Using ved_g_string to alter header format -- Using a key string argument to temporarily alter ved_g_string -- Creating an index of indexes -- Creating different families of VED index procedures -- See also: -- Overview ----------------------------------------------------------- This collection of routines makes it easy to insert and use a table of contents in a VED file. For a tutorial introduction to these facilities see HELP * ENTER_G Users may define procedures which invoke ved_g using a different key string. The default key string '-- ' is held in the global variable ved_g_string, but can be varied as indicated below. If the default is used, then all index entries start with ' -- ' and all section header lines start with '-- '. In general, the section headers should start with the string in ved_g_string followed immediately by the title of the section, as in this file. The index entries should start with a space followed by ved_g_string followed by the title, as in the table of contents above. Both section headers and index entries may be followed by trailing hyphens preceded by a space, as above. These will be ignored. Only the lines in the table of contents should start with the key string preceded by a space. Only section headers should start with the key string, otherwise the ENTER indexify command will include those lines in the table of contents. The ENTER g command, used with the cursor on a line in the table of contents, or index, uses the combination of the the key string and the rest of the line, excluding any trailing hypens, as a search string to find the matching section header line. So it is important that index entries should uniquely identify the relevant section heading and the index entry. -- ENTER indexify (build or re-build table of contents) ------------- Creates a table of contents summarising the headings in the file. It can be used with ENTER g to go to a desired heading. Two formats for headings are supported, though they cannot be mixed in the same file. One format is the kind of heading shown in this file, with two hyphens on the left and a row of trailing hyphens. The other format is underlined headings, such as can be found in the REF files. (E.g. see REF * SYSTEM/access) The ENTER indexify command determines which type of heading is in use and builds a table of contents appropriately. There is a slight difference in the format of the table of contents, which enables the ENTER g command to determine what kind of heading to search for. If there is not yet a table of contents, the indexify command will build one where the cursor is. It need not be at the beginning of the file. If an old table of contents exists the indexify command will delete it and insert a new one in the same place. However, if additional text had been inserted in the old table that portion of the table will not be deleted, and a warning message to that effect is displayed. It is then up to the user to delete the remaining portion of the old index and re-insert the extra text in the new table if required. -- ENTER g (Go to table of contents, or to section indicated) ------- If the cursor is not on the table of contents, this command will move it there. On the first occasion of use it will go to the first entry in the table. Thereafter it goes to the entry after the previous one accessed. If the cursor is on a line in the table of contents inserted by ved_indexify then the ENTER g command will move the cursor to the beginning of the section indicated by that line of the table of contents. The ENTER g command does not assume that the table of contents is near the beginning or near the end of the file. It can be inserted anywhere in the text. In fact, the table can be broken down into sub-tables that are located in different places in the file, though in that case it is not easy to re-build the distributed table of contents automatically. -- ENTER heading (Format current line as a heading) ----------------- This command is used to produce section headers in the format shown in this file. For example if the cursor is placed on the following line ANOTHER HEADING and the command ENTER heading is given, then that line will be formatted as a heading. Thereafter ENTER indexify will re-build the table of contents so as to include this line, and the ENTER g command can be used to access it. -- Using ved_g_string to alter header format -------------------------- The standard versions of the commands described above assume that headings start with two hyphens and a single space, at the left of the line. The heading may end with a row of hyphens. The table of contents then uses the same initial string indented by an extra space, and deletes any trailing hyphens after the heading. Users may change the format by assigning a new string to the global variable ved_g_string, whose default value is the string '-- '. E.g. to use three plus signs (without a space) to indicate a section heading do '+++' -> ved_g_string; The new string will then be used by the commands ENTER heading ENTER indexify ENTER g However, at present no mechanism is provided to tell VED to use different values of ved_g_string for different files, though users could easily define procedures that use a property to store such an association (See REF* PROPS), then within each procedure re-define ved_g_string locally (see HELP * DLOCAL) and call the above procedures. WARNING: Only the lines in the table of contents should start with the key string preceded by a space. Only section headers should start with the key string. The combination of the key string, and the rest of the line, excluding any trailing hypens, will be used as a search string to find the matching item, so it should uniquely identify both the line starting the relevant section heading and the index entry. -- Using a key string argument to temporarily alter ved_g_string ------ All these commands can be given a different local value for ved_g_string by giving the string (minus the trailing space) as an argument. E.g. if you wish to have an index in a file of Pop-11 procedure definitions you can build the index using ENTER indexify define (This will, however, ignore procedure headings that are indented, e.g nested procedure definitions.) Try the above after doing ENTER showlib elizaprog Having built the index you can go to it with ENTER g define which, if repeated, will take you to the procedure definition corresponding to the cursor location in the index. Similarly, if you wish to have headings flagged by "===" then you can create them using ENTER heading === As in === Sample heading 1 -------------------------------------------------- === Sample heading 2 -------------------------------------------------- And you can build an index using ENTER indexify === As in CONTENTS (===) === Sample heading 1 === Sample heading 2 And then, to go to a location in the index you use ENTER g === As this example shows, two sorts of headings, with diferent indexes, can be used in the same file. E.g. in a tutorial file you could have a collection of normal section headings with a normal index, and a separate index to the examples. -- Creating an index of indexes --------------------------------------- Note that if you give an argument to ved_indexify it puts the argument in parentheses after 'CONTENTS', to identify different section headings. you can then have an index of indexes, if you do ENTER indexify CONTENTS Which, in this file, produces CONTENTS (CONTENTS) CONTENTS (===) CONTENTS (CONTENTS) Note that it does not include the "main" table of contents, like the one at the top of this file, unless after producing it you remove leading spaces in the 'CONTENTS' line. -- Creating different families of VED index procedures ---------------- Procedures that permanently use different values for ved_g_string are easily constructed by partially applying veddo to the appropriate command strings, e.g. global vars procedure ved_newheading = veddo(% 'heading ===' %), ved_newindexify = veddo(% 'indexify ===' %), ved_newg = veddo(% 'g ===' %); -- See also: HELP * ENTER_G LIB * VED_G LIB * VED_HEADING LIB * VED_INDEXIFY --- C.all/help/ved_indexify --- Copyright University of Sussex 1988. All rights reserved. ----------