Merge branch 'test' of github.com:urbit/urbit into test

This commit is contained in:
Galen Wolfe-Pauly 2015-04-09 10:13:44 -07:00
commit 8093339c4f
15 changed files with 318 additions and 22 deletions

View File

@ -37,9 +37,9 @@
$% [%aro p=?(%d %l %r %u)] :: arrow key
[%bac ~] :: true backspace
[%cru p=@tas q=(list tank)] :: echo error
[%ctl p=@ud] :: control-key
[%ctl p=@c] :: control-key
[%del ~] :: true delete
[%met p=@ud] :: meta-key
[%met p=@c] :: meta-key
[%ret ~] :: return
[%rez p=@ud q=@ud] :: resize, cols, rows
[%txt p=(list ,@c)] :: utf32 text
@ -78,9 +78,9 @@
++ belt :: raw console input
$% [%aro p=?(%d %l %r %u)] :: arrow key
[%bac ~] :: true backspace
[%ctl p=@ud] :: control-key
[%ctl p=@c] :: control-key
[%del ~] :: true delete
[%met p=@ud] :: meta-key
[%met p=@c] :: meta-key
[%ret ~] :: return
[%txt p=(list ,@c)] :: utf32 text
== ::

View File

@ -525,9 +525,12 @@
[?(%on %ay) *] ~|(e/ford/lost/-.tee !!)
[%of ^]
?~ q.tee ~|(e/ford/lost/tee !!)
?: ?=(%| -.q.sih)
(print-tang p.q.sih)
%+ get-rush:(ire-ix p.tee) q.tee
?> ?=([%& %json ^] q.sih) :: XX others
((hard json) |3.q.sih)
=* cay p.q.sih
?> ?=(%json p.cay) :: XX others
((hard json) q.q.cay)
::
[%to ^]
?: ?=(%| -.q.sih)
@ -565,6 +568,12 @@
(fail 500 0v0 >%exit< p.mul)
::
++ ire-ix |=(ire=ixor ~(. ix ire (~(got by wix) ire)))
++ print-tang
|= a=tang ^+ +>
?~ a +>
~> %slog.`i.a
$(a t.a)
::
++ ses-authed
|= ses=hole
=+ sap=(~(get by sop) ses)

View File

@ -233,7 +233,7 @@
++ dp-server-cat (stag 0 (stag %cat dp-device)) :: ++dojo-server
++ dp-server-dog (stag 0 (stag %dog dp-device)) :: ++dojo-server
++ dp-server-pig (stag 0 (stag %pig dp-device)) :: ++dojo-server
++ dp-twig wide:(vang & ~) :: ++twig
++ dp-twig wide:(vang | ~) :: ++twig
++ dp-device (most fas sym) :: ++dojo-device
++ dp-value :: ++dojo-source
%+ cook |=(a=dojo-source a)

View File

@ -24,6 +24,7 @@
%verb :: verbose mode
== ::
$% [%reload p=(list term)] :: reload vanes
[%sync p=@tas q=@p r=@tas ~] ::
== ::
++ dill-flog :: sent to %dill
$% [%crud p=%hax-init [%leaf p=tape] ~] :: initialize ship
@ -47,8 +48,12 @@
++ note-dill :: system command
$% [%flog p=dill-flog] ::
== ::
++ note-clay :: filesystem command
$% [%font p=@p q=@tas r=@p s=@tas] ::
== ::
++ note :: out request $->
$% [%d note-dill] ::
$% [%c note-clay] ::
[%d note-dill] ::
[%g note-gall] ::
== ::
-- ::
@ -89,7 +94,7 @@
=+ txt=((hard ,@) .^(%cx (welp pax /hoon)))
[ost %pass /reset %d %flog %veer p pax txt]
::
++ he-wish-reload
++ he-wish-reload
|= all=(list term)
%_ +>.$
moz
@ -117,6 +122,14 @@
==
==
::
++ he-wish-sync
|= [syd=@tas her=@p sud=@tas ~]
%_ .
moz
:_ moz
[ost %pass /sync %c %font our.hid syd her sud]
==
::
++ he-wish-verb
%_ .
moz
@ -157,6 +170,11 @@
~& %poke-helm-reload
he-abet:(he-wish-reload:(hake ost her) all)
::
++ poke-helm-sync
|= [ost=bone her=ship all=[@tas @p @tas ~]]
~& %poke-helm-sync
he-abet:(he-wish-sync:(hake ost her) all)
::
++ poke-helm-begin
|= [ost=bone you=ship begs]
~& %poke-helm-begin

165
main/app/matrix/hymn.hook Normal file
View File

@ -0,0 +1,165 @@
:: Matrix GUI
::
:::: /hook/hymn/matr/app
::
/? 310
|%
++ cdnj |=(a=tape ;script(src "//cdnjs.cloudflare.com/ajax/libs/{a}");)
--
::
::::
::
^- manx
;html
;head
;title: Matrix
;* %- turn :_ cdnj ^- wall
:~ "jquery/2.1.1/jquery.min.js"
"mousetrap/1.4.6/mousetrap.js"
"react/0.11.0/react.js"
==
;script(src "/~/at/main/lib/urb.js");
;script: urb.appl = 'sole'
;style:'''
#term {
width: 100%;
}
#term * {
margin: 0px;
}
'''
==
;body
;div#err;
;div#term:""
;script(type "text/coffeescript") ;- %- trip
'''
[DOM,recl,rend] = [React.DOM, React.createClass, React.renderComponent]
[div, pre] = [DOM.div, DOM.pre]
Matr = recl render: ->
[pro,cur] = [@props.prompt + " ", @props.cursor + 1]
prompt = "#{pro.slice(0,cur)}\u0332#{pro.slice(cur)}"
lines = [prompt, @props.rows...]
div {}, lines.slice().reverse().map (lin)->
pre {}, lin
$ ->
termRev = 0
pressed = []
deltim = null
met = $('<pre>').text('m').css(display: 'none').appendTo(term).width()
subs = ""
# $(window).resize ->
# window.termWif = ($(term).width() / met).toFixed()
# path = "/new/#{termWif}"
# if path is subs
# return
# if subs
# urb.unsubscribe {path:subs}
# subs = path
# urb.subscribe {path}, (err,dat)->
# if err or dat.data.ok
# return;
# syncRev = dat.data.rev
# unless termRev > syncRev
# termRev = syncRev
# matr.setProps rows: dat.data.stak
# document.title = "Matrix" # XX debug
# $(window).resize()
matr = rend (Matr rows:[], prompt:"", cursor:1), term
flash = ($el, background)->
$el.css {background}
if background
setTimeout (()-> flash $el,''), 50
peer = (ruh) ->
switch false
when !ruh.map then ruh.map peer
when !ruh.pro then matr.setProps prompt: ruh.pro
when !ruh.hop then matr.setProps cursor: ruh.hop
when !ruh.out
matr.setProps rows: [ruh.out, matr.props.rows...]
when !ruh.act then switch ruh.act
when 'clr' then matr.setProps rows:[]
when 'bel' then flash ($ 'body'), 'black'
else throw "Unknown "+(JSON.stringify ruh)
else console.log ruh
urb.bind "", (err,d)->
if d.data then peer d.data
#later = (data)->
# if data
# pressed.push data
# clearTimeout deltim
# setTimeout (->
# if urb.reqq.length > 0
# return deltim = later()
# urb.send data: pressed
# pressed = []
# ), 500
Mousetrap.handleKey = (char, mod, e)->
norm = {
capslock: 'caps'
pageup: 'pgup'
pagedown: 'pgdn'
backspace: 'baxp'
enter: 'entr'
}
key =
if char.length is 1
if e.type is 'keypress'
str: char
else if e.type is 'keydown'
if char isnt 'space'
act: norm[char] ? char
else if e.type is 'keyup' and norm[key] is 'caps'
act: 'uncap'
if key
e.preventDefault()
urb.send mark: 'dill-belt', data: {mod,key}
# amod = (arr)->
# for i in arr
# unless mod.indexOf(i) < 0
# return yes
# no
# if key.str or key.act is 'baxp' or key.act is 'entr'
# termRev++
# [bot, rest...] = old = matr.props.rows
# matr.setProps rows:(
# switch key.act
# when 'baxp'
# if amod ['ctrl', 'meta']
# ['', rest...]
# else if amod ['alt']
# [(bot.replace /\ *[^ ]*$/, ''), rest...]
# else if bot and bot.length
# [bot.slice(0, -1), rest...]
# else if rest[0] and rest[0].length
# res = rest.slice()
# res[0] = res[0].slice(0, -1)
# res
# else rest
# when 'entr'
# ['', old...]
# when undefined
# if mod.length > 1 or (mod.length and !amod ['shift'])
# old
# else unless old and bot isnt null
# [key.str]
# #else if bot.length is termWif
# # [key.str, old...]
# else [bot + key.str, rest...]
# )
# document.title = "Matri" # XX debug
# later {mod, key}
'''
==
;+ (cdnj "coffee-script/1.7.1/coffee-script.min.js")
== ==

View File

@ -11,7 +11,7 @@
++ poke--args
%^ add-output .
rush/tang/[leaf/"done"]~
%+ args-into-resp .
%+ args-into-resp .
|= all=(list ,@tas)
%+ turn all
=+ ark=(arch .^(%cy /(scot %p our.hid)/arvo/(scot %da lat.hid)))

View File

@ -356,7 +356,7 @@
(ta-hom(pos.inp pre) %del pre)
::
++ ta-ctl :: hear control
|= key=@ud
|= key=@c
^+ +>
?+ key ta-bel
%a +>(pos.inp 0)
@ -477,7 +477,7 @@
+>
::
++ ta-met :: meta key
|= key=@ud
|= key=@c
~& [%ta-met key]
+>
::

View File

@ -135,6 +135,7 @@
|_ $: coz=(list command) :: talk actions
she=shell
==
++ sh-purl (ifix [gay gay] auri:urlp) :: url with spaces
++ sh-scad :: command parser
=+ vag=(vang | [&1:% &2:% '0' |3:%])
=< work
@ -739,8 +740,8 @@
(fix inx '?' lit)
?: &((gte i.buf 'A') (lte i.buf 'Z'))
(fix inx (add 32 i.buf) lit)
:: ?: &(=('/' i.buf) ?=([47 *] t.buf))
:: (fix inx '\\' lit)
?: &(=('/' i.buf) ?=([47 *] t.buf))
(fix inx '\\' lit)
lit
::
++ sh-sane-rule :: sanitize by rule
@ -754,10 +755,13 @@
|= [inv=sole-edit buf=(list ,@c)]
^- (list sole-edit)
?~ buf ~
?: =(';' i.buf)
((sh-sane-rule sh-scad) inv (tufa t.buf))
=+ txt=(tufa buf)
?: =(';' -.txt)
((sh-sane-rule sh-scad) inv +.txt)
?: =('@' i.buf)
(sh-sane-chat +.buf)
=+ ryv=(rose txt sh-purl)
?: -.ryv ~
(sh-sane-chat buf)
::
++ sh-slug :: edit to sanity
@ -780,10 +784,13 @@
++ sh-pork :: parse work
^- (unit work)
?~ buf.say.she ~
?: =(';' -.buf.say.she)
(rust (tufa +.buf.say.she) sh-scad)
=+ txt=(tufa buf.say.she)
?: =(';' -.txt)
(rust +.txt sh-scad)
?: =('@' -.buf.say.she)
`[%say %lin | (crip (tufa +.buf.say.she))]
=+ rul=(rust txt sh-purl)
?^ rul `[%say %url u.rul]
`[%say %lin & (crip (tufa buf.say.she))]
::
++ sh-lame :: send error
@ -821,7 +828,8 @@
++ activate :: from %number
|= gam=telegram
^+ +>+>+>
~& [%activate gam]
=. +>+>+> ?. ?=(%url -.r.r.q.gam) +>+>+>
(sh-fact %txt (earn p.r.r.q.gam))
sh-prod(active.she `~(tr-pals tr man.she gam))
::
++ join :: %join
@ -1729,6 +1737,7 @@
|= oug=?
^- tape
?+ -.sep ""
%url (weld ": " (scag 62 (earn p.sep)))
%lin
=+ txt=(trip q.sep)
?: p.sep

View File

@ -0,0 +1,12 @@
::
:::: /hook/gate/sync/helm/cat
::
/? 314
::
::::
!:
|= $: [now=@da eny=@uvI bec=beak]
[arg=[syd=@tas her=@p sud=@tas ~] ~]
==
:- %helm-sync
arg

View File

@ -0,0 +1,58 @@
::
:::: /hook/door/dill-belt/mar
::
/? 314
/- kyev,*sole
!:
::::
::
|_ dill-belt
::
++ grab :: convert from
|%
++ json
=< (cork . kyev)
|= jon=^json ^- ^kyev
%- need
%. jon => jo %- ot
:~ mod/(cu ^sa (ar (su (perk ~[%ctrl %shift %alt %meta]))))
:- %key
%+ cu |*(a=$%([%str @t] [%act @]) ?+(-.a a %str +.a))
=- (of str/so act/(su (perk -)) ~)
:~ %ctrl %shift %alt %meta %entr %esc %caps %uncap
%pgup %pgdn %home %end %baxp %del %ins
%up %down %left %right
== ==
++ kyev
|= kev=^kyev ^- dill-belt
~| dill-belt-incomplete/kev
?: ?=([%act ?(%ctrl %shift %alt %meta)] q.kev)
[%txt ~] :: ignore
=+ mod=(~(del in p.kev) %shift)
?^ mod
?^ q.kev !! :: only accept strings
=. q.kev
?. (~(has in p.kev) %ctrl)
q.kev
(con 96 q.kev) :: ctrl key decoding
=+ cha=(tuba (trip q.kev))
?> ?=([@ ~] cha) :: of a single character
?+ mod !! :: modified by one buckykey
[%ctrl ~ ~] [%ctl i.cha]
[%alt ~ ~] [%met i.cha]
==
?@ q.kev
[%txt (tuba (trip q.kev))]
?+ +.q.kev !!
%del [%del ~]
%baxp [%bac ~]
%entr [%ret ~]
%up [%aro %u]
%down [%aro %d]
%left [%aro %l]
%right [%aro %r]
== :: %yow, %rez?
::
++ noun dill-belt :: clam from %noun
--
--

View File

@ -0,0 +1,23 @@
::
:::: /hook/door/dill-blit/mar
::
/? 314
/- *sole
|_ dib=dill-blit
::
++ grab :: convert from
|%
++ noun dill-blit :: clam from %noun
--
++ grow
|%
++ json
^- ^json
?+ -.dib ~|(unsupported-blit/-.dib !!)
%mor [%a (turn p.dib |=(a=dill-blit json(dib a)))]
%hop (joba %hop (jone p.dib))
?(%pro %out) (joba -.dib (jape (tufa p.dib)))
?(%bel %clr) (joba %act %s -.dib)
==
--
--

View File

@ -72,6 +72,7 @@
^- $+(json (unit statement))
=- (ot date/di bouquet/(as (ar so)) speech/(of -) ~)
:~ lin/(ot say/bo txt/so ~)
:: url/(su auri:urlp)
:: exp/(cu |=(a=cord [a ~]) so)
:: inv/(ot ship/(su fed:ag) party/(su urs:ab) ~)
==

View File

@ -88,6 +88,7 @@
%+ joba -.a
?+ -.a !!
%lin (jobe say/[%b p.a] txt/[%s q.a] ~)
%url (jobe url/[%s (crip (earn p.a))] ~)
%exp (jobe code/[%s p.a] ~)
:: %inv (jobe ship/(jope p.a) party/[%s q.a] ~)
==

View File

@ -93,9 +93,9 @@
$% [%aro p=?(%d %l %r %u)] :: arrow key
[%bac ~] :: true backspace
[%cru p=@tas q=(list tank)] :: echo error
[%ctl p=@ud] :: control-key
[%ctl p=@c] :: control-key
[%del ~] :: true delete
[%met p=@ud] :: meta-key
[%met p=@c] :: meta-key
[%ret ~] :: return
[%rez p=@ud q=@ud] :: resize, cols, rows
[%txt p=(list ,@c)] :: utf32 text

View File

@ -59,7 +59,7 @@
[%ext p=@tas q=*] :: extended action
[%fat p=torso q=speech] :: attachment
:: [%inv p=station] :: invite to station
:: [%url p=purl]
[%url p=purl] :: parsed url
[%ire p=serial q=speech] :: in-reply-to
[%lin p=? q=@t] :: no=@, text line
[%mor p=(list speech)] :: multiplex