Eu tentei criar um novo arquivo .lang
para que o Gedit reconheça a linguagem de programação Julia . Eu li o tutorial , o documento de referência e na página da wiki Gedit / NewLanguage , e acredito que o arquivo esteja correto. No entanto, ao reiniciar o gedit depois de copiar o novo arquivo julia.lang
para /usr/share/gtksourceview-3.0/language-specs/
, o arquivo a .jl é realmente reconhecido e o menu de realce da sintaxe é definido como julia, mas não ocorre realce real.
Pensando que eu poderia ter feito algo errado, tentei usar um arquivo de idioma existente, para um idioma semelhante ( Matlab ), e apenas mudou os metadados do cabeçalho para:
<language id="julia" _name="Julia" version="2.0" _section="Scientific">
<metadata>
<property name="mimetypes">text/x-julia;application/x-julia</property>
<property name="globs">*.jl</property>
<property name="line-comment-start">#</property>
</metadata>
Tudo o mais foi mantido exatamente como está e salvei o arquivo como julia.lang
. Ainda assim, ao reabrir o gedit, o mesmo problema ocorre. Além disso, se eu selecionar a entrada Matlab no menu de realce de sintaxe, a formatação será feita corretamente (de acordo com as regras do Matlab), mesmo que matlab.lang
e julia.lang
tenham exatamente as mesmas definições de sintaxe!
O que eu poderia estar fazendo de errado? Esse cara parecia ter o mesmo problema, mas nunca foi revelado nesse tópico como ele resolveu (se ele já fez). Alguma idéia?
Atualização : meu erro não foi, de fato, mudar o id do contexto, como apontado por @carandraug em sua resposta. No entanto, tive outros problemas que observarei aqui, caso sejam de ajuda para alguém:
- Reutilizei a definição "shell-like-comment" de
def.lang
para os comentários de linha única de Julia, mas isso me causou muitos erros. Acontece que quando um contexto de referência é usado, o% O atributoid
não pode ser definido. Mudar de <context id="comment" ref="def:shell-like-comment" />
para <context ref="def:shell-like-comment" />
fez com que os erros desaparecessem. Eu acho que o documento de referência (e o tutorial também) deve mencionar esta advertência. Eu editei a página wiki para apontar isso.
- Antes de perceber o problema com o contexto dos comentários, comentei sua definição, mas depois comecei a receber um erro "estilo 'def: string' not defined" . Quando descomentei a definição, esse erro desapareceu. Não sei o que causou isso (considerando que, de fato, um
<style id="string">
foi definido em def.lang
). Quaisquer esclarecimentos sobre isso são bem-vindos nos comentários: -)
Uma sugestão final para qualquer pessoa que desenvolva novas definições de realce de idioma para o gedit: não se esqueça de executar o gedit na linha de comando e examinar a saída do console!