Eu gostaria de ter o atributo class
sempre como o primeiro atributo.
Quer apoiar este problema? Publique uma recompensa por isso! Aceitamos recompensas via Bountysource .
Normalmente, todos os atributos são exibidos na ordem em que aparecem na abreviatura, a menos que um fragmento com outros atributos seja especificado para a abreviação. Aqui, você apenas altera os próprios trechos e adiciona um atributo vazio class
no lugar certo.
@sergeche
label.clasname
→ <label for="" class="clasname"></label>
a.classname
→ <a href="" class="classname"></a>
a[class=classname href="goo"]
→ <a href="goo" class="classname"></a>
Normalmente, todos os atributos são exibidos na ordem em que aparecem na abreviatura,
Não )
mas como criar tal snippet que fará, por exemplo: a.classname
→ <a class="classname" href=""></a>
?
Porque por a
snippet: https://github.com/emmetio/emmet/blob/master/lib/snippets.json#L691
Solução: exclua este snippet (substitua-o por um valor vazio: "a": null
) ou modifique-o: "a": "<a class=\"\" href=\"\">
, mas o atributo class
sempre será exibido . Ou crie um novo snippet que não contenha nenhum atributo no elemento <a>
.
HM ...
escreveu "a": null,
- http://take.ms/BHuO6
nada mudou: a.classname
→ <a href="|" class="classname"></a>
escreveu "a": "<a class=\"\" href=\"\">"
- http://take.ms/98CIZ
não utilizável: a.classname
→ <a class="" href="">|
escreveu "a": "<a>",
não-não-não-não, David Blaine, NÃO: a.classname
→ <a>
Eu entendi corretamente que a resposta à minha pergunta é "de jeito nenhum"? Ou estou fazendo algo errado? )
É conveniente fazer isso - de jeito nenhum, você precisa mudar o kernel para que possa definir as prioridades de classificação para os atributos
Em qual arquivo para cavar algo? :)
Como alternativa: https://github.com/emmetio/emmet/blob/master/lib/filter/html.js#L21
Em princípio, você pode escrever seu próprio filtro, que irá gerar a saída correta, e conectá-lo como uma extensão para não tocar no kernel.
A opção com o filtro é muito melhor (odeio entrar no núcleo do aplicativo). Onde posso ler sobre a API? Ou alguns exemplos, talvez?
A questão é relevante até hoje.
@sergeche quais são as chances dessa tarefa entrar na lista TODO?
Você pode escrever seu filtro e fazer uma solicitação pull. Não há documentação sobre filtros, mas esta é uma função comum que aceita uma abreviatura analisada na forma de uma árvore como entrada e pode alterá-la, por exemplo, atributos de troca
Snippet redefinido para a
(http://s020.radikal.ru/i717/1703/c0/8127577c2b25.png), sem filtros funciona como deveria: a.xxx
-> <a class="xxx" href=""></a>
Mas ao usar o filtro bem, o resultado fica incorreto, o nome da classe é duplicado:
a.xxx|bem
-> <a class="xxx xxx" href=""></a>
div.yyy>a.-xxx|bem
-> <a class="yyy__xxx -xxx" href=""></a>
É possível evitar isso de alguma forma? @sergeche
@DDyst este recurso está no novo kernel, que ainda está na versão alfa para Atom
Como assistir / experimentar? )
Sergey, dica pelo menos em qual arquivo procurar essa mesma oportunidade - estou vendo que a estrutura do arquivo mudou muito O_o ... Até agora, é possível personalizar diretamente no kernel apenas corretamente?
Sim, e | bem - agora como?
Shl .. E eu pensei que o emmet não poderia estar melhor, mas aí está chegando !!))
{
"snippets": {
"html": {
"abbreviations": {
"a": "<a class='' href=''>"
}
}
}
}
Bem, sempre obtemos todos os links com as aulas :)
Fez a implementação inicial de combinar atributos em ordem reversa ao resolver trechos: primeiro, aqueles que estão escritos na abreviatura, depois aqueles que são declarados no trecho (veja o link para o commit acima). Isso é semelhante ao comportamento esperado?
Outra opção é declarar atributos implícitos (com um ponto de exclamação no início) no snippet: "foo": "my-tag[title !class]"
A essência dos atributos implícitos é que eles são exibidos apenas se tiverem um valor. Ou seja, de fato, usando atributos implícitos, você pode especificar a ordem em que os atributos devem ser exibidos, independentemente da ordem em que foram declarados na abreviatura
Comentários muito úteis
A questão é relevante até hoje.
@sergeche quais são as chances dessa tarefa entrar na lista TODO?