A melhor CodeSnap que você vai ver
Pode parecer meio presunçoso eu dizer que a minha variante é melhor que as outras, mas eu irei explicar por que eu digo isso:
- Ela é fácil de ser usada
- A extensão tem (quase) tudo que as outras variantes oferecem
- Ela ainda está em desenvolvimento
Mas antes de detalhar um pouco esses 3 tópicos, aqui vai uma breve história:
PS: Quando terminei de escrever, percebi que ela não foi tão "breve" assim e acabei adaptando para abordar os tópicos durante a história
Uma breve história...
Um belo dia eu estava tentando tirar o print de um código para enviar para um amigo e percebi algo simples: É difícil tirar bons prints com a ferramenta de captura padrão do Windows (Atalho: Windows + Shift + S).
Esse simples problema de desalinhamento e poluiçao visual (onde meu cursor está, foco na linha que estou, histórico do git lens, etc...) me fez lembrar que eu tinha uma extensão de print de código e logo em seguida me fez pensar "e porque eu não uso ela toda vez?".
A resposta para essa pergunta também é simples, não era tão fácil usar a extensão. Era necessário selecionar o código, abrir a paleta de comandos do VSCode (Ctrl + Shift + P) e digitar o comando CodeSnap (posteriormente descobri que também havia um botão no menu de contexto, mas ele era engolido pela quantidade absurda de opções que o próprio VSCode já oferece).
Com esse problema em mente acabei fazendo um fork da extensão original e adicionei um botão na status bar do vscode, quando um texto ele é selecionado ele aparece, você clica nele e pronto: A tela de ajustes abre para você tirar seu print do código.
Fui todo feliz para fazer o PR para o repositório com a nova funcionalidade. Quando terminei o PR caiu minha ficha de algo que eu não havia reparado quando fiz o fork: O projeto estava parado. Poisé, eu estava tão animado em adicionar a nova funcionalidade que não percebi que o projeto não recebia atualizações há anos...
Bom, isso com certeza me desanimou um pouco, mas depois eu tive uma idéia: E se eu fizer minha própria CodeSnap (como se já não houvessem variantes até agora).
A Nova CodeSnap
Como a CodeSnap original foi feita em JavaScript puro e eu pretendia expandir ela, criei um novo projeto de extensão do zero usando TypeScript e reescrevi o código final do meu PR em TypeScript (dei Ctrl + C e Ctrl + V em cada arquivo e fui adicionando os tipos de um em um).
Terminada a conversão, eu precisava de um novo nome, algo que passasse a mensagem que eu queria. Fui dar uma olhada no nome das variantes mais famosas e vi nomes como: CodeSnap-plus, CodeSnap-flux-fix (aparentemente não foi apenas a original que parou de receber atualizações), CodeSnap Extended, etc.
Nenhum nome passava uma ideia diferente de "Outra CodeSnap, mas com algo a mais". Isso ficou na minha cabeça, eu me lembrei do motivo para ter feito o PR em primeiro lugar: Eu queria que fosse mais fácil usar a extensão. Mais fácil... Fácil... Fácil?? Era isso: Easy! Foi assim que surgiu o nome Easy CodeSnap. Uma extensão que sejá FÁCIL de usar.
Mais e mais
Eu citei que dei uma olhada em outras variantes, uma delas (CodeSnap-plus) me fez perceber outra deficiência da CodeSnap padrão: É muito complicado fazer ajustes.
A extensão CodeSnap em si oferece várias opções de ajuste, a questão é que para modifica-los é necessário achar as configurações na aba de configurações (ou no JSON se preferir) e depois atualizar a tela de captura da extensão.
Tendo isso em mente, eu criei o recurso de One Time Config na própria UI da tela de captura, onde é possível trocar configurações de forma rápida e reativa (eu não usei react e me recuso a usar nesse projeto, foi tudo feito com a boa e velha manipulação de DOM, como faziam os Incas e os Maias).
Após essa mudança o número de usuários começou a crescer e conforme o tempo passava eu adicionava mais features, sendo alguns destaques:
- Várias melhorias na UX/UI
- Highligth de linhas: Feature Request de um usuário, implementado pela primeira vez (que eu saiba) na CodeSnap-plus
- Suporte para idiomas: Feature Request de um usuário (a extensão atualmente está disponível em PT-BR e ingles e novas traduções são bem vindas)
- Estilo de janela do Windows: Feature request de um usuário e exclusiva da Easy CodeSnap (até onde sei)
- Salvar em SVG: ideia minha e exclusiva da Easy CodeSnap (até onde sei)
- Proporção de Imagem: ideia minha e exclusiva da Easy CodeSnap (até onde sei)
- Título de Janela e Marca D'água editáveis com clique dublo: ideia minha e exclusiva da Easy CodeSnap (até onde sei)
Ainda em desenvolvimento
Apesar do número grande de novas funcionalidades ainda há muito espaço para melhorias. Mesmo com o trabalho, sempre tento encontrar um tempo para dar uma olhada se existem issues ou feature requests ou até mesmo para implementar uma idéia que eu mesmo tive. Atualmente eu gostaria de expandir o suporte para idiomas, mas infelizmente isso não é algo que eu consiga fazer sozinho então preciso esperar a comunidade open source fazer o que faz de melhor: contribuir.
Caso alguém tenha interesse em usar ou contribuir para o projeto, seguem os links do repositório no Github e do Marketplace:
https://github.com/ArthurLobopro/easy-codesnap https://marketplace.visualstudio.com/items?itemName=ArthurLobo.easy-codesnap