Rename prettyprint:break to prettyprint:line-break

release
Slava Pestov 2007-10-18 14:38:00 -04:00
parent 1d8bd74d0f
commit 1ccca6cac0
5 changed files with 24 additions and 22 deletions

View File

@ -44,10 +44,10 @@ M: word pprint*
dup parsing? [ dup parsing? [
\ POSTPONE: [ pprint-word ] pprint-prefix \ POSTPONE: [ pprint-word ] pprint-prefix
] [ ] [
dup "break-before" word-prop break dup "break-before" word-prop line-break
dup pprint-word dup pprint-word
dup ?start-group dup ?end-group dup ?start-group dup ?end-group
"break-after" word-prop break "break-after" word-prop line-break
] if ; ] if ;
M: real pprint* number>string text ; M: real pprint* number>string text ;

View File

@ -72,7 +72,7 @@ $nl
"Once the output sections have been generated, the tree of sections is traversed and intelligent decisions are made about indentation and line breaks. Finally, text is output." "Once the output sections have been generated, the tree of sections is traversed and intelligent decisions are made about indentation and line breaks. Finally, text is output."
{ $subsection section } { $subsection section }
"Adding leaf sections:" "Adding leaf sections:"
{ $subsection break } { $subsection line-break }
{ $subsection text } { $subsection text }
{ $subsection styled-text } { $subsection styled-text }
"Nesting and denesting sections:" "Nesting and denesting sections:"

View File

@ -227,7 +227,7 @@ M: mixin-class see-class*
\ MIXIN: pprint-word \ MIXIN: pprint-word
dup pprint-word <block dup pprint-word <block
dup members [ dup members [
hard break hard line-break
\ INSTANCE: pprint-word pprint-word pprint-word \ INSTANCE: pprint-word pprint-word pprint-word
] curry* each block> ; ] curry* each block> ;

View File

