Click! 2.03 Source Code Reformatter
@_SAY_GET_ALIGNMENT_METHOD
@_SAY_GET_ALIGNMENT_METHOD
Default: 2
This is part of The Aligner.
Options: 0, no alignment
1, each element type in it's own aligned column
2, Columns aligned, but not by type
3, Each element in it's own row.
There is no automated reverse process for Option 3.
Because of this, if you select Option 3, be sure to review the
output carefully before committing to it.
ADD_CLICK_HEADER
ADD_CLICK_HEADER
Default: YES
Options: YES, NO
Set to YES, Click! adds headers to the top of each source module.
ADD_EOF_MARKER
ADD_EOF_MARKER
Default: YES
Options: YES, NO
Set to YES, Click! adds an EOF marker at the end of each source
module.
ADD_FUNCTION_HEADERS
ADD_FUNCTION_HEADERS
Default: YES
Options: YES, NO
Set to YES, Click! adds function dividers at the start of each
function in every source module.
ALIGN_DBCREATE_IN_THE_ALIGNER
ALIGN_DBCREATE_IN_THE_ALIGNER
Default: YES
Options: YES, NO
Selecting YES will allow Click! to align DBCREATE( when used in the
following two formats.
So, this:
dbcreate( 'filename.dbf', { { 'xxxxx', 'C', 23, 0 }, ;
{ 'yyy', 'D', 8, 0 }, ;
{ 'yy', 'C', 8, 0 }, ;
{ 'yuu', 'D', 8, 0 }, ;
{ 'yijiiiyy', 'N', 9, 2 }, ;
{ 'yhhfyy', 'D', 8, 0 } } )
ends up looking like this:
dbcreate( 'FILENAME.DBF', { { 'XXXXX' , 'C', 23, 0 }, ;
{ 'YYY' , 'D', 8, 0 }, ;
{ 'YY' , 'C', 8, 0 }, ;
{ 'YUU' , 'D', 8, 0 }, ;
{ 'YIJIIIYY', 'N', 9, 2 }, ;
{ 'YHHFYY' , 'D', 8, 0 } } )
and:
aSomeArray := { { 'xxxxx', 'C', 23, 0 }, ;
{ 'yyy', 'D', 8, 0 }, ;
{ 'yy', 'C', 8, 0 }, ;
{ 'yuu', 'D', 8, 0 }, ;
{ 'yijiiiyy', 'N', 9, 2 }, ;
{ 'yhhfyy', 'D', 8, 0 } } )
ends up looking like this:
aSomeArray := { { 'XXXXX' , 'C', 23, 0 }, ;
{ 'YYY' , 'D', 8, 0 }, ;
{ 'YY' , 'C', 8, 0 }, ;
{ 'YUU' , 'D', 8, 0 }, ;
{ 'YIJIIIYY', 'N', 9, 2 }, ;
{ 'YHHFYY' , 'D', 8, 0 } } )
Any DBCREATE() which does not follow the above two formats are not
changed, code such as...
local temp := {}
aadd( temp, { 'xxxxx', 'C', 23, 0 } )
aadd( temp, { 'yyy', 'D', 8, 0 } )
aadd( temp, { 'yy', 'C', 8, 0 } )
aadd( temp, { 'yuu', 'D', 8, 0 } )
aadd( temp, { 'yijiiiyy', 'N', 9, 2 } )
aadd( temp, { 'yhhfyy', 'D', 8, 0 } )
dbcreate( filename, temp )
...is ignored.
ALIGN_CLASS_IN_THE_ALIGNER
ALIGN_CLASS_IN_THE_ALIGNER
Default: YES
Options: YES, NO
Selecting YES will allow Click! to align CLASS structures when used
like:
CASE_OF_BOOLEAN
CASE_OF_BOOLEAN
Default: LOWER
Options: NOCHANGE, UPPER, LOWER
Use this to change the case of your boolean instructions.
CASE_OF_COMMANDS
CASE_OF_COMMANDS
Default: LOWER
Options: NOCHANGE, UPPER, LOWER, PROPER, LIKEINFILE
Click! uses the CLICK.INI file to recognize Clipper commands. You
can select this option to change how COMMAND key words look in
Click! output. Please note that when you choose LIKEINFILE, your
keywords will be replaced with the ones in the CLICK.INI file, so if
you have a program which was coded with the old dBase III syntax
using 4 letter commands like CLEA SCRE, each command will be
expanded to the full command in the output.
CASE_OF_FUNCTIONS
CASE_OF_FUNCTIONS
Default: LOWER
Options: NOCHANGE, UPPER, LOWER, PROPER, LIKEINFILE
Click! uses the CLICK.INI file to recognize Clipper functions. You
can select this option to change how FUNCTION key words look in
Click! output. Please note that when you choose LIKEINFILE, your
keywords will be replaced with the ones in the CLICK.INI file, so if
you have a program which was coded with the old dBase III syntax
using 4 letter functions like UPPE( sometext), each function will be
expanded to the full function in the output.
CHANGE_REPLACE_WITH_TO_ASSIGNMENT
CHANGE_REPLACE_WITH_TO_ASSIGNMENT
Default: YES
Options: YES, NO
When set to YES, results in:
REPLACE foo with x
REPLACE bar with y
REPLACE baz with z
Being processed into:
field->foo := x
field->bar := y
field->baz := z
This doesn't work unless the Declaration Buster is turned on.
Any REPLACE commands containing any of the following modifiers: ALL,
FOR, WHILE, RECORD, REST and NEXT are skipped..
CHANGE_STORE_TO_ASSIGNMENT
CHANGE_STORE_TO_ASSIGNMENT
Default: YES
Options: YES, NO
When set to YES, results in:
STORE 'Hello' + " World" to y, z, x
STORE x to y
being processed into:
y := z := x := 'Hello' + " World"
y := x
CLEAN_UP_INCLUDES
CLEAN_UP_INCLUDES
Default: YES
This Determines if #includes will be beautified. Beautification
consists of switching the #define to lower case, converting the
delimiters to " and upper casing the file name.
#INCLUDE 'somefile.CH'
#include "nextFILE.CH"
becomes
#include "SOMEFILE.CH"
#include "NEXTFILE.CH"
CLICK_LOG
CLICK_LOG
Default: CLICK.LOG
This is where the log file is written. The log file contains data
from each run of Click, and is created in the output directory.
CLICK_LOG_ERASE
CLICK_LOG_ERASE
Default: YES
Options: YES, NO
Set to YES, Click! erases the log file at the beginning of each run.
COMMENTTAB
COMMENTTAB
Default: 20
When Click! finds comments, it tabs them out at this interval. So,
like here when COMMENTTAB = 20, all END OF LINE comments will start
on column 20, 40, 60, etc. (Bigger numbers align better)
CONVERT_&&_TO_//
CONVERT_&&_TO_//
Default: YES
Options: YES, NO
When set to YES, Click! converts && to //.
CONVERT_*_TO_//
CONVERT_*_TO_//
Default: YES
Options: YES, NO
When set to YES, Click! converts first * on a line to //.
CONVERT_OLD_STYLE_FUNCTIONS
CONVERT_OLD_STYLE_FUNCTIONS
Default: NO
Options: YES, NO
When set to YES, Click! converts:
1.09 makes a change to the way that the conversion of old style
function calls are done. After creating 1.08, I was informed that
conversion of DO/WITH function calls to formal function/parameters
changes the way the variables are passed. DO/WITH passes all
variables by reference, but function calls do not. Now, the
conversion places an @ in front of each parameter. Sometimes this
will break the code because the @ sign is an illegal operator. See
below for what to do if you get C2009 errors..
With this set to YES, ...
do test
do test // a comment
do test with a, c, somevar
do test with a, c, somevar // and a comment
... becomes ...
test()
test() // a comment
test( @a, @c, @somevar )
test( @a, @c, @somevar ) // and a comment
... and a blazing warning screen appears when Click! is set to run
with this option turned on, because of the potential of compiler
error C2009 occuring because of the pass by reference on all
parameters.
If you get C2009 compiler errors after using this option, remove the
offending @ in the parameter list and recompile.
CONVERT_TO_INCREMENTOR
CONVERT_TO_INCREMENTOR
Default: YES
Options: YES, NO
When set to YES, Click! converts:
s = s + 1
s := s - 1
x := x + ( anyvar + anyfunc() )
test=test-1// with a comment
q = q * 14
... to ...
s ++
s --
x += ( anyvar + anyfunc() )
test -- // with a comment
q *= 14
DEFAULT_INDENT
DEFAULT_INDENT
Default: 8
Default_Indent is how far Click! indents the next line after a ;
when Click! can't figure out how to align it with the previous line.
DEFLATE_(
DEFLATE_(
Default: No
Deflate_( removes the spaces after ( and before ).
Turned on, Click converts this:
X := ( 9, 3 )
to
X := (9, 3)
DEFLATE_[
DEFLATE_[
Default: No
Deflate_[ removes the spaces after [ and before ].
Turned on, Click converts this:
X := [ 9, 3 ]
to
X := [9, 3]
DEFLATE_{
DEFLATE_{
Default: No
Deflate_{ removes the spaces after { and before }.
Turned on, Click converts this:
X := { 9, 3 }
to
X := {9, 3}
DEFLATE_,
DEFLATE_,
Default: No
Deflate_, removes the spaces after ,
Turned on, Click converts this:
X := ( 9, 3 )
to
X := ( 9,3 )
DEFLATE_+
DEFLATE_+
Default: No
Deflate_+ removes the spaces before and after +
Turned on, Click converts this:
X := 9 + 3
to
X := 9+3
FUNC_DIV
FUNC_DIV
Default: *
This is the character used to replicate( ??, 68 ) for the function
divider.
FUNCTION_REF_INTO_SOURCE
FUNCTION_REF_INTO_SOURCE
Default: YES
Options: YES, NO
Set to YES, Click! places a short synopsis of the functions in each
module in the header for that module. This is identical to the
matching information in the SOURCE_XREF_FILE file, if created.
Please note that you must set ADD_CLICK_HEADER to YES.
FUNCTION_XREF_FILE
FUNCTION_XREF_FILE
Default: FNC_CROS.TXT
If this is set to a file name, then that file is created in the
output directory, and contains a cross reference which shows
everywhere any function is called from, and which source module the
call came from. A function to function cross reference.
FUNCTION_XREF_INTO_SOURCE
FUNCTION_XREF_INTO_SOURCE
Default: YES
Options: YES, NO
Set to YES, Click! places the function to function cross reference
information in the function header of each function in each source
module. This is identical to the matching information in the
FUNCTION_XREF_FILE file, if created.
Please note that you must set ADD_FUNCTION_HEADERS to YES.
HEAD_DIV
HEAD_DIV
Default: *
This is the character used to replicate( ??, 68 ) for the header
divider.
INDENT_/IF/FOR/CASE/FUNC/BEGIN/WHILE/CLASS
INDENT_IF
INDENT_FOR
INDENT_CASE
INDENT_FUNC
INDENT_BEGIN
INDENT_WHILE
INDENT_CLASS
Default: 3
Each type of structure can be indented a different amount if
necessary.
This is what to change if you want Click! to indent each level more
or less.
INDENT_DO_CASE
INDENT_DO_CASE
Default: NO
Options: YES, NO
Set to YES, Click! indents everything between DO CASE and END CASE
by the amount set in INDENT_CASE.
INDENT_FUNCTIONS
INDENT_FUNCTIONS
Default: NO
Options: YES, NO
Set to YES, Click! indents everything after the first line of each
FUNCTION by the amount set in INDENT_FUNC.
INDENT_LOCALS
INDENT_LOCALS
Default: no
Options: YES, NO
This directive is only operative when INDENT_FUNCTIONS is set to
YES.
If INDENT_FUNCTIONS=YES, and INDENT_LOCALS=NO, then any line
starting with LOCA PRIV MEMV STAT PUBL FIEL is left justified.
INDEX_XREF_INTO_SOURCE
INDEX_XREF_INTO_SOURCE
Default: YES
Options: YES, NO
Set to YES, Click! places a reference into the header of each file
which opens an index.
MAKE_CLICK_DBF_FROM
MAKE_CLICK_DBF_FROM
Default: ENVIRONMENT
Options: ENVIRONMENT, (specified path), DRIVES
An example of each option:
MAKE_CLICK_DBF_FROM=ENVIRONMENT
MAKE_CLICK_DBF_FROM=C:\CLIPPER5\LIB;E:\GRUMP52\LIB
MAKE_CLICK_DBF_FROM=DRIVES
MY_TABLE_OPENING_FUNCTION
MY_TABLE_OPENING_FUNCTION
Default: None
Options: Add function names delimited by |, to track other file
opening and closing functions other than USE and DBUSEAREA.
MY_TABLE_OPENING_FUNCTION=D_OPEN|D_CLOSE|D_ZAP
NOTIFY_OF_ERROR_ON_SCREEN
NOTIFY_OF_ERROR_ON_SCREEN
Default: YES
Options: YES, NO
If this is set to yes, then processing will stop when an error is
encounterd. Set to NO, the program will continue non-stop, and you
will need to look in the CLICK.LOG file to see what happened.
OUTPUT_DIRECTORY
OUTPUT_DIRECTORY=CLICKOUT
Default: CLICKOUT
This is the directory where all output will be written.
OUTPUT_EXTENSION
OUTPUT_EXTENSION=.PRG
Default: .PRG
This is the default extension of output which Click! will create.
OUTPUT_OVERWRITE
OUTPUT_OVERWRITE
Default: ALWAYS
The Options:: ALWAYS, ASK, NEVER
This determines what action Click! performs when it is going to
create output, but the file already exists.
POSTPROCESS_WITH_THE_ALIGNER
POSTPROCESS_WITH_THE_ALIGNER
Default: YES
Options: YES, NO
The Aligner currently works on:
@ SAY GET's
and:
Removes the space bloat from := on both assignments and
declarations.
and:
Certain types of DBCREATE() usage.
Future uses of the aligner will add other code sequences, probably
this is where the OO stuff will get realigned.
PREPROCESS_WITH_DECLARATION_BUSTER
PREPROCESS_WITH_DECLARATION_BUSTER
Default: YES
Options: YES, NO
Set to YES, then declarations that start like this:
LOCAL var1, var2, var3
Will end up like this:
LOCAL var1
LOCAL var2
LOCAL var3
This works on the following declarations.
LOCAL
PRIVATE
MEMVAR
STATIC
PUBLIC
FIELD
It does cost a little time, since it is a separate process done with
it's own pass on the file.
Declaration Buster now also busts up multiparameter REPLACE
statements.
So, if you have the Declaration Buster turned on, this:
REPLACE foo with x, bar with y, baz with z
becomes:
REPLACE foo with x
REPLACE bar with y
REPLACE baz with z
which in a later pass may become:
foo := x
bar := y
baz := z
RECURSION_LIMIT
RECURSION_LIMIT
Default: 7
Options: Any Number
This is only used if you select...
MAKE_CLICK_DBF_FROM=DRIVES
It limits the depth that directory recursion will traverse. I found
on my personal NT drive, there were directories nested so deeply
that I got a stack overflow. This eliminated that problem.
REMOVE_CLICK_HEADERS
REMOVE_CLICK_HEADERS
Default: YES
Options: YES, NO
Click! headers and function dividers start with *+. If set to yes,
then they are recognized and removed.
REMOVE_DUPLICATE_EMPTY_LINES
REMOVE_DUPLICATE_EMPTY_LINES
Default: YES
Options: YES, NO
Click! will remove any extra empty lines in your source code. Single
empty lines are not removed. This option only works if The Aligner
is turned on.
REMOVE_MULTIEDIT_HEADERS
REMOVE_MULTIEDIT_HEADERS
Default: YES
Options: YES, NO
Multi Edit headers start with #/ or /* --% . If this is set to yes,
then they are recognized and removed.
REMOVE_SNAP_HEADERS
REMOVE_SNAP_HEADERS
Default: YES
Options: YES, NO
Snap headers and function dividers start with *! and *: If this is
set to yes, then they are recognized and removed.
RESTORE_SCREEN_ON_EXIT
RESTORE_SCREEN_ON_EXIT
Default: NO
Options: NO, YES
Set to yes, Click! restores the screen before returning to DOS.
RETAIN_ORIGINAL_TIME_DATE_ON_OUTPUT_FILES
RETAIN_ORIGINAL_TIME_DATE_ON_OUTPUT_FILES
Default: YES
Options: YES, NO
Set to YES, Click! sets the output files to have the same time/date
stamp as the originals.
RUNMODE
RUNMODE
Default: 5.X
Options: 5.X, S87
Selecting S87:
Stops the = to := conversion
Turns off the Declaration Buster
Stops the STORE to := converter
The Aligner uses = != instead of := += -= *= /= ^= !=
SKIP_FILES_WITH_NO_CHANGES
SKIP_FILES_WITH_NO_CHANGES
Default: YES
Options: YES, NO
Set to YES, Click! skips the processing of a file when the file in
the output directory has the same name, time and date as the file in
the input directory.
SMART_ALIGN_MAX_ELEMENTS
SMART_ALIGN_MAX_ELEMENTS
Default: 11
Smart Align Max Elements refers to how many line elements will be
considered to try to line something up on a continued line. Lower
numbers here cause more lines to use the DEFAULT_INDENT number.
SOURCE_XREF_FILE
SOURCE_XREF_FILE
Default: SRC_CROS.TXT
If this is set to a file name, then that file is created in the
output directory, and contains a cross reference of all of the
functions in each source module included in the entire processing
pass.
TABLE_XREF_FILE
TABLE_XREF_FILE
Default: TBL_CROS.TXT
If this is set to a file name, then that file is created in the
output directory, and contains a cross reference of all of the
tables and indexes in each source module included in the entire
processing pass.
TABLE_XREF_INTO_SOURCE
TABLE_XREF_INTO_SOURCE
Default: YES
Options: YES, NO
Set to YES, Click! places a reference into the header of each file
which opens an data table.
VERBOSE
VERBOSE
Default: YES
Options: YES, NO
Set to YES, Click! scrolls the input and output stream in the two
windows.
Set to NO, the only indication of progress will be the progress bar
at the top of the screen.