Seeing as how this is supposed to be (partially at least) a MEL and Python code blog I thought it only proper that I set up some kind of code syntax highlighting.
However, if I’d known what utter hell it was going to be I may have reconsidered. It’s taken me basically the whole day to get this much working and that’s only due to the help of a WordPress/PHP savvy mate (cheers John).
The first thing I tried was Code-Snippet, which seems pretty good and allowed me to easily write and impliment a new MEL syntax file. But I couldn’t get the colours to change from the defaults, it used the wrong kind of quotes (not good for MEL/py code!) and I couldn’t get word-wrapping to turn off either..! so I ditched that and tried SuperHighlighter Evolved.
SuperHighlighter Evolved seemed great but I couldn’t make that work like the site said it would either. Additionally, creating a new colour theme or Syntax file required a degree in scripting this kind of crap as well as a full understanding of WordPress’s underlying PHP gobbledegook. Goodbye SuperHighlighter Evolved…
Finally I plumped for Syntax Highlighter and Code Prettifier (by Vijesh Mehta) which seems to almost work so far.. once I’ve hacked around with the settings a bit! 😛
like so:
MEL Script :
// this proc returns the id number(s) of the scriptjob(s) using the given command (if existing)
// this can be used not only to simply query the scriptjob Id so you can edit or kill it, but
// also as a true/false exists check as it returns false if the scriptjob is not found.
global proc int[] getScriptJobID(string $command)
{
string $sjs[] = `scriptJob -lj`; // list ALL jobs
int $jobs[] = {};
for ($sj in $sjs)
{ // loop through each job description looking for our command string
if (`gmatch $sj ("*"+$command+"*")`)
{
string $token[];
tokenize $sj ":" $token;
$jobs[size($jobs)] = $token[0];
}
}
return $jobs;
}
Python Script:
def typecastString(inputStr):
"""Given an input STRING this returns it cast into the correct type;
int, float, or string depending on what it contains."""
inputStr = str(inputStr) # just in case the input is not a string
output = inputStr
if inputStr.isdigit():
output = int(inputStr)
elif inputStr.replace('.','',1).isdigit():
output = float(inputStr)
return output
yay! looking good :]
can I … “borrow” this for my wp-blog?
Comment by eRiC — April 17, 2010 @ 6:22 pm
sure thing Eric, gimme a buzz when you’re next online and I’ll send you over the full details. I’ll put the MEL brush syntax file up here too when it’s finished.
Comment by Naughty — April 17, 2010 @ 7:07 pm
I have created Mel brush for dp syntax highlighter. I posted it some time back on CGTalk programming section. I had changed few things to highlight the command flags as well.
http://forums.cgsociety.org/showthread.php?f=89&t=855856
Comment by Maulik — April 22, 2010 @ 11:28 am
that’s great Maulik, I’ll definitely check that out, many thanks.
Comment by Naughty — April 22, 2010 @ 11:36 pm