The View Editor

Some “mi­nor” Ed­i­tor Fa­cilities

Some more ad­van­ta­geous means of serv­ing, al­though mi­nor, are made avail­a­ble through a care­ful at­ten­tion to some re­pet­i­tive ac­tions or nat­u­ral needs of com­par­i­son or data se­lec­tion, tools and lo­cal in­for­ma­tion.

The Spe­cial sym­bols rec­og­ni­tion

 Special Characters display

The Ex­tend­ed Char­ac­ters_Ta­ble

 The current Font interactive map

The load­ed_files in­ter­ac­tive list

 loaded files popup menu
By the way, this represents the best lookout of those files that resulted changed, after a global Replacement through the Tabs. Besides, as well as for the Tab se­lec­tors:
  • Ctrl-Click a file name to put the File­Name into the clip­board;
  • Ctrl_Shift-Click a file name to put the full Path­\File­Name into the clip­board, with just one dif­fer­ence: click­ing on TABs will se­lect and ac­cess that file; click­ing on the po­pup menu will get the data with­out chang­ing the cur­rent fo­cus.

    Se­quencing the Tabs

     TABs sequencing intro
     TABs sorting options

    Special sort options

    In the ex­am­ple be­low a list of links that is a page menu is se­lected for sort­ing. There are path­\file names with dif­fer­ent line length de­pending on HTML pa­ram­e­ters: it is nor­mal­ly im­pos­si­ble to mere­ly sort tar­gets (this is not the case of Se­quencing the Tabs, where this par­tic­u­lar op­tion is ready); our rou­tine makes it pos­si­ble and even very sim­ple: once se­lected the menu area open the Sort po­pup menu and check the Char­ac­ter's oc­cur­rence op­tion, then click |Sort by Name| com­mand. This will open the "Sort se­lec­tion" tab, al­lowing you to point out where to start the com­pare ac­tions for each row. In our case, we need to sort the path­\file­names to ob­tain an ordered menu, as long as it could be. For that se­lect the first slash char­ac­ter in any row: this will teach the pro­gram to view eve­ry row as if it be­gan from its first slash, no mat­ter if the col­umn (or byte po­si­tion) is dif­fer­ent each from the oth­er.
     Dynamic Sort by Column As it can be seen in the im­age above, in the fi­nal sort­ed list a first “ex­tra­ne­ous” line is put aside (un­sorted if more than one) to the be­gin of the stream, while the oth­er lines are sort­ed ac­cord­ing to their file names, in­de­pend­ent­ly from any oth­er con­tent.
    Note that one line only holds the path "ex­am­ples­/" that is han­dled in this case as a part of the file name, due to the first slash tak­en as the se­quence be­gin­ner.

    Dif­fi­cult ques­tions may turn to eas­i­er an­swers.

    Sort modes re­ferred to File­names are avail­a­ble in the TABs or­der area only, as de­scribed above.
    Let's sup­pose to need file­names sort­ed in­de­pend­ent­ly of paths then. If paths are equal in lev­els, where the sub­di­rec­tories may be dif­fer­ent but nest­ed to the same de­scend­ing de­gree, the last path de­lim­it­er can be set to sort from the be­gin­ning of each file­name; but this is quite a rare case.
    For dif­fer­ent in depth paths an­oth­er very spe­cial op­tion is ready: |get oc­cur­rence from the end of row|. This one must re­fer to Char­ac­ter's or String's oc­cur­rence set­ting, tell­ing the rou­tine to find the be­gin­ning byte(s) of the string to be com­pared, or the val­id oc­cur­rence, start­ing search from the end of each line. As it can be seen on the im­age to the right, the file­name de­lim­it­er is the 2nd start­ing from the end of eve­ry ref­er­enc­ing line, where the 1st be­longs to the </A> clos­ing tag; for that the row de­fin­ing the back­ground im­age "..­/im­ag­es­/pa­per.jpg" (no “HREF=”, no “­/A”, there­fore it should not be in­clud­ed in this list) re­sults out of or­der, be­ing sort­ed from the same de­lim­it­er po­si­tion, which in this line in­cludes the "­/im­ag­es" fold­er.
    Ob­vi­ous­ly the file­name sort is just an ex­am­ple, matching the above Tab Se­quencing; these rules are ap­pli­ca­ble to any text that may take ad­van­tage from this fea­ture.
  • Spe­cial sym­bols En­hanced view­ing and typ­ing.
    Be­sides some ba­sic fea­tures ap­pli­ca­ble to any por­tion of code, like Strip­ping the text from Tags, Un-hy­phen­at­ing it and the glob­al ex­tend­ed char­ac­ters and spe­cial sym­bols for­mat con­ver­sion, a spe­cial at­ten­tion has been payed to these. Two but­tons are vis­i­ble with the re­spec­tive la­bels: |&euro;=&Euro;|, to re­store all en­cod­ed char­ac­ters to their AS­CII sym­bol, and |&Euro;=&euro;|, to con­vert all ex­tend­ed char­ac­ters to their HTML cod­ed for­mat. Since these two but­tons are dou­ble (that is they can be split) click the right side of each to per­form the con­ver­sions so that the whole but­ton will be pushed. A first add­ed chance to the best view of the spe­cial char­ac­ters is giv­en high­light­ing them in Ital­ic style and with any of the four reg­is­tered col­ors; Right-click the |€=&euro| but­ton to get the choice. This rare op­tion is com­plet­ed with a com­mand that forc­es the con­ver­sion of any string of char­ac­ters into the above HTML for­mat, which can be use­ful i. e. to dis­guise any e-mail ad­dress from nor­mal en­cod­ing to one for­mat which is not [nor­mal­ly] rec­og­nized by the var­i­ous ro­bots de­tect­ing any data from sites.
    To han­dle eve­ry char­ac­ter not nor­mal­ly avail­a­ble on the key­board a dou­ble Map-ta­ble is pro­vid­ed, which shows the AS­CII char­ac­ters from 128 to 255 plus four most used low­er char­ac­ters: am­per­sand, quotes, less and great­er: eve­ry sym­bol can be clicked to be in­sert­ed into the text at the car­et po­si­tion, either by the entity name or the code number format.
    This ta­ble can be opened in two in­ter­ac­tive modes:
    • click the |&euro;| but­ton [left side] to open a Ta­ble whose but­tons will in­sert into the text the en­ti­ty, that is the char­ac­ter in HTML cod­ed for­mat;
    • click the |€=| but­ton [left side] to open a Ta­ble whose but­tons will in­sert into the text the char­ac­ter in its true AS­CII for­mat.
    Since the Map is the same, once opened you can switch from one for­mat func­tion to the oth­er just click­ing the matching but­ton: the same ap­pli­es to the font chang­es: at eve­ry com­mand the ta­ble will show [or will be up­dat­ed with] the char­ac­ters avail­a­ble in the spe­cif­ic font, in the de­fault font and size if no syn­tax col­our is ac­tive, or those se­lected into the doc­u­ment by the car­et po­si­tion if the cur­rent frame is in syn­tax col­our mode.
    For im­me­di­ate aid, in ei­ther cas­es the ta­ble's char­ac­ters are dis­played in two modes: as 3D but­tons, to show those char­ac­ters which can be HTML cod­ed; as a flat but­ton for those char­ac­ters which can­not. A hint for eve­ry char­ac­ter shows its AS­CII code num­ber, the HTML en­ti­ty if ex­ists, the char­ac­ter's name.
    List­ing and ac­cess­ing the load­ed files.
    When to se­lect each file on the tab Con­trol be­comes un­easy, due to an in­creased num­ber of load­ed files, quick­ly open the spe­cial files sta­tus po­pup menu (1) by Ctrl-G, or (2) strok­ing the short­cut menu key, if avail­a­ble on your key­board, or even (3) from the main po­pup menu de­scribed be­low; this will dis­play one whole or se­lected files list gath­er­ing var­i­ous in­for­ma­tion about. The file­names are numbered (load or dis­play or­der) but sort­ed by name; their num­bers are vis­i­ble when the file ex­ten­sion is known (de­fault reg­is­tered) or left blank, to help dis­tin­guish those ac­ces­so­ry files not to be nor­mal­ly hy­phen­at­ed (i. e.: *.js, *.css etc.); the mod­i­fied files (whose state is still dif­fer­ent from the disk ver­sion) are ticked, while those files that have been changed and saved (whose state is not cur­rent­ly dif­fer­ent from the disk ver­sion then, but are made sub­ject to undo-redo ma­nip­u­lations) are not, but are marked by one bar: | to re­place the sep­a­ra­tor dot. The de­fault lan­guage flag flanks the cur­rent file that could be hy­phen­at­ed; a graph­ic point­er is used if the file type is un­known.
    Of course, eve­ry file can be ac­cessed just click­ing on.
    You can have all files or just the mod­i­fied ones list­ed: this ap­ply both to all files and to a sin­gle group (filetype) se­lected by the "Show only" sub-menu, that of­fers the choice among all your reg­is­tered ex­ten­sions for the WWW or RTF ac­tive en­vi­ron­ment; to list only the mod­i­fied *.xxx files, the file type must be set in ad­vance. Add­ed to this list may ap­pear, shady but vis­i­ble un­til next load, the not load­ed files due of a pre­vi­ous com­mand in­ter­rup­tion by the user.

    To sim­pli­fy, this menu holds three un­u­su­al com­mands:
    • dis­play just the wait­ing files, those be­ing cur­rent­ly mod­i­fied, even if re­set by the Undo com­mand;
    • dis­play only those files matching a giv­en (cus­tom) ex­ten­sion; this can sup­ply a good batch of a list;
    • quiclky un­load all the un­changed files, as it could fol­low a pre­vi­ous find­/re­place se­lec­tion from disk.
    Han­dling and sort­ing the frames' suc­ces­sion.
    Sup­pose you have load­ed 20 or more files; it may be­come dif­fi­cult to han­dle them, and switch from each to oth­er look­ing for eve­ry­one be­tween all those Tabs. The last com­mand of the po­pup menu helps you to ar­range the or­der and group those files to meet the need of the mo­ment. In a very sim­ple but so­phis­ti­cat­ed way, it opens a spe­cial frame with the ed­ita­ble list of all the load­ed path­\files, which not only you can move man­u­al­ly, but sort and dis­trib­ute ac­cord­ing to var­i­ous cri­te­ria, both gen­er­al and spe­cif­ic: at first they can be sort­ed by Name, Path and Ex­ten­sion, in­de­pend­ent­ly of their length.
    As well as any text se­lec­tion, thus ex­clud­ing the Path and Ex­ten­sion op­tions, they can be sort­ed start­ing from a de­fined col­umn too, that is the N.th byte, where the car­et is placed in any row; this will be­come the pre­de­fined start point where to com­pare all the strings from and will fix the area to be sort­ed
    As a dy­nam­ic choice, you can sort all the lines start­ing their com­par­i­son from one var­i­a­ble point in each one, that is the matching po­si­tion of a se­lected word in that row. This will br­ing the col­lat­er­al ef­fect to gath­er to the end of the list all those lines con­taining the ref­er­ence string; for oth­er sort scopes and com­bined with the au­to­mat­ic ex­trac­tion of the se­lected text this fea­ture may re­veal to be unique. Al­though the same ap­pli­es to one sin­gle byte, the "Set char­ac­ters oc­cur­rence in rows" com­mand is add­ed to al­low the quick place­ment of the car­et bofore any char­ac­ter, with no need to high­light it.
    Why "oc­cur­rence in row"? If the se­lected word or char­ac­ter are pre­sent more than one time into the same row, the pro­gram will re­fer to the same oc­cur­rence of the string into all rows; in lack of such oc­cur­rence the row will be con­sid­ered as null and put un­sorted to the be­gin­ning of the list.
    Once set the files, or the TABs head­ers, in the de­sired or­der, click the |Save| com­mand to up­date the frames dis­tri­bu­tion; to exit with­out chang­ing the cur­rent set­ting click |Close| or just change Tab, and the "TABs' or­der" frame will dis­ap­pear.

    Sort­ing Text ar­e­as.
    The Sort fea­tures de­scribed here­with are avail­a­ble from the Quick-Edit po­pup menu too, and ap­ply to any file into the View-Ed­i­tor. The Sort po­pup menu, that can also be opened by Ctrl-Shift_O, al­lows to check­/un­check 8 sort op­tions with­out clos­ing, for to ex­e­cute one of the avail­a­ble sort com­mands then.
    Brief­ly, apart the col­umn num­ber, that may be fixed as the start­ing point on eve­ry row, the choice of a byte or a string is com­plete­ly dy­nam­ic; the ref­er­enc­ing byte or string may oc­cur in any po­si­tion of the each row, set­ting the byte where the rows are com­pared from. If more reccurrences of the same are avail­a­ble into the ref­er­enc­ing row (where the string is high­light­ed), the same string oc­cur­rence will be searched into all the rows to be sort­ed; this can start from be­gin­ning as well as from the end of the row, as to the op­tions set.
    You may nor­mal­ly sort by Name or by Val­ue, both de­pending from all the oth­er checked op­tions, ei­ther the whole text of a page, or a se­lected area with one prem­ise: if a car­et po­si­tion must be set, to de­fine the start col­umn for one of the three last op­tions (set Col­umn, set Char­ac­ter, set String), if it deals with a se­lected area this will be im­me­di­ate­ly cop­ied and past­ed to a new frame in or­der to sep­a­rate it from the whole text, thus al­lowing to place the car­et where need­ed or se­lect (high­light) the string of your choice, pre­serv­ing the se­lec­tion.
    Once sort­ed (or ed­it­ed) and ap­proved, the |Save| com­mand will re­place the orig­i­nal stream with the new one, clos­ing the tem­po­rary frame; you may click |Close| or just change Tab if you want to quit.
    Sep­a­rat­ing the se­lec­tion to edit may aid your at­ten­tion to fo­cus on de­tails with­out er­rors; how­ev­er this pro­cess is au­to­mat­ic, there­fore it does not re­quire any ad­di­tion­al work.
    Sort­ing by Val­ue means sort lines with num­bers at the col­umn po­si­tion. 1 is the de­fault col­umn, but you can put the cur­sor an­y­where: from that point of each row the line val­ue will be sto­red un­til the first non nu­mer­ic char­ac­ter is found, no mat­ter if they are in nu­mer­i­cal col­um; lead­ing spaces are al­lowed how­ev­er. "32oops" val­ue is 32, like "32o43ops", and "123num­ber" is ob­vi­ous­ly great­er than "99words", but less than "11199oops". Sort­ing by Name would be quite dif­fer­ent. If you set the 4th col­umn, "32o43ops" will be great­er than "11129oops", as 43 is great­er than 29.

     Editor_Sort_by_ reverse_column
    A last mi­nute sam­ple?
    Cre­at­ing the spe­cial Font list for the next page of this tu­to­ri­al, af­ter sev­er­al choices, tests and re­place­ments, the fi­nal list had to be al­pha­bet­i­cal­ly ordered, start­ing from a such un­in­ter­rupt­ed stream, thus nec­es­sary to the Ja­vaScript file:

    <div class =­\&qu­ot;menuitems­\" url =­\&qu­ot;JavaScript: SetFont('SCRI')­\" onMouseOver =­\&quo­t;window.sta­tus ='';re­turn true­\" onMouseOut= ­\&quo­t;window. sta­tus ='';re­turn true­\">Font Scrip­to­ria</div><div class =­\&qu­ot;menuitems­\" url =­\&qu­ot;JavaScript: SetFont('ANTI')­\" onMouseOver= ­\&quo­t;window.sta­tus ='';re­turn true­\" onMouseOut =­\&quo­t;window.sta­tus ='';re­turn true­\"> Font Amano</div><div class =­\&qu­ot;menuitems­\" url =­\&qu­ot;JavaScript: SetFont('COPP')­\" onMouseOver =­\&quo­t;window.sta­tus ='';re­turn true­\" onMouseOut =­\&quo­t;window.sta­tus ='';re­turn true­\" >Font Marydale</div><div class= ­\&qu­ot;menuitems­\"url=­\&qu­ot;JavaScript: SetFont('SEAG')­\" onMouseOver=­\&quo­t;window.sta­tus='';re­turn true­\" onMouseOut =­\&quo­t;window.sta­tus =''; re­turn true­\">Font Seagull</div><div class =­\&qu­ot;menuitems­\" url =­\&qu­ot;JavaScript: SetFont('BOTO')­\" onMouseOver =­\&quo­t;window.sta­tus='';re­turn true­\" onMouseOut =­\&quo­t;window.sta­tus ='';re­turn true­\">Font Boton</div><div class=­\&qu­ot;menuitems­\"url=­\&qu­ot;JavaScript: SetFont('VIVA')­\"onMouseOver =­\&quo­t;window.sta­tus='';re­turn true­\" onMouseOut = ­\&quo­t;window.sta­tus ='';re­turn true­\">Font Vivaldi</div><div class =­\&qu­ot;menuitems ­\" url=­\" Ja­vaScript:SetFont('STRI')­\" onMouseOver=­\&quo­t;window.sta­tus='';re­turn true­\" onMouseOut=­\&quo­t;window.sta­tus='';re­turn true­\">Font Strid­er</div>

    A sim­i­lar ac­tion is nor­mal­ly not so fast: eve­ry Font line needs to be man­u­al­ly split, where the min­i­mum byte er­ror will hang the script; and the sort or­der it­self does not prom­ise a cheap­er so­lu­tion when the in­volved lines are nu­mer­ous.
    With the hy­phenator-Pro I just had:
    1. to find out the vir­tu­al line sep­a­ra­tors as "</div><div class", to be tem­po­rar­i­ly re­placed with the equiv­a­lent"</div>­/@<div class", that in­tro­duced a Line Feed (­/@) to split each line;
    2. to Sort the 7 re­sult­ing lines se­lect­ing the ref­er­ence String Font From the End of each row and then
    3. re­store the "</div>­/@<div class" to "</div><div class", re­set­ting all to a sin­gle whole line.
    The ordered Font list could be so well re­placed.

     the Tutorial Menu

     the Main Menu



    [resize 800x600] Feb. 11, 2007