Como obter saída de construção colorida do Make in Sublime Text 3?

19

Como você pode obter cores na janela de saída de compilação do ST3?

Estou usando o gccfilter para colorir minha saída de compilação, mas o ST3 apenas exibe as seqüências de escape brutas. Existe alguma maneira de processá-los? Ou para remover o gccfilter e simplesmente obter o ST3 para colorir a saída (por exemplo, apenas grep no aviso & o erro seria bom)?

    
por Yeraze 09.01.2014 / 18:56

2 respostas

15

Versões recentes do sistema de compilação Makefile do ST3 (conforme descrito no Make.sublime-build arquivo ) já contém uma definição de sintaxe que produz saída colorida.

Se você não está feliz com isso, aqui está o que você pode fazer como alternativa e abordagem de trabalho em geral, se você tiver um sistema de compilação que produza cores ANSI em um terminal e quiser exibi-las no painel de saída de compilação Texto Sublime 3.

Foi assim que fiz na instalação do Sublime Text 3 para RSpec, mas acho que é perfeitamente aplicável em qualquer caso com uma ferramenta que produz cores em um console / TTY regular:

1. Força o seu sistema de construção a produzir cores, mesmo que não seja emitido para um TTY.

Isso depende do sistema de compilação. Por exemplo, para Ruby e RSpec, você pode criar um arquivo .rspec em seu projeto com o seguinte conteúdo:

--color --tty

No seu caso, você já tem um sistema de construção que produz saída com sequências de escape de cor ANSI.

2. Instale o pacote ANSIescape (SublimeANSI)

É recomendado instalá-lo via Controle de Pacotes. Veja o repositório do pacote para instruções de instalação e configuração.

3. Crie uma nova definição de sistema de compilação no Sublime Text e configure-a para reconhecer as cores ANSI

Por exemplo, aqui está o conteúdo do meu sistema Colorized RSpec.sublime-build build:

{
    "cmd": ["rspec", "-I ${file_path}", "$file"],
    "file_regex": "# ([A-Za-z:0-9_./ ]+rb):([0-9]+)",
    "working_dir": "${project_path:${folder:${file_path}}}",
    "selector": "source.ruby.rspec",
    // Recognize ANSI colors in the output
    "target": "ansi_color_build",
    "syntax": "Packages/ANSIescape/ANSI.tmLanguage"
}

As duas últimas opções de configuração foram tiradas do leiame do SublimeANSI . Você pode aplicar isso ao seu sistema de compilação para o Make. Você pode basear-se na versão atual do arquivo Make.sublime-build do Sublime Pacotes do texto 3.

4. Crie seu arquivo / projeto usando o sistema de criação recém-criado.

Use o menu "Construir com ..." para escolher o novo sistema de compilação. No OS X, isso é Cmd + Shift + B . Construções subseqüentes com Cmd + B usarão esse último sistema de compilação escolhido.

Veja como fica:

    
por 11.02.2016 / 12:30
5

Atualmente, não há como fazer com que o console ST3 analise as cores que encontrei. Isso precisaria ser discutido com o autor. Eu notei antes que o console sempre tem saída monocromática. O ST3 atualmente usa apenas as cores fornecidas com o tema que você aplicou a ele.

A única maneira de se livrar das sequências de escape seria filtrá-las antes que a saída chegue ao Sublime.

    
por 09.01.2014 / 19:02