Posso definir um destaque de sintaxe padrão no Gedit?

24

Até você salvar um documento no gedit, o destaque da sintaxe é desativado. Obviamente, existem boas razões para isso - as pessoas podem ficar confusas se determinadas palavras aparecerem aleatoriamente em cores diferentes. Mas, para meus propósitos, uso o gedit quase exclusivamente para edição em HTML.

Muitas vezes colo trechos de código em um novo documento gedit para edição rápida e preciso definir manualmente a cor da sintaxe como HTML. Outras vezes, abro documentos do ColdFusion (.cfm), que o gedit aparentemente não reconhece, e novamente tenho que definir manualmente a cor como HTML. Esses dois inconvenientes seriam corrigidos se eu pudesse encontrar uma maneira de dizer ao gedit para usar automaticamente o destaque da sintaxe HTML para novos documentos e documentos sem uma extensão de arquivo reconhecida. Isso é possível?

Michael Martin-Smucker
fonte
Eu também queria saber se eu poderia alternar entre diferentes idiomas sem precisar salvar o arquivo, assim como no SciTE. Isso me pouparia tempo.
Nickguletskii

Respostas:

21

Você pode pelo menos extensões de arquivo add na sintaxe html coloração esquema editando html.langno /usr/share/gtksourceview-2.0/language-specs/como um usuário super. Digamos que você queira adicionar destaque de sintaxe HTML aos arquivos cfm, altere isso

<property name="globs">*.html;*.htm</property>

(padrão html.lang) para este

<property name="globs">*.html;*.htm;*.cfm</property>

jdup
fonte
Obrigado! Isso funcionou para que o gedit adicionasse cor de sintaxe aos meus arquivos do ColdFusion.
Michael Martin-Smucker 11/11
2
Eu gostaria de poder acrescentar mais alguns votos extras a esta resposta. Acabei de usar essa resposta novamente para destacar o CSS nos arquivos LESS e SASS.
Michael Martin-Smucker
1
Eu gosto da idéia de duplicar e editar o .langno diretório do usuário mim
jozxyqk
1
@michaelms Adicionei um voto positivo à postagem e ao seu comentário porque também adicionei a sintaxe CSS destacando meus arquivos LESS no gedit editando sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang e adicionando *. less e * .sass para a propriedade globs: <property name="globs">*.css;*.CSSL;*.less;*.sass</property>
Link Swanson
Pode ser necessário modificar o caminho para diferentes versões do gtksourceview. Você também pode copiar o arquivo para sua pasta de perfil para evitar que seja substituído. Veja a resposta de 5chdn abaixo ( askubuntu.com/a/310553/37574 )
mwfearnley
14

Você pode criar seus próprios arquivos de definição de idioma em seu $HOMEdiretório. A edição das especificações do idioma gtk não é recomendada, pois ela será substituída a cada atualização do gtksourceview.

Copie o arquivo de especificações de idioma para o diretório inicial:

$ cp /usr/share/gtksourceview-3.0/language-specs/html.lang ~/.local/share/gtksourceview-3.0/language-specs/

Em seguida, adicione seus formatos de arquivo personalizados, como .cfmna lista de extensões:

<property name="globs">*.html;*.htm;*.cfm</property>

Dessa forma gedit, usará o realce automático de sintaxe em seus formatos de arquivo personalizados e as atualizações gtk não substituirão suas alterações personalizadas.

Afr
fonte
1
Esta é uma opção melhor que a resposta selecionada. Quando possível, aplique as alterações localmente.
precisa saber é o seguinte
Mas como o gedut reconhecerá o arquivo copiado em $ HOME? Como digo ao gedit que o arquivo .lang em $ HOME precisa ser examinado ??? Desde já, obrigado.
Srikrishnan 13/0318
8

Isso não é possível sem modificar o código fonte do Gedit ou escrever um plugin para substituir o padrão. O esquema de destaque da sintaxe padrão é codificado .

ændrük
fonte
Obrigado por me apontar na direção certa. Eu clonei o último gedit e comecei a bisbilhotar antes de perceber que o gedit agora depende do gtk + 3. Isso tem o potencial de se transformar em uma bagunça muito maior do que eu esperava. ;-)
Michael Martin-Smucker
Mais uma coisa: alguma idéia para que valores languagesão válidos? Olhei através da fonte para gedite gtksourceviewe eu não consegui encontrar nada que se parecia com nomes de idioma (mas minhas habilidades C são bastante inexistente.)
Michael Martin-Smucker
1
@MichaelMS Não tenho certeza, mas se você planeja investir algum esforço em uma solução, sinceramente acho que talvez seja mais fácil implantar uma set_languagechamada no exemplo de plug-in Python . Você provavelmente pode usarget_language para descobrir o valor correto para o realce da fonte HTML.
ændrük 23/05