Formatação incorreta usada ao aplicar formatação de "texto pré-formatado" a uma seleção de várias linhas

Prioridade/Severidade:

Média

Plataforma

Sistema Operacional

Windows 11

Navegador

Google Chrome 139.0.7258.67

Discourse

dee24bd73b158ba97453f20035eabce430a1abcd

Descrição:

Existem dois estilos de formatação de “texto pré-formatado”:

  • Inline: para uso com conteúdo que não seja prosa dentro de uma passagem de prosa (por exemplo, “chame a função foo”), ou uma única linha curta de conteúdo que não seja prosa.
  • Bloco: para uso com várias linhas de conteúdo que não seja prosa.

O usuário pode adotar uma das duas abordagens para aplicar a formatação ao usar o compositor:

  • Proativa: o modo de formatação é alternado antes de adicionar o conteúdo a ser formatado.
  • Retroativa: o conteúdo é adicionado em forma não formatada, depois selecionado e a formatação é aplicada a essa seleção.

:bug: Ao usar o compositor no modo “editor de rich text”, aplicar a formatação de “texto pré-formatado” retroativamente quando várias linhas são selecionadas aplica o estilo inline. Isso resulta em uma postagem difícil de ler e no conteúdo que não é prosa difícil de copiar (um requisito comum para código compartilhado).

Passos para reproduzir:

  1. Abra o compositor.

  2. Coloque o switch do modo do editor na posição “editor de rich text”.

  3. Adicione o seguinte conteúdo à postagem:

    void setup() {
      // put your setup code here, to run once:
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    
    }
    
  4. Selecione o conteúdo da postagem.

  5. Clique no botão </> na barra de ferramentas do compositor.

:bug: Cada uma das linhas selecionadas foi formatada individualmente no estilo inline:

void setup() {

// put your setup code here, to run once:

}

void loop() {

// put your main code here, to run repeatedly:

}

O comportamento correto teria sido colocar o conteúdo em um único bloco de código:

void setup() {

  // put your setup code here, to run once:



}



void loop() {

  // put your main code here, to run repeatedly:



}

Contexto adicional

O editor Markdown tem o comportamento correto de colocar o conteúdo selecionado em um bloco de código quando a formatação de “texto pré-formatado” é aplicada retroativamente a uma seleção de várias linhas.


Consigo reproduzir a falha em try.discourse.org em “modo seguro”.

5 curtidas

Obrigado pelo relatório de bug, consigo reproduzi-lo.

Trabalharemos em uma correção.

5 curtidas

Você pode testar novamente quando tiver uma chance, por favor?

Fizemos algumas melhorias neste PR: DEV: make formatCode action more context-aware on rich editor by renato · Pull Request #35362 · discourse/discourse · GitHub

Confirmo que a postagem agora está formatada como esperado quando executo o procedimento fornecido no relatório.

Muito obrigado pela correção, @renato, e por dedicar tempo para postar uma atualização aqui!

1 curtida