--- layout: default layout: page nometa: true title: Syntax Highlighting Debug --- <h3 class="filename">gist_syntax_test.rb</h3> {% gist 996818 test.rb %} <h3 class="filename">syntax_test.diff</h3> {% highlight diff %} @@ -590,7 +590,7 @@ class SpritesTest < Test::Unit::TestCase it "should generate a sprite from nested folders" do css = render <<-SCSS - @import "nested/*.png"; + @import "nested/**/*.png"; @include all-nested-sprites; SCSS assert_correct css, <<-CSS {% endhighlight %} <h3 class="filename">syntax_test.html</h3> {% highlight html %} <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head> <title>A Tiny Page</title> <style type="text/css"> <!-- p { font-size:15pt; color:#000 } --> </style></head><!-- real comment --> <body bgcolor="#FFFFFF" text="#000000" link="#0000CC"> <script language="javascript" type="text/javascript"> function changeHeight(h) { var tds = document.getElementsByTagName("td"); for(var i = 0; i < tds.length; i++) { tds[i].setAttribute("height", h + "px"); }} </script> <h1>abc</h1> <h2>def</h2> <p>Testing page</p> </body></html> {% endhighlight %} <h3 class="filename">syntax_test.js</h3> {% highlight js %} /** sample javascript from xui */ var undefined, xui, window = this, string = new String('string'), document = window.document, simpleExpr = /^#?([\w-]+)$/, idExpr = /^#/, tagExpr = /<([\w:]+)/, slice = function (e) { return [].slice.call(e, 0); }; try { var a = slice(document.documentElement.childNodes)[0].nodeType; } catch(e){ slice = function (e) { var ret=[]; for (var i=0; e[i]; i++) ret.push(e[i]); return ret; }; } window.x$ = window.xui = xui = function(q, context) { return new xui.fn.find(q, context); }; {% endhighlight %} <h3 class="filename">syntax_test.rb</h3> {% highlight ruby %} include Enumerable def initialize(rbconfig) @rbconfig = rbconfig @no_harm = false end def load_savefile begin File.foreach(savefile()) do |line| k, v = *line.split(/=/, 2) self[k] = v.strip end rescue Errno::ENOENT setup_rb_error $!.message + "\n#{File.basename($0)} config first" end end if c['rubylibdir'] # V > 1.6.3 libruby = "#{c['prefix']}/lib/ruby" siterubyverarch = c['sitearchdir'] end parameterize = lambda {|path| path.sub(/\A#{Regexp.quote(c['prefix'])}/, '$prefix') } if arg = c['configure_args'].split.detect {|arg| /--with-make-prog=/ =~ arg } makeprog = arg.sub(/'/, '').split(/=/, 2)[1] else makeprog = 'make' end def setup_rb_error(msg) raise SetupError, msg end if $0 == __FILE__ begin ToplevelInstaller.invoke rescue SetupError raise if $DEBUG $stderr.puts $!.message $stderr.puts "Try 'ruby #{$0} --help' for detailed usage." exit 1 end end {% endhighlight %} <h3 class="filename">syntax_test.php</h3> {% highlight php %} <?php require_once($GLOBALS['g_campsiteDir']. "/$ADMIN_DIR/country/common.php"); require_once($GLOBALS['g_campsiteDir']. "/classes/SimplePager.php"); camp_load_translation_strings("api"); $f_country_language_selected = camp_session_get('f_language_selected', ''); $f_country_offset = camp_session_get('f_country_offset', 0); if (empty($f_country_language_selected)) { $f_country_language_selected = null; } $ItemsPerPage = 20; $languages = Language::GetLanguages(null, null, null, array(), array(), true); $numCountries = Country::GetNumCountries($f_country_language_selected); $pager = new SimplePager($numCountries, $ItemsPerPage, "index.php?"); $crumbs = array(); $crumbs[] = array(getGS("Configure"), ""); $crumbs[] = array(getGS("Countries"), ""); echo camp_html_breadcrumbs($crumbs); ?> <?php if ($g_user->hasPermission("ManageCountries")) { ?> <table BORDER="0" CELLSPACING="0" CELLPADDING="1"> <tr> <td><a href="add.php"><?php putGS("Add new"); ?></a></td> </tr> </table> {% endhighlight %} <h3 class="filename">syntax_test.hs</h3> {% highlight hs %} {-# LANGUAGE OverloadedStrings #-} module Main where --import Prelude hiding (id) --import Control.Category (id) import Control.Arrow ((>>>), (***), arr) import Control.Monad (forM_) -- import Data.Monoid (mempty, mconcat) -- import System.FilePath import Hakyll main :: IO () main = hakyll $ do route "css/*" $ setExtension "css" compile "css/*" $ byExtension (error "Not a (S)CSS file") [ (".css", compressCssCompiler) , (".scss", sass) ] route "js/**" idRoute compile "js/**" copyFileCompiler route "img/*" idRoute compile "img/*" copyFileCompiler compile "templates/*" templateCompiler forM_ ["test.md", "index.md"] $ \page -> do route page $ setExtension "html" compile page $ pageCompiler >>> applyTemplateCompiler "templates/default.html" >>> relativizeUrlsCompiler sass :: Compiler Resource String sass = getResourceString >>> unixFilter "sass" ["-s", "--scss"] >>> arr compressCss {% endhighlight %} <h3 class="filename">syntax_test.sh</h3> {% highlight sh %} #!/bin/bash cd $ROOT_DIR DOT_FILES="lastpass weechat ssh Xauthority" for dotfile in $DOT_FILES; do conform_link "$DATA_DIR/$dotfile" ".$dotfile"; done # TODO: refactor with suffix variables (or common cron values) case "$PLATFORM" in linux) #conform_link "$CONF_DIR/shell/zshenv" ".zshenv" crontab -l > $ROOT_DIR/tmp/crontab-conflict-arch cd $ROOT_DIR/$CONF_DIR/cron if [[ "$(diff ~/tmp/crontab-conflict-arch crontab-current-arch)" == "" ]]; then # no difference with current backup logger "$LOG_PREFIX: crontab live settings match stored "\ "settings; no restore required" rm ~/tmp/crontab-conflict-arch else # current crontab settings in file do not match live settings crontab $ROOT_DIR/$CONF_DIR/cron/crontab-current-arch logger "$LOG_PREFIX: crontab stored settings conflict with "\ "live settings; stored settings restored. "\ "Previous settings recorded in ~/tmp/crontab-conflict-arch." fi ;; {% endhighlight %} <h3 class="filename">syntax_test.py</h3> {% highlight py %} # test python (sample from offlineimap) class ExitNotifyThread(Thread): """This class is designed to alert a "monitor" to the fact that a thread has exited and to provide for the ability for it to find out why.""" def run(self): global exitthreads, profiledir self.threadid = thread.get_ident() try: if not profiledir: # normal case Thread.run(self) else: try: import cProfile as profile except ImportError: import profile prof = profile.Profile() try: prof = prof.runctx("Thread.run(self)", globals(), locals()) except SystemExit: pass prof.dump_stats( \ profiledir + "/" + str(self.threadid) + "_" + \ self.getName() + ".prof") except: self.setExitCause('EXCEPTION') if sys: self.setExitException(sys.exc_info()[1]) tb = traceback.format_exc() self.setExitStackTrace(tb) else: self.setExitCause('NORMAL') if not hasattr(self, 'exitmessage'): self.setExitMessage(None) if exitthreads: exitthreads.put(self, True) def setExitCause(self, cause): self.exitcause = cause def getExitCause(self): """Returns the cause of the exit, one of: 'EXCEPTION' -- the thread aborted because of an exception 'NORMAL' -- normal termination.""" return self.exitcause def setExitException(self, exc): self.exitexception = exc def getExitException(self): """If getExitCause() is 'EXCEPTION', holds the value from sys.exc_info()[1] for this exception.""" return self.exitexception def setExitStackTrace(self, st): self.exitstacktrace = st def getExitStackTrace(self): """If getExitCause() is 'EXCEPTION', returns a string representing the stack trace for this exception.""" return self.exitstacktrace def setExitMessage(self, msg): """Sets the exit message to be fetched by a subsequent call to getExitMessage. This message may be any object or type except None.""" self.exitmessage = msg def getExitMessage(self): """For any exit cause, returns the message previously set by a call to setExitMessage(), or None if there was no such message set.""" return self.exitmessage {% endhighlight %} <h3 class="filename">syntax_test.pl</h3> {% highlight perl %} #!perl -w # Time-stamp: <2002/04/06, 13:12:13 (EST), maverick, csvformat.pl> # Two pass CSV file to table formatter $delim = $#ARGV >= 1 ? $ARGV[1] : ','; print STDERR "Split pattern: $delim\n"; # first pass open F, "<$ARGV[0]" or die; while(<F>) { chomp; $i = 0; map { $max[$_->[1]] = $_->[0] if $_->[0] > ($max[$_->[1]] || 0) } (map {[length $_, $i++]} split($delim)); } close F; print STDERR 'Field width: ', join(', ', @max), "\n"; print STDERR join(' ', map {'-' x $_} @max); # second pass open F, "<$ARGV[0]" or die; while(<F>) { chomp; $i = 0; map { printf("%-$max[$_->[1]]s ", $_->[0]) } (map {[$_, $i++]} split($delim)); print "\n"; } close F; {% endhighlight %} <h3 class="filename">syntax_test.java</h3> {% highlight java %} import java.util.Map; import java.util.TreeSet; public class GetEnv { /** * let's test generics * @param args the command line arguments */ public static void main(String[] args) { // get a map of environment variables Map<String, String> env = System.getenv(); // build a sorted set out of the keys and iterate for(String k: new TreeSet<String>(env.keySet())) { System.out.printf("%s = %s\n", k, env.get(k)); } } } {% endhighlight %} <h3 class="filename">syntax_test.c</h3> {% highlight c %} #define UNICODE #include <windows.h> int main(int argc, char **argv) { int speed = 0, speed1 = 0, speed2 = 0; // 1-20 printf("Set Mouse Speed by Maverick\n"); SystemParametersInfo(SPI_GETMOUSESPEED, 0, &speed, 0); printf("Current speed: %2d\n", speed); if (argc == 1) return 0; if (argc >= 2) sscanf(argv[1], "%d", &speed1); if (argc >= 3) sscanf(argv[2], "%d", &speed2); if (argc == 2) // set speed to first value speed = speed1; else if (speed == speed1 || speed == speed2) // alternate speed = speed1 + speed2 - speed; else speed = speed1; // start with first value SystemParametersInfo(SPI_SETMOUSESPEED, 0, speed, 0); SystemParametersInfo(SPI_GETMOUSESPEED, 0, &speed, 0); printf("New speed: %2d\n", speed); return 0; } {% endhighlight %}