SciTE

Criado em: Tue Nov 8 12:27:02 2005

Atualmente eu estou usando uma versão modificada do SciTE, que pode ser encontrada aqui: http://caladbolg.net/scite_st.php.

Introdução

Scite é a sigla para SCIntilla based Text Editor (em bom português: Editor de Texto baseado no Scintilla).

O Scintilla é um widget de edição de texto que inclui características úteis para editar e debugar código fonte, marcação de sintaxe, completação de texto e call tips (aquelas dicas que aparecem indicando os parâmetros de uma função, por exemplo). A margem de seleção pode conter marcadores usados por debugadores para indicar breakpoints e a linha atual.

Um dos diferencias do Scite é o fato dele pode ser estendido usando a linguagem Lua.

Download e Instalação

Você pode fazer o download do Scite em [http://scintilla.sourceforge.net/SciTEDownload.html].

Você pode optar por baixar o código fonte, executáveis diversos para windows (incluindo alguns com instaladores), pacote RPM ou pacote para o debian (o scite está incluido no apt oficial do debian).

Uma opção interessante para windows é a "single file executable called Sc1" que é um executável de 390k que contém o Scite e dispensa instalação. Ótimo para andar no bolso.Foi através dele que eu conheci o scite e comecei a usá-lo, principalmente porque eu frequentemente tinha de fazer alterações em arquivos PHP em cybers, e precisava de um bom editor.

Configuração

O arquivo de configuração de usuário do SciTE está disponível em Options -> Open User Options File, que é um arquivo chamado .SciTEUser.properties no $HOME do usuário.

Barra de Menu

No linux, a barra de menus do scite pode ser configurada para usar os ícones padrões do gnome. (Tá isso, pode ser frescura para alguns, mas outros gostam de ter o desktop bem padronizado. Eu gosto assim.

Essa é a barra padrão do scite:

http://artigos.waltercruz.com/scite/barrapadrao.jpg

E essa é a barra com os ícones do gnome:

http://artigos.waltercruz.com/scite/barragnome.jpg

Para habilitar os ícones do gnome, adicione ou descomente a seguinte linha no seu arquivo de configuração do SCiTE:

toolbar.usestockicons=1

Abas

Para evitar que toda vez que você digita "scite arquivo.txt" seja aberta uma nova instância, que tal um pouquinho de abas?

#número máximo de abas
buffers=15
#verificar se já existe uma instância do SciTE rodando
check.if.already.open=1
#mostrar o caminho completa na barra de título. Útil quando você está editando 6 index.html
title.full.path=1

Número de linhas

Para habilitar a visualização do número de linhas, adicione ou descomente as linhas abaixo:

line.margin.visible=1
line.margin.width=4
margin.width=16

Mostrando caracteres de controle

Alguns de nós gostam de visualizar os espaços e tabulações no código. Para isso, adicione ao seu arquivo de configuração:

view.whitespace=1
view.indentation.whitespace=1

Verificando alterações no arquivo por outros processos

As vezes, enquanto estamos visualizando um arquivo, um outro processo o altera. Podemos configurar o SCiTE para nos informar que o arquivo foi alterado. Outra opção interessante é para que reloads numa sessão aberta presevem o histórico de undos do arquivo editado.

load.on.activate=1
reload.preserves.undo=1

Mostrando linhas longas

Em alguns projetos, um dos requerimentos é que o código de adeque a alguns padrões, como por exemplo, que as linhas tenham no máximo um certo tamanho (o código do kernel do Linux é um exemplo de onde esse padrão é seguido). Podemos configurar o SCiTE para nos dar uma ajudinha, mostrando uma linha vertical em uma largura pré-determinada. No exemplo, a linha estará na coluna 80.

edge.mode=1
edge.column=80
edge.colour=#C0DCC0

Tradução

A tradução do SCiTE para o português brasileiro está disponível em http://www.scintilla.org/locale.pt_BR.properties . Para instalar, basta copiar o arquivo para o diretório onde está o SCiTE (no windows) ou então, copiá-lo para onde estão os arquivos de propriedades do SCiTE (no meu caso, /usr/share/scite) e renomeá-lo para locale.properties .

Autocompletar e arquivos de API

Existe o auto-completar mais genérico, que tenta completar uma palavra se ele já encontrou alguma occorência semelhante no texto. A sintaxe dele é a seguinte:

autocompleteword.automatic=1

Porém, ele não completa algum nome de função se ela já não estiver no texto! Ou seja, para completarmos nomes de funções, devemos configurações específicas para cada linguagem.

Expressões Regulares

Na configuração padrão, ao usar expressões regulares na busca, os metacaracteres ( e ) precisam ser espados. Sem escape, eles casam o ( literal e o ) literal. Para mudar isso para algo mais comum, adicione a linha abaixo no arquivo de configuração:

find.replace.regexp.posix=1

Editando XHTML

O padrão XHTML convenciona que as tags sejam escritas em minúsculas. Para forçar o SciTE a considerar apenas tags minúsculas como corretas:

html.tags.case.sensitive=1

Editando PHP

Para adicionar calltips e auto-completar para arquivos PHP:

Vá em http://scintilla.sourceforge.net/SciTEExtras.html e baixe o arquivo php.api.

No meu caso, eu criei um diretório no meu home onde guardo as APIS do SciTE, chamado scite-api.

A váriavel $(SciteUserHome) é o home do usuário.

Se você guardou o seu arquivo de api em outro lugar, mude o caminho do php.api

Segue a configuração:

api.$(file.patterns.php)=$(SciteUserHome)/scite-api/php.api
# as calltips para o lexer de hypertext não devem ser case sensitivas
calltip.hypertext.ignorecase=1
# define com as calltips devem ser parseadas, o seguinte é o mesmo que o padrão,
# mas pode ser sobrescrito por alguém no SciTEGlobal
calltip.hypertext.parameters.start=(
calltip.hypertext.parameters.end=)
calltip.hypertext.parameters.separators=,
# algumas calltips tem uma explicação adicional depois do ")" final
# isso as mostra na segunda linha
calltip.hypertext.end.definition=)

# autocompleter stuff
# defines which type of characters let the autocompletion pop up
autocomplete.hypertext.start.characters=_$(chars.alpha)
# also the autocompletion should not be case sensitive since, grrr php and html
autocomplete.html.ignorecase=1

Editando Lua

No site de extras do SciTE, tem um arquivo zip contendo a api para Lua (tanto a api para C como para lua) e as explicações de como configurá-las. Visto que uma das partes divertidas do ScITE é sua extensibilidade em lua, sugiro a instalação dessa api.

Editando CSS

Jakub Vruna disponibiliza uma api para CSS e algumas configurações. Disponível em http://jakub.vrana.cz/utility/scite_css.zip .

Editando Python

A api de python pode ser gerando usando o gen_python_api.py, que vem com o editor eric3. Você pode baixá-la em: http://www.die-offenbachs.de/detlev/eric3-contrib.html

Para configurar, basta adicionar no seu arquivo de configuração:

# as linhas abaixo se referem à localização do arquivo python.api gerando.
api.*.py=/home/walter/scite-api/python.api
api.*.pyw=/home/walter/scite-api/python.api
#autocomplete.choose.single=1
autocomplete.python.ignorecase=1
autocomplete.python.start.characters=.
autocomplete.python.fillups=(
#autocompleteword.automatic
calltip.python.ignorecase=1
calltip.python.word.characters=._$(chars.alpha)$(chars.numeric)

Se você quer garantir que o seu código seja compatível com a PEP-8, O SciTE pode dar uma forcinha.

tab.size.*.py=4
indent.size.*.py=4 #identação de 4 espaços
use.tabs.*.py=0 # não use tabs

Outra opção interessante é usar a opção tab.timmy.whinge.level que, em python, verifica se a identação é consistente.

Da documentação:

"Para código Python, verifica se a identação é consistente. O padrão, 0 desliga a verificação de identação, 1 verifica se cada linha é potencialmente inconsistente com a linha anterior, 2 vertifica se qualquer caractere de espaço occorre antes de uma tabulação na identação, 3 verifica se algum espaço está na identação, e 4 verifica por tabulações na identação. 1 é um bom nível para usar."

Editando JavaScript

Integrando um verificador de sintaxe JavaScript

Muitas implementações de JavaScript não avisam sobre práticas de codificação questionáveis. O console de JavaScript do Firefox é bom, mas tem um problema: você precisa executar o Firefox. Pensando nisso, Matthias Miller extraiu a engine de JavaScript do Firefox em um executável, permitindo que você a use para verificar a sintaxe do seu JavaScript.

Para tanto, você deve primeiro baixar o JavaScript Lint em http://www.javascriptlint.com/download.htm e condigurar o seu SciTE conforme os passos a seguir:

Adicione no seu User Options File as linhas:

file.patterns.js=*.js;*.es
command.compile.$(file.patterns.js)=/usr/local/share/jsl-0.2.4-linux/jsl conf /usr/local/share/jsl-0.2.4-linux/jsl.default.conf process $(FileNameExt)

No caso, usr/local/share/jsl-0.2.4-linux/jsl é o caminho para o executável na minha máquina. Isso pode variar na sua.

Você deve mudar o output format no arquivo jsl.default.conf conforme o padrão a seguir:

+output-format __FILE__:__LINE__: __ERROR__

Com isso, você pode navegar através dos erros usando F4. Você pode ver um screenshot do jsl dentro do SciTE em: http://www.javascriptlint.com/images/jsl-SciTE-screenshot.png

# % if c.boo_box: Última Página, A 100 Receitas Portuguesas Onde Estão os Animais da Terra? Alice no País das Maravilhas Campanha Pixel Solidario - GRAAC IG Antírus