DEV Community

Cover image for Conheça o comando kat
Marcos Oliveira
Marcos Oliveira

Posted on

1

Conheça o comando kat

Um cat com syntax highlight"

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:

  • Simples
  • Veloz
  • Bonito
  • e básico.

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:

performance kat

Enfim, me restou criar minha própria solução!


Como instalar 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Após instalado já pode remover o diretório clonado: cd .. && rm -rf build-kat.


Como utilizar o 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
Enter fullscreen mode Exit fullscreen mode

A saída similar será como na imagem abaixo:

kat C++ example

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
Enter fullscreen mode Exit fullscreen mode

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.

  • C++
  • C
  • Java
  • Python
  • JavaScript
  • C#
  • ✖ HTML
  • ✖ Markdown
  • ✖ CSS
  • ✖ JSON
  • ✖ YAML
  • ✖ XML
  • ✖ Go
  • ✖ Swift
  • ✖ Lua
  • ✖ GNU Assembler
  • ✖ Assembly Intel(NASM)
  • ✖ GNU Bash
  • ✖ Power Shell > 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! 😎

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay