Eu criei esse comando: kat
baseado no GNU cat, mas com destaque de sintaxe. Ele foi feito com C++.
Classifiquei ele como:
“Um comando cat, mas quase com gosto de chocolate“(slogan)
Uma referência ao chocolate KitKat! E quase porque não tem o
Kit😃
O comando kat
ainda está em desenvolvimento, logo, nem todas as sintaxes estão disponíveis, ao final desse artigo há as que já estão e as que ainda serão implementadas, além de outros recursos que desejo implementar.
Já faz tempo que eu criei, mas agora eu decidi disponbilizar para quem quiser usar. Ele é baseado em outros comandos similares que eu havia visto, mas não me agradavam tanto e eu precisava que fossse:
Os outros comandos similares faltavam alguma coisa, tais como: source-highlight(também feito com C++, mas visual não muito agradável), Theldus/kat
(feito em C, mas o visual também não me agradava), bat(no início feito com Go/Golang, antigamente ele era até veloz, mas depois foi reescrito em outra linguagem e ficou muito lento, além de ter recursos demais para um comando cat), highlight(feito com Lua e C++, também está além de um simples comando cat, tem muitos outros recursos).
O Theldus/kat
também já fez uma comparação com o bat
(muito lento) e cat
. O terroo/kat
está na mesma linha de desempenho, ou seja, como se trata de um utilitário imediato, precisa ser rápido:
Enfim, me restou criar minha própria solução!
kat
?O kat
, no momento, só está disponível para sistemas estilo UNIX. Então, para compilar antes você precisa de alguns dependências, que são:
Você pode usar o gerenciador de pacotes do seu sistema e instalar, por exemplo, no Ubuntu:
sudo apt update
sudo apt install build-essential cmake libboost-regex-dev
Depois é só clonar, construir e instalar:
git clone http://github.com/terroo/kat build-kat
cd build-kat
cmake -B build .
cmake --build build
sudo cmake --install build
Após instalado já pode remover o diretório clonado:
cd .. && rm -rf build-kat
.
kat
?Assim como você utiliza o cat
, a diferença é que ele já possui numeração das linhas, logo, nem precisa de um parâmetro adicional, exemplos:
kat main.cpp # C++
kat main.c # C
kat MyClass.java # Java
kat script.py # Python
kat index.js # JavaScript
kat Main.cs # C#
kat.txt # Text
A saída similar será como na imagem abaixo:
Como eu havia dito, não há muitos parâmetros disponíveis, quem usa todos os parâmetros do cat
, por exemplo? Acho que o máximo que eu usei na minha vida foi o -n
pra ver o número das linhas.. 😃
Logo, para ver o help
do kat
, basta rodar:
kat --help
Você vai se impressionar com a quantidade de parâmetros!!! 🤣
Como eu havia dito, ainda está em desenvolvimento, então, as linguagens e formatos que possuem o ✔ estão disponíveis e as que possuem o ✖ ainda serão implementadas.
Mas, caso você queira agilizar a implementação de alguma, envie um issueis no repositório do kat.
Além de implementar também no futuro: Ruby, PHP, Elixir, Perl, Zig, Rust, Erlang, Haskell e entre outros.
Espero que você goste do kat
, ahhh… deixa um ✰ lá no repositório! 😎