TextMate - TextMate

TextMate
TextmateIcon.png
TextMate screenshot.png
Captura de tela do Textmate
Desenvolvedor (s) Allan Odgaard ( MacroMates ), Ciarán Walsh
lançamento inicial 5 de outubro de 2004 ; 16 anos atrás ( 2004-10-05 )
Versão estável
2.0.19  Edite isso no Wikidata / 25 de fevereiro de 2021 ; 6 meses atrás ( 25 de fevereiro de 2021 )
Repositório
Sistema operacional Mac OS
Modelo Editor de código fonte
Licença
Local na rede Internet macromatos .com

TextMate é um editor de texto GUI de uso geral para macOS criado por Allan Odgaard. TextMate apresenta personalizações declarativas , guias para documentos abertos , macros graváveis , seções dobráveis , fragmentos , integração de shell e um sistema de pacote extensível.

História

TextMate 1.0 foi lançado em 5 de outubro de 2004, após 5 meses de desenvolvimento, seguido pela versão 1.0.1 em 21 de outubro de 2004. O lançamento se concentrou na implementação de um pequeno conjunto de recursos bem , e não tinha uma janela de preferência ou uma barra de ferramentas, não t integrava FTP e não tinha opções de impressão. No início, apenas um pequeno número de linguagens de programação era suportado, já que apenas alguns “pacotes de linguagem” haviam sido criados. Mesmo assim, alguns desenvolvedores acharam esta versão inicial e incompleta do TextMate uma mudança bem-vinda para um mercado que era considerado estagnado pelo domínio de uma década do BBEdit .

O TextMate 1.0.2 foi lançado em 10 de dezembro de 2004. Na série de betas do TextMate 1.1 , o TextMate ganhou recursos: uma janela de preferências com uma GUI para criação e edição de temas; uma barra de status com uma lista de símbolos; menus para escolher o idioma e as configurações da guia e um “editor de pacotes” para editar personalizações específicas do idioma. Em 6 de janeiro de 2006, a Odgaard lançou o TextMate 1.5, a primeira “versão estável” desde 1.0.2. As resenhas foram positivas, em contraste com as versões anteriores que foram criticadas.

A TextMate continuou a se desenvolver até meados de 2006. Em 8 de agosto de 2006, a TextMate recebeu o Prêmio Apple Design de Melhor Ferramenta de Desenvolvedor, na Conferência Mundial de Desenvolvedores da Apple em San Francisco , Califórnia , para “aplausos estridentes”. Em fevereiro de 2006, o blog TextMate expressou intenções para direções futuras, incluindo gerenciamento de projeto aprimorado, com um sistema de plug-in para oferecer suporte a sistemas de arquivos remotos, como FTP, e sistemas de controle de revisão , como Subversion . Ao longo de 2007, o aplicativo principal mudou apenas minimamente, embora seus “pacotes de idiomas” continuassem a avançar.

Em junho de 2009, TextMate 2 foi anunciado como sendo cerca de 90 por cento completo, mas com uma lista final de recursos não divulgada. Um alfa público foi disponibilizado para download no blog TextMate em dezembro de 2011, seguido por um candidato a lançamento no final de 2016. Em setembro de 2019, uma versão final foi lançada.

Em agosto de 2012, o código-fonte do TextMate 2 foi publicado no GitHub sob os termos da GPL-3.0 ou posterior , uma tentativa do desenvolvedor de neutralizar as restrições que a Apple colocou sobre o software distribuído por meio da Mac App Store . Odgaard afirmou que prefere receber patches como domínio público, pois isso preserva sua capacidade de lançar uma versão futura sob uma licença mais permissiva, ou de disponibilizar uma versão na Mac App Store. Odgaard também afirmou que tem um amigo que usa alguns dos frameworks do TextMate em um projeto de código fechado, e eles não podiam incorporar patches lançados sob a GPL.

Recursos

Escopos hierárquicos

O TextMate permite que os usuários criem seus próprios modos de realce de sintaxe arbitrariamente complexos , usando uma versão modificada do formato de lista de propriedades ASCII da Apple para definir gramáticas de idioma. Essas gramáticas permitem que regras de aninhamento sejam definidas usando a biblioteca de expressões regulares Oniguruma e, em seguida, sejam atribuídos “escopos” específicos: rótulos compostos que os identificam quanto à coloração.

