mirror of
https://github.com/urbit/shrub.git
synced 2024-12-13 16:03:36 +03:00
Merge branch 'test' of github.com:urbit/urbit into test
This commit is contained in:
commit
8093339c4f
@ -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
|
||||
== ::
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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] ::
|
||||
== ::
|
||||
-- ::
|
||||
@ -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
165
main/app/matrix/hymn.hook
Normal 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")
|
||||
== ==
|
@ -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]
|
||||
+>
|
||||
::
|
||||
|
@ -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
|
||||
|
12
main/cat/helm/sync/gate.hook
Normal file
12
main/cat/helm/sync/gate.hook
Normal 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
|
58
main/mar/dill-belt/door.hook
Normal file
58
main/mar/dill-belt/door.hook
Normal 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
|
||||
--
|
||||
--
|
23
main/mar/dill-blit/door.hook
Normal file
23
main/mar/dill-blit/door.hook
Normal 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)
|
||||
==
|
||||
--
|
||||
--
|
@ -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) ~)
|
||||
==
|
||||
|
@ -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] ~)
|
||||
==
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user