factor/basis/ui/tools/operations/operations.factor

191 lines
4.3 KiB
Factor
Raw Normal View History

2009-01-06 17:53:08 -05:00
! Copyright (C) 2006, 2009 Slava Pestov.
2007-09-20 18:09:08 -04:00
! See http://factorcode.org/license.txt for BSD license.
2009-01-26 19:09:04 -05:00
USING: continuations definitions generic help.topics threads
2009-04-11 16:11:40 -04:00
stack-checker summary io.pathnames io.styles kernel namespaces parser
prettyprint quotations tools.crossref tools.annotations editors
tools.profiler tools.test tools.time tools.walker vocabs vocabs.loader
words sequences tools.vocabs classes compiler.errors compiler.units
accessors vocabs.parser macros.expander ui ui.tools.browser
ui.tools.listener ui.tools.listener.completion ui.tools.profiler
ui.tools.inspector ui.tools.traceback ui.commands ui.gadgets.editors
ui.gestures ui.operations ui.tools.deploy models help.tips
source-files.errors ;
2007-09-20 18:09:08 -04:00
IN: ui.tools.operations
! Objects
2009-01-07 00:30:08 -05:00
[ drop t ] \ inspector H{
2007-09-20 18:09:08 -04:00
{ +primary+ t }
} define-operation
2008-06-08 16:32:55 -04:00
: com-prettyprint ( obj -- ) . ;
2007-09-20 18:09:08 -04:00
[ drop t ] \ com-prettyprint H{
{ +listener+ t }
} define-operation
2008-06-08 16:32:55 -04:00
: com-push ( obj -- obj ) ;
2007-09-20 18:09:08 -04:00
[ drop t ] \ com-push H{
{ +listener+ t }
} define-operation
2008-06-08 16:32:55 -04:00
: com-unparse ( obj -- ) unparse listener-input ;
2007-09-20 18:09:08 -04:00
[ drop t ] \ com-unparse H{ } define-operation
! Models
[ model? ] \ inspect-model H{
{ +primary+ t }
} define-operation
2007-09-20 18:09:08 -04:00
! Input
2008-06-08 16:32:55 -04:00
: com-input ( obj -- ) string>> listener-input ;
2007-09-20 18:09:08 -04:00
[ input? ] \ com-input H{
{ +primary+ t }
{ +secondary+ t }
} define-operation
! Restart
[ restart? ] \ restart H{
{ +primary+ t }
{ +secondary+ t }
{ +listener+ t }
} define-operation
! Continuation
[ continuation? ] \ traceback-window H{
{ +primary+ t }
{ +secondary+ t }
} define-operation
2009-01-26 19:09:04 -05:00
! Thread
: com-thread-traceback-window ( thread -- )
continuation>> dup occupied>>
[ value>> traceback-window ]
[ drop beep ]
if ;
[ thread? ] \ com-thread-traceback-window H{
{ +primary+ t }
{ +secondary+ t }
} define-operation
2007-09-20 18:09:08 -04:00
! Pathnames
2008-06-08 16:32:55 -04:00
: edit-file ( pathname -- ) edit ;
2007-09-20 18:09:08 -04:00
[ pathname? ] \ edit-file H{
{ +keyboard+ T{ key-down f { C+ } "e" } }
2007-09-20 18:09:08 -04:00
{ +primary+ t }
{ +secondary+ t }
{ +listener+ t }
2007-09-20 18:09:08 -04:00
} define-operation
[ definition? ] \ edit H{
{ +keyboard+ T{ key-down f { C+ } "e" } }
{ +listener+ t }
2007-09-20 18:09:08 -04:00
} define-operation
2009-04-11 16:11:40 -04:00
! Source file error
[ source-file-error? ] \ edit-error H{
{ +primary+ t }
{ +secondary+ t }
{ +listener+ t }
} define-operation
: com-reload ( error -- )
file>> run-file ;
[ compiler-error? ] \ com-reload H{
{ +listener+ t }
} define-operation
! Definitions
: com-forget ( defspec -- )
[ forget ] with-compilation-unit ;
[ definition? ] \ com-forget H{ } define-operation
2007-09-20 18:09:08 -04:00
2009-02-18 22:01:19 -05:00
[ topic? ] \ com-browse H{
{ +keyboard+ T{ key-down f { C+ } "h" } }
2007-09-20 18:09:08 -04:00
{ +primary+ t }
} define-operation
2009-01-26 19:09:04 -05:00
[ word? ] \ usage. H{
{ +keyboard+ T{ key-down f { C+ } "u" } }
{ +listener+ t }
2009-01-26 19:09:04 -05:00
} define-operation
2007-09-20 18:09:08 -04:00
[ word? ] \ fix H{
{ +keyboard+ T{ key-down f { C+ } "f" } }
2007-09-20 18:09:08 -04:00
{ +listener+ t }
} define-operation
[ word? ] \ watch H{ } define-operation
[ word? ] \ breakpoint H{ } define-operation
GENERIC: com-stack-effect ( obj -- )
M: quotation com-stack-effect infer. ;
2009-02-01 04:27:10 -05:00
M: word com-stack-effect 1quotation com-stack-effect ;
2007-09-20 18:09:08 -04:00
2008-06-08 16:32:55 -04:00
: com-enter-in ( vocab -- ) vocab-name set-in ;
2007-09-20 18:09:08 -04:00
[ vocab? ] \ com-enter-in H{
{ +listener+ t }
} define-operation
2008-06-08 16:32:55 -04:00
: com-use-vocab ( vocab -- ) vocab-name use+ ;
2007-09-20 18:09:08 -04:00
[ vocab-spec? ] \ com-use-vocab H{
{ +secondary+ t }
{ +listener+ t }
} define-operation
[ vocab-spec? ] \ run H{
{ +listener+ t }
} define-operation
[ vocab? ] \ test H{
{ +listener+ t }
} define-operation
2007-11-05 00:46:03 -05:00
[ vocab-spec? ] \ deploy-tool H{ } define-operation
2007-09-20 18:09:08 -04:00
! Quotations
[ quotation? ] \ com-stack-effect H{
{ +keyboard+ T{ key-down f { C+ } "i" } }
{ +listener+ t }
} define-operation
[ quotation? ] \ walk H{
{ +keyboard+ T{ key-down f { C+ } "w" } }
{ +listener+ t }
} define-operation
[ quotation? ] \ time H{
{ +keyboard+ T{ key-down f { C+ } "t" } }
{ +listener+ t }
} define-operation
[ quotation? ] \ com-profile H{
{ +keyboard+ T{ key-down f { C+ } "o" } }
2007-09-20 18:09:08 -04:00
{ +listener+ t }
} define-operation
2009-01-16 15:57:23 -05:00
: com-expand-macros ( quot -- ) expand-macros . ;
[ quotation? ] \ com-expand-macros H{
{ +keyboard+ T{ key-down f { C+ } "m" } }
{ +listener+ t }
} define-operation
2007-09-20 18:09:08 -04:00
! Operations -> commands
interactor
"quotation"
"These commands operate on the entire contents of the input area."
[ ]
[ quot-action ]
define-operation-map