Portanto, cada ponto de um documento é atribuído a um ou mais escopos, que definem onde está o ponto no documento, como deve ser colorido e qual deve ser o comportamento do TextMate nesse ponto. Por exemplo, o título de um dos links na seção “Links externos” tem o escopo:

text.html.mediawiki
    markup.list.mediawiki
        meta.link.inline.external.mediawiki
            string.other.link.title.external.mediawiki

Este escopo nos diz que estamos olhando para o título de um link dentro de um link dentro de uma lista dentro de um documento MediaWiki.

Os temas TextMate podem marcar qualquer escopo, em vários níveis de precisão. Por exemplo, um tema pode decidir colorir cada constante ( constant.*) de forma idêntica, enquanto outro pode decidir que as constantes numéricas ( constant.numeric.*) devem ser coloridas de forma diferente dos caracteres de escape ( constant.character.escape.*). A sintaxe de escopo hierárquico permite aos autores da linguagem e aos autores do tema diversos níveis de abrangência, de modo que cada um pode optar pela simplicidade ou abrangência, conforme desejar.

Comandos

TextMate oferece suporte a comandos definidos e editáveis ​​pelo usuário que são interpretados por bash ou pelo intérprete especificado com um shebang . Os comandos podem ser enviados de vários tipos de entrada pelo TextMate (o documento atual, o texto selecionado, a palavra atual, etc.) além das variáveis ​​de ambiente e sua saída pode ser manipulada de forma semelhante pelo TextMate de várias maneiras. Na sua forma mais simples, um comando pode receber o texto selecionado, transformá-lo e reinseri-lo no documento substituindo a seleção. Outros comandos podem simplesmente mostrar uma dica de ferramenta , criar um novo documento para sua saída ou exibi-lo como uma página da web usando o renderizador HTML integrado do TextMate.

Muitos pacotes específicos de linguagem, como bash, PHP ou Ruby, contêm comandos para compilar e / ou executar o documento ou projeto atual. Em muitos casos, o STDOUT e STDERR do processo do código serão exibidos em uma janela no TextMate.

Trechos

Em sua forma mais simples, os “ fragmentos ” do TextMate são pedaços de texto que podem ser inseridos no documento no local atual por meio de um toque de tecla sensível ao contexto ou preenchimento de tabulação. Os snippets são "inteligentes", com suporte para atualização dinâmica de "paradas de tabulação", acesso a variáveis ​​de ambiente e capacidade de executar scripts embutidos. Isso permite comportamentos complicados. As paradas de tabulação podem ser alternadas usando a tecla “tab” e oferecem suporte a texto padrão, menus suspensos, para completar os elementos do snippet. Os resultados dessas paradas de tabulação podem ser alterados dinamicamente em outra parte do snippet, conforme o usuário preenche uma parada. Variáveis ​​de ambiente TextMate podem ser usadas, suportando informações sobre o escopo atual, número da linha ou nome do autor, etc. Os snippets também têm a capacidade de executar scripts de shell embutidos.

Pacotes

Gramáticas de linguagem TextMate, snippets, macros, comandos e modelos podem ser agrupados em “pacotes” de funcionalidade. Qualquer snippet, macro ou comando pode ser executado pressionando um atalho de teclado, digitando uma palavra específica e, em seguida, pressionando a tecla “tab” (os chamados “gatilhos de tabulação”) ou selecionando o comando em um menu. Os gatilhos de tabulação são particularmente úteis; a combinação de gatilhos e fragmentos de tabulação facilita muito a codificação em linguagens detalhadas ou linguagens com padrões comumente digitados.

Snippets, macros e comandos podem ser limitados a um escopo particular, de forma que, por exemplo, o comando “close html tag” não funcione em um script python, liberando aquele atalho de teclado para ser usado para outra coisa. Isso permite que linguagens individuais, e até mesmo escopos individuais, substituam comandos embutidos como “Reformatar Parágrafo” com versões mais especializadas. Mesmo as teclas especiais, como a tecla de retorno e a barra de espaço, podem ser substituídas.

