Pergunta

Em um fragmento de código como o seguinte ...

class Foo
{
  internal Foo()
  {
    for (int i = 0; i < 42; ++i);
  }
}

... suas várias palavras-chave e assim por diante são codificados por cores quando eles são exibidos em meus browsers.

Quando eu faço "fonte View", não vejo especial qualquer coisa no HTML que iria implementar esta de codificação de cores.

Como e / ou onde é que isto específicos de sintaxe cor-destacando implementada, então? Por exemplo é built-in para os navegadores, ou é implementado pelo site-specific JavaScript edição do DOM nos navegadores?

Eu acho isso uma pergunta difícil para o Google para.

Foi útil?

Outras dicas

É uma biblioteca Javascript. Há alguns para fora completamente lá, o ser mais popular SyntaxHighlighter . O meu favorito é Chile , no entanto.

Há um excelente FAQ Qual é destaque de sintaxe e como ele funciona? Mais em meta.SE.

Eu estou citando totalmente aqui para sua conveniência, mas você pode querer verificar o post original se há atualizações para a lista de idiomas suportados.


O que é destaque de sintaxe?

Destaque de sintaxe permite que o código nos posts a ser destacado com base no idioma é escrito em, para torná-lo mais fácil de ler.

Como funciona?

Stack Exchange não tem sua própria sintaxe motor destacando. Ele usa Google código Prettify . Portanto, quaisquer bugs e solicitações de recursos referentes destaque de sintaxe não pode ser tratado por Stack Câmbio e deve ser direcionado para a equipe por trás Google Code Prettify.

Destaque de sintaxe é atribuído à visualização ao criar ou editar mensagens logo que você parar de digitar por 5 segundos.

