The Visible Zorker

Would it be possible to make tab characters 8 spaces wide rather than 4 in the source code panel?

The ZIL code uses typical Lisp indentation conventions. But it assumes a tab width of 8 spaces. 4-space tabs disturb the alignment, particularly with COND where the code is supposed to be aligned directly under the condition, but often is not.

See the example of UP-CHIMNEY-FUNCTION as it currently appears, with 4-space tabs:

As text, it looks like this:

<ROUTINE UP-CHIMNEY-FUNCTION ("AUX" F)
  <COND (<NOT <SET F <FIRST? ,WINNER>>>
     <TELL "Going up empty-handed is a bad idea." CR>
     <RFALSE>)
    (<AND <OR <NOT <SET F <NEXT? .F>>>
          <NOT <NEXT? .F>>>
          <IN? ,LAMP ,WINNER>>
     <COND (<NOT <FSET? ,TRAP-DOOR ,OPENBIT>>
        <FCLEAR ,TRAP-DOOR ,TOUCHBIT>)>
     <RETURN ,KITCHEN>)
    (T
     <TELL "You can't get up there with what you're carrying." CR>
     <RFALSE>)>>

With 8-space tabs, everything looks a lot better. See how the first TELL is aligned directly under the NOT condition. And how the two NOTs in the second condition are aligned to show they are both inside the OR. The three top-level conditions (<NOT..., (<AND..., and (T are at the same level of indentation, as they should be.

<ROUTINE UP-CHIMNEY-FUNCTION ("AUX" F)
  <COND (<NOT <SET F <FIRST? ,WINNER>>>
         <TELL "Going up empty-handed is a bad idea." CR>
         <RFALSE>)
        (<AND <OR <NOT <SET F <NEXT? .F>>>
                  <NOT <NEXT? .F>>>
              <IN? ,LAMP ,WINNER>>
         <COND (<NOT <FSET? ,TRAP-DOOR ,OPENBIT>>
                <FCLEAR ,TRAP-DOOR ,TOUCHBIT>)>
         <RETURN ,KITCHEN>)
        (T
         <TELL "You can't get up there with what you're carrying." CR>
         <RFALSE>)>>
2 Likes