Merge branch 'master' of git://factorcode.org/git/factor

db4
Slava Pestov 2009-03-24 04:15:46 -05:00
commit 535e48dcb3
41 changed files with 245 additions and 73 deletions

View File

@ -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

View File

@ -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

View File

@ -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." ;

View File

@ -0,0 +1,4 @@
IN: help.apropos.tests
USING: help.apropos tools.test ;
[ ] [ "swp" apropos ] unit-test

View File

@ -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 ;

View File

@ -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"

View File

@ -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

View File

@ -0,0 +1 @@
Slava Pestov

View File

@ -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"

View File

@ -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 ;

View File

@ -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

View File

@ -0,0 +1 @@
Slava Pestov

View File

@ -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"

View File

@ -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 ;

View File

@ -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 } ;

View File

@ -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

View File

@ -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 ;

View File

@ -1,4 +0,0 @@
IN: tools.apropos.tests
USING: tools.apropos tools.test ;
[ ] [ "swp" apropos ] unit-test

View File

@ -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

View File

@ -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"

View File

@ -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 ;

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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" } ")." ;

View File

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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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 ;

View File

@ -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

View File

@ -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 ;

View File

@ -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 ;

View File

@ -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

View File

@ -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 ;