Um repositório Subversion está disponível contendo muito mais pacotes do que o fornecido com o pacote do editor, para tudo, desde Markdown a blogs e linguagem assembly MIPS .

Gerenciamento de Projetos

Vários documentos ou pastas podem ser abertos ao mesmo tempo em uma janela de projeto TextMate, que fornece uma gaveta ao longo de sua lista lateral de nomes de arquivos e pastas e uma série de guias na parte superior. No TextMate 1.5, esta gaveta fornece um meio para os usuários organizarem arquivos e pastas em todo o sistema de arquivos, bem como a capacidade de criar pastas virtuais para organização adicional. Este recurso foi removido do TextMate 2 e substituído por um navegador de arquivos comum . A pesquisa e a substituição podem ser realizadas em um projeto inteiro e os comandos podem interagir com os arquivos ou pastas selecionados na gaveta. Pacotes para CVS , Subversion, darcs e outros sistemas de controle de revisão permitem que o TextMate gerencie o código com versão.

Outras características

O TextMate tem muitos recursos comuns aos editores de programação:

  • As seções dobráveis ​​do código podem ser usadas para ocultar áreas de um documento que não estão sendo editadas no momento, para uma visão mais compacta da estrutura do código ou para evitar distrações. As seções a serem dobradas podem ser selecionadas manualmente ou a estrutura do próprio documento pode ser usada para determinar as dobras.
  • A pesquisa e substituição baseada em expressões regulares acelera as manipulações de texto complicadas. TextMate usa a biblioteca de expressões regulares Oniguruma desenvolvida por K. Kosako.
  • Um pop-up de função fornece uma lista de seções ou funções no documento atual.
  • O histórico da área de transferência permite que os usuários recortem muitas seções de texto de uma vez e, em seguida, colem.
  • O modo de edição de coluna permite adicionar o mesmo texto a várias linhas de texto e é muito útil para manipular dados tabulares.
  • Suporte "rmate" para lançar o textmate como editor para arquivos de servidores remotos - muito melhorado em relação às soluções alternativas necessárias na versão 1

Além disso, o TextMate oferece suporte a recursos para uma boa integração com o ambiente gráfico do OS X:

  • O histórico gráfico da área de transferência suporta a colagem de cópias anteriores, incluindo inicializações anteriores.
  • Encontre e substitua suporte um histórico gráfico análogo.
  • A edição é ainda mais aprimorada por vários cursores (pontos de inserção) e a capacidade de estender a seleção atual para instâncias adicionais criando vários cursores.
  • Uma janela de exibição HTML baseada em WebKit mostra atualizações ao vivo à medida que um documento HTML é editado.
  • Os usuários do VoiceOver e Zoom podem usar o TextMate graças ao seu suporte de acessibilidade.

Limitações

TextMate tem algumas limitações quando comparado a outros editores de sua classe:

  • Como o TextMate não está fortemente acoplado a uma linguagem de script, como o Emacs está para o Emacs Lisp , é impossível para os usuários ter controle completo sobre a configuração e o comportamento do programa. Allan Odgaard explicou sua opinião sobre o assunto em um e-mail para a lista de discussão TextMate, defendendo soluções "recomendadas pela plataforma".
  • Nenhum validador HTML embutido - como TextMate usa o validador W3C para validação de HTML, os usuários devem ter uma conexão de rede ativa para validar HTML usando a funcionalidade padrão.
  • Apesar de seu suporte substancial para macros, comandos e snippets, o TextMate não tem suporte embutido para dicas de código ou conclusão de código guiada, portanto, os editores de texto que oferecem suporte a esses recursos podem ser uma escolha melhor ao aprender a sintaxe de um novo linguagem ou codificação em línguas verbosas.
  • TextMate não é seguro para binários . É explicitamente apenas texto e não garante que dados binários arbitrários em um arquivo sejam preservados por meio de um ciclo de carregamento / salvamento, independentemente de esses dados serem editados.

Prêmios

TextMate 1.5 ganhou o Apple Design Award de melhor ferramenta de desenvolvedor em 2006.

Veja também

Referências

Leitura adicional

links externos