Quando o intellisense foi criado, todos os programadores de todas as linguagens ficaram eufóricos, pois agora a redução de digitação do código fonte era uma realidade. Nada como começar a escrever e as instruções já vão sendo visualizadas, digitar um ponto e todas as propriedades dos objetos prontamente listadas, realmente facilitou o nosso trabalho.
Porém, parece que o intellisense parou no tempo, que isso é o estado-de-arte incapaz de ser melhorado, mas no Visual Fox Pro o intellisense, embora muitos não saibam, tem apenas como a ponta do iceberg este processo, pois ele é muito mais que isso ele pode ser programado criando suas próprias funcionalidades chegando muitas vezes perto de um wizard.
Vamos ao exemplo típico: Se você digitar no VFP o comando _vfp, terá algo como na figura abaixo:

Até agora nada de mais, qualquer linguagem faz este processo, mas se você resolver digitar FOREND verá que o VFP cria a estrutura FOR...ENDFOR para você. Observe que isso não é mais simplesmente um intellisense, pois ele criou o bloco inicial e final do loop diminuindo a quantidade de código que você necessita digitar.
Como o comando que você sempre escreve na verdade é FOR T = 1 To <alguma coisa>, melhor fosse que o VFP colocasse isso tudo para você não é mesmo? Pois você pode programar o intellisense e criar seus próprios processos. Escolha no menu principal a opção TOOLS e depois Intellisense mananger e no form que aparecer, escolha a aba custom e ficará como a figura abaixo:

Esta é a página que você pode realizar qualquer customização que desejar nos comandos do intellisense do VFP com várias opções, mas vamos nos ater a uma específica: Criar bloco de comandos.
Embaixo do replace escreva FOR e depois de uma click no botão ADD e selecione o comando FOR propriamente dito e click no botão SCRIPT e logo aparecerá um campo memo para ser editado. Neste memo coloque as seguintes informações:LPARAMETER oFoxCode
oFoxcode.valuetype="V"
return "FOR T=1 to ~"+chr(13)+"ENDFOR"Salve e teste em um PRG e note que agora você customizou o comando FOR para realizar o que deseja e o cursor ficará posicionado exatamente no local onde foi inserido o símbolo (~).
Se desejar incrementar mais, pense em um pequeno wizard para o mesmo FOR:LPARAMETER oFoxCode
oFoxcode.valuetype="V"
m.lcFor="FOR T=1 to "
if Messagebox("For de uma tabela?",36,"Pergunta")=6
m.lcArquivo=getfile("Tabela:dbf")
m.lcDBF=juststem(m.lcArquivo)
m.lcFor=[if !used("]+m.lcDBF+[")]+chr(13)+chr(9)+[use "]+m.lcArquivo+[" in 0]+chr(13)+"ENDIF"+chr(13)+m.lcFor
m.lcFor=m.lcFor+[reccount("]+m.lcDBF+[")]+chr(13)
endif
m.lcFor=m.lcFor+chr(9)+"~"+chr(13)+"ENDFOR"
return m.lcForAgora veja o comportamento do comando FOR no PRG respondendo SIM ou NÃO e imagine todos os procedimentos que você pode realizar e poupar muitas e muitas horas de trabalho de codificação. Isso é Visual Fox Pro.
Se não me engano... No .NET Framework 2.0 existe um Intellisense mais inteligente chamado "CODE SNIPES" que permite da mesma forma criar templates de código.
Responder comentárioSim, existe no .NET 2005, e no Visual Fox Pro desde a versão 7.0 (se não me engano) e mesmo assim pouco usado pelos programadores que utilizam apenas o basicão do intellisense. Nesta coluna o interesse não é fazer uma analogia entre o .NET e o VFP, mas o VFP e o mercado em geral, que não possui esse tipo de ferramenta e principalmente para os programadores de Visual Fox Pro, para que a cada dias saibam o que podem fazer com essa ferramenta. Mas mesmo assim valeu a dica. Muito obrigado.
Responder comentárioo Intellisense do NetBeans também é muito bom, um exemplo disso é: se você cria uma função (public void) e leva junto a ela uma string public void (String nome){}
quando você chama a função o Intellisense da seta que a variavel q você vai ter passar primeiro é em String Ex: funcao("Rafael"); ... ótimo não?
Este artigo não deseja dizer quem é melhor nem pior, mas sim comentar exatamente o que você postou: Informar as possibilidades do código é o básico, o melhor do intellisense é criar blocos de código para realmente otimizar o processo de codificação usando sua própria linguagem nativa. Muitas linguagens (as IDES para o pessoal não pegar no meu pé :D) não implementam esta função e quando implementam muitos programadores desconhecem. Como disse o intelissense como a maioria conhece é apenas a ponta do iceberg.
Responder comentárioSalve Fabiano ! Mais um excelente artigo. Além da possibilidade de se criar scripts, o Intellisense nos mostra parâmetros e métodos para as classes que usamos. Muita gente não se aproveita disso. Este tópico está ainda muito longe do seu final... Que tal algumas continuações ? Abração! César.
Responder comentárioParabens Fabiano. Precisamos de mais e mais materias desse nível !!!
Responder comentárioOnde encontro esses modelos de scripts e suas sintaxes ? Veja que voce ensinou que o ~(til ) é onde vai ficar o cursor, e qual mais regras, sintaxes os scripts tem ?
Responder comentárioRogério,
No www.fox.wikis.com o pessoal já publicou verdadeiras jóias de scripts para Intellisense. Veja no link direto: http://fox.wikis.com/wc.dll?Wiki~IntelliSenseCustomScripts~VFP . Tb existem alguns ótimos artigos a respeito, mas sempre em inglês. O ideal é esperar pela segunda parte desta série do Fabiano, heheh
Abraços!
Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.