[Notes2-team] * Idéia doida: NXL *
Brought to you by:
andersonrb
|
From: <no...@ig...> - 2004-01-06 02:17:06
|
Olá meus caros,
hoje tive uma *daquelas* idéias doidas e para não enrolar muito, ei-la:
por que não fazer a linguagem de macro/script do Notes toda em XML?
(Eu avisei que a idéia era doida!)
:: Vantagens:
- já temos o parser, então, poderíamos ver uma versão "beta" dela funcionado
já no 2004
e com o tempo, com as sugestões dos usuários, ela seria uma linguagem bem
madura
e bem específica para as nessecidades do nosso público;
- o parser é muuuiiitto rápido!;
- Sendo XML seria muuuuiiittto barbada de aprender. Ou seja, teria uma
adoção rápida
entre os usuários. Qualquer outra linguagem que adotarmos vai gerar algum
tipo de resistência
por causa dos muitos bairrismos, porém, xml todo mundo tem que usar um dia;
- já estamos indo nesta direção de adotar XML para tudo, então isto se
encaixaria perfeitamente
no resto. E não apenas por uma questão de padrões! Por exemplo: se formos
deixar o usuário
especificar os menus/toolbars em XML no Notes 2, como está nos planos, ele
poderia "escriptar"
os arquivos.
- seria muito fácil implementar! hauhahauauha
Um exemplo desta "linguagem", que estou chamando provisoriamente de
NotesXmlLanguage:
temos um campo (uma variável) e quero converter para uma propriedade (de uma
classe em delphi):
fAlgo: TAlgo;
ela precisa ficar assim:
property Algo: Talgo read fAlgo write fAlgo;
<NXL version="0.1">
<GoToSol /> <!-- vai para o início da linha -->
<SelWordAtCursor /> <!-- seleciona a palavra "fAlgo" -->
<GoToStartOfWord /> <!-- vai para o início da linha -->
<DelChar /> <!-- deleta o "f" -->
<SelWordAtCursor /> <!-- seleciona a palavra "Algo" -->
<CopyToClipboard /> <!-- temos a palavra "algo" na área de transferência -->
<GoToEol /> <!-- vai para o fim da linha -->
<GoToPreviusChar /> <!-- vamos para dois caracteres antes do final da linha
-->
<GoToPreviusChar />
<SelWordAtCursor /> <!-- pegamos a palavra "TAlgo" e colocamos no buffer do
Notes -->
<CopyToNotesBuffer /> <!-- copia para o buffer do Notes. Talvez tenhamos que
ter mais buffers internos para servir como variáveis. Mas para quem já
escreveu algo em assembler, com dois buffers dá pra fazer tudo, heheheh -->
<DelAllLine />
<InsertText>
<ReplaceVars>true</ReplaceVars> <!-- específica se o notes deve processar
variáveis no texto a ser inserido -->
<Text><![CDATA[ property %Clipboard%: %NotesBuffer% read f%Clipboard%
write f%ClipBoard%;]]></Text>
</InsertText>
</NXL>
(Eu sei que eu poderia ter usado funções de pesquisa pra encurtar o script,
mas
a minha idéia era mostrar um monte de tags! hehehehh)
Pronto. Vejam que o que o script faz é algo semelhante ao que o programador
faria, para
escrever um script basta pensar como você faria isto no editor e reproduzir
em script. Claro
que você poderia gravar este script fazendo estas ações, huahahahaha
Isto seria o básico da linguagem... depois adicionaríamos aos poucos
estruturas de controle,
loops, procedures, etc. Quem sabe pudéssemos ter um dia um campo <SCRIPT>
que possibilitasse
usar uma linguagem mais foderosa (e complicada de aprender) para fazer algo.
Apesar que
não acho que isto vá ser necessário...
E então, essa idéia é muito doida???
--
Anderson Rodrigues Barbieri
--------------------------------------------
#Equipe do Notes - Coordenador/Desenvolvedor
{ TAndInfo }
ICQ #149391850 / no...@ig...
Notes - http://notes.codigolivre.org.br
NotesDev - http://notes2.sf.net/dev
Fórum - http://notes2.sf.net/forum
_________________________________________________________
Voce quer um iGMail protegido contra vírus e spams?
Clique aqui: http://www.igmailseguro.ig.com.br
Ofertas imperdíveis! Link: http://www.americanas.com.br/ig/
|