I am currently using Brackets (code editor) to create some C source files. It uses CodeMirror to handle the syntax highlighting and I have been attempting now for a while to try and add keywords to it.
I managed to add 'printf' as a keyword by modifying this code here and adding 'printf' to the keywords. However, I would like to change the colour of it and haven't been able to do this. How could I do this?
Also, in the same way as line comments such as '//' highlight the whole line, I would like to also do this if the line starts with '#', changing the colour as well.
I am pretty sure I need to modify the 'clike.js' file to add the new keywords and some other .css file in order to change the colours but I just can't seem to work it out.
Thanks for any help.
Solved it.
Firstly I changed the 'clike.js' file adding the following 'if' blocks to handle the changes I wanted.
So as the file is parsed, the outer block checks for a '#'. When one is detected, it then checks if the next letter is 'i' or 'p'.
This was because I wanted to highlight either:
or
If an 'i' is found as the next character, I use
stream.skipTo(" ")
to skip to the next whitespace so that only#include
is highlighted.If a 'p' is found, I instead use
stream.skipToEnd()
so that the entire line is highlighted.The return statement then returns a string that relates to what has been found and a corresponding style in your themes .css file specifies things such as colour or style.
For example, in my case, the brackets default light theme is located at
Brackets.app/Contents/www/extensions/default/LightTheme/main.less
.Within this file I added the following lines:
This then specifies the colour that you wish that text to be, but I assume other things could be specified as well, e.g. bold, italics, maybe font etc.
If you wished to make a new return type 'test', you would
return "test";
in your javascript file and your corresponding style in your theme file would be named.cm-include {...};
.Hope this can be of assistance to anyone else wanting to do the same thing.