User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cl:functions:pprint-indent [2019/09/14 05:00]
cl:functions:pprint-indent [2019/09/22 06:00] (current)
Line 1: Line 1:
 +====== Function PPRINT-INDENT ======
 +
 +====Syntax====
 +  * **pprint-indent** //​relative-to//​ //n// ''&​optional''​ //stream// → **[[CL:​Constant Variables:​nil]]**
 +
 +====Arguments and Values====
 +  * //​relative-to//​ - either **'':​block''​** or **'':​current''​**.
 +  * //n// - a //​[[CL:​Glossary:​real]]//​.
 +  * //stream// - an //​[[CL:​Glossary:​output]]//​ //​[[CL:​Glossary:​stream designator]]//​. The default is //​[[CL:​Glossary:​standard output]]//.
 +
 +====Description====
 +**pprint-indent** specifies the indentation to use in a logical block on //​[[CL:​Glossary:​stream]]//​.
 +
 +If //stream// is a //​[[CL:​Glossary:​pretty printing stream]]// and the //​[[CL:​Glossary:​value]]//​ of **[[CL:​Variables:​star-print-pretty-star|*print-pretty*]]** is //​[[CL:​Glossary:​true]]//,​ **pprint-indent** sets the indentation in the innermost dynamically enclosing logical block; otherwise, **pprint-indent** has no effect.
 +
 +//n// specifies the indentation in //​[[CL:​Glossary:​em|ems]]//​. If //​relative-to//​ is **'':​block''​**,​ the indentation is set to the horizontal position of the first character in the //​[[CL:​Glossary:​dynamically current logical block]]// plus //n// //​[[CL:​Glossary:​em|ems]]//​. If //​relative-to//​ is **'':​current''​**,​ the indentation is set to the current output position plus //n// //​[[CL:​Glossary:​em|ems]]//​. (For robustness in the face of variable-width fonts, it is advisable to use **'':​current''​** with an //n// of zero whenever possible.)
 +
 +//n// can be negative; however, the total indentation cannot be moved left of the beginning of the line or left of the end of the rightmost per-line prefix---an attempt to move beyond one of these limits is treated
 +
 +the same as an attempt to move to that limit. Changes in indentation caused by //​pprint-indent//​ do not take effect until after the next line break. In addition, in miser mode all calls to **pprint-indent** are ignored, forcing the lines corresponding to the logical block to line up under the first character in the block.
 +
 +====Examples====
 +None.
 +
 +====Side Effects====
 +None.
 +
 +====Affected By====
 +None.
 +
 +====Exceptional Situations====
 +An error is signaled if //​relative-to//​ is any //​[[CL:​Glossary:​object]]//​ other than **'':​block''​** or **'':​current''​**.
 +
 +====See Also====
 +  * {\secref\TildeI}
 +
 +====Notes====
 +None.
 +
 +\issue{PRETTY-PRINT-INTERFACE} \issue{GENERALIZE-PRETTY-PRINTER:​UNIFY}