Can I set a default syntax highlighting in Gedit?
Solution 1
You can at least add file extensions in the html syntax coloring scheme by editing html.lang
in /usr/share/gtksourceview-2.0/language-specs/
as a super user. So say you want to add HTML syntax highlighting to cfm files, you'd change this
<property name="globs">*.html;*.htm</property>
(default html.lang
) into this
<property name="globs">*.html;*.htm;*.cfm</property>
Solution 2
You can create your own language definition files in your $HOME
directory. Editing the gtk language specs is not recommended as it will be overriden by every gtksourceview update.
Copy your language specs file to your home directory:
$ cp /usr/share/gtksourceview-3.0/language-specs/html.lang ~/.local/share/gtksourceview-3.0/language-specs/
Then, add your custom file formats like .cfm
to the list of extensions:
<property name="globs">*.html;*.htm;*.cfm</property>
That way gedit
will use auto syntax highlighting on your custom file formats and gtk updates wont override your custom changes.
Solution 3
This is not possible without modifying the source code of Gedit or writing a plugin to override the default. The default syntax highlighting scheme is hard-coded.
Related videos on Youtube
Michael Martin-Smucker
Updated on September 18, 2022Comments
-
Michael Martin-Smucker over 1 year
Until you save a document in gedit, syntax highlighting is turned off. There are obviously good reasons for this -- people might get confused if certain words were randomly showing up in different colors. But for my purposes, I use gedit almost exclusively for HTML editing.
A lot of times I paste snippets of code into a new gedit document for quick editing, and I have to manually set the syntax coloring to HTML. Other times, I open ColdFusion (.cfm) documents, which gedit apparently doesn't recognize, and again I have to manually set the color to HTML. Both of these inconveniences would be fixed if I could find a way to tell gedit to automatically use HTML syntax highlighting for new documents and documents without a recognized file extension. Is this possible?
-
Jose Silva almost 13 yearsI was also wondering if I could switch between different languages without having to save the file, just like in SciTE. Would save me time.
-
-
Michael Martin-Smucker almost 13 yearsThanks for pointing me in the right direction. I cloned the latest gedit and started poking around before I realized that gedit now depends on gtk+ 3. This has the potential to turn into a much bigger mess than I was bargaining for. ;-)
-
Michael Martin-Smucker almost 13 yearsOne more thing: any idea what values for
language
are valid? I looked through the source forgedit
andgtksourceview
and I couldn't find anything that looked like language names (but my C skills are pretty non-existent.) -
RusGraf almost 13 years@MichaelMS I'm not sure, but if you plan on investing any effort into a solution I honestly think it may be easiest to just implant a
set_language
call into the sample Python plugin. You can probably useget_language
to figure out the right value for HTML source highlighting. -
Michael Martin-Smucker over 12 yearsThanks! This worked for making gedit add syntax coloring to my ColdFusion files.
-
Michael Martin-Smucker almost 12 yearsI wish I could add a few extra up-votes to this answer. I just used this answer again to give CSS highlighting to LESS and SASS files.
-
jozxyqk over 9 yearsI like the idea of duplicating and editing the
.lang
in the user directory myself -
Link Swanson over 9 years@michaelms I added an upvote to the post and to your comment because I also added CSS syntax highlighting to my LESS files in gedit by editing sudo nano /usr/share/gtksourceview-3.0/language-specs/css.lang and adding *.less and *.sass to the globs property:
<property name="globs">*.css;*.CSSL;*.less;*.sass</property>
-
nightcod3r over 7 yearsThis is a better option than the selected answer. When possible, apply changes locally.
-
Srikrishnan Suresh about 6 yearsBut how will gedut recognize the copied file in $HOME? How do I tell gedit that the .lang file in $HOME needs to be looked into??? Thanks in advance.
-
Erik Brendel about 2 yearsI created a feature request for making this default configurable, you can follow it here: gitlab.gnome.org/GNOME/gedit/-/issues/492