O realce de código parece ignorar aspas escapadas (simples e duplas). Isso significa que, se uma string dentro de uma seção de código contiver aspas escapadas, partes da string são realçadas como código normal. Neste fórum, o realce de código parece estar desativado, por isso incluo o link para a postagem específica do fórum onde notei isso pela primeira vez.
O realce de código está habilitado para bash, cs, cpp, xml, ini, json, makefile, markdown, python, c, c-like. O padrão é cpp. Redefinir essas configurações de realce de idioma para o padrão não resolve o problema.
O problema também está presente no modo de segurança
O problema também está presente ao escapar aspas simples em uma string de aspas simples (escapar aspas simples em uma string de aspas duplas e vice-versa funciona corretamente).
Obrigado pela resposta rápida e pelas informações!
De fato, o realce de cpp funciona se definido explicitamente. No entanto, ao investigar um pouco mais, descobri outro… comportamento inesperado.
Removi todos os idiomas da lista de idiomas realçados, exceto cpp, e reverti o idioma padrão de volta para auto. O resultado ainda foi um realce incorreto. Abrir o Inspector no Firefox revelou que o código é aparentemente reconhecido como vbnet - um idioma que nunca esteve na lista de idiomas realçados (nem o padrão, nem nenhum personalizado que tentei para este problema)? Isso deveria acontecer?
Recarreguei a página. Embora a postagem do fórum em si nunca tenha mudado – mesmo reiniciando o Firefox ou recarregando a página com CTRL+F5 – notei que a pré-visualização para editar a postagem usa as configurações modificadas ao recarregar a página.
Portanto, com cpp como única linguagem na lista (para manter as coisas simples), se eu definir a linguagem padrão para cpp, o destaque de código na pré-visualização da edição da postagem está correto. Se eu definir a linguagem padrão para auto e recarregar a página novamente, ela não estará correta como descrito na postagem anterior.
Reiniciar o navegador não resolverá. No Discourse, as postagens são “assadas” (convertidas de markdown para HTML) no servidor apenas uma vez, e o HTML resultante é armazenado em cache no banco de dados. Para atualizar uma postagem “assada”, você precisa “reassá-la”. Isso pode ser feito por um usuário da equipe usando o menu da chave inglesa em uma postagem ou pelo autor da postagem editando o conteúdo da postagem.
Obrigado. A re-gravação resulta no mesmo comportamento que com a pré-visualização da edição. auto seleciona um idioma (vbnet) que não está na lista de idiomas para realçar. Definir o idioma padrão explicitamente para cpp (seja nas configurações do fórum ou como você mostrou aqui) funciona como relatado anteriormente.
Portanto, a questão permanece: auto deve usar outros idiomas além daqueles na lista?