Merge branch 'master' of git://factorcode.org/git/factor
commit
535e48dcb3
|
@ -5,7 +5,7 @@ IN: bootstrap.help
|
||||||
|
|
||||||
: load-help ( -- )
|
: load-help ( -- )
|
||||||
"help.lint" require
|
"help.lint" require
|
||||||
"tools.vocabs.browser" require
|
"help.vocabs" require
|
||||||
"alien.syntax" require
|
"alien.syntax" require
|
||||||
"compiler" require
|
"compiler" require
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@ IN: bootstrap.tools
|
||||||
"tools.time"
|
"tools.time"
|
||||||
"tools.threads"
|
"tools.threads"
|
||||||
"tools.vocabs"
|
"tools.vocabs"
|
||||||
"tools.vocabs.browser"
|
|
||||||
"tools.vocabs.monitor"
|
"tools.vocabs.monitor"
|
||||||
"editors"
|
"editors"
|
||||||
} [ require ] each
|
} [ require ] each
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
IN: tools.apropos
|
IN: help.apropos
|
||||||
USING: help.markup help.syntax strings ;
|
USING: help.markup help.syntax strings help.tips ;
|
||||||
|
|
||||||
HELP: apropos
|
HELP: apropos
|
||||||
{ $values { "str" string } }
|
{ $values { "str" string } }
|
||||||
{ $description "Lists all words, vocabularies and help articles whose name contains a subsequence equal to " { $snippet "str" } ". Results are ranked using a simple distance algorithm." } ;
|
{ $description "Lists all words, vocabularies and help articles whose name contains a subsequence equal to " { $snippet "str" } ". Results are ranked using a simple distance algorithm." } ;
|
||||||
|
|
||||||
|
TIP: "Use " { $link apropos } " to search for words, vocabularies and help articles." ;
|
|
@ -0,0 +1,4 @@
|
||||||
|
IN: help.apropos.tests
|
||||||
|
USING: help.apropos tools.test ;
|
||||||
|
|
||||||
|
[ ] [ "swp" apropos ] unit-test
|
|
@ -2,9 +2,9 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays assocs fry help.markup help.topics io
|
USING: accessors arrays assocs fry help.markup help.topics io
|
||||||
kernel make math math.parser namespaces sequences sorting
|
kernel make math math.parser namespaces sequences sorting
|
||||||
summary tools.completion tools.vocabs tools.vocabs.browser
|
summary tools.completion tools.vocabs help.vocabs
|
||||||
vocabs words unicode.case help ;
|
vocabs words unicode.case help ;
|
||||||
IN: tools.apropos
|
IN: help.apropos
|
||||||
|
|
||||||
: $completions ( seq -- )
|
: $completions ( seq -- )
|
||||||
dup [ word? ] all? [ words-table ] [
|
dup [ word? ] all? [ words-table ] [
|
||||||
|
@ -67,5 +67,9 @@ M: apropos article-name article-title ;
|
||||||
M: apropos article-content
|
M: apropos article-content
|
||||||
search>> 1array \ $apropos prefix ;
|
search>> 1array \ $apropos prefix ;
|
||||||
|
|
||||||
|
M: apropos >link ;
|
||||||
|
|
||||||
|
INSTANCE: apropos topic
|
||||||
|
|
||||||
: apropos ( str -- )
|
: apropos ( str -- )
|
||||||
<apropos> print-topic ;
|
<apropos> print-topic ;
|
|
@ -4,7 +4,7 @@ prettyprint.backend prettyprint.custom kernel.private io generic
|
||||||
math system strings sbufs vectors byte-arrays quotations
|
math system strings sbufs vectors byte-arrays quotations
|
||||||
io.streams.byte-array classes.builtin parser lexer
|
io.streams.byte-array classes.builtin parser lexer
|
||||||
classes.predicate classes.union classes.intersection
|
classes.predicate classes.union classes.intersection
|
||||||
classes.singleton classes.tuple tools.vocabs.browser math.parser
|
classes.singleton classes.tuple help.vocabs math.parser
|
||||||
accessors ;
|
accessors ;
|
||||||
IN: help.handbook
|
IN: help.handbook
|
||||||
|
|
||||||
|
@ -278,11 +278,7 @@ ARTICLE: "handbook-library-reference" "Library reference"
|
||||||
"This index only includes articles from loaded vocabularies. To explore more vocabularies, see " { $link "vocab-index" } "."
|
"This index only includes articles from loaded vocabularies. To explore more vocabularies, see " { $link "vocab-index" } "."
|
||||||
{ $index [ "handbook" orphan-articles remove ] } ;
|
{ $index [ "handbook" orphan-articles remove ] } ;
|
||||||
|
|
||||||
ARTICLE: "handbook" "Factor documentation"
|
ARTICLE: "handbook" "Factor handbook"
|
||||||
"Welcome to Factor."
|
|
||||||
$nl
|
|
||||||
"Explore the code base:"
|
|
||||||
{ $subsection "vocab-index" }
|
|
||||||
"Learn the language:"
|
"Learn the language:"
|
||||||
{ $subsection "cookbook" }
|
{ $subsection "cookbook" }
|
||||||
{ $subsection "first-program" }
|
{ $subsection "first-program" }
|
||||||
|
@ -290,11 +286,13 @@ $nl
|
||||||
{ $subsection "handbook-environment-reference" }
|
{ $subsection "handbook-environment-reference" }
|
||||||
{ $subsection "ui" }
|
{ $subsection "ui" }
|
||||||
{ $subsection "handbook-library-reference" }
|
{ $subsection "handbook-library-reference" }
|
||||||
"The below indices only include articles from loaded vocabularies. To explore more vocabularies, see " { $link "vocab-index" } "."
|
"Explore loaded libraries:"
|
||||||
{ $subsection "article-index" }
|
{ $subsection "article-index" }
|
||||||
{ $subsection "primitive-index" }
|
{ $subsection "primitive-index" }
|
||||||
{ $subsection "error-index" }
|
{ $subsection "error-index" }
|
||||||
{ $subsection "type-index" }
|
{ $subsection "type-index" }
|
||||||
{ $subsection "class-index" } ;
|
{ $subsection "class-index" }
|
||||||
|
"Explore the code base:"
|
||||||
|
{ $subsection "vocab-index" } ;
|
||||||
|
|
||||||
ABOUT: "handbook"
|
ABOUT: "handbook"
|
||||||
|
|
|
@ -127,6 +127,7 @@ ARTICLE: "help" "Help system"
|
||||||
{ $subsection "browsing-help" }
|
{ $subsection "browsing-help" }
|
||||||
{ $subsection "writing-help" }
|
{ $subsection "writing-help" }
|
||||||
{ $subsection "help.lint" }
|
{ $subsection "help.lint" }
|
||||||
|
{ $subsection "tips-of-the-day" }
|
||||||
{ $subsection "help-impl" } ;
|
{ $subsection "help-impl" } ;
|
||||||
|
|
||||||
IN: help
|
IN: help
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Slava Pestov
|
|
@ -0,0 +1,19 @@
|
||||||
|
IN: help.home
|
||||||
|
USING: help.markup help.syntax ;
|
||||||
|
|
||||||
|
ARTICLE: "help.home" "Factor documentation"
|
||||||
|
{ $heading "Starting points" }
|
||||||
|
{ $list
|
||||||
|
{ $link "ui-listener" }
|
||||||
|
{ $link "handbook" }
|
||||||
|
{ $link "vocab-index" }
|
||||||
|
}
|
||||||
|
{ $heading "Recently visited" }
|
||||||
|
{ $table
|
||||||
|
{ "Words" "Articles" "Vocabs" }
|
||||||
|
{ { $recent recent-words } { $recent recent-articles } { $recent recent-vocabs } }
|
||||||
|
} print-element
|
||||||
|
{ $heading "Recent searches" }
|
||||||
|
{ $recent-searches } ;
|
||||||
|
|
||||||
|
ABOUT: "help.home"
|
|
@ -0,0 +1,40 @@
|
||||||
|
! Copyright (C) 2009 Slava Pestov.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: arrays compiler.units fry hashtables help.topics io
|
||||||
|
kernel math namespaces sequences sets help.vocabs
|
||||||
|
help.apropos vocabs help.markup ;
|
||||||
|
IN: help.home
|
||||||
|
|
||||||
|
SYMBOLS: recent-words recent-articles recent-vocabs recent-searches ;
|
||||||
|
|
||||||
|
CONSTANT: recent-count 10
|
||||||
|
|
||||||
|
{ recent-words recent-articles recent-vocabs recent-searches }
|
||||||
|
[ [ V{ } clone ] initialize ] each
|
||||||
|
|
||||||
|
GENERIC: add-recent-where ( obj -- obj symbol )
|
||||||
|
|
||||||
|
M: link add-recent-where recent-articles ;
|
||||||
|
M: word-link add-recent-where recent-words ;
|
||||||
|
M: vocab-spec add-recent-where recent-vocabs ;
|
||||||
|
M: apropos add-recent-where recent-searches ;
|
||||||
|
M: object add-recent-where f ;
|
||||||
|
|
||||||
|
: $recent ( element -- )
|
||||||
|
first get [ nl ] [ 1array $pretty-link ] interleave ;
|
||||||
|
|
||||||
|
: $recent-searches ( element -- )
|
||||||
|
drop recent-searches get [ nl ] [ ($link) ] interleave ;
|
||||||
|
|
||||||
|
: redisplay-recent-page ( -- )
|
||||||
|
"help.home" >link dup associate
|
||||||
|
notify-definition-observers ;
|
||||||
|
|
||||||
|
: expire ( seq -- )
|
||||||
|
[ length recent-count - [ 0 > ] keep ] keep
|
||||||
|
'[ 0 _ _ delete-slice ] when ;
|
||||||
|
|
||||||
|
: add-recent ( obj -- )
|
||||||
|
add-recent-where dup
|
||||||
|
[ get [ adjoin ] [ expire ] bi ] [ 2drop ] if
|
||||||
|
redisplay-recent-page ;
|
|
@ -3,7 +3,7 @@
|
||||||
USING: io.encodings.utf8 io.encodings.ascii io.encodings.binary
|
USING: io.encodings.utf8 io.encodings.ascii io.encodings.binary
|
||||||
io.files io.files.temp io.directories html.streams help kernel
|
io.files io.files.temp io.directories html.streams help kernel
|
||||||
assocs sequences make words accessors arrays help.topics vocabs
|
assocs sequences make words accessors arrays help.topics vocabs
|
||||||
tools.vocabs tools.vocabs.browser namespaces prettyprint io
|
tools.vocabs help.vocabs namespaces prettyprint io
|
||||||
vocabs.loader serialize fry memoize unicode.case math.order
|
vocabs.loader serialize fry memoize unicode.case math.order
|
||||||
sorting debugger html xml.syntax xml.writer ;
|
sorting debugger html xml.syntax xml.writer ;
|
||||||
IN: help.html
|
IN: help.html
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Slava Pestov
|
|
@ -0,0 +1,27 @@
|
||||||
|
IN: help.tips
|
||||||
|
USING: help.markup help.syntax debugger ;
|
||||||
|
|
||||||
|
TIP: "To look at the most recent error, run " { $link :error } ". To look at the most recent error's callstack, run " { $link :c } "." ;
|
||||||
|
|
||||||
|
TIP: "Learn to use " { $link "dataflow-combinators" } "." ;
|
||||||
|
|
||||||
|
TIP: "Learn to use " { $link "editor" } " to be able to jump to the source code for word definitions from the listener." ;
|
||||||
|
|
||||||
|
TIP: "Check out " { $url "http://concatenative.org/wiki/view/Factor/FAQ" } " to get answers to frequently-asked questions." ;
|
||||||
|
|
||||||
|
TIP: "Drop by the " { $snippet "#concatenative" } " IRC channel on " { $snippet "irc.freenode.net" } " some time." ;
|
||||||
|
|
||||||
|
TIP: "You can write documentation for your own code using the " { $link "help" } "." ;
|
||||||
|
|
||||||
|
TIP: "You can write graphical applications using the " { $link "ui" } "." ;
|
||||||
|
|
||||||
|
ARTICLE: "all-tips-of-the-day" "All tips of the day"
|
||||||
|
{ $tips-of-the-day } ;
|
||||||
|
|
||||||
|
ARTICLE: "tips-of-the-day" "Tips of the day"
|
||||||
|
"The " { $vocab-link "help.tips" } " vocabulary provides a facility for displaying tips of the day in the " { $link "ui-listener" } ". Tips are defined with a parsing word:"
|
||||||
|
{ $subsection POSTPONE: TIP: }
|
||||||
|
"All tips defined so far:"
|
||||||
|
{ $subsection "all-tips-of-the-day" } ;
|
||||||
|
|
||||||
|
ABOUT: "tips-of-the-day"
|
|
@ -0,0 +1,38 @@
|
||||||
|
! Copyright (C) 2009 Slava Pestov.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: parser arrays namespaces sequences random help.markup kernel io
|
||||||
|
io.styles colors.constants ;
|
||||||
|
IN: help.tips
|
||||||
|
|
||||||
|
SYMBOL: tips
|
||||||
|
|
||||||
|
tips [ V{ } clone ] initialize
|
||||||
|
|
||||||
|
SYNTAX: TIP: parse-definition >array tips get push ;
|
||||||
|
|
||||||
|
: a-tip ( -- tip ) tips get random ;
|
||||||
|
|
||||||
|
SYMBOL: tip-of-the-day-style
|
||||||
|
|
||||||
|
H{
|
||||||
|
{ page-color COLOR: lavender }
|
||||||
|
{ border-width 5 }
|
||||||
|
{ wrap-margin 500 }
|
||||||
|
} tip-of-the-day-style set-global
|
||||||
|
|
||||||
|
: $tip-of-the-day ( element -- )
|
||||||
|
drop
|
||||||
|
[
|
||||||
|
tip-of-the-day-style get
|
||||||
|
[
|
||||||
|
last-element off
|
||||||
|
"Tip of the day" $heading a-tip print-element nl
|
||||||
|
"— " print-element "all-tips-of-the-day" ($link)
|
||||||
|
]
|
||||||
|
with-nesting
|
||||||
|
] ($heading) ;
|
||||||
|
|
||||||
|
: tip-of-the-day. ( -- ) { $tip-of-the-day } print-content nl ;
|
||||||
|
|
||||||
|
: $tips-of-the-day ( element -- )
|
||||||
|
drop tips get [ nl nl ] [ print-element ] interleave ;
|
|
@ -1,5 +1,5 @@
|
||||||
USING: help.markup help.syntax io strings ;
|
USING: help.markup help.syntax io strings ;
|
||||||
IN: tools.vocabs.browser
|
IN: help.vocabs
|
||||||
|
|
||||||
ARTICLE: "vocab-tags" "Vocabulary tags"
|
ARTICLE: "vocab-tags" "Vocabulary tags"
|
||||||
{ $all-tags } ;
|
{ $all-tags } ;
|
|
@ -0,0 +1,5 @@
|
||||||
|
IN: help.vocabs.tests
|
||||||
|
USING: help.vocabs tools.test help.markup help vocabs ;
|
||||||
|
|
||||||
|
[ ] [ { $vocab "scratchpad" } print-content ] unit-test
|
||||||
|
[ ] [ "classes" vocab print-topic ] unit-test
|
|
@ -6,17 +6,16 @@ classes.singleton classes.tuple classes.union combinators
|
||||||
definitions effects fry generic help help.markup help.stylesheet
|
definitions effects fry generic help help.markup help.stylesheet
|
||||||
help.topics io io.files io.pathnames io.styles kernel macros
|
help.topics io io.files io.pathnames io.styles kernel macros
|
||||||
make namespaces prettyprint sequences sets sorting summary
|
make namespaces prettyprint sequences sets sorting summary
|
||||||
tools.vocabs vocabs vocabs.loader words words.symbol
|
tools.vocabs vocabs vocabs.loader words words.symbol definitions.icons ;
|
||||||
combinators.smart definitions.icons ;
|
IN: help.vocabs
|
||||||
IN: tools.vocabs.browser
|
|
||||||
|
: $pretty-link ( element -- )
|
||||||
|
[ first definition-icon 1array $image " " print-element ]
|
||||||
|
[ $definition-link ]
|
||||||
|
bi ;
|
||||||
|
|
||||||
: <$pretty-link> ( definition -- element )
|
: <$pretty-link> ( definition -- element )
|
||||||
[
|
1array \ $pretty-link prefix ;
|
||||||
[ definition-icon 1array \ $image prefix ]
|
|
||||||
[ drop " " ]
|
|
||||||
[ 1array \ $definition-link prefix ]
|
|
||||||
tri
|
|
||||||
] output>array ;
|
|
||||||
|
|
||||||
: vocab-row ( vocab -- row )
|
: vocab-row ( vocab -- row )
|
||||||
[ <$pretty-link> ] [ vocab-summary ] bi 2array ;
|
[ <$pretty-link> ] [ vocab-summary ] bi 2array ;
|
|
@ -1,4 +0,0 @@
|
||||||
IN: tools.apropos.tests
|
|
||||||
USING: tools.apropos tools.test ;
|
|
||||||
|
|
||||||
[ ] [ "swp" apropos ] unit-test
|
|
|
@ -1,5 +0,0 @@
|
||||||
IN: tools.vocabs.browser.tests
|
|
||||||
USING: tools.vocabs.browser tools.test help.markup help vocabs ;
|
|
||||||
|
|
||||||
[ ] [ { $vocab "scratchpad" } print-content ] unit-test
|
|
||||||
[ ] [ "classes" vocab print-topic ] unit-test
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: documents help.markup help.syntax ui.gadgets
|
USING: documents help.markup help.syntax ui.gadgets
|
||||||
ui.gadgets.scrollers models strings ui.commands
|
ui.gadgets.scrollers models strings ui.commands
|
||||||
ui.text colors fonts ;
|
ui.text colors fonts help.tips ;
|
||||||
IN: ui.gadgets.editors
|
IN: ui.gadgets.editors
|
||||||
|
|
||||||
HELP: editor
|
HELP: editor
|
||||||
|
@ -109,4 +109,8 @@ ARTICLE: "ui.gadgets.editors" "Editor gadgets"
|
||||||
"Editors edit " { $emphasis "documents" } ":"
|
"Editors edit " { $emphasis "documents" } ":"
|
||||||
{ $subsection "documents" } ;
|
{ $subsection "documents" } ;
|
||||||
|
|
||||||
|
TIP: "Editor gadgets support undo and redo; press " { $command editor "editing" com-undo } " and " { $command editor "editing" com-redo } "." ;
|
||||||
|
|
||||||
|
TIP: "Learn the keyboard shortcuts used in " { $link "ui.gadgets.editors" } "." ;
|
||||||
|
|
||||||
ABOUT: "ui.gadgets.editors"
|
ABOUT: "ui.gadgets.editors"
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
! Copyright (C) 2006, 2009 Slava Pestov.
|
! Copyright (C) 2006, 2009 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: debugger help help.topics help.crossref kernel models compiler.units
|
USING: debugger help help.topics help.crossref help.home kernel
|
||||||
assocs words vocabs accessors fry combinators.short-circuit
|
models compiler.units assocs words vocabs accessors fry
|
||||||
sequences models models.history tools.apropos combinators
|
combinators.short-circuit namespaces sequences models
|
||||||
ui.commands ui.gadgets ui.gadgets.panes ui.gadgets.scrollers
|
models.history help.apropos combinators ui.commands ui.gadgets
|
||||||
ui.gadgets.tracks ui.gestures ui.gadgets.buttons ui.gadgets.packs
|
ui.gadgets.panes ui.gadgets.scrollers ui.gadgets.tracks
|
||||||
|
ui.gestures ui.gadgets.buttons ui.gadgets.packs
|
||||||
ui.gadgets.editors ui.gadgets.labels ui.gadgets.status-bar
|
ui.gadgets.editors ui.gadgets.labels ui.gadgets.status-bar
|
||||||
ui.gadgets.glass ui.gadgets.borders ui.tools.common
|
ui.gadgets.glass ui.gadgets.borders ui.tools.common
|
||||||
ui.tools.browser.popups ui ;
|
ui.tools.browser.popups ui ;
|
||||||
|
@ -15,8 +16,8 @@ TUPLE: browser-gadget < tool pane scroller search-field popup ;
|
||||||
{ 650 400 } browser-gadget set-tool-dim
|
{ 650 400 } browser-gadget set-tool-dim
|
||||||
|
|
||||||
: show-help ( link browser-gadget -- )
|
: show-help ( link browser-gadget -- )
|
||||||
model>> dup add-history
|
[ >link ] [ model>> ] bi*
|
||||||
[ >link ] dip set-model ;
|
[ [ add-recent ] [ add-history ] bi* ] [ set-model ] 2bi ;
|
||||||
|
|
||||||
: <help-pane> ( browser-gadget -- gadget )
|
: <help-pane> ( browser-gadget -- gadget )
|
||||||
model>> [ '[ _ print-topic ] try ] <pane-control> ;
|
model>> [ '[ _ print-topic ] try ] <pane-control> ;
|
||||||
|
@ -96,7 +97,7 @@ M: browser-gadget focusable-child* search-field>> ;
|
||||||
|
|
||||||
: com-forward ( browser -- ) model>> go-forward ;
|
: com-forward ( browser -- ) model>> go-forward ;
|
||||||
|
|
||||||
: com-documentation ( browser -- ) "handbook" swap show-help ;
|
: com-documentation ( browser -- ) "help.home" swap show-help ;
|
||||||
|
|
||||||
: browser-help ( -- ) "ui-browser" com-browse ;
|
: browser-help ( -- ) "ui-browser" com-browse ;
|
||||||
|
|
||||||
|
@ -113,7 +114,7 @@ browser-gadget "toolbar" f {
|
||||||
over [ show-help ] [ 2drop ] if ;
|
over [ show-help ] [ 2drop ] if ;
|
||||||
|
|
||||||
: navigate ( browser quot -- )
|
: navigate ( browser quot -- )
|
||||||
'[ control-value @ ] keep ?show-help ;
|
'[ control-value @ ] keep ?show-help ; inline
|
||||||
|
|
||||||
: com-up ( browser -- ) [ article-parent ] navigate ;
|
: com-up ( browser -- ) [ article-parent ] navigate ;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
USING: help.markup help.syntax ;
|
USING: help.markup help.syntax help.tips ;
|
||||||
IN: ui.tools.deploy
|
IN: ui.tools.deploy
|
||||||
|
|
||||||
HELP: deploy-tool
|
HELP: deploy-tool
|
||||||
|
@ -14,4 +14,6 @@ $nl
|
||||||
"Alternatively, right-click on a vocabulary presentation in the UI and choose " { $strong "Deploy tool" } " from the resulting popup menu."
|
"Alternatively, right-click on a vocabulary presentation in the UI and choose " { $strong "Deploy tool" } " from the resulting popup menu."
|
||||||
{ $see-also "tools.deploy" } ;
|
{ $see-also "tools.deploy" } ;
|
||||||
|
|
||||||
|
TIP: "Generate stand-alone applications from vocabularies with the " { $link "ui.tools.deploy" } "." ;
|
||||||
|
|
||||||
ABOUT: "ui.tools.deploy"
|
ABOUT: "ui.tools.deploy"
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
USING: accessors arrays assocs calendar colors colors.constants
|
USING: accessors arrays assocs calendar colors colors.constants
|
||||||
documents documents.elements fry kernel words sets splitting math
|
documents documents.elements fry kernel words sets splitting math
|
||||||
math.vectors models.delay models.arrow combinators.short-circuit
|
math.vectors models.delay models.arrow combinators.short-circuit
|
||||||
parser present sequences tools.completion tools.vocabs.browser generic
|
parser present sequences tools.completion help.vocabs generic
|
||||||
generic.standard.engines.tuple fonts definitions.icons ui.images
|
generic.standard.engines.tuple fonts definitions.icons ui.images
|
||||||
ui.commands ui.operations ui.gadgets ui.gadgets.editors
|
ui.commands ui.operations ui.gadgets ui.gadgets.editors
|
||||||
ui.gadgets.glass ui.gadgets.scrollers ui.gadgets.tables
|
ui.gadgets.glass ui.gadgets.scrollers ui.gadgets.tables
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
USING: help.markup help.syntax ui.commands ui.operations
|
USING: help.markup help.syntax ui.commands ui.operations
|
||||||
ui.gadgets.editors ui.gadgets.panes listener io words ;
|
ui.gadgets.editors ui.gadgets.panes listener io words
|
||||||
|
ui.tools.listener.completion ui.tools.common help.tips
|
||||||
|
tools.vocabs vocabs ;
|
||||||
IN: ui.tools.listener
|
IN: ui.tools.listener
|
||||||
|
|
||||||
HELP: interactor
|
HELP: interactor
|
||||||
|
@ -21,11 +23,27 @@ ARTICLE: "ui-listener" "UI listener"
|
||||||
{ $operations \ word }
|
{ $operations \ word }
|
||||||
{ $heading "Vocabulary commands" }
|
{ $heading "Vocabulary commands" }
|
||||||
"These words operate on the vocabulary at the cursor."
|
"These words operate on the vocabulary at the cursor."
|
||||||
{ $operations \ word }
|
{ $operations T{ vocab-link f "kernel" } }
|
||||||
{ $command-map interactor "quotation" }
|
{ $command-map interactor "quotation" }
|
||||||
{ $heading "Editing commands" }
|
{ $heading "Editing commands" }
|
||||||
"The text editing commands are standard; see " { $link "gadgets-editors-commands" } "."
|
"The text editing commands are standard; see " { $link "gadgets-editors-commands" } "."
|
||||||
{ $heading "Implementation" }
|
{ $heading "Implementation" }
|
||||||
"Listeners are instances of " { $link listener-gadget } ". The listener consists of an output area (instance of " { $link pane } ") and an input area (instance of " { $link interactor } "). Clickable presentations can also be printed to the listener; see " { $link "ui-presentations" } "." ;
|
"Listeners are instances of " { $link listener-gadget } ". The listener consists of an output area (instance of " { $link pane } ") and an input area (instance of " { $link interactor } "). Clickable presentations can also be printed to the listener; see " { $link "ui-presentations" } "." ;
|
||||||
|
|
||||||
|
TIP: "You can read documentation by pressing F1." ;
|
||||||
|
|
||||||
|
TIP: "The listener tool remembers previous lines of input. Press " { $command interactor "completion" recall-previous } " and " { $command interactor "completion" recall-next } " to cycle through them." ;
|
||||||
|
|
||||||
|
TIP: "When you mouse over certain objects, a block border will appear. Left-clicking on such an object will perform the default operation. Right-clicking will show a menu with all operations." ;
|
||||||
|
|
||||||
|
TIP: "The status bar displays stack effects of recognized words as they are being typed in." ;
|
||||||
|
|
||||||
|
TIP: "Press " { $command interactor "completion" code-completion-popup } " to complete word, vocabulary and Unicode character names. The latter two features become available if the cursor is after a " { $link POSTPONE: USE: } ", " { $link POSTPONE: USING: } " or " { $link POSTPONE: CHAR: } "." ;
|
||||||
|
|
||||||
|
TIP: "If a word's vocabulary is loaded, but not in the search path, you can use restarts to add the vocabulary to the search path. Auto-use mode (" { $command listener-gadget "toolbar" com-auto-use } ") invokes restarts automatically if there is only one restart." ;
|
||||||
|
|
||||||
|
TIP: "Scroll the listener from the keyboard by pressing " { $command listener-gadget "scrolling" com-page-up } " and " { $command listener-gadget "scrolling" com-page-down } "." ;
|
||||||
|
|
||||||
|
TIP: "Press " { $command tool "common" refresh-all } " or run " { $link refresh-all } " to reload changed source files from disk. " ;
|
||||||
|
|
||||||
ABOUT: "ui-listener"
|
ABOUT: "ui-listener"
|
|
@ -2,12 +2,13 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays assocs calendar combinators locals
|
USING: accessors arrays assocs calendar combinators locals
|
||||||
colors.constants combinators.short-circuit compiler.units
|
colors.constants combinators.short-circuit compiler.units
|
||||||
concurrency.flags concurrency.mailboxes continuations destructors
|
help.tips concurrency.flags concurrency.mailboxes continuations
|
||||||
documents documents.elements fry hashtables help help.markup io
|
destructors documents documents.elements fry hashtables help
|
||||||
io.styles kernel lexer listener math models models.delay models.arrow
|
help.markup io io.styles kernel lexer listener math models
|
||||||
namespaces parser prettyprint quotations sequences strings threads
|
models.delay models.arrow namespaces parser prettyprint quotations
|
||||||
tools.vocabs vocabs vocabs.loader vocabs.parser words debugger ui ui.commands
|
sequences strings threads tools.vocabs vocabs vocabs.loader
|
||||||
ui.pens.solid ui.gadgets ui.gadgets.glass ui.gadgets.buttons ui.gadgets.editors
|
vocabs.parser words debugger ui ui.commands ui.pens.solid ui.gadgets
|
||||||
|
ui.gadgets.glass ui.gadgets.buttons ui.gadgets.editors
|
||||||
ui.gadgets.labeled ui.gadgets.panes ui.gadgets.scrollers
|
ui.gadgets.labeled ui.gadgets.panes ui.gadgets.scrollers
|
||||||
ui.gadgets.status-bar ui.gadgets.tracks ui.gadgets.borders ui.gestures
|
ui.gadgets.status-bar ui.gadgets.tracks ui.gadgets.borders ui.gestures
|
||||||
ui.operations ui.tools.browser ui.tools.common ui.tools.debugger
|
ui.operations ui.tools.browser ui.tools.common ui.tools.debugger
|
||||||
|
@ -354,16 +355,11 @@ interactor "completion" f {
|
||||||
{ T{ key-down f { C+ } "r" } history-completion-popup }
|
{ T{ key-down f { C+ } "r" } history-completion-popup }
|
||||||
} define-command-map
|
} define-command-map
|
||||||
|
|
||||||
: welcome. ( -- )
|
|
||||||
"If this is your first time with Factor, please read the " print
|
|
||||||
"handbook" ($link) ". To see a list of keyboard shortcuts," print
|
|
||||||
"press F1." print nl ;
|
|
||||||
|
|
||||||
: listener-thread ( listener -- )
|
: listener-thread ( listener -- )
|
||||||
dup listener-streams [
|
dup listener-streams [
|
||||||
[ com-browse ] help-hook set
|
[ com-browse ] help-hook set
|
||||||
'[ [ _ input>> ] 2dip debugger-popup ] error-hook set
|
'[ [ _ input>> ] 2dip debugger-popup ] error-hook set
|
||||||
welcome.
|
tip-of-the-day. nl
|
||||||
listener
|
listener
|
||||||
] with-streams* ;
|
] with-streams* ;
|
||||||
|
|
||||||
|
@ -385,7 +381,7 @@ interactor "completion" f {
|
||||||
[ wait-for-listener ]
|
[ wait-for-listener ]
|
||||||
} cleave ;
|
} cleave ;
|
||||||
|
|
||||||
: listener-help ( -- ) "ui-listener" com-browse ;
|
: listener-help ( -- ) "help.home" com-browse ;
|
||||||
|
|
||||||
\ listener-help H{ { +nullary+ t } } define-command
|
\ listener-help H{ { +nullary+ t } } define-command
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
USING: help.tips help.markup help.syntax ui.operations
|
||||||
|
tools.walker tools.time tools.profiler ui.tools.operations ;
|
||||||
|
|
||||||
|
TIP: "Press " { $operation com-stack-effect } " to print the stack effect of the code in the input field without executing it (" { $link "inference" } ")." ;
|
||||||
|
|
||||||
|
TIP: "Press " { $operation walk } " to single-step through the code in the input field (" { $link "ui-walker" } ")." ;
|
||||||
|
|
||||||
|
TIP: "Press " { $operation time } " to time execution of the code in the input field (" { $link "timing" } ")." ;
|
|
@ -9,7 +9,7 @@ compiler.units accessors vocabs.parser macros.expander ui
|
||||||
ui.tools.browser ui.tools.listener ui.tools.listener.completion
|
ui.tools.browser ui.tools.listener ui.tools.listener.completion
|
||||||
ui.tools.profiler ui.tools.inspector ui.tools.traceback
|
ui.tools.profiler ui.tools.inspector ui.tools.traceback
|
||||||
ui.commands ui.gadgets.editors ui.gestures ui.operations
|
ui.commands ui.gadgets.editors ui.gestures ui.operations
|
||||||
ui.tools.deploy models ;
|
ui.tools.deploy models help.tips ;
|
||||||
IN: ui.tools.operations
|
IN: ui.tools.operations
|
||||||
|
|
||||||
! Objects
|
! Objects
|
||||||
|
@ -157,8 +157,6 @@ M: word com-stack-effect 1quotation com-stack-effect ;
|
||||||
{ +listener+ t }
|
{ +listener+ t }
|
||||||
} define-operation
|
} define-operation
|
||||||
|
|
||||||
: com-profile ( quot -- ) profile profiler-window ;
|
|
||||||
|
|
||||||
[ quotation? ] \ com-profile H{
|
[ quotation? ] \ com-profile H{
|
||||||
{ +keyboard+ T{ key-down f { C+ } "o" } }
|
{ +keyboard+ T{ key-down f { C+ } "o" } }
|
||||||
{ +listener+ t }
|
{ +listener+ t }
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
IN: ui.tools.profiler
|
||||||
|
USING: help.markup help.syntax ui.operations help.tips ;
|
||||||
|
|
||||||
|
ARTICLE: "ui.tools.profiler" "UI profiler tool"
|
||||||
|
"The " { $vocab-link "ui.tools.profiler" } " vocabulary implements a graphical tool for viewing profiling results (see " { $link "tools.profiler" } ")."
|
||||||
|
$nl
|
||||||
|
"To use the profiler, enter a piece of code in the listener's input area and press " { $operation com-profile } "." ;
|
||||||
|
|
||||||
|
TIP: "Press " { $operation com-profile } " to run the code in the input field with profiling enabled (" { $link "ui.tools.profiler" } ")." ;
|
||||||
|
|
||||||
|
ABOUT: "ui.tools.profiler"
|
|
@ -208,4 +208,6 @@ profiler-gadget "toolbar" f {
|
||||||
: profiler-window ( -- )
|
: profiler-window ( -- )
|
||||||
<profiler-gadget> "Profiling results" open-status-window ;
|
<profiler-gadget> "Profiling results" open-status-window ;
|
||||||
|
|
||||||
|
: com-profile ( quot -- ) profile profiler-window ;
|
||||||
|
|
||||||
MAIN: profiler-window
|
MAIN: profiler-window
|
|
@ -1,7 +1,8 @@
|
||||||
USING: editors help.markup help.syntax summary inspector io io.styles
|
USING: editors help.markup help.syntax summary inspector io io.styles
|
||||||
listener parser prettyprint tools.profiler tools.walker ui.commands
|
listener parser prettyprint tools.profiler tools.walker ui.commands
|
||||||
ui.gadgets.panes ui.gadgets.presentations ui.operations
|
ui.gadgets.panes ui.gadgets.presentations ui.operations
|
||||||
ui.tools.operations ui.tools.profiler ui.tools.common vocabs see ;
|
ui.tools.operations ui.tools.profiler ui.tools.common vocabs see
|
||||||
|
help.tips ;
|
||||||
IN: ui.tools
|
IN: ui.tools
|
||||||
|
|
||||||
ARTICLE: "starting-ui-tools" "Starting the UI tools"
|
ARTICLE: "starting-ui-tools" "Starting the UI tools"
|
||||||
|
@ -67,4 +68,6 @@ $nl
|
||||||
"Platform-specific features:"
|
"Platform-specific features:"
|
||||||
{ $subsection "ui-cocoa" } ;
|
{ $subsection "ui-cocoa" } ;
|
||||||
|
|
||||||
|
TIP: "All UI developer tools support a common set of " { $link "ui-shortcuts" } ". Each individual tool has its own shortcuts as well; the F1 key is context-sensitive." ;
|
||||||
|
|
||||||
ABOUT: "ui-tools"
|
ABOUT: "ui-tools"
|
||||||
|
|
|
@ -166,6 +166,7 @@ SYMBOL: interactive-vocabs
|
||||||
"definitions"
|
"definitions"
|
||||||
"editors"
|
"editors"
|
||||||
"help"
|
"help"
|
||||||
|
"help.apropos"
|
||||||
"help.lint"
|
"help.lint"
|
||||||
"inspector"
|
"inspector"
|
||||||
"io"
|
"io"
|
||||||
|
@ -186,7 +187,6 @@ SYMBOL: interactive-vocabs
|
||||||
"strings"
|
"strings"
|
||||||
"syntax"
|
"syntax"
|
||||||
"tools.annotations"
|
"tools.annotations"
|
||||||
"tools.apropos"
|
|
||||||
"tools.crossref"
|
"tools.crossref"
|
||||||
"tools.disassembler"
|
"tools.disassembler"
|
||||||
"tools.memory"
|
"tools.memory"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: arrays byte-arrays help.markup help.syntax
|
USING: arrays byte-arrays help.markup help.syntax
|
||||||
kernel kernel.private strings.private sequences vectors
|
kernel kernel.private strings.private sequences vectors
|
||||||
sbufs math tools.vocabs.browser ;
|
sbufs math help.vocabs ;
|
||||||
IN: strings
|
IN: strings
|
||||||
|
|
||||||
ARTICLE: "strings" "Strings"
|
ARTICLE: "strings" "Strings"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
USING: kernel fry sequences
|
USING: kernel fry sequences
|
||||||
vocabs.loader tools.vocabs.browser
|
vocabs.loader help.vocabs
|
||||||
ui ui.gadgets ui.gadgets.buttons ui.gadgets.packs ui.gadgets.scrollers
|
ui ui.gadgets ui.gadgets.buttons ui.gadgets.packs ui.gadgets.scrollers
|
||||||
ui.tools.listener
|
ui.tools.listener
|
||||||
accessors ;
|
accessors ;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
USING: accessors arrays assocs combinators help help.crossref
|
USING: accessors arrays assocs combinators help help.crossref
|
||||||
help.markup help.topics io io.streams.string kernel make namespaces
|
help.markup help.topics io io.streams.string kernel make namespaces
|
||||||
parser prettyprint sequences summary tools.vocabs tools.vocabs.browser
|
parser prettyprint sequences summary tools.vocabs help.vocabs
|
||||||
vocabs vocabs.loader words see ;
|
vocabs vocabs.loader words see ;
|
||||||
|
|
||||||
IN: fuel.help
|
IN: fuel.help
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: slides help.markup math arrays hashtables namespaces
|
USING: slides help.markup math arrays hashtables namespaces
|
||||||
sequences kernel sequences parser memoize io.encodings.binary
|
sequences kernel sequences parser memoize io.encodings.binary
|
||||||
locals kernel.private tools.vocabs.browser assocs quotations
|
locals kernel.private help.vocabs assocs quotations
|
||||||
urls peg.ebnf tools.vocabs tools.annotations tools.crossref
|
urls peg.ebnf tools.vocabs tools.annotations tools.crossref
|
||||||
help.topics math.functions compiler.tree.optimizer
|
help.topics math.functions compiler.tree.optimizer
|
||||||
compiler.cfg.optimizer fry ;
|
compiler.cfg.optimizer fry ;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: slides help.markup math arrays hashtables namespaces
|
USING: slides help.markup math arrays hashtables namespaces
|
||||||
sequences kernel sequences parser memoize io.encodings.binary
|
sequences kernel sequences parser memoize io.encodings.binary
|
||||||
locals kernel.private tools.vocabs.browser assocs quotations
|
locals kernel.private help.vocabs assocs quotations
|
||||||
urls peg.ebnf tools.vocabs tools.annotations tools.crossref
|
urls peg.ebnf tools.vocabs tools.annotations tools.crossref
|
||||||
help.topics math.functions compiler.tree.optimizer
|
help.topics math.functions compiler.tree.optimizer
|
||||||
compiler.cfg.optimizer fry ;
|
compiler.cfg.optimizer fry ;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: slides help.markup math arrays hashtables namespaces sequences
|
USING: slides help.markup math arrays hashtables namespaces sequences
|
||||||
kernel sequences parser memoize io.encodings.binary locals
|
kernel sequences parser memoize io.encodings.binary locals
|
||||||
kernel.private tools.vocabs.browser assocs quotations tools.vocabs
|
kernel.private help.vocabs assocs quotations tools.vocabs
|
||||||
tools.annotations tools.crossref help.topics math.functions
|
tools.annotations tools.crossref help.topics math.functions
|
||||||
compiler.tree.optimizer compiler.cfg.optimizer fry ui.gadgets.panes
|
compiler.tree.optimizer compiler.cfg.optimizer fry ui.gadgets.panes
|
||||||
tetris tetris.game combinators generalizations multiline
|
tetris tetris.game combinators generalizations multiline
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: slides help.markup math arrays hashtables namespaces
|
USING: slides help.markup math arrays hashtables namespaces
|
||||||
sequences kernel sequences parser memoize io.encodings.binary
|
sequences kernel sequences parser memoize io.encodings.binary
|
||||||
locals kernel.private tools.vocabs.browser assocs quotations
|
locals kernel.private help.vocabs assocs quotations
|
||||||
urls peg.ebnf tools.vocabs tools.annotations tools.crossref
|
urls peg.ebnf tools.vocabs tools.annotations tools.crossref
|
||||||
help.topics math.functions compiler.tree.optimizer
|
help.topics math.functions compiler.tree.optimizer
|
||||||
compiler.cfg.optimizer fry ;
|
compiler.cfg.optimizer fry ;
|
||||||
|
|
Loading…
Reference in New Issue