>WITH ... > > IF CONDITION > > ELSE > > ENDIF > >ENDWITH ... >>
<<lcLeft>> ~statement. (I do always one space intendation so there is no need to me to do a more glabal approach with TAB and so on).
PARAMETERS; toFoxCode LOCAL; lcLine,; lcLeft,; lnLeft,; lnRight,; lnOr,; lnAnd,; lcMyVar toFoxCode.ValueType = "V" lcLine = LTRIM(toFoxCode.FullLine) lcLeft = STRTRAN(toFoxCode.FullLine,lcLine,'') lnLeft = AT(' ',lcLine) lnRight = RAT(' ',lcLine) lcLine = ALLTRIM(SUBSTR(lcLine,lnLeft+1,lnRight-lnLeft-1)) lnOr = ATC(' or ',lcLine) lnAnd = ATC(' and ',lcLine) DO CASE CASE lnOr+lnAnd=0 CASE lnOr=0 lcLine = LEFT(lcLine,lnAnd)+' ...' CASE lnAnd=0 lcLine = LEFT(lcLine,lnOr)+' ...' OTHERWISE lcLine = LEFT(lcLine,MIN(lnAnd,lnOr))+' ...' ENDCASE DO WHILE LEN(lcLine)>30 AND ','$lcLine lcLine = LEFT(lcLine,RAT(',',lcLine)-1)+'...' ENDDO &&LEN(lcLine)>30 ... DO WHILE LEN(lcLine)>30 AND ')'$lcLine lcLine = LEFT(lcLine,RAT(')',lcLine)-1)+'...' ENDDO &&LEN(lcLine)>30 ... DO WHILE LEN(lcLine)>30 AND '('$lcLine lcLine = LEFT(lcLine,RAT('(',lcLine)-1)+'...' ENDDO &&LEN(lcLine)>30 ... DO WHILE LEN(lcLine)>30 AND ' '$lcLine lcLine = LEFT(lcLine,RAT(' ',lcLine)-1)+'...' ENDDO &&LEN(lcLine)>30 ... IF LEN(lcLine)>30 THEN lcLine = LEFT(lcLine,30)+'...' ENDIF &&LEN(lcLine)>30 lcLine = '&'+'&'+lcLine TEXT TO lcMyVar TEXTMERGE NOSHOW THEN <<lcLeft>> ~ <<lcLeft>>ELSE <<lcline>> <<lcLeft>>ENDIF <<lcline>> ENDTEXT RETURN lcMyVarI use a function named th( to start this.
* the line I enter: " IF condition th(" *the result: IF conditon THEN ELSE &&conditon ENDIF &&conditon *cursor in the line between IF and ELSE one space intended. *leading intendation will be maintainedHTH