Difference between revisions of "IDE Window: Code Explorer Options"
m (Text replace - "Delphi>" to "syntaxhighlight>") |
|||
Line 32: | Line 32: | ||
=== Empty procedures === | === Empty procedures === | ||
Lists all procedures without code. They can contain comments and directives. For example | Lists all procedures without code. They can contain comments and directives. For example | ||
− | < | + | <syntaxhighlight> |
begin | begin | ||
{$IFDEF win32}write;{$ENDIF} | {$IFDEF win32}write;{$ENDIF} | ||
end; | end; | ||
− | </ | + | </syntaxhighlight> |
will be listed under linux. | will be listed under linux. | ||
=== Empty blocks === | === Empty blocks === | ||
Line 52: | Line 52: | ||
In the next example the ''then'' statement was accidentally deleted: | In the next example the ''then'' statement was accidentally deleted: | ||
− | < | + | <syntaxhighlight> |
for i:=0 to 10 do | for i:=0 to 10 do | ||
if i=0 then | if i=0 then | ||
writeln(''); | writeln(''); | ||
− | </ | + | </syntaxhighlight> |
=== Published properties without default === | === Published properties without default === | ||
Lists all properties without a default value. For example: | Lists all properties without a default value. For example: | ||
− | < | + | <syntaxhighlight> |
published | published | ||
property Flag: booolean read FFlag write SetFlag; | property Flag: booolean read FFlag write SetFlag; | ||
− | </ | + | </syntaxhighlight> |
Since FPC 2.2.4 such properties are treated as if they have the ''nodefault'' specifier. That means they are always saved to the lfm. | Since FPC 2.2.4 such properties are treated as if they have the ''nodefault'' specifier. That means they are always saved to the lfm. | ||
=== ToDos === | === ToDos === | ||
Line 70: | Line 70: | ||
These constants will not be listed in the unnamed category. Examples: | These constants will not be listed in the unnamed category. Examples: | ||
− | < | + | <syntaxhighlight> |
0 | 0 | ||
1 | 1 | ||
Line 77: | Line 77: | ||
#3 | #3 | ||
#$3 | #$3 | ||
− | </ | + | </syntaxhighlight> |
== Ignore constants in next functions == | == Ignore constants in next functions == | ||
Constants passed as parameters to the following functions will not be listed in the unnamed category. There are two types. For example: | Constants passed as parameters to the following functions will not be listed in the unnamed category. There are two types. For example: | ||
− | < | + | <syntaxhighlight> |
Write | Write | ||
.ParamByName | .ParamByName | ||
− | </ | + | </syntaxhighlight> |
Note the point in front of ParamByName. | Note the point in front of ParamByName. | ||
Line 91: | Line 91: | ||
Result: | Result: | ||
− | < | + | <syntaxhighlight> |
Write('A'); // 'A' will be ignored | Write('A'); // 'A' will be ignored | ||
MemStream.Write('A'); // 'A' will be listed | MemStream.Write('A'); // 'A' will be listed | ||
DataModule1.SQLQuery1.Params.ParamByName('ART_ID').AsString; // will be ignored | DataModule1.SQLQuery1.Params.ParamByName('ART_ID').AsString; // will be ignored | ||
ParamByName('ART_ID').AsString; // will be listed | ParamByName('ART_ID').AsString; // will be listed | ||
− | </ | + | </syntaxhighlight> |
Revision as of 00:49, 25 March 2012
│
Deutsch (de) │
English (en) │
The dialog is explained here: IDE Window: Code Explorer
Update
Preferred Exhibition Mode
- Category - sort all declarations into categories like constants, variables, types, procedures, ...
- Source - show all declarations as they are in the source
Refresh automatically
- Never, only manually - only when pressing the Refresh button
- When switching file in source editor - when switching to another unit
- On idle - whenever the user does not type or move the mouse
Categories
Shows the available categories. Check all that you want to see in the code explorer.
The category Code Observer exists since 0.9.27 and lists uncommon or hard to read code fragments. You can set the details in the next option page.
Code Observer
Long procedures
Lists all procedures with more lines of code than in the edit field to the right. Long procedures are hard to read by others. Use the Extract Procedure tool to split it into several procedures.
Many parameters
Lists all procedures with more parameters than in the edit field to the right.
Many nested procedures
Lists all procedures with more nested sub procedures than in the edit field to the right.
Empty procedures
Lists all procedures without code. They can contain comments and directives. For example
begin
{$IFDEF win32}write;{$ENDIF}
end;
will be listed under linux.
Empty blocks
Lists all empty blocks, like begin..end and repeat..until. Blocks containing comments are not listed. Empty blocks can be endless loops or forgotten to clean up.
Empty class sections
Lists all empty class sections like private, public, protected.
Unnamed Constants
Lists all literal constants in statements, that means constants that have no name. You can define in the text fields below what should not be listed.
Unsorted visibility
Lists all class sections, that are not sorted. For example if a private section comes behind a public section.
Unsorted members
Lists all class variables, methods and properties that are not sorted alphabetically.
Wrong indentation
Lists all places with suspicious indentation. For example:
In the next example the then statement was accidentally deleted:
for i:=0 to 10 do
if i=0 then
writeln('');
Published properties without default
Lists all properties without a default value. For example:
published
property Flag: booolean read FFlag write SetFlag;
Since FPC 2.2.4 such properties are treated as if they have the nodefault specifier. That means they are always saved to the lfm.
ToDos
Lists alls ToDos. See the ToDo list.
Ignore next unnamed constants
These constants will not be listed in the unnamed category. Examples:
0
1
'a'
'abc'
#3
#$3
Ignore constants in next functions
Constants passed as parameters to the following functions will not be listed in the unnamed category. There are two types. For example:
Write
.ParamByName
Note the point in front of ParamByName.
Result:
Write('A'); // 'A' will be ignored
MemStream.Write('A'); // 'A' will be listed
DataModule1.SQLQuery1.Params.ParamByName('ART_ID').AsString; // will be ignored
ParamByName('ART_ID').AsString; // will be listed