Como definir uma boa face de destaque

9

Eu gostaria de usar global-hl-line-mode, mas alguns dos meus temas não têm uma boa face de destaque. Existe uma maneira geral de definir uma (que não seja de cor inversa)? Eu gostaria de manter o destaque da sintaxe, que foi quebrado nas minhas tentativas.

max
fonte
O que exatamente você quer dizer com "maneira de definir"? Você está perguntando sobre sugestões para a aparência? Sobre como definir um rosto que dá uma determinada aparência? Sobre como fazer uma definição de rosto substituir o efeito das definições de rosto de um tema? Você já tentou personalizar o rosto usado por global-hl-line-mode? Em suma, especifique a pergunta com mais clareza - isso ajudará as pessoas a ajudá-lo.
Tirou

Respostas:

17

Isso é realmente uma questão de opinião, mas sempre achei que hl-lineé melhor fazer com que o fundo seja um pouco mais escuro do que o padrão.

Eu gostaria de manter o destaque da sintaxe, que foi quebrado nas minhas tentativas.

Se você deseja manter o realce da sintaxe, verifique se hl-lineo :foregroundatributo da face é nulo e defina o :backgroundatributo como desejar.

Aqui está o que parece para mim com essas configurações:

(set-face-attribute 'default nil :background "gray15")
(set-face-attribute 'hl-line nil :foreground nil :background "gray5")

insira a descrição da imagem aqui

Pelo que parece, você não deseja cores codificadas porque estará mudando os temas. Você pode fazer com que o emacs defina automaticamente :backgrounda hl-lineface com uma cor um pouco mais escura que o padrão atual :backgroundcomo este:

(require 'color)

(defun set-hl-line-color-based-on-theme ()
  "Sets the hl-line face to have no foregorund and a background
    that is 10% darker than the default face's background."
  (set-face-attribute 'hl-line nil
                      :foreground nil
                      :background (color-darken-name (face-background 'default) 10)))

(add-hook 'global-hl-line-mode-hook 'set-hl-line-color-based-on-theme)

Isso definirá o fundo do rosto com uma cor 10% mais escura que o fundo padrão sempre que você ativar global-hl-line-mode

Jordon Biondo
fonte