O que existe em "system"
Se você digitar ? system no console, você obtém:
>> ? system
SYSTEM is an object! with the following words and values:
version tuple! 0.6.3
build object! [date git config]
words object! [datatype! unset! none! logic!...
platform function! Return a word identifying the operating system.
catalog object! [datatypes actions natives accessors errors]
state object! [interpreted? last-error trace]
modules block! length: 0 []
codecs block! length: 8 [png make object! [title:...
schemes object! []
ports object! []
locale object! [language language* locale locale* months days]
options object! [boot home path script cache thru-cache ...
script object! [title header parent path args]
standard object! [header error file-info]
lexer object! [pre-load throw-error make-hm make-msf...
console object! [prompt result history size running? catch? ...
view object! [screens event-port metrics fonts platform ...
reactivity object! [relations stack queue eat-events? debug? ...
Você pode explorar esses paths usando tanto ? como probe.
Coisas interessantes que você pode fazer:
Acessar words, não só as do sistema, mas as suas próprias.
Se você digitar ? system/words, você obtém um lista muito, muito longa de todas as palavras da sua sessão Red:
>> ? system/words
SYSTEM/WORDS is an object! with the following words and values:
datatype! datatype! datatype!
unset! datatype! unset!
none! datatype! none!
...
...
right-command unset!
caps-lock unset!
num-lock unset!
Digite uma nova palavra no seu console, como banana , aperte enter (dá um erro) então digite ? system/words novamente. Você verá que banana foi adicionada à lista de palavras de sua sessão:
>> banana
*** Script Error: banana has no value
*** Where: catch
*** Stack:
>> ? system/words
SYSTEM/WORDS is an object! with the following words and values:
datatype! datatype! datatype!
unset! datatype! unset!
...
...
caps-lock unset!
num-lock unset!
banana unset!
Se você atribuir um valor a banana e repetir ? system/words você verá que o valor foi vinculado à palavra (word):
>> banana: "hello"
...
...
caps-lock unset!
num-lock unset!
banana string! "Hello"
Mudar o prompt do console:
>> ? system/console/prompt
SYSTEM/CONSOLE/PROMPT is a string! value: ">> "
>> system/console/prompt: "@*=> "
== "@*=> "
@*=> ;este é o novo prompt agora
Ver o histórico dos comandos:
>> probe system/console/history
["probe system/console/history" "? system/console" {system/console/prompt: "@*=> "} " " {system/console/prompt: "@*"} "? system/console/prompt" "? console/prompt" "? system" "? system/standard/error" "? system" "probe last system/word" "probe last system" "probe last a" "a: [a b c]" "probe last sys ...
Alterar as mensagens de erro:
>> ? system/catalog/errors/script
SYSTEM/CATALOG/ERRORS/SCRIPT is an object! with the following words and values:
code integer! 300
type string! "Script Error"
no-value block! length: 2 [:arg1 "has no value"]
...
lib-invalid-arg block! length: 2 ["LIBRED - invalid argument for" :arg1]
>> system/catalog/errors/script/type: "Don't be silly!! "
== "Don't be silly!! "
>> nono
*** Don't be silly!! : nono has no value
*** Where: catch
*** Stack:
Escolher caminhos conforme o Sistema Operacional:
>> either system/platform = 'Windows [print "Do this"] [print "Do that"]
Do this
Note o apóstrofo antes de "Windows". É uma word! não uma string!
Obter o tamanho da tela:
>> print system/view/screens/1/size
1366x768
Debugar View:
Use system/view/debug?: yes , como explicado em GUI Tópicos Avançados .