Configuring the Editor

The editor in non-GUI versions of Dyalog APL can be considered to have 5 separate functional columns. Below is the contents of the editor window, which shows the namespace ns, which has two traditional-style functions and one dfn. The statement 5 ⎕STOP 'ns.fn1' has been run too:

[0]         :Namespace ns
[1]  [0]   ├    ∇ r←fn1 a
[2]  [1]   ├      :If a=1
[3]  [2]   │          r←1
[4]  [3]   │      :Else
[5]  [4]   ├          :If today≡'Friday'
[6]  [5]  ○│              r←2
[7]  [6]   ├          :EndIf
[8]  [7]   ├      :EndIf
[9]  [8]   ├    ∇
[10]
[11] [0]        dfn←{⍺+⍵}
[12]
[13] [0]   ├    ∇ r←a fn2 w
[14] [1]   │      r←a+w
[15] [2]   ├    ∇
[16]        :EndNamespace

This is formed of 5 separate columns:

┌────┬───┬───┬──┬────────────────────────────┐
│C1  │C2 │C3 │C4│C5                          │
├────┼───┼───┼──┼────────────────────────────┤
│[0] │   │   │  │:Namespace ns               │
│[1] │[0]│   │├ │    ∇ r←fn1 a               │
│[2] │[1]│   │├ │      :If a=1               │
│[3] │[2]│   ││ │          r←1               │
│[4] │[3]│   ││ │      :Else                 │
│[5] │[4]│   │├ │          :If today≡'Friday'│
│[6] │[5]│  ○││ │              r←2           │
│[7] │[6]│   │├ │          :EndIf            │
│[8] │[7]│   │├ │      :EndIf                │
│[9] │[8]│   │├ │    ∇                       │
│[10]│   │   │  │                            │
│[11]│[0]│   │  │    dfn←{⍺+⍵}               │
│[12]│   │   │  │                            │
│[13]│[0]│   │├ │    ∇ r←a fn2 w             │
│[14]│[1]│   ││ │      r←a+w                 │
│[15]│[2]│   │├ │    ∇                       │
│[16]│   │   │  │:EndNamespace               │
└────┴───┴───┴──┴────────────────────────────┘
Functional Column Value (see below) Purpose
C1 4 Line numbers for entire object
C2 64 Line numbers for functions etc. within scripted namespaces
C3 2 Trace/Stop points
C4 8 Control Structure Outlining
C5 16 Text (or content)This value is ignored; this column is always present

It is possible to control at startup time which of these columns are visible. By default, for all types of object, only the text column is visible; this can be overridden on a per-object basis by setting one or more of the EDITOR_COLUMNS_ variables listed in Table E5. The value of these variables is the sum of the values for each of the columns which are desired.

Examples

EDITOR_COLUMNS_NAMESPACE=94 shows all columns (the first example in this section)

Various values for EDITOR_COLUMNS_FUNCTION

Value Editor window appearance
0
fn1 a
:If a=1
    b←2
:EndIf
22
[0] fn1 a
[1] :If a=1
[2] ○   b←2
[3] :EndIf
26
   fn1 a
 ├ :If a=1
○│     b←2
 ├ :EndIf
40
[0]    fn1 a
[1]  ├ :If a=1
[2] ○│     b←2
[3]  ├ :EndIf