Executando verificação de segurança...
10

CodeSnap: a extensão VSCode para compartilhar parte dos seus códigos com uma imagem bonita!

Opa, pessoal!

Hoje venho aqui apresentar uma extensão que algumas pessoas me indicaram e que em primeiro momento eu pensei que não precisava.

Vamos lá, você já passou por um momento de ter que mandar seus códigos para que alguém veja e consiga dizer qual é o problema ou erro que está ocorrendo?

Esse extensão pode ajudar!

O nome dela é CodeSnap, e o que ela faz?
Cria imagens bonitas dos seus códigos.

Aqui abaixo é um exemplo meu do que essa extensão pode fazer:

exemplo de um código meu com a extensão CodeSnap

É bem melhor do que mandar um gigantesco texto tipo esse:

const colorsName = ["blue", "orange", "pink", "green", "red", "cyan", "yellow"];

const buttonToggleTheme = document.querySelector("button");
const iconButton = document.querySelector("button i");

const buttonChangeColor = document.querySelector(".switch-colors");

buttonToggleTheme.addEventListener("click", function () {
  if (buttonToggleTheme.className == "dark-mode") {
    document.body.className = "dark-" + document.body.className;

    iconButton.className = "ph-sun-dim-fill";
    buttonToggleTheme.className = "light-mode";
  } else {
    const withoutDark = document.body.className.slice(5);

    document.body.className = withoutDark;
    iconButton.className = "ph-moon-stars-fill";
    buttonToggleTheme.className = "dark-mode";
  }
});

function giveRandomNumbers() {
  return Math.floor(Math.random() * colorsName.length);
}

buttonChangeColor.addEventListener("click", function () {
  if (document.body.className.includes("dark-")) {
    buttonChangeColor.style.backgroundColor,
      (document.body.className = "dark-" + colorsName[giveRandomNumbers()]);
  } else {
    buttonChangeColor.style.backgroundColor,
      (document.body.className = colorsName[giveRandomNumbers()]);
  }
});

Além disso, descobri que tem alguns parâmetros de configurações para CodeSnap que fazem ficar ainda melhor essas imagens.

Por exemplo: você pode mudar a cor de fundo com o parâmetro codesnap.backgroundColor e alterar o quanto de arredondamento nas bordas com o codesnap.roundedCorners·

Enfim, tem alguma extensão que você conheça que faz algo parecido ou melhor? Coloque aí embaixo e simbora codar!!

5

Pessoal, uma dica a quem for fazer isso: não faça 😅

Existem situações específicas que uma print pode ser melhor do que o código em texto, como talvez numa apresentação em slides, mas se você for compartilhar código com alguém através de um artigo no Medium, publicação no TabNews, Stack Overflow, blog, Discord ou qualquer outro canal, use texto formatado.

É muito mais fácil você copiar um código em texto e executar na sua máquina do que copiar o que está em uma foto. Além disso, o código se torna buscável se for digitado ao invés de uma foto. E também se torna acessível para quem usa leitor de tela.

Aqui tem um Q&A explicando porque a comunidade do Stack Overflow não permite publicar imagens ao invés de código: Why should I not upload images of code/data/errors when asking a question?. E no Stack Overflow em Português: Postar mensagem de erro como imagem e Postar código como imagem.

Se você está compartilhando o código para ajudar alguém, ajudará mais se for em texto. Se está compartilhando o código para ser ajudado, aumentará suas chances de obter ajuda.

2

Concordo contigo, @rafael! Não pensei nisso quando escrevi o post, me desculpe.

Mas um problema que eu encontrei de postar em textos (apesar de todos os motivos que você aprensentou) é que fica muito complicado de entender o código e que fica gigantesco em plataformas como por aqui no Tabnews e algumas vezes no próprio Discord.

Se ao menos houvesse uma extensão ou aplicação (fica até uma ideia pra mim mesmo de fazer isso) que pegue seu código e formate para algo como um arquivo html e css que possa ser lido pelos leitores de tela seria perfeito!! Não sei nem por onde isso poderia ser feito, mas é uma ideia!

Desculpa se eu ofendi alguém, não foi minha intenção. A ideia desse tópico era de apresentar uma extensão para compartilhamento de códigos literalmente de uma forma apresentável. Me perdoem caso alguma coisa.

4

Dá pra contornar esse problema postando a imagem gerada pela extensão e um link para uma plataforma que hospeda códigos, como o pastebin, por exemplo. Claro que dependendo do contexto (como vc já citou), vale a pena só postar em texto mesmo, como no caso do StackOverflow. Mas em redes sociais, por exemplo, eu acho bem melhor a imagem.

3

Acho que não há a necessidade de se desculpar dessa forma. Como o compartilhamento de conteúdo é uma parte central da plataforma, o conflito de ideias faz parte.

Mas sobre a questão do código, talvez seja o caso de marcar no texto qual linguagem você está usando, assim o código ficará visualmente mais agradável.

Basta você adicionar a linguagem ou a extensão dela junto com os "backsticks":

```js
const CONSTANT = myFunction(param)
let array = ['item1', 'item2']
const CONSTANT = myFunction(param)
let array = ['item1', 'item2']

Não é a mesma coisa do editor mas ajuda.

1

Certo, atualizei a postagem. Obrigado, @agjunior!

Mas mesmo assim, o problema de um código extenso que não dá muita vontade de ler se olhar para ele de uma vez permanece. Eu gostaria mesmo de levar a ideia da aplicação adiante, vou colocar na minha lista de projetos.

3

Foi bom você trazer esse assunto aqui porque muita gente não sabe dos problemas em mandar código como imagem, a depender do canal. Como o @Lajack disse, em redes sociais, como o Instagram, colocar uma imagem faz bem mais sentido do que escrever o código, já que não dá para formatá-lo e nem copiar.

Não precisa se desculpar, porque o objetivo aqui é debater ideias, e não criticar pessoas 🤝