diff --git a/package.lisp b/package.lisp index 3ca1d25..3b82ec3 100644 --- a/package.lisp +++ b/package.lisp @@ -47,6 +47,7 @@ (:export #:*pretty* #:*indent-level* + #:*indent-spaces* #:indent #:write-sheet-object #:write-sheet-part diff --git a/writer.lisp b/writer.lisp index cef3cef..a002684 100644 --- a/writer.lisp +++ b/writer.lisp @@ -10,6 +10,8 @@ "Directs whether to pretty-print using whitespace or not.") (defvar *indent-level* 0 "Directs the current amount of spaces used to indent.") +(defvar *indent-spaces* 4 + "Specifies the number of spaces to use for indentation.") ;; SHEET ::= (BLOCK*) ;; BLOCK ::= (:BLOCK SELECTOR PROPERTY*) @@ -43,7 +45,7 @@ if *PRETTY* is non-NIL.") (let ((*indent-level* (+ *indent-level* 2 (length type)))) (write-sheet-object (car selector) (cdr selector) stream))) (format stream "{") - (let ((*indent-level* (+ *indent-level* 4))) + (let ((*indent-level* (+ *indent-level* *indent-spaces*))) (dolist (block blocks) (when *pretty* (fresh-line stream)) (write-sheet-object (car block) (cdr block) stream))) @@ -55,7 +57,7 @@ if *PRETTY* is non-NIL.") (format stream "~a" (indent)) (write-sheet-object (car selector) (cdr selector) stream) (format stream "{") - (let ((*indent-level* (+ *indent-level* 4))) + (let ((*indent-level* (+ *indent-level* *indent-spaces*))) (dolist (inner body) (when *pretty* (fresh-line stream)) (write-sheet-object (car inner) (cdr inner) stream)))