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.
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.
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.
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.
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
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
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
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
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
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 .
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.
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
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
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
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.
Jakub Vruna disponibiliza uma api para CSS e algumas configurações. Disponível em http://jakub.vrana.cz/utility/scite_css.zip .
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."
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