Puis-je définir une coloration syntaxique par défaut dans Gedit?

24

Jusqu'à ce que vous enregistriez un document dans gedit, la coloration syntaxique est désactivée. Il y a évidemment de bonnes raisons à cela - les gens pourraient être confus si certains mots apparaissaient au hasard dans différentes couleurs. Mais pour mes besoins, j'utilise gedit presque exclusivement pour l'édition HTML.

Souvent, je colle des extraits de code dans un nouveau document gedit pour une modification rapide, et je dois définir manuellement la coloration de la syntaxe en HTML. D'autres fois, j'ouvre des documents ColdFusion (.cfm), que gedit ne reconnaît apparemment pas, et encore une fois, je dois définir manuellement la couleur en HTML. Ces deux inconvénients seraient résolus si je pouvais trouver un moyen de dire à gedit d'utiliser automatiquement la coloration syntaxique HTML pour les nouveaux documents et les documents sans extension de fichier reconnue. Est-ce possible?

Michael Martin-Smucker
la source
Je me demandais également si je pouvais basculer entre différentes langues sans avoir à enregistrer le fichier, tout comme dans SciTE. Cela me ferait gagner du temps.
nickguletskii

Réponses:

21

Vous pouvez au moins ajouter des extensions de fichier dans le schéma de coloration de la syntaxe html en le modifiant html.langen /usr/share/gtksourceview-2.0/language-specs/tant que super utilisateur. Supposons donc que vous souhaitiez ajouter une coloration syntaxique HTML aux fichiers cfm, vous changeriez cela

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

(par défaut html.lang) dans ce

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

jdup
la source
Merci! Cela a fonctionné pour que gedit ajoute une coloration syntaxique à mes fichiers ColdFusion.
Michael Martin-Smucker
2
J'aimerais pouvoir ajouter quelques votes positifs supplémentaires à cette réponse. Je viens d'utiliser à nouveau cette réponse pour mettre en surbrillance CSS les fichiers LESS et SASS.
Michael Martin-Smucker
1
Je aime l'idée de dupliquer et de modifier le .langdans le répertoire utilisateur moi - même
jozxyqk
1
@michaelms J'ai ajouté un vote positif à l'article et à votre commentaire, car j'ai également ajouté la coloration syntaxique CSS à mes fichiers LESS dans gedit en modifiant sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang et en ajoutant *. less et * .sass à la propriété globs: <property name="globs">*.css;*.CSSL;*.less;*.sass</property>
Link Swanson
Vous devrez peut-être modifier le chemin d'accès pour différentes versions de gtksourceview. Vous pouvez également vouloir copier le fichier dans votre dossier de profil pour éviter qu'il ne soit écrasé. Voir la réponse de 5chdn ci-dessous ( askubuntu.com/a/310553/37574 )
mwfearnley
14

Vous pouvez créer vos propres fichiers de définition de langue dans votre $HOMErépertoire. Modification des caractéristiques linguistiques gtk est pas recommandé car il sera outrepassée par chaque mise à jour de gtksourceview.

Copiez votre fichier de spécifications linguistiques dans votre répertoire personnel:

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

Ensuite, ajoutez vos formats de fichiers personnalisés comme .cfmà la liste des extensions:

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

De cette façon gedit, la coloration syntaxique automatique sera mise en évidence sur vos formats de fichiers personnalisés et les mises à jour gtk ne remplaceront pas vos modifications personnalisées.

Afr
la source
1
C'est une meilleure option que la réponse sélectionnée. Lorsque cela est possible, appliquez les modifications localement.
nightcod3r
Mais comment gedut reconnaîtra-t-il le fichier copié dans $ HOME? Comment puis-je dire à gedit que le fichier .lang dans $ HOME doit être examiné ??? Merci d'avance.
Srikrishnan
8

Cela n'est pas possible sans modifier le code source de Gedit ou écrire un plugin pour remplacer la valeur par défaut. Le schéma de mise en évidence de la syntaxe par défaut est codé en dur .

ændrük
la source
Merci de m'avoir indiqué dans la bonne direction. J'ai cloné le dernier gedit et j'ai commencé à fouiller avant de réaliser que gedit dépend maintenant de gtk + 3. Cela a le potentiel de se transformer en un gâchis beaucoup plus important que je ne le pensais. ;-)
Michael Martin-Smucker
Une dernière chose: une idée de quelles valeurs languagesont valides? Je regardais par la source geditet gtksourceviewje ne pouvais pas trouver quelque chose qui ressemblait à des noms de langue (mais mes compétences en C sont assez inexistantes.)
Michael Martin-Smucker
1
@MichaelMS Je ne suis pas sûr, mais si vous prévoyez d'investir des efforts dans une solution, je pense honnêtement qu'il peut être plus facile d'implanter simplement un set_languageappel dans l' exemple de plugin Python . Vous pouvez probablement utiliser get_languagepour trouver la bonne valeur pour la mise en évidence des sources HTML.
ændrük