Gostaria de iniciar uma cor de fundo diferente, começando de uma função até o fim.
Como isso:
Estou ciente de que você pode definir cores de fundo de alguns rostos, como funções e nomes de funções, como foobar
. Mas afeta apenas a cor de fundo das palavras function
e foobar
. Gostaria de mudar a cor de fundo de toda a linha onde as estatísticas da função terminam.
Por que você pergunta? Seria muito mais fácil para mim distinguir quais partes pertencem a uma função.
Então, eu estou querendo saber se existe uma maneira prática de gerenciar isso no Emacs, ou existe um pacote Lisp para conseguir algo assim?
isearch-highlight
eisearch-dehighlight
Respostas:
Você pode usar a biblioteca Destaque para destacar uma região usando uma sobreposição ou propriedades de texto - em particular, propriedade
face
. Para destacar o plano de fundo, use uma face que use atributo,background
mas nãoforeground
.Se você usar a propriedade text
face
, também poderá copiar propriedades de algum texto e colá-las em outro texto. Portanto, se sua definição mudar e aumentar, basta copiar parte da parte destacada e colar sua propriedadeface
na parte não destacada .Você também pode usar as funções definidas na biblioteca para executar automaticamente (por exemplo, um gancho de troca de buffer ou periodicamente, em um temporizador) estender o realce de um defun para acomodar alterações nele.
Se você usar uma sobreposição, poderá usar os comandos de exclusão de destaque (por exemplo,
hlt-eraser
) para remover apenas a última face destacada. Arraste o mouse sobre o texto onde deseja remover o realce.Você pode usar o bloqueio comum de fontes. Inclua um padrão
font-lock-keywords
que use uma função que reconheça o início e o fim da sua definição. Consulte o manual Elisp, nó Customizing Keywords , assim como o nó pai, Font-Lock Mode e seus outros filhos.UPDATE após o seu comentário
Acho que talvez você esteja perguntando sobre destacar não a região, mas as linhas tocadas pela região e estender o realce além do final do texto (incluindo quaisquer caracteres de espaço em branco). É isso? Se sim, tente o seguinte:
fonte
highlight
biblioteca não funcionou para mim. Aplica apenas um plano de fundo onde o texto está. Quando o texto termina, para com a cor de fundo. Alguma sugestão?highlight.el
. Se isso te ajudar, bom.