diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-21 02:23:03 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-21 02:23:03 -0600 |
commit | 9b58d35185905f8334142bf4988cb784e993aea7 (patch) | |
tree | f83ec30722464f6e4d23d6e7a40201d7ef5b6bf4 /tde-i18n-pt_BR/docs/kdebase/kate/advanced.docbook | |
download | tde-i18n-9b58d35185905f8334142bf4988cb784e993aea7.tar.gz tde-i18n-9b58d35185905f8334142bf4988cb784e993aea7.zip |
Initial import of extracted KDE i18n tarballs
Diffstat (limited to 'tde-i18n-pt_BR/docs/kdebase/kate/advanced.docbook')
-rw-r--r-- | tde-i18n-pt_BR/docs/kdebase/kate/advanced.docbook | 2324 |
1 files changed, 2324 insertions, 0 deletions
diff --git a/tde-i18n-pt_BR/docs/kdebase/kate/advanced.docbook b/tde-i18n-pt_BR/docs/kdebase/kate/advanced.docbook new file mode 100644 index 00000000000..68562d81bc6 --- /dev/null +++ b/tde-i18n-pt_BR/docs/kdebase/kate/advanced.docbook @@ -0,0 +1,2324 @@ +<chapter id="advanced-editing-tools"> +<chapterinfo> +<authorgroup> +<author +>&Anders.Lund; &Anders.Lund.mail;</author> +<author +>&Dominik.Haumann; &Dominik.Haumann.mail;</author> +<othercredit role="translator" +><firstname +>Lisiane</firstname +><surname +>Sztoltz</surname +><affiliation +><address +><email +>lisiane@conectiva.com.br</email +></address +></affiliation +><contrib +>Tradução</contrib +></othercredit +> +</authorgroup> +</chapterinfo> +<title +>Ferramentas Avançadas de Edição</title> + +<sect1 id="advanced-editing-tools-comment"> + +<title +>Comentar/Descomentar</title> + +<para +>Os comandos Comentar e Descomentar, disponíveis no menu <guimenu +>Ferramentas</guimenu +> permitem-lhe adicionar ou remover marcações de comentários à seleção ou à linha atual, se não existir texto selecionado, se os comentários são suportados pelo formato do texto que você está editando.</para> + +<para +>As regras de como o comentário é feito são feitas nas definições de sintaxe; assim, se o realce de sintaxe não é usado, as ações de comentar/descomentar não são possíveis. </para> + +<para +>Alguns formatos definem marcas de comentários para linhas únicas, outros suportam marcas de comentários para várias linhas e alguns suportam ambas. Se não estiverem disponíveis os comentários para várias linhas, o ato de comentar uma seleção que não inclui por completo a sua última linha não é possível.</para> + +<para +>Se um marcador de linha única estiver disponível, é preferível comentar linhas simples onde for aplicável, pois isto ajuda a evitar problemas com comentários aninhados.</para> + +<para +>Ao remover marcadores de comentários, textos sem comentários devem ser selecionados; ao remover marcadores de comentários de múltiplas linhas de uma seleção, qualquer espaço em branco fora do marcador é ignorado.</para> + +<para +><indexterm +><primary +>comentar</primary +></indexterm +> Para colocar marcações de comentários, use a opção do menu <menuchoice +><guimenu +>Ferramentas</guimenu +><guimenuitem +>Comentar</guimenuitem +></menuchoice +> ou o atalho de teclado relacionado, que por padrão é <keycombo action="simul" +>&Ctrl;<keycap +>D</keycap +></keycombo +>.</para> + +<para +><indexterm +><primary +>descomentar</primary +></indexterm +> Para remover marcações de comentários, use a opção do menu <menuchoice +><guimenu +>Ferramentas</guimenu +><guimenuitem +>Descomentar</guimenuitem +></menuchoice +> ou o atalho de teclado relacionado, que por padrão é o <keycombo action="simul" +>&Ctrl;&Shift;<keycap +>D</keycap +></keycombo +>.</para> + +</sect1> + +<sect1 id="advanced-editing-tools-commandline"> +<title +>A Linha de Comando do Componente de Edição</title> + +<para +>O componente de edição do Kate possui uma linha de comando interna, que lhe permite efetuar várias ações a partir de uma interface mínima. A linha de comando é um campo de texto no fundo da área de edição onde, para mostrá-la, você poderá selecionar a opção <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Alternar para Linha de Comando</guimenuitem +></menuchoice +> ou usar o atalho (que é, por padrão, o <keycombo action="simul" +><keycap +>F7</keycap +></keycombo +>). O editor oferece um conjunto de comandos, tal como está documentado abaixo, sendo oferecidos mais comandos através de 'plugins'.</para> + +<para +>Para executar um comando, pressione a tecla Return. A linha de comando irá indicar se foi bem sucedida e, provavelmente, irá mostrar uma mensagem. Se você inseriu na linha de comando pressionando <keycap +>F7</keycap +>, ele ocultar-se-á automaticamente, ao fim de alguns segundos. Para limpar a mensagem e inserir um comando novo, pressione <keycap +>F7</keycap +> de novo.</para> + +<para +>A linha de comando possui um sistema de ajuda embutido, podendo inserir o comando <command +>help</command +> para iniciá-lo. Para ver uma lista com todos os comandos disponíveis, invoque o comando <command +>help list</command +>; para ver a ajuda sobre um determinado comando, faça <command +>help <replaceable +>comando</replaceable +></command +>.</para> + +<para +>A linha de comando possui um histórico embutido, como tal, o usuário poderá reutilizar os comandos já digitados. Para navegar no histórico, use as teclas <keycap +>Cima</keycap +> e <keycap +>Baixo</keycap +>. Ao mostrar os comandos do histórico, a parte do argumento do comando será selecionada, o que lhe permite sobrepor facilmente os argumentos.</para> + +<sect2 id="advanced-editing-tools-commandline-commands"> +<title +>Comandos Padrão da Linha de Comando</title> + +<sect3 id="advanced-editing-tools-commandline-commands-configure"> +<title +>Comandos para Configurar o Editor</title> + +<para +>Estes comandos são oferecidos pelo componente do editor e permitem-lhe configurar apenas o documento e a janela ativos. Isto poderá ser útil se quiser usar uma configuração diferente da pré-definida como, por exemplo, na indentação. </para> + +<variablelist> +<title +>Tipos de argumento</title> + +<varlistentry> +<term +>BOOLEANO</term> +<listitem +><para +>Isto é usado com os comandos que ativam ou desativam certas coisa. Os valores válidos são o <userinput +>on</userinput +>, <userinput +>off</userinput +>, <userinput +>true</userinput +>, <userinput +>false</userinput +>, <userinput +>1</userinput +> ou <userinput +>0</userinput +></para +></listitem> +</varlistentry> + +<varlistentry> +<term +>INTEIRO</term> +<listitem +><para +>Um número inteiro</para +></listitem> +</varlistentry> + +<varlistentry> +<term +>TEXTO</term> +<listitem +><para +>Um texto</para +></listitem> +</varlistentry> + +</variablelist> + +<variablelist> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-tab-width</command +><arg +>INTEIRO largura</arg +></cmdsynopsis +></term> +<listitem +><para +>Configura a largura da tabulação como sendo <userinput +>largura</userinput +></para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-indent-width</command +><arg +>INTEIRO largura</arg +></cmdsynopsis +></term> +<listitem +><para +>Configura a largura da indentação como <userinput +>largura</userinput +>. Só é usado se o usuário indentar com espaços.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-word-wrap-column</command +><arg +>INTEIRO largura</arg +></cmdsynopsis +></term> +<listitem +><para +>Configura a largura da linha para uma quebra como tendo <userinput +>largura</userinput +> colunas. Isto é usado se você tiver o seu texto sendo quebrado automaticamente.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-icon-border</command +><arg +>BOOLEANO ativar</arg +> </cmdsynopsis +></term> +<listitem +><para +>Configura a visibilidade da borda dos ícones.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-folding-markers</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Configura a visibilidade da área de marcadores de dobra do código.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-line-numbers</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Configura a visibilidade da área de números de linha.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-replace-tabs</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Se estiver ativo, as tabulações são substituídas por espaços, à medida que você vai digitando. </para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-remove-trailing-space</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Se estiver ativo, os espaços finais serão removidos quando o cursor abandonar uma determinada linha.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-show-tabs</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Se estiver ativo, os caracteres de tabulação e espaços estarão visíveis através de um pequeno ponto.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-indent-spaces</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Se estiver ativo, o editor irá indentar com <option +>largura-indentação</option +> espaços por cada nível de indentação, em vez de usar o caracter TAB.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-mixed-indent</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Se estiver ativo, o &kate; irá usar uma mistura de TABs e espaços para a indentação. Cada nível de indentação irá ter um tamanho de <option +>largura-indentação</option +>, enquanto os restantes níveis de indentação serão otimizados para usar tantos caracteres TAB quantos possíveis.</para> +<para +>Quando for executado, este comando irá ativar a indentação com espaços e, se a largura de indentação não estiver definida, corresponderá a metade da <option +>largura-tabulação</option +> do documento, no momento da execução.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-word-wrap</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Ativa a quebra de linha dinâmica, de acordo com o parâmetro <userinput +>ativar</userinput +></para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-replace-tabs-save</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Quando estiver ativo, as tabulações serão substituídas por espaços em branco, sempre que o documento for salvo.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-remove-trailing-space-save</command +><arg +>BOOLEANO ativar</arg +></cmdsynopsis +></term> +<listitem +><para +>Quando estiver ativo, os espaços finais serão removidos de cada linha, sempre que o documento for salvo.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-indent-mode</command +><arg +>nome</arg +></cmdsynopsis +></term> +<listitem +><para +>Configura o modo de indentação automática como <userinput +>nome</userinput +>. Se o <userinput +>nome</userinput +> não for conhecido, o modo é configurado como 'none' (nenhum). Os modos válidos são o 'cstyle', 'csands', 'xml', 'python', 'varindent' e 'none'.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>set-highlight</command +><arg +>realce</arg +></cmdsynopsis +></term> +<listitem +><para +>Configura o sistema de realce de sintaxe para o documento. O argumento deverá ser um nome de realce válido, como pode ser visto no menu <menuchoice +><guimenu +>Ferramentas</guimenu +><guisubmenu +>Realce</guisubmenu +></menuchoice +>. Este comando oferece uma lista de completação automática para o seu argumento.</para +></listitem> +</varlistentry> + +</variablelist> + +</sect3> + +<sect3 id="advanced-editing-tools-commandline-commands-edit"> +<title +>Comandos de edição</title> + +<para +>Estes comandos modificam o documento atual.</para> + +<variablelist> +<varlistentry> +<term +><cmdsynopsis +><command +>indent</command +></cmdsynopsis +></term> +<listitem +><para +>Indenta as linhas selecionadas ou a linha atual.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>unindent</command +></cmdsynopsis +></term> +<listitem +><para +>Remove um nível de indentação das linhas selecionadas ou da linha atual.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>cleanindent</command +></cmdsynopsis +></term> +<listitem +><para +>Limpa a indentação das linhas selecionadas ou da linha atual, de acordo com a configuração de indentação no documento. </para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>comment</command +></cmdsynopsis +></term> +<listitem +><para +>Insere marcações de comentários para fazer da seleção, linhas selecionadas ou da linha atual um comentário, de acordo com o formato de texto definido pela definição do realce de sintaxe para o documento.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>uncomment</command +></cmdsynopsis +></term> +<listitem +><para +>Remove os marcadores de comentários da seleção, linhas selecionadas ou da linha atual, de acordo com o formato de texto definido pela definição do realce de sintaxe do documento.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>kill-line</command +></cmdsynopsis +></term> +<listitem +><para +>Remove a linha atual.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>replace</command +><arg +>padrão</arg +><arg +>substituição</arg +></cmdsynopsis +></term> +<listitem +><para +>Substitui o texto correspondente ao <userinput +>padrão</userinput +> por <userinput +>substituição</userinput +>. Se você quiser incluir espaços em branco no <userinput +>padrão</userinput +>, deverá colocar tanto o <userinput +>padrão</userinput +> como a <userinput +>substituição</userinput +> entre aspas simples ou duplas. Se os argumentos não estiverem entre estes caracteres, a primeira palavra é usada como <userinput +>padrão</userinput +> e o resto como a <userinput +>substituição</userinput +>. Se a <userinput +>substituição</userinput +> estiver em branco, cada ocorrência do <userinput +>padrão</userinput +> será removida.</para> +<para +>Você poderá configurar opções para modificar a procura, adicionando dois pontos (:), seguidos de uma ou mais letras, onde cada uma representa uma configuração, o que corresponderá ao formato <userinput +>replace:opções padrão substituição</userinput +>. As opções disponíveis são: <variablelist> + +<varlistentry> +<term +><userinput +>b</userinput +></term> +<listitem +><para +>Procura para trás.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>c</userinput +></term> +<listitem +><para +>Procura a partir da posição do cursor.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>e</userinput +></term> +<listitem +><para +>Procura apenas na área selecionada.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>r</userinput +></term> +<listitem +><para +>Faz uma pesquisa por uma determinada expressão regular. Se estiver ativo, você poderá usar o <userinput +>\N</userinput +>, onde o N é um número que representa as capturas no texto de substituição.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>s</userinput +></term> +<listitem +><para +>Faz uma pesquisa com distinção entre maiúsculas e minúsculas.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>p</userinput +></term> +<listitem +><para +>Pede permissão para substituir a próxima ocorrência.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>w</userinput +></term> +<listitem +><para +>Faz uma correspondência apenas com palavras inteiras.</para +></listitem> +</varlistentry> + +</variablelist> + +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>date</command +><arg +>formato</arg +></cmdsynopsis +></term> +<listitem +><para +>Insere um texto de data/hora, tal como está definido pelo <userinput +>formato</userinput +> indicado, ou com o formato <quote +>aaaa-MM-dd hh:mm:ss</quote +>, se não for indicada qualquer formatação. As traduções a seguir são feitas quando for interpretado o <userinput +>formato</userinput +>: <informaltable +> <tgroup cols="2" +> <tbody> +<row +><entry +><literal +>d</literal +></entry +><entry +>O dia, como um número sem um zero inicial (1-31).</entry +></row> +<row +><entry +><literal +>dd</literal +></entry +><entry +>O dia, como um número com um zero inicial (01-31).</entry +></row> +<row +><entry +><literal +>ddd</literal +></entry +><entry +>O nome do dia abreviado, no formato regional (p.ex. 'Seg'..'Dom').</entry +></row> +<row +><entry +><literal +>dddd</literal +></entry +><entry +>O nome do dia completo, no formato regional (p.ex. 'Segunda'..'Domingo').</entry +></row> +<row +><entry +><literal +>M</literal +></entry +><entry +>O mês, como um número sem um zero inicial (1-12).</entry +></row> +<row +><entry +><literal +>MM</literal +></entry +><entry +>O mês, como um número com um zero inicial (01-12).</entry +></row> +<row +><entry +><literal +>MMM</literal +></entry +><entry +>O nome do mês abreviado, no formato regional (p.ex. 'Jan'..'Dez').</entry +></row> +<row +><entry +><literal +>aa</literal +></entry +><entry +>O ano, como um número de dois algarismos (00-99).</entry +></row> +<row +><entry +><literal +>aaaa</literal +></entry +><entry +>O ano, como um número de quatro algarismos (1752-8000).</entry +></row> +<row +><entry +><literal +>h</literal +></entry +><entry +>As horas sem um zero inicial (0..23 ou 1..12 no caso do formato AM/PM).</entry +></row> +<row +><entry +><literal +>hh</literal +></entry +><entry +>As horas com um zero inicial (00..23 ou 01..12 no caso do formato AM/PM).</entry +></row> +<row +><entry +><literal +>m</literal +></entry +><entry +>Os minutos sem um zero inicial (0..59).</entry +></row> +<row +><entry +><literal +>mm</literal +></entry +><entry +>Os minutos com um zero inicial (00..59).</entry +></row> +<row +><entry +><literal +>s</literal +></entry +><entry +>Os segundos sem um zero inicial (0..59).</entry +></row> +<row +><entry +><literal +>ss</literal +></entry +><entry +>Os minutos com um zero inicial (00..59).</entry +></row> +<row +><entry +><literal +>z</literal +></entry +><entry +>Os milisegundos sem um zero inicial (0..999).</entry +></row> +<row +><entry +><literal +>zzz</literal +></entry +><entry +>Os milisegundos com zeros iniciais (000..999).</entry +></row> +<row +><entry +><literal +>AP</literal +></entry +><entry +>Usar o formato de horas AM/PM. O AP será substituído por "AM" ou por "PM".</entry +></row> +<row +><entry +><literal +>ap</literal +></entry +><entry +>Usar o formato de horas am/pm. O ap será substituído por "am" ou por "pm".</entry +></row> + +</tbody> +</tgroup> +</informaltable> + +</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>char</command +><arg +>identificador</arg +></cmdsynopsis +></term> +<listitem> +<para +>Este comando permite que você insira caracteres literais através de suas identificações numéricas, em decimal, octal ou hexadecimal. Para usá-lo, abra o diálogo de Edição de Comando e digite <userinput +>char: [número]</userinput +> na caixa de entrada e clique em <guibutton +>OK</guibutton +>.</para> + +<example> +<title +>exemplos do comando <command +>char</command +></title> + +<para +>Entrada: <userinput +>char:234</userinput +></para> +<para +>Resultado: <computeroutput +>ê</computeroutput +></para> +<para +>Entrada: <userinput +>char:0x1234</userinput +></para> +<para +>Resultado: <computeroutput +>ሴ</computeroutput +></para> +</example> + +</listitem> +</varlistentry> + +<varlistentry> +<term> +<indexterm +><primary +>substituir no estilo sed</primary> +<secondary +>procurar no estilo sed</secondary +></indexterm> +<command +>s///[ig]</command +> <command +>%s///[ig]</command +></term> + +<listitem> +<para +>Este comando faz um sed como operação de procura/substituição na linha atual, ou em um arquivo inteiro (<command +>%s///</command +>).</para> + +<para +>Em resumo, é procurado o texto que combine com o <emphasis +>padrão de busca </emphasis +>, a expressão regular entre a primeira e a segunda barra, e quando é encontrado, a parte que combina com o texto é substituída pela expressão entre a metade e a última parte da string. Os parênteses no padrão de busca criam <emphasis +>referências anteriores</emphasis +>, isto é, o comando lembra qual parte procurada combinou no parênteses; estas strings podem ser reutilizadas no padrão de substituição, referidas como <userinput +>\1</userinput +> para o primeiro conjunto de parênteses, <userinput +>\2</userinput +> para o segundo e assim por diante.</para> + +<para +>Para procurar por um caractere literal <literal +>(</literal +> ou <literal +>)</literal +>, você precisa usar o caractere de <emphasis +>escape</emphasis +>, que é o caractere de barra invertida: <userinput +>\(\)</userinput +></para> + +<para +>Se você puser um <userinput +>i</userinput +> no fim da expressão, a correspondência não fará distinção entre maiúsculas ou minúsculas. Se, por outro lado, puser um <userinput +>g</userinput +> no fim, todas as ocorrências do padrão serão substituídas, caso contrário, só será substituída a primeira ocorrência.</para> + +<example> + +<title +>Substituindo texto na linha atual</title> + +<para +>Seu compilador parou, dizendo a você que a classe <classname +> minhaClasse</classname +>, mencionada na linha 3902 do seu arquivo fonte, não está definida.</para> + +<para +>"Droga!" você pensa, é claro que é <classname +>MinhaClasse</classname +>. Você vai para a linha 3902, e em vez de tentar encontrar a palavra no texto, você lança o Diálogo de Edição de Comando, digita <userinput +>s/minhaclasse/MinhaClasse/i</userinput +>, clica no botão <guibutton +>OK</guibutton +>, salva o arquivo e compila – com sucesso, sem erros.</para> + +</example> + +<example> +<title +>Substituindo texto no arquivo inteiro</title> + +<para +>Imagine que você tem um arquivo, onde está mencionado a string <quote +>Senhorita Jensen</quote +> várias vezes, quando alguém vem e lhe diz que ela casou com o <quote +>Senhor Jones</quote +>. Você quer, é claro, substituir toda ocorrência de <quote +>Senhorita Jensen</quote +> por <quote +>Senhora Jones</quote +>.</para> + +<para +>Entre na linha de comando e digite o comando <userinput +>%s/Srª Silva/Srª Braga/</userinput +>, pressionando RETURN para terminar.</para> + +</example> + +<example> +<title +>Um Exemplo Mais Avançado</title> + +<para +>Este exemplo tira partido das <emphasis +>referências anteriores</emphasis +> assim como das <emphasis +>classes de palavras</emphasis +> (se você não souber o que isso é, baseie-se na documentação referida abaixo).</para> + +<para +>Suponha que você possui a seguinte linha: <programlisting +>void MinhaClasse::DoStringOps( String &foo, String &bar String *p, int &a, int &b )</programlisting> +</para> +<para +>Agora, você pode perceber que este não é um código bom, e decidir que deseja usar a palavra-chave <constant +>const</constant +> para todos os argumentos <quote +>address of</quote +>, aqueles caracterizados pelo operador & em frente ao nome do argumento. Você poderia também simplificar o espaço em branco, pois assim existiria somente um caractere de espaço em branco entre cada palavra.</para> + +<para +>Abra o Diálogo de Edição de Comando, e digite <userinput +>s/\s+(\w+)\s+(&)/ const \1 \2/g</userinput +> e clique no botão <guibutton +>OK</guibutton +>. O caractere <userinput +>g</userinput +> no final da expressão faz com que a expressão regular recompile cada combinação, para recuperar as <emphasis +>referências de volta</emphasis +>.</para> + +<para +>Saída <computeroutput +>void MinhaClasse::DoStringOps( const String &foo, const String &bar String *p, const int &a, const int &b )</computeroutput +></para> + +<para +>Missão completa! Agora, o que aconteceu? Bem, procuramos por espaços em branco (<literal +>\s+</literal +>) seguidos por um ou mais caracteres alfabéticos(<literal +>\w+</literal +>) seguidos por mais espaços em branco (<literal +>\s+</literal +>) seguidos por um E comercial, e no processo é salvo o pedaço alfabético e o E comercial para reutilização na operação de substituição. Quando substituímos a parte relacionada da nossa linha, com um espaço em branco, seguido por <quote +>const</quote +>, seguido por um espaço em branco, seguido por nosso pedaço alfabético (<literal +>\1</literal +>) seguido por um espaço em branco, em por fim, seguido por nosso E comercial salvo (<literal +>\2</literal +>)</para> + +<para +>Em alguns casos, a parte alfabética foi <quote +>String</quote +>, em alguns <quote +>int</quote +>, assim, usar a classe de caractere <literal +>\w</literal +> e o quantificador <literal +>+</literal +> provê uma vantagem considerável.</para> + +</example> + +</listitem> + +</varlistentry> + +</variablelist> + +</sect3> + +<sect3 id="advanced-editing-tools-commandline-commands-navigation"> +<title +>Comandos de navegação</title> + +<variablelist> + +<varlistentry> +<term +><cmdsynopsis +><command +>goto</command +><arg +>INT linha</arg +></cmdsynopsis +></term> +<listitem +><para +>Este comando vai para a linha indicada.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>find</command +><arg +>padrão</arg +></cmdsynopsis +></term> +<listitem +><para +>Este comando vai para a primeira ocorrência do <userinput +>padrão</userinput +>, de acordo com a configuração. As ocorrências a seguir poderão ser encontradas com a opção <menuchoice +><guimenu +>Editar</guimenu +><guimenuitem +>Procurar Próximo</guimenuitem +></menuchoice +> (o atalho por padrão é o <keycap +>F3</keycap +>).</para> +<para +>O comando de procura poderá ser configurado adicionando dois-pontos, seguidos de uma ou mais opções, sendo o formato <userinput +>find:opções padrão</userinput +>. São suportadas as seguintes opções: <variablelist> + +<varlistentry> +<term +><userinput +>b</userinput +></term> +<listitem +><para +>Procura para trás.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>c</userinput +></term> +<listitem +><para +>Procura a partir da posição do cursor.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>e</userinput +></term> +<listitem +><para +>Procura apenas na área selecionada.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>r</userinput +></term> +<listitem +><para +>Faz uma pesquisa por uma determinada expressão regular. Se estiver ativo, você poderá usar o <userinput +>\N</userinput +>, onde o N é um número que representa as capturas no texto de substituição.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>s</userinput +></term> +<listitem +><para +>Faz uma pesquisa com distinção entre maiúsculas e minúsculas.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>w</userinput +></term> +<listitem +><para +>Faz uma correspondência apenas com palavras inteiras.</para +></listitem> +</varlistentry> + +</variablelist> + +</para> + +</listitem> + +</varlistentry> + +<varlistentry> +<term +><cmdsynopsis +><command +>ifind</command +><arg +>padrão</arg +></cmdsynopsis +></term> +<listitem +><para +>Este comando oferece uma procura <quote +>à-medida-que-digita</quote +>. Você poderá configurar o comportamento da procura adicionando dois-pontos (:), seguidos de uma ou mais opções, como se segue: <userinput +>ifind:opções padrão</userinput +>. As opções permitidas são <variablelist> +<varlistentry> +<term +><userinput +>b</userinput +></term> +<listitem +><para +>Procura para trás.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>r</userinput +></term> +<listitem +><para +>Faz uma procura por uma expressão regular.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>s</userinput +></term> +<listitem +><para +>Faz uma pesquisa com distinção entre maiúsculas e minúsculas.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><userinput +>c</userinput +></term> +<listitem +><para +>Procura a partir da posição do cursor.</para +></listitem> +</varlistentry> + +</variablelist> +</para +></listitem> +</varlistentry> + +</variablelist> + +</sect3> + +</sect2> + +</sect1> + +<sect1 id="advanced-editing-tools-code-folding"> +<title +>Usando o Desdobramento de Código</title> + +<para +>O desdobramento ou dobragem de código permite-lhe ocultar partes de um documento no editor, tornando mais simples analisar globalmente arquivos grandes. No &kate;, as regiões desdobráveis são calculadas com base nas regras das definições de realce de sintaxe; como tal só está disponível em alguns formatos - tipicamente em código-fonte de programas, código em XML e semelhantes. A maioria das definições de realce que suportam o desdobramento de código também lhe permitem definir manualmente regiões desdobráveis, tipicamente com as palavras-chave <userinput +>BEGIN</userinput +> e <userinput +>END</userinput +>.</para> + +<para +>Para usar a funcionalidade de desdobramento de código, ative os marcadores com a opção <menuchoice +><guimenu +>Ver</guimenu +><guimenuitem +>Mostrar as Marcações de Dobragem</guimenuitem +></menuchoice +>, se não estiverem já visíveis. A área de Marcações de Dobragem, no lado esquerdo da tela, mostra uma visão gráfica sobre as regiões que poderão ser recolhidas ou expandidas, com símbolos +/- para indicar a operação possível numa determinada região: um '-' significa que a região é expandida; enquanto clicar no '-' irá recolher a região, clicar no '+' irá exibí-la.</para> + +<para +>Estão disponíveis quatro comandos para manipular o estado das regiões dobradas; para tal, veja a <link linkend="view-code-folding" +>documentação do menu</link +>. </para> + +<para +>Se você não quiser usar a funcionalidade de desdobramento do código, poderá desativar a opção <guilabel +>Mostrar as marcações de dobragem (se disponíveis)</guilabel +> na <link linkend="config-dialog-editor-appearance" +>página de Aparência da configuração do editor</link +></para> + +</sect1> + +<sect1 id="advanced-editing-tools-scripting"> + +<title +>Programando o componente do editor com Javascript</title> + +<sect2 id="advanced-editing-tools-scripting-introduction"> + +<title +>Introdução</title> + +<para +>Desde a versão 2.5, o componente de edição do &kate; suporta a programação em ECMA Script, também conhecido como JavaScript.</para> + +<para +>Os programas só poderão ser usados através da <link linkend="advanced-editing-tools-commandline" +>linha de comando embutida</link +>. Os requisitos são que o arquivo esteja colocado numa pasta em que o &kate; o consiga encontrar, em conjunto com um arquivo .desktop opcional que define as propriedades relacionadas. Algumas pastas válidas são a <filename +>katepart/scripts</filename +> nas pastas de dados do &kde;. Você poderá encontrar as pastas de dados executando o comando <command +>kde-config <option +>--path</option +> <parameter +>data</parameter +></command +> Você terá pelo menos uma pasta do sistema e uma pessoal. Claro que os programas na pasta de dados do sistema estão disponíveis para todos os usuários do sistema, enquanto os das pastas pessoais só estão disponíveis para o respectivo usuário.</para> + +<note +><para +>Esta funcionalidade é experimental e poderá vir a mudar durante os desenvolvimentos futuros.</para> +<para +>Sabemos que muitos usuários poderão ficar desapontados, uma vez que não poderão adicionar os seus programas ao menu ou atribuir atalhos a eles. Infelizmente, só no futuro provavelmente isso será possível.</para> +<para +>Também não é possível passar argumentos aos seus programas ainda. Tenha paciência, que isso será implementado em breve no futuro ;)</para> +</note> + +</sect2> + +<sect2 id="advanced-editing-tools-scripting-reference"> + +<title +>A API de JavaScript do Kate</title> + +<para +>Aqui está listado o conjunto completo de funções e propriedades disponíveis nos objetos <type +>document</type +> e <type +>view</type +>. Além disso, você poderá também usar todos os objetos-padrão, como o <type +>Math</type +>, o <type +>String</type +>, o <type +>Regex</type +> e assim por diante.</para> + +<para +>Quando um programa é executado, o objeto <classname +>document</classname +> é o documento atual, enquanto o <classname +>view</classname +> é a janela atual.</para> + +<note +><para +>Os tipos dos argumentos não são, obviamente, usados no JavaScript neste momento, servindo apenas para indicar que tipo de valor as funções estão esperando.</para +></note> + +<variablelist id="advanced-editing-tools-scripting-global"> +<title +>Funções Globais</title> +<varlistentry> +<term +><function +>debug( <parameter +><replaceable +>texto</replaceable +></parameter +>) [função]</function +></term> +<listitem> +<itemizedlist> +<title +>parâmetros</title> +<listitem +><para +><parameter +>texto</parameter +> a mensagem a exibir</para> +</listitem> +</itemizedlist> +<para +>Envia o texto para o <acronym +>STDERR</acronym +> com o <function +>kdDebug()</function +>. É usada uma área de saída dedicada para o texto, o qual será antecedido de <computeroutput +>Kate (KJS Scripts):</computeroutput +> </para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist id="advanced-editing-tools-scripting-document"> +<title +>A API do <classname +>document</classname +></title> + +<varlistentry> +<term +><function +>document.attribute( <parameter +><replaceable +>linha</replaceable +> </parameter +>, <parameter +><replaceable +>coluna</replaceable +></parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>uint linha</parameter +> A linha da posição onde encontrar o atributo.</para +></listitem> +<listitem +><para +><parameter +>uint coluna</parameter +> A coluna da posição onde encontrar o atributo.</para +></listitem> +</itemizedlist> +<para +>Devolve o ID numérico do atributo para a posição do documento [<parameter +>linha</parameter +>,<parameter +>coluna</parameter +>]. O atributo representa a aparência ou estilo visual do texto, e é usado também para calcular o realce de sintaxe para uma parte específica do texto, em formatos mixtos como o HTML ou o PHP.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.canBreakAt( <parameter +>Char c</parameter +>, <parameter +>uint atributo</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>c</parameter +> O caracter a testar</para +></listitem> +<listitem +><para +><parameter +>atributo</parameter +> O atributo na posição do <parameter +>c</parameter +>.</para +></listitem> +</itemizedlist> +<para +>Devolve se é permitido quebrar a linha num caracter 'c' com o atributo 'atributo'. O resultado é decidido através da pesquisa do realce que contém o atributo, para o qual os caracteres permitem a quebra de linha.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.canComment( <parameter +>uint atributo_inicio</parameter +>, <parameter +>uint atributo_fim</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>atributo_inicio</parameter +> O atributo no início do intervalo para converter num comentário.</para +></listitem> +<listitem +><para +><parameter +>atributo_fim</parameter +> O atributo no fim do intervalo para converter num comentário.</para +></listitem> +</itemizedlist> +<para +>Devolve se o atributo_inicio e o atributo_fim pertencem ao mesmo sistema de realce de sintaxe. Se sim, é seguro. </para> +<example> +<title +>Usando o canComment</title> +<programlisting +>if ( document.canComment( document.attribute(1,0), document.attribute(5,0) ) ) { + // o 1,0 e o 5,0 pertencem ao mesmo sistema de realce de sintaxe +} +</programlisting> +</example> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.clear(); [função]</function +></term> +<listitem +><para +>Limpa o documento.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.commentStart( <parameter +>uint atributo</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>atributo</parameter +> O atributo do texto para qual deseja obter o texto do 'commentStart'.</para +></listitem> +</itemizedlist> +<para +>Devolve o texto necessário para iniciar um comentário para várias linhas com um texto e um atributo, ou um texto vazio se não forem suportados comentários em várias linhas para esse texto.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.commentMarker( <parameter +>uint atributo</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>atributo</parameter +> O atributo do texto para o qual deseja obter o texto do 'commentMarker'</para +></listitem> +</itemizedlist> +<para +>Devolve o texto necessário para marcar o resto da linha como um comentário com um texto e um atributo, ou um texto vazio se não forem suportados comentários numa única linha para esse texto.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.commentEnd( <parameter +>uint atributo</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>atributo</parameter +> O atributo do texto para o qual deseja obter o texto do 'commentEnd'</para +></listitem> +</itemizedlist> +<para +>Devolve o texto necessário para terminar um comentário para várias linhas com um texto e um atributo, ou um texto vazio se não forem suportados comentários em várias linhas para esse texto.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.editBegin(); [função]</function +></term> +<listitem> +<para +>Inicia um grupo de edição. Todas as ações feitas até à chamada do editEnd() serão agrupadas como uma ação anulável.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.editEnd(); [função]</function +></term> +<listitem> +<para +>Termina um grupo de edição.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.highlightMode; [propriedade:apenas leitura]</function +></term> +<listitem> +<para +>O nome do modo de realce do documento, como por exemplo JavaScript ou C++. Se não estiver definido qualquer modo de realce de sintaxe, o valor é igual a None. Lembre-se que terá de usar o nome em Inglês, no caso de ser diferente da versão traduzida.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.indentMode; [propriedade:apenas leitura]</function +></term> +<listitem> +<para +>O nome do modo de indentação do documento, como por exemplo <literal +>normal</literal +> ou <literal +>cstyle</literal +>. Lembre-se que, se não estiver definido qualquer modo de indentação, o valor é igual a <literal +>none</literal +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.indentWidth; [propriedade:apenas leitura]</function +></term> +<listitem> +<para +>A largura da indentação do documento. Isto é usado se você indentar com espaços.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.insertLine( <parameter +>uint linha</parameter +>, <parameter +>string texto</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>linha</parameter +> número de linha do documento</para> +</listitem> +<listitem +><para +><parameter +>texto</parameter +> o texto a inserir</para +></listitem> +</itemizedlist> +<para +>Insere uma linha nova com o texto <parameter +>texto</parameter +> na linha <parameter +>linha</parameter +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.insertText( <parameter +>uint linha</parameter +>, <parameter +>uint coluna</parameter +>, <parameter +>string texto</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>linha</parameter +> o número de linha</para +></listitem> +<listitem +><para +><parameter +>coluna</parameter +> o número da coluna</para +></listitem> +<listitem +><para +><parameter +>texto</parameter +> o texto a inserir</para +></listitem> +</itemizedlist> +<para +>Insere o texto <parameter +>texto</parameter +> na linha <parameter +>linha</parameter +> e coluna <parameter +>coluna</parameter +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>document.length(); [função]</term> +<listitem> +<para +>Devolve o tamanho do documento em 'bytes'.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.lines(); [função]</function +></term> +<listitem> +<para +>Devolve o número de linhas do documento.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>document.mixedIndent; [propriedade:apenas leitura]</term> +<listitem> +<para +>Um booleano que lhe diz se a opção 'mixed-indent' está ativa para o documento. Se sim, a indentação é otimizada para conter uma mistura de tabulações e espaços, como acontece no editor Emacs.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>document.removeLine( <parameter +>uint linha</parameter +> ); [função]</term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>linha</parameter +> o número de linha</para +></listitem> +</itemizedlist> +<para +>Remove a linha especificada do documento.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.removeText( <parameter +>uint linhaInicial</parameter +>, <parameter +>colunaInicial</parameter +>, <parameter +>uint linhaFinal</parameter +>, <parameter +>uint colunaFinal</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>linhaInicial</parameter +> corresponde à linha inicial</para +></listitem> +<listitem +><para +><parameter +>colunaInicial</parameter +> corresponde à coluna inicial</para +></listitem> +<listitem +><para +><parameter +>linhaFinal</parameter +> corresponde à linha final</para +></listitem> +<listitem +><para +><parameter +>colunaFinal</parameter +> corresponde à coluna final</para +></listitem> +</itemizedlist> +<para +>Remove o intervalo de texto da linha <parameter +>linhaInicial</parameter +> e coluna <parameter +>colunaInicial</parameter +> até à linha <parameter +>linhaFinal</parameter +> e coluna <parameter +>colunaFinal</parameter +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.setText( <parameter +>string texto</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>texto</parameter +> o texto do documento</para +></listitem> +</itemizedlist> +<para +>Configura o conteúdo inteiro do documento como <parameter +>texto</parameter +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.spaceIndent; [propriedade:apenas leitura]</function +></term> +<listitem> +<para +>Um booleano que indica se o 'space-indent' está ativo para o documento. Se for o caso, o documento é indentado com larguraIndentacao espaços por nível, caso contrário, a indentação corresponde a uma tabulação por nível.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.textFull(); [função]</function +></term> +<listitem> +<para +>Devolve o conteúdo completo do documento. Se o texto se espalhar por várias linhas, o carácter de mudança de linha é o <constant +>\n</constant +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.textLine( uint linha ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>linha</parameter +> a linha</para +></listitem> +</itemizedlist> +<para +>Devolve o texto da linha <parameter +>linha</parameter +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>document.textRange( <parameter +>uint linhaInicial</parameter +>, <parameter +>uint colunaInicial</parameter +>, <parameter +>uint linhaFinal</parameter +>, <parameter +>uint colunaFinal</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>linhaInicial</parameter +> corresponde à linha inicial</para +></listitem> +<listitem +><para +><parameter +>colunaInicial</parameter +> corresponde à coluna inicial</para +></listitem> +<listitem +><para +><parameter +>linhaFinal</parameter +> corresponde à linha final</para> +</listitem> +<listitem +><para +><parameter +>colunaFinal</parameter +> corresponde à coluna final</para +></listitem> +</itemizedlist> +<para +>Devolve o intervalo de texto indicado. Se o intervalo se espalhar por várias linhas, o caracter de mudança de linha é o <constant +>\n</constant +>.</para> +</listitem> +</varlistentry> + +</variablelist +><!--/ document API --> + +<variablelist id="advanced-editing-tools-scripting-view"> +<title +>A API do <classname +>view</classname +></title> + +<varlistentry> +<term +><function +>view.clearSelection(); [função]</function +></term> +<listitem> +<para +>Remove a seleção de todo o texto.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.cursorColumn(); [função]</function +></term> +<listitem> +<para +>Devolve a coluna atual do cursor (os caracteres TAB são expandidos).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.cursorColumnReal(); [função]</function +></term> +<listitem> +<para +>Devolve a coluna real do cursor (os caracteres TAB contam como um).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.cursorLine(); [função]</function +></term> +<listitem> +<para +>Devolve a linha atual do cursor.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.hasSelection(); [função]</function +></term> +<listitem> +<para +>Devolve <constant +>true</constant +> (verdadeiro) se a janela contiver algum texto selecionado, caso contrário devolve <constant +>false</constant +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.removeSelectedText(); [função]</function +></term> +<listitem> +<para +>Remove o texto selecionado, se a janela tiver alguma seleção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.selectAll(); [função]</function +></term> +<listitem> +<para +>Seleciona todo o texto.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.selection(); [função]</function +></term> +<listitem> +<para +>Devolve o texto selecionado. Se a seleção se espalhar por várias linhas, o caracter de mudança de linha é o <constant +>\n</constant +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.selectionEndColumn; [propriedade:apenas leitura]</function +></term> +<listitem> +<para +>Devolve a coluna final da seleção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.selectionEndLine; [propriedade:apenas leitura]</function +></term> +<listitem> +<para +>Devolve a linha final da seleção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.selectionStartColumn; [propriedade:apenas leitura]</function +></term> +<listitem> +<para +>Devolve a coluna inicial da seleção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.selectionStartLine; [propriedade:apenas leitura]</function +></term> +<listitem> +<para +>Devolve a linha inicial da seleção.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.setCursorPosition( <parameter +>uint linha</parameter +>, <parameter +>uint coluna</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>linha</parameter +> Indica a linha para o cursor.</para +></listitem> +<listitem +><para +><parameter +>coluna</parameter +> Indica a coluna para o cursor.</para +></listitem> +</itemizedlist> +<para +>Configura a posição atual do cursor na janela como sendo [<parameter +>linha</parameter +>, <parameter +>col</parameter +>]. A posição do cursor é a nível visual, isto é, um caracter TAB conta como <replaceable +>tab-width</replaceable +> espaços, dependendo da posição dentro da linha. A posição do cursor é tornada visível. Tanto a linha como a coluna começam em zero.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.setCursorPositionReal( <parameter +>uint linha</parameter +>, <parameter +>uint coluna</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>linha</parameter +> Indica a linha para o cursor.</para +></listitem> +<listitem +><para +><parameter +>coluna</parameter +> Indica a coluna para o cursor.</para +></listitem> +</itemizedlist> +<para +>Configura a posição atual do cursor na janela como sendo [<parameter +>linha</parameter +>, <parameter +>col</parameter +>]. A posição do cursor é a nível do texto, isto é, um caracter TAB conta como 1. A posição do cursor é tornada visível. Tanto a linha como a coluna começam em zero.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>view.setSelection( <parameter +>uint linhaInicial</parameter +>, <parameter +>uint colunaInicial</parameter +>, <parameter +>uint linhaFinal</parameter +>, <parameter +>uint colunaFinal</parameter +> ); [função]</function +></term> +<listitem> +<itemizedlist> +<title +>Parâmetros</title> +<listitem +><para +><parameter +>linhaInicial</parameter +> corresponde à linha inicial</para +></listitem> +<listitem +><para +><parameter +>colunaInicial</parameter +> corresponde à coluna inicial</para +></listitem> +<listitem +><para +><parameter +>linhaFinal</parameter +> corresponde à linha final</para +></listitem> +<listitem +><para +><parameter +>colunaFinal</parameter +> corresponde à coluna final</para +></listitem> +</itemizedlist> +<para +>Configura a seleção desde a linha <parameter +>linhaInicial</parameter +> e coluna <parameter +>colunaInicial</parameter +> até à linha <parameter +>linhaFinal</parameter +> e coluna <parameter +>colunaFinal</parameter +>.</para> +</listitem> +</varlistentry> + +</variablelist> + +<example id="advanced-editing-tools-scripting-example"> + +<title +>Um programa de exemplo</title> +<para +>Como exemplo, será criado um pequeno programa que converte o texto selecionado para maiúsculas. É óbvio que se deverá ver primeiro se existe texto selecionado, para que se possa obter o texto, mudar a capitalização e depois substituir pelo novo. Uma implementação possível seria do género:</para> + +<programlisting +>if ( view.hasSelection() ) +{ + // seleção para maiúsculas + column = view.selectionStartColumn; + line = view.selectionStartLine; + + selection = view.selection().toUpperCase(); + + document.editBegin(); + view.removeSelectedText(); + document.insertText( line, column, selection ); + document.editEnd(); +} +</programlisting> + +<para +>Para agrupar esta ação em conjunto, para que possam ser anuladas com uma única ativação do <guimenuitem +>Desfazer</guimenuitem +>, as linhas <programlisting +>view.removeSelectedText()</programlisting +> e <programlisting +>document.insertText()</programlisting +> são encapsuladas com um <programlisting +>document.editBegin()</programlisting +> e <programlisting +>document.editEnd()</programlisting +>.</para> + +</example> + +<example id="advanced-editing-tools-desktop-example"> +<title +>Um arquivo <filename +>.desktop</filename +> de exemplo</title> + +<para +>Aqui está um arquivo .desktop de exemplo que acompanha o programa acima.</para> + +<programlisting +># Exemplo de um arquivo .desktop +[Desktop Entry] +Encoding=UTF-8 +Name=Kate Part JavaScript Uppercase +Comment=Script to uppercase the selection +X-Kate-Command=uppercase-selection +X-Kate-Help=<p>Usage: <code>uppercase-selection</code></p> +</programlisting> + +<para +>Como você pode ver, você pode definir a codificação, definir um nome, comentário, um texto de ajuda com o X-Kate-Help e o nome da linha de comando com o X-Kate-Command. Os itens Name, Comment e X-Kate-Help são traduzidos automaticamente para outros idiomas pelas equipes de traduções do KDE, se os arquivos estiverem no repositório de SVN do KDE.</para> + +</example> + +<sect3> +<title +>Colocando tudo junto</title> + +<para +>O &kate; irá procurar nas pastas de programas (ver <link linkend="advanced-editing-tools-scripting-introduction" +>acima</link +>) por arquivos <filename +>*.js</filename +>. Para cada um deles, verifica se existe um arquivo <filename +>.desktop</filename +> correspondente, como por exemplo, maiusculas.js corresponderia a maiusculas.desktop. </para> +<para +>Se não for encontrado um arquivo <filename +>.desktop</filename +>, o programa será registrado na linha de comando com o nome do arquivo sem o '.js' final, para que, no nosso exemplo, fosse <literal +>maiusculas</literal +>. Se o nome do comando for aceitável e não necessitar de funcionalidades extras de um arquivo <filename +>.desktop</filename +>, não será necessário um arquivo <filename +>.desktop</filename +>. </para> +<para +>Se o arquivo <filename +>.desktop</filename +> existir, o 'katepart' irá ler o nome sob o qual o programa será registrado, a partir do item do '.desktop' X-Kate-Command, como por exemplo X-Kate-Command=uppercase-selection.</para> + +</sect3> + +</sect2> + +</sect1> + +</chapter> |