@ -30,10 +30,10 @@ HELP: fresh-line
{ $description "Advances the prettyprinter by one line unless the current line is empty. If the line limit is exceeded, escapes the prettyprinter by restoring a continuation captured in " { $link do-pprint } "." } ; { $description "Advances the prettyprinter by one line unless the current line is empty. If the line limit is exceeded, escapes the prettyprinter by restoring a continuation captured in " { $link do-pprint } "." } ;
HELP: soft HELP: soft
{ $description "Possible input parameter to " { $link break } "." } ; { $description "Possible input parameter to " { $link line-break } "." } ;
HELP: hard HELP: hard
{ $description "Possible input parameter to " { $link break } "." } ; { $description "Possible input parameter to " { $link line-break } "." } ;
{ soft hard } related-words { soft hard } related-words
@ -70,7 +70,7 @@ HELP: section
{ $class-description "A piece of prettyprinter output. Instances of this class are not used directly, instead one instantiates various classes which delegate to this class:" { $class-description "A piece of prettyprinter output. Instances of this class are not used directly, instead one instantiates various classes which delegate to this class:"
{ $list { $list
{ $link text } { $link text }
{ $link break } { $link line-break }
{ $link block } { $link block }
{ $link inset } { $link inset }
{ $link flow } { $link flow }
@ -123,7 +123,7 @@ HELP: pprint-section
{ $contract "Prints a section, performing wrapping and indentation using available formatting information." } { $contract "Prints a section, performing wrapping and indentation using available formatting information." }
$prettyprinting-note ; $prettyprinting-note ;
HELP: break HELP: line-break
{ $values { "type" { $link soft } " or " { $link hard } } } { $values { "type" { $link soft } " or " { $link hard } } }
{ $description "Adds a section introducing a line break to the current block. If the block is output as a " { $link short-section } ", all breaks are ignored. Otherwise, hard breaks introduce unconditional newlines, and soft breaks introduce a newline if the position is more than half of the " { $link margin } "." } { $description "Adds a section introducing a line break to the current block. If the block is output as a " { $link short-section } ", all breaks are ignored. Otherwise, hard breaks introduce unconditional newlines, and soft breaks introduce a newline if the position is more than half of the " { $link margin } "." }
$prettyprinting-note ; $prettyprinting-note ;
@ -158,11 +158,11 @@ HELP: save-end-position
HELP: pprint-sections HELP: pprint-sections
{ $values { "block" block } { "advancer" "a quotation with stack effect " { $snippet "( block -- )" } } } { $values { "block" block } { "advancer" "a quotation with stack effect " { $snippet "( block -- )" } } }
{ $description "Prints child sections of a block, ignoring any " { $link break } " sections. The " { $snippet "advancer" } " quotation is called between every pair of sections." } ; { $description "Prints child sections of a block, ignoring any " { $link line-break } " sections. The " { $snippet "advancer" } " quotation is called between every pair of sections." } ;
HELP: do-break HELP: do-break
{ $values { "break" break } } { $values { "break" line-break } }
{ $description "Prints a break section as per the policy outlined in " { $link break } "." } ; { $description "Prints a break section as per the policy outlined in " { $link line-break } "." } ;
HELP: empty-block? HELP: empty-block?
{ $values { "block" block } { "?" "a boolean" } } { $values { "block" block } { "?" "a boolean" } }

View File

@ -124,15 +124,16 @@ M: object short-section? section-fits? ;
] if ; ] if ;
! Break section ! Break section
TUPLE: break type ; TUPLE: line-break type ;
: <break> ( type -- section ) : <line-break> ( type -- section )
H{ } 0 <section> H{ } 0 <section>
{ set-break-type set-delegate } \ break construct ; { set-line-break-type set-delegate }
\ line-break construct ;
M: break short-section drop ; M: line-break short-section drop ;
M: break long-section drop ; M: line-break long-section drop ;
! Block sections ! Block sections
TUPLE: block sections ; TUPLE: block sections ;
@ -149,7 +150,8 @@ TUPLE: block sections ;
pprinter-block block-sections push ; pprinter-block block-sections push ;
: last-section ( -- section ) : last-section ( -- section )
pprinter-block block-sections [ break? not ] find-last nip ; pprinter-block block-sections
[ line-break? not ] find-last nip ;
: start-group ( -- ) : start-group ( -- )
t last-section set-section-start-group? ; t last-section set-section-start-group? ;
@ -162,13 +164,13 @@ TUPLE: block sections ;
swap short-section? and swap short-section? and
[ bl ] when ; [ bl ] when ;
: break ( type -- ) [ <break> add-section ] when* ; : line-break ( type -- ) [ <line-break> add-section ] when* ;
M: block section-fits? ( section -- ? ) M: block section-fits? ( section -- ? )
line-limit? [ drop t ] [ delegate section-fits? ] if ; line-limit? [ drop t ] [ delegate section-fits? ] if ;
: pprint-sections ( block advancer -- ) : pprint-sections ( block advancer -- )
swap block-sections [ break? not ] subset swap block-sections [ line-break? not ] subset
unclip pprint-section [ unclip pprint-section [
dup rot call pprint-section dup rot call pprint-section
] curry* each ; inline ] curry* each ; inline
@ -177,7 +179,7 @@ M: block short-section ( block -- )
[ advance ] pprint-sections ; [ advance ] pprint-sections ;
: do-break ( break -- ) : do-break ( break -- )
dup break-type hard eq? dup line-break-type hard eq?
over section-end last-newline get - margin get 2/ > or over section-end last-newline get - margin get 2/ > or
[ <fresh-line ] [ drop ] if ; [ <fresh-line ] [ drop ] if ;
@ -284,7 +286,7 @@ M: colon unindent-first-line? drop t ;
! Long section layout algorithm ! Long section layout algorithm
: chop-break ( seq -- seq ) : chop-break ( seq -- seq )
dup peek break? [ 1 head-slice* chop-break ] when ; dup peek line-break? [ 1 head-slice* chop-break ] when ;
SYMBOL: prev SYMBOL: prev
SYMBOL: next SYMBOL: next
@ -322,7 +324,7 @@ M: block long-section ( block -- )
[ [
block-sections chop-break group-flow [ block-sections chop-break group-flow [
dup ?break-group [ dup ?break-group [
dup break? [ dup line-break? [
do-break do-break
] [ ] [
dup advance pprint-section dup advance pprint-section