Project

General

Profile

TH3-Code Collapse » History » Version 5

Wil van Antwerpen, 06/01/2019 10:59 PM

1 1 Wil van Antwerpen
# Code Collapse
2 1 Wil van Antwerpen
3 1 Wil van Antwerpen
The Hammer 3.0 is based on the scintilla control and as such it wasn't too hard to add code collapse specifically for the DataFlex language.
4 1 Wil van Antwerpen
This is one of those features that you don't miss until you actually have it.
5 1 Wil van Antwerpen
6 4 Wil van Antwerpen
## How does it work?
7 4 Wil van Antwerpen
8 2 Wil van Antwerpen
You get to see a (-) symbol in front of the line of code that can be collapsed. 
9 2 Wil van Antwerpen
If you click that (-) symbol it will collapse a block of code into one line and the symbol will change into a (+) symbol.
10 1 Wil van Antwerpen
11 4 Wil van Antwerpen
## Supported collapse features
12 2 Wil van Antwerpen
Currently the following scope keywords automatically support the code collapse feature:
13 2 Wil van Antwerpen
14 1 Wil van Antwerpen
* begin / end code blocks
15 1 Wil van Antwerpen
* object / end_object
16 1 Wil van Antwerpen
* class / end_class
17 1 Wil van Antwerpen
* procedure / end_procedure
18 1 Wil van Antwerpen
* function / end_function
19 1 Wil van Antwerpen
* while / loop
20 1 Wil van Antwerpen
* case begin / case end
21 1 Wil van Antwerpen
* type / end_type
22 1 Wil van Antwerpen
* struct / end_struct
23 2 Wil van Antwerpen
* #COMMAND / #ENDCOMMAND
24 4 Wil van Antwerpen
* comments (see below)
25 1 Wil van Antwerpen
* section metatags (see below)
26 2 Wil van Antwerpen
27 2 Wil van Antwerpen
## comments
28 2 Wil van Antwerpen
29 2 Wil van Antwerpen
If you have multiple lines of comments then you can collapse those lines to one line by clicking on the (+) symbol in front of the line.
30 1 Wil van Antwerpen
31 1 Wil van Antwerpen
## section metatags
32 1 Wil van Antwerpen
33 1 Wil van Antwerpen
If you want to be able to collapse a whole bunch of code so that you can quickly hide specific parts of code then use the section metatag collapse feature.
34 1 Wil van Antwerpen
35 1 Wil van Antwerpen
It works as follows:
36 1 Wil van Antwerpen
37 1 Wil van Antwerpen
~~~
38 1 Wil van Antwerpen
  { #CodeSection YourSection }
39 1 Wil van Antwerpen
.... your code
40 1 Wil van Antwerpen
  { #CodeSection YourSection }
41 1 Wil van Antwerpen
~~~
42 1 Wil van Antwerpen
43 1 Wil van Antwerpen
This then looks as follows:
44 1 Wil van Antwerpen
45 1 Wil van Antwerpen
<insert screenshot here>
46 1 Wil van Antwerpen
47 1 Wil van Antwerpen
## compiler listfiles
48 1 Wil van Antwerpen
49 1 Wil van Antwerpen
This one is pretty useful and not one you would think of immediately.
50 1 Wil van Antwerpen
51 1 Wil van Antwerpen
If you have a .prn/.prp file then you actually have code collapse in there as well (was broken, just fixed 2019-05-17)
52 1 Wil van Antwerpen
53 1 Wil van Antwerpen
It can really be a drag having to plough through all that code. Being able to use code collapse in here does help quite a bit.
54 4 Wil van Antwerpen
55 4 Wil van Antwerpen
## Collapse options via context menu
56 4 Wil van Antwerpen
57 5 Wil van Antwerpen
If you right click then under menu item "scope blocks" there is a way to quickly collapse or expand a code collapse feature for the current text.
58 4 Wil van Antwerpen
For example you can collapse ALL comments in your file.
59 4 Wil van Antwerpen
60 4 Wil van Antwerpen
The following options can be collapsed/expanded for the full source in one go are:
61 4 Wil van Antwerpen
62 4 Wil van Antwerpen
* All scopes
63 4 Wil van Antwerpen
* Procedures
64 4 Wil van Antwerpen
* Functions
65 4 Wil van Antwerpen
* Objects
66 4 Wil van Antwerpen
* Classes
67 4 Wil van Antwerpen
* Line Comments