diff options
-rw-r--r-- | Doxyfile.user | 8 | ||||
-rw-r--r-- | doc_src/fish_lexicon_filter.in | 59 |
2 files changed, 51 insertions, 16 deletions
diff --git a/Doxyfile.user b/Doxyfile.user index 3f5f6149..09683abd 100644 --- a/Doxyfile.user +++ b/Doxyfile.user @@ -257,10 +257,10 @@ ALIASES += "strg{1}=<span class=\"string\">\1</span>" ALIASES += "sglq{1}=<span class=\"string\">'\1'</span>" ALIASES += "dblq{1}=<span class=\"string\">\"\1\"</span>" -ALIASES += "prmt{1}=<span class=\"prompt\">\1 </span>" -ALIASES += "sgst{1}=<span class=\"suggest\">\1</span>" -ALIASES += "eror{1}=<span class=\"error\">\1</span>" -ALIASES += "curs{1}=<span class=\"cursor\">\1</span>" +ALIASES += "prmt{1}=<span class=\"prompt\"\1</span>" +ALIASES += "sgst{1}=<span class=\"suggest\"\1</span>" +ALIASES += "eror{1}=<span class=\"error\"\1</span>" +ALIASES += "curs{1}=<span class=\"cursor\"\1</span>" ALIASES += "bold{1}=<strong>\1</strong>" ALIASES += "emph{1}=<em>\1</em>" diff --git a/doc_src/fish_lexicon_filter.in b/doc_src/fish_lexicon_filter.in index f8214c54..9da7d173 100644 --- a/doc_src/fish_lexicon_filter.in +++ b/doc_src/fish_lexicon_filter.in @@ -32,7 +32,7 @@ #. # It's most easily tested by passing test strings into the compiled script: #. -# echo "Line to test" | ./fish_lexicon_filter +# echo "/fish Line to test" | ./fish_lexicon_filter #. # The, at times, archiac looking regex is down to ensuring portable sed BREs #. @@ -137,7 +137,7 @@ t html #. # Comments: # Capture full line comments -/^[ ]*#.*$/ { +/^ *#.*$/ { # Assume any line starting with a # is complete s//@blah{&}/ t @@ -237,13 +237,34 @@ s/\n//g # Find the initial command, and change any others to arguments, up to a |, ( or ; # Assumes that a valid line will start with either a builtin, a function or a binary. #. -s/^\([ ]*\)@cmnd\(.*\)/\1@xcmd\ +# 'if' and 'for' seem to be special cases +/@cmnd{if}/ { +s//@xcmd\ +{if}/ +s/@cmnd{else}/@xcmd\ +{else}/ +s/@cmnd{not}/@xcmd\ +{not}/ +s/$}@cmnd{status}/$}status/ +b nextcmnd +} +/@cmnd{for}/ { +s/@cmnd{for}/@xcmd\ +{for}/ +s/[[:<:]]in[[:>:]]/@args{in}/ +b castargs +} + +#. +# Find initial command +#. +s/^\( *\)@cmnd\(.*\)/\1@xcmd\ \2/ t castargs -s/^\([ ]*\)@func\(.*\)/\1@xfnc\ +s/^\( *\)@func\(.*\)/\1@xfnc\ \2/ t castargs -s/^\([ ]*\)@sbin\(.*\)/\1@xbin\ +s/^\( *\)@sbin\(.*\)/\1@xbin\ \2/ t castargs :nextcmnd @@ -270,22 +291,37 @@ t castargs s/\n\([^@]*\)@sbin\(.*\)/\1@args\ \2/ t castargs +s/\n\([^@]*\)@\(....\)\(.*\)/\1@\2\ +\3/ +t castargs :cleancmd s/xcmd/cmnd/g s/xfnc/func/g s/xbin/sbin/g s/\n//g -# Character Entities #. -# Mark up a few sesitive characters. +# Remove any args after echo +#. +/@cmnd{echo}/ { +s//\ +&\ +/ +:cleanecho +s/\n\([^@]*\)@args{\([^}]*\)}/\1\2/ +t cleanecho +s/\n//g +w debug-lexicon.log +} +#. +# Mark up sesitive character entities. #. :entities s/</\</g s/>/\>/g #. # Uncomment the folowing two lines (ss) to log the final output, sent to Doxygen. -s/^.*$/OUT : &/w debug-lexicon.log -s/^OUT : // +# s/^.*$/OUT : &/w debug-lexicon.log +# s/^OUT : // #. # Lines are reassembled, so branch to end b @@ -306,8 +342,8 @@ s/\n$// # characters. Basically the inverse of the 'patternflush' action, with # additional trailing characters stripped. x -s/^[ ]*[^<][^@][^}]*$// -s/^[ ]*[^<][^@][^\\]*[\\ ()]*\n// +s/^ *[^<][^@][^}]*$// +s/^ *[^<][^@][^\\]*[\\ ()]*\n// :holdflush s/}[)(\\ ][)(\\ ]*/}/ s/\n[];)|* -][^\\]*[\\]*// @@ -335,7 +371,6 @@ s/\([A-Za-z*][A-Za-z]*\.[a-z0-9][a-z0-9]*\)/@fsfo{\1}/g #. # Manually add a few commands not harvested from source files. #. -s,[[:<:]]in[[:>:]],@args{in},g s,[[:<:]]whoami[[:>:]],@sbin{whoami},g s,[[:<:]]fishd[[:>:]],@sbin{fishd},g #. |