Prettify suporta uma lista de línguas principais que ele pode destacar (incluindo C / C ++, C #, Java, JavaScript / coffeescript, Perl, Python, ruby, Regex, Bash, HTML, XML), juntamente com um padrão marcador genérico que funciona razoavelmente em mais C-like línguas e HTML-como linguagens de marcação. idiomas adicionais são implementados como extensões (cada arquivo lang-*.js).

Por que meu ser código não é realçado corretamente?

Se seu post não tem o destaque correta, é possível não é suportado. Por favor, olhar para o href="https://github.com/google/code-prettify#user-content-for-which-languages-does-it-work" rel="nofollow lista de Prettify suportado línguas . Se seu idioma não está na lista, ele precisa ser criado no âmbito do projecto Prettify antes que ele possa ser implantado por Stack Exchange.

Se uma linguagem que poderia ser aplicada a uma tag já na lista, mas não é usado na pilha do Exchange, por favor, levante um pedido de recurso aqui na Meta para tê-lo implantado na rede.

Como posso relatar um erro ou solicitar um novo idioma?

Se ele é realmente um bug no próprio marcador sintaxe, verifique a href="https://github.com/google/code-prettify/issues" rel="nofollow lista questões para ver se ele já foi relatado. Se não tem, não hesite em denunciá-lo ou participar do projeto enviar uma correção si mesmo. Se você quer garantir que uma questão que você levantou é corrigido rapidamente, é melhor para incluir a correção no relatório. Se a correção já foi implementado por Prettify mas ainda não está funcionando aqui, por favor, levante um pedido de recurso no Meta para solicitar que uma nova versão do Prettify ser implantado.

Você também pode enviar um pedido de um novo idioma a ser adicionado na essa lista mesmas questões . Tenha em mente que Stack Troca não manter esse marcador sintaxe e relatórios postagem de bugs ou pedidos de funcionalidades relacionadas lo aqui em Meta não vai obtê-los fixos ou implementadas.

Antes de fazer qualquer coisa, make certeza que você tem o destaque correta ligado.

Como se determinar o idioma para o realce de sintaxe?

Nos bastidores, Pilha Trocas usos as tags sobre a questão para inferir a idioma que você está usando. Se há mais de uma marca que tem destaque de sintaxe, ele usa um DEFAult e permite inferir Prettify qual é a melhor linguagem para uso.

Se você está curioso para saber se uma marca tem uma pitada linguagem, qualquer usuário é capaz de verificar, visitando a página wiki dessa tag. A dica de idioma (se houver) que está sendo usado para essa tag será exibido na parte inferior, abaixo dos botões para o wiki:

linguagem de código (usado para destaque de sintaxe): lang-java

É possível explicitamente substituir o destaque em uso com idioma de sua escolha, especificando uma dica linguagem acima o bloco de código:

<!-- language: lang-or-tag-here -->

    code goes here

Você pode usar um código de idioma ou tag nome na dica idioma para ativar destaque de sintaxe. Veja abaixo a lista completa de códigos de idiomas suportados prettify.

Por exemplo:

Here is a code block with language code as hint:

<!-- language: lang-js -->

    function greet(person) {
        return "Hello " + person;
    }
    var user = "John Doe";
    alert(greet(user));

Here is a code block with tag name as hint:

<!-- language: typescript -->

    var arr = [0, 1, 2];

Se você não quiser ter qualquer destaque de sintaxe que você pode usar a linguagem lang-none:

<!-- language: lang-none -->

Você também pode aplicar uma dica linguagem para todas blocos de código em seu post (para que você não tem que adicionar uma dica antes de cada um):

<!-- language-all: lang-or-tag-here -->

Hinting: Código de Idiomas

Esta é uma lista completa de cada identificador que você pode usar na dica idioma para destaque de sintaxe.

Núcleo:

  • Padrão: deixe Prettify interpretar o código e acho
    default
  • Nenhum: explicitamente não usar qualquer destaque de sintaxe
    lang-none
  • Bash e outros scripts Shell
    lang-bash, lang-bsh, lang-csh, lang-sh
  • C, C ++, Objective-C, et ai.
    lang-c, lang-cc, lang-cpp, lang-cxx, lang-cyc, lang-m
  • C #
    lang-cs
  • CoffeeScript
    lang-coffee
  • HTML, XML, XSL, et al.
    lang-html, lang-xml, lang-xsl
  • Java
    lang-java
  • JavaScript
    lang-js, lang-javascript
  • JSON
    lang-json
  • Perl
    lang-pl, lang-perl
  • Python
    lang-py, lang-python, lang-cv
  • Regex
    lang-regex
  • Rubi
    lang-rb, lang-ruby
  • Rust
    lang-rc, lang-rs, lang-rust

Extensões:

Hinting: Tag

Você pode especificar qualquer tag que existe no site, e vai usar qualquer código de idioma está atualmente associado com essa tag (que pode ser nulo (nenhuma sugestão), padrão , ou específica linguagem de código).

Tenha em mente que por padrão todos os tags começar com none como seu código de idioma. Tags com none especificado como seu código de idioma será ignorado e reverter para default.

Você também pode usar a palavra-chave none simples para especificar manualmente sem destaque de sintaxe, semelhante a usar o código lang-none acima.


Nota aos editores:

Por favor, não adicionar à lista acima, a menos que você esteja 100% de certeza que existe. Só porque você digitar algo no e aparência como ele é realçado correctamente não significa o identificador realmente existe no sistema. Tenha em mente que os identificadores inválidos voltar a padrão . Por favor, link para a questão Meta que confirma a existência de uma dica em seu sumário de edição ao adicionar uma nova dica para a lista.

Nota aos comentadores:

Os comentários sobre este FAQ são para solicitar esclarecimentos sobre algo que você pode não entender no FAQ para que ele possa ser corrigido. Por favor NÃO perguntar se certos idiomas serão suportados no futuro. Isso é não uma pergunta podemos responder porque Stack Exchange não manter esse marcador. Visita Google Code Prettify para suporte a idiomas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top