User Tools


====== 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}