[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/ |