Desenvolvimento

14 mar, 2007

Totalmente IntelliSense

Publicidade

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.lcFor

Agora 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.