]> gitweb.factorcode.org Git - factor.git/commitdiff
Pull in new literals vocab to remove bootstrap circularity
authorKeith Lazuka <klazuka@gmail.com>
Sat, 12 Sep 2009 02:19:46 +0000 (22:19 -0400)
committerKeith Lazuka <klazuka@gmail.com>
Sat, 12 Sep 2009 02:19:46 +0000 (22:19 -0400)
Merge branch 'master' into ui

14 files changed:
basis/colors/constants/factor-colors.txt
basis/help/help.factor
basis/help/html/stylesheet.css
basis/help/markup/markup.factor
basis/help/stylesheet/stylesheet.factor
basis/help/tips/tips.factor
basis/html/streams/streams.factor
basis/io/styles/styles-docs.factor
basis/io/styles/styles.factor
basis/prettyprint/stylesheet/stylesheet-docs.factor [new file with mode: 0644]
basis/prettyprint/stylesheet/stylesheet.factor
basis/prettyprint/stylesheet/summary.txt [new file with mode: 0644]
basis/ui/gadgets/panes/panes.factor
basis/vocabs/prettyprint/prettyprint.factor

index 9d7649ab3d6c2d1465718460270e6faa1a77862f..c032aae5c4f45a1469c5c145da7a14f57c30e5f2 100644 (file)
@@ -1,4 +1,5 @@
 ! Factor UI theme colors
+243 242 234            FactorLightLightTan
 227 226 219            FactorLightTan
 172 167 147            FactorDarkTan
  81  91 105            FactorLightSlateBlue
index 6e09e298f43c7f3652080738fd7b0d95703a559b..e31c705e2673882164e112a97765305bc81a699f 100644 (file)
@@ -99,19 +99,26 @@ M: word set-article-parent swap "help-parent" set-word-prop ;
 : $navigation-row ( content element label -- )
     [ prefix 1array ] dip prefix , ;
 
+: ($navigation-table) ( element -- )
+    help-path-style get table-style set [ $table ] with-scope ;
+
 : $navigation-table ( topic -- )
     [
-        [ help-path [ \ $links "Up:" $navigation-row ] unless-empty ]
         [ prev-article [ 1array \ $long-link "Prev:" $navigation-row ] when* ]
         [ next-article [ 1array \ $long-link "Next:" $navigation-row ] when* ]
-        tri
-    ] { } make [ $table ] unless-empty ;
+        bi
+    ] { } make [ ($navigation-table) ] unless-empty ;
+
+: ($navigation) ( topic -- )
+    help-path-style get [
+        [ help-path [ reverse $breadcrumbs ] unless-empty ]
+        [ $navigation-table ] bi
+    ] with-style ;
 
 : $title ( topic -- )
     title-style get [
         title-style get [
-            [ ($title) ]
-            [ help-path-style get [ $navigation-table ] with-style ] bi
+            [ ($title) ] [ ($navigation) ] bi
         ] with-nesting
     ] with-style nl ;
 
index ff657d634e4b4ad9de17e69880724e89dfb5792b..c56a19bc9a94d9edd76eaf69f2cc7c838d17b1e9 100644 (file)
@@ -1,4 +1,4 @@
-a:link { text-decoration: none; color: #00004c; }
-a:visited { text-decoration: none; color: #00004c; }
-a:active { text-decoration: none; color: #00004c; }
-a:hover { text-decoration: underline; color: #00004c; }
+a:link { text-decoration: none; color: #104e8b; }
+a:visited { text-decoration: none; color: #104e8b; }
+a:active { text-decoration: none; color: #104e8b; }
+a:hover { text-decoration: underline; color: #104e8b; }
index 6e75adc8aaaed0c1ed622bb46806badc95fc7a90..c64f315d6d394c411d3ff20e5bd2a104e016912b 100644 (file)
@@ -205,8 +205,11 @@ ALIAS: $slot $snippet
         "Vocabulary" $heading nl dup ($vocab-link)
     ] when* ;
 
+: (textual-list) ( seq quot sep -- )
+    '[ _ print-element ] swap interleave ; inline
+
 : textual-list ( seq quot -- )
-    [ ", " print-element ] swap interleave ; inline
+    ", " (textual-list) ; inline
 
 : $links ( topics -- )
     [ [ ($link) ] textual-list ] ($span) ;
@@ -214,6 +217,9 @@ ALIAS: $slot $snippet
 : $vocab-links ( vocabs -- )
     [ vocab ] map $links ;
 
+: $breadcrumbs ( topics -- )
+    [ [ ($link) ] " > " (textual-list) ] ($span) ;
+
 : $see-also ( topics -- )
     "See also" $heading $links ;
 
index 6c0b18e8e97160c7c487b08640a41c503da795af..2475fba0f6f217e7e66ad03c3cfafa5f51f67a65 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2005, 2009 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: io.styles namespaces colors colors.constants ;
+USING: colors colors.constants io.styles literals namespaces ;
 IN: help.stylesheet
 
 SYMBOL: default-span-style
@@ -30,22 +30,27 @@ H{ { font-style bold } } strong-style set-global
 SYMBOL: title-style
 H{
     { font-name "sans-serif" }
-    { font-size 18 }
+    { font-size 20 }
     { font-style bold }
     { wrap-margin 500 }
-    { foreground COLOR: FactorDarkSlateBlue }
-    { page-color COLOR: FactorLightTan }
-    { border-width 5 }
+    { foreground COLOR: gray20 }
+    { page-color COLOR: FactorLightLightTan }
+    { inset { 5 5 } }
 } title-style set-global
 
 SYMBOL: help-path-style
-H{ { font-size 10 } } help-path-style set-global
+H{
+    { font-size 10 }
+    { table-gap { 5 5 } }
+    { table-border $ transparent }
+} help-path-style set-global
 
 SYMBOL: heading-style
 H{
     { font-name "sans-serif" }
     { font-size 16 }
     { font-style bold }
+    { foreground COLOR: FactorDarkSlateBlue }
 } heading-style set-global
 
 SYMBOL: subsection-style
@@ -70,8 +75,8 @@ H{
 
 SYMBOL: code-style
 H{
-    { page-color COLOR: FactorLightTan }
-    { border-width 5 }
+    { page-color COLOR: FactorLightLightTan }
+    { inset { 5 5 } }
     { wrap-margin f }
 } code-style set-global
 
@@ -88,7 +93,7 @@ SYMBOL: warning-style
 H{
     { page-color COLOR: gray90 }
     { border-color COLOR: red }
-    { border-width 5 }
+    { inset { 5 5 } }
     { wrap-margin 500 }
 } warning-style set-global
 
@@ -96,7 +101,7 @@ SYMBOL: deprecated-style
 H{
     { page-color COLOR: gray90 }
     { border-color COLOR: red }
-    { border-width 5 }
+    { inset { 5 5 } }
     { wrap-margin 500 }
 } deprecated-style set-global
 
index 4685b6c5172f364ccea9bea9eb69f0eb4ab1c1d7..8569be0b8f900ce66a61139624916da1c2dc34ab 100644 (file)
@@ -30,7 +30,7 @@ SYMBOL: tip-of-the-day-style
 
 H{
     { page-color COLOR: lavender }
-    { border-width 5 }
+    { inset { 5 5 } }
     { wrap-margin 500 }
 } tip-of-the-day-style set-global
 
index 49a9225402d32b7fa537a984422e2c94479fb5c8..26a3d5f391bca3539c1cfa8d9fe84222bc733930 100644 (file)
@@ -99,7 +99,8 @@ M: html-span-stream dispose
 : border-css, ( border -- )
     "border: 1px solid #" % hex-color, "; " % ;
 
-: padding-css, ( padding -- ) "padding: " % # "px; " % ;
+: padding-css, ( padding -- )
+    first2 "padding: " % # "px " % # "px; " % ;
 
 CONSTANT: pre-css "white-space: pre; font-family: monospace;"
 
@@ -108,7 +109,7 @@ CONSTANT: pre-css "white-space: pre; font-family: monospace;"
         {
             { page-color bg-css, }
             { border-color border-css, }
-            { border-width padding-css, }
+            { inset padding-css, }
         } make-css
     ] [
         wrap-margin swap at
index 8fcf12aae9bb52dcf63d7e24a5a22f15586876fe..8d29cffb0466261102c249b921c8557946af5f1a 100755 (executable)
@@ -133,7 +133,7 @@ ARTICLE: "paragraph-styles" "Paragraph styles"
 "Paragraph styles for " { $link with-nesting } ":"
 { $subsection page-color }
 { $subsection border-color }
-{ $subsection border-width }
+{ $subsection inset }
 { $subsection wrap-margin }
 { $subsection presented } ;
 
@@ -243,10 +243,10 @@ HELP: border-color
     { $code "H{ { border-color T{ rgba f 1 0 0 1 } } }\n[ \"A border\" write ] with-nesting nl" }
 } ;
 
-HELP: border-width
-{ $description "Paragraph style. Pixels between edge of text and border, an integer." } 
+HELP: inset
+{ $description "Paragraph style. A pair of integers representing the number of pixels that the content should be inset from the border. The first number is the horizontal inset, and the second is the vertical inset." } 
 { $examples
-    { $code "H{ { border-width 10 } }\n[ \"Some inset text\" write ] with-nesting nl" }
+    { $code "H{ { inset { 10 10 } } }\n[ \"Some inset text\" write ] with-nesting nl" }
 } ;
 
 HELP: wrap-margin
index 2d25016919cb6ee96971d368590d886593babc29..b141d8d2f713e0299ba23db3749c919c82bf3894 100644 (file)
@@ -132,7 +132,7 @@ SYMBOL: image
 ! Paragraph styles
 SYMBOL: page-color
 SYMBOL: border-color
-SYMBOL: border-width
+SYMBOL: inset
 SYMBOL: wrap-margin
 
 ! Table styles
diff --git a/basis/prettyprint/stylesheet/stylesheet-docs.factor b/basis/prettyprint/stylesheet/stylesheet-docs.factor
new file mode 100644 (file)
index 0000000..4f7a7f2
--- /dev/null
@@ -0,0 +1,44 @@
+! Copyright (C) 2009 Your name.
+! See http://factorcode.org/license.txt for BSD license.
+USING: help.markup help.syntax kernel words ;
+IN: prettyprint.stylesheet
+
+HELP: effect-style
+{ $values
+    { "effect" "an effect" }
+    { "style" "a style assoc" }
+}
+{ $description "The styling hook for stack effects" } ;
+
+HELP: string-style
+{ $values
+    { "str" "a string" }
+    { "style" "a style assoc" }
+}
+{ $description "The styling hook for string literals" } ;
+
+HELP: vocab-style
+{ $values
+    { "vocab" "a vocabulary specifier" }
+    { "style" "a style assoc" }
+}
+{ $description "The styling hook for vocab names" } ;
+
+HELP: word-style
+{ $values
+    { "word" "a word" }
+    { "style" "a style assoc" }
+}
+{ $description "The styling hook for word names" } ;
+
+ARTICLE: "prettyprint.stylesheet" "Prettyprinter Formatted Output"
+{ $vocab-link "prettyprint.stylesheet" }
+$nl
+"Control the way that the prettyprinter formats output based on object type. These hooks form a basic \"syntax\" highlighting system."
+{ $subsection word-style }
+{ $subsection string-style } 
+{ $subsection vocab-style }
+{ $subsection effect-style }
+;
+
+ABOUT: "prettyprint.stylesheet"
index 2be959cc9be35df71c2310618505eace9abac905..a593f23d992b6c1349a51d7ba38a844bbf7a83b9 100644 (file)
@@ -1,34 +1,46 @@
-! Copyright (C) 2009 Your name.
+! Copyright (C) 2009 Keith Lazuka.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: colors.constants hashtables io.styles kernel namespaces
-words words.symbol ;
+USING: assocs colors.constants combinators
+combinators.short-circuit hashtables io.styles kernel literals
+namespaces sequences words words.symbol ;
 IN: prettyprint.stylesheet
 
-: word-style ( word -- style )
-    dup "word-style" word-prop >hashtable [
-        [
-            [ presented set ] [
-                [ parsing-word? ] [ delimiter? ] [ symbol? ] tri
-                or or [ COLOR: DarkSlateGray ] [ COLOR: black ] if
-                foreground set
-            ] bi
-        ] bind
-    ] keep ;
-
-: string-style ( obj -- style )
-    [
-        presented set
-        COLOR: LightSalmon4 foreground set
-    ] H{ } make-assoc ;
+<PRIVATE
+
+CONSTANT: dim-color COLOR: gray35
+
+{ POSTPONE: USING: POSTPONE: USE: POSTPONE: IN: }
+[
+    { { foreground $ dim-color } }
+    "word-style" set-word-prop
+] each
+
+PREDICATE: highlighted-word < word [ parsing-word? ] [ delimiter? ] bi or ;
+
+PRIVATE>
+
+GENERIC: word-style ( word -- style )
+
+M: word word-style
+    [ presented associate ]
+    [ "word-style" word-prop >hashtable ] bi assoc-union ;
+
+M: highlighted-word word-style
+    call-next-method COLOR: DarkSlateGray foreground associate
+    swap assoc-union ;
+
+<PRIVATE
+
+: colored-presentation-style ( obj color -- style )
+    [ presented associate ] [ foreground associate ] bi* assoc-union ;
+
+PRIVATE>
+
+: string-style ( str -- style )
+    COLOR: LightSalmon4 colored-presentation-style ;
 
 : vocab-style ( vocab -- style )
-    [
-        presented set
-        COLOR: cornsilk4 foreground set
-    ] H{ } make-assoc ;
+    dim-color colored-presentation-style ;
 
 : effect-style ( effect -- style )
-    [
-        presented set
-        COLOR: DarkGreen foreground set
-    ] H{ } make-assoc ;
\ No newline at end of file
+    COLOR: DarkGreen colored-presentation-style ;
diff --git a/basis/prettyprint/stylesheet/summary.txt b/basis/prettyprint/stylesheet/summary.txt
new file mode 100644 (file)
index 0000000..39a50c8
--- /dev/null
@@ -0,0 +1 @@
+prettyprinter syntax highlighting and formatted output
index 6f68c32ff0455e53a655d558d8ae6e09739c3e38..50a609b89765317d95cb6ebc01497e30c52e15b9 100644 (file)
@@ -242,11 +242,11 @@ MEMO: specified-font ( assoc -- font )
 : apply-page-color-style ( style gadget -- style gadget )
     page-color [ <solid> >>interior ] apply-style ;
 
-: apply-border-width-style ( style gadget -- style gadget )
-    border-width [ dup 2array <border> ] apply-style ;
+: apply-inset-style ( style gadget -- style gadget )
+    inset [ <border> ] apply-style ;
 
 : style-pane ( style pane -- pane )
-    apply-border-width-style
+    apply-inset-style
     apply-border-color-style
     apply-page-color-style
     apply-presentation-style
index 2813485da3c5d52320fd86a2555f979e7533856d..6b759dddde50b622096891412aea7780b6faeb81 100644 (file)
@@ -4,6 +4,7 @@ USING: accessors arrays assocs colors colors.constants fry io
 io.styles kernel make math.order namespaces parser
 prettyprint.backend prettyprint.sections prettyprint.stylesheet
 sequences sets sorting vocabs vocabs.parser ;
+FROM: io.styles => inset ;
 IN: vocabs.prettyprint
 
 : pprint-vocab ( vocab -- )
@@ -86,7 +87,10 @@ PRIVATE>
         "To avoid doing this in the future, add the following forms" print
         "at the top of the source file:" print nl
     ] with-style
-    { { page-color COLOR: FactorLightTan } }
-    [ manifest get pprint-manifest ] with-nesting
+    {
+        { page-color COLOR: FactorLightLightTan }
+        { border-color COLOR: FactorDarkTan }
+        { inset { 5 5 } }
+    } [ manifest get pprint-manifest ] with-nesting
     nl nl
 ] print-use-hook set-global
\ No newline at end of file