DOS format file (XSHD) for SharpDevelop, IMHO Instant Blogger, etc.
I use IMHO Instant Blogger to edit and post blog articles. One of my favorite features is the code snippet editor. It's built on the SharpDevelop text editor, which has support for language syntaxes which are defined in xml syntax highlight definitions (XSHD's). It's a nice way to show color coded source code on a web page.1
I post enough DOS scripts that I finally wrote a syntax file for the DOS Batch grammar. It's probably not 100% complete, but I grabbed the cammand from the DOS help command, some standard EXE's from c:\windows\system\, etc. It's easy to install for IMHO:
1. Save this text as C:\Program Files\Elite Agency\Imho Instant Blogger\formatters\CodeSnippet\styles\DOS-mode.xshd:
<!-- syntaxdefinition for DOS Batch by Jon Galloway -->
<SyntaxDefinition name = "DOS" extensions = ".cmd;.bat">
<Properties>
<Property name="LineComment" value="::"/>
</Properties>
<Digits name = "Digits" bold = "false" italic = "false" color = "DarkBlue"/>
<RuleSets>
<RuleSet ignorecase = "true">
<Delimiters>~!%^*()-+=|\#/{}[]:;"'<> , .?</Delimiters>
<Span name = "LineComment" bold = "false" italic = "false" color = "Teal" stopateol = "true">
<Begin>::</Begin>
</Span>
<Span name = "LineComment" bold = "false" italic = "false" color = "Teal" stopateol = "true">
<Begin>rem</Begin>
</Span>
<Span name = "Label" bold = "true" italic = "true" color = "DarkBlue" stopateol = "true">
<Begin>:</Begin>
</Span>
<Span name = "String" bold = "false" italic = "false" color = "Magenta" stopateol = "true">
<Begin>"</Begin>
<End>"</End>
</Span>
<Span name = "Char" bold = "false" italic = "false" color = "Magenta" stopateol = "true">
<Begin>'</Begin>
<End>'</End>
</Span>
<Span name = "EnvironmentVariable" bold = "true" italic = "false" color = "Blue" stopateol = "true">
<Begin>%</Begin>
<End>%</End>
</Span>
<MarkPrevious bold = "true" italic = "false" color = "MidnightBlue">(</MarkPrevious>
<KeyWords name = "Punctuation" bold = "true" italic = "false" color = "Black">
<Key word = "?" />
<Key word = "," />
<Key word = "." />
<Key word = ";" />
<Key word = "(" />
<Key word = ")" />
<Key word = "[" />
<Key word = "]" />
<Key word = "{" />
<Key word = "}" />
<Key word = "+" />
<Key word = "-" />
<Key word = "/" />
<Key word = "*" />
<Key word = "<" />
<Key word = ">" />
<Key word = "^" />
<Key word = "=" />
<Key word = "~" />
<Key word = "!" />
<Key word = "|" />
<Key word = "&" />
</KeyWords>
<KeyWords name = "Literals" bold="false" italic="false" color="Black">
<Key word = "false" />
<Key word = "true" />
</KeyWords>
<KeyWords name = "IterationStatements" bold="false" italic="false" color="Navy">
<Key word = "do" />
<Key word = "for" />
<Key word = "while" />
</KeyWords>
<KeyWords name = "ManagedIterationStatements" bold="false" italic="false" color="Navy">
<Key word = "foreach" />
<Key word = "in" />
</KeyWords>
<KeyWords name = "JumpStatements" bold="false" italic="false" color="Navy">
<Key word = "break" />
<Key word = "continue" />
<Key word = "goto" />
<Key word = "return" />
<Key word = "call" />
</KeyWords>
<KeyWords name = "SelectionStatements" bold="false" italic="false" color="Navy">
<Key word = "if" />
<Key word = "else" />
<Key word = "case" />
<Key word = "choice" />
</KeyWords>
<KeyWords name = "Environment" bold="false" italic="false" color="Navy">
<Key word = "@" />
</KeyWords>
<KeyWords name = "CommonPrograms" bold="true" italic="false" color="Black">
<Key word = ".exe" />
<Key word = "devnev" />
<Key word = "msbuild" />
<Key word = "append" />
<Key word = "at" />
<Key word = "calc" />
<Key word = "chkdsk" />
<Key word = "defrag" />
<Key word = "cscript" />
<Key word = "defrag" />
<Key word = "doskey" />
<Key word = "ftp" />
<Key word = "iisreset" />
<Key word = "ipconfig" />
<Key word = "makecab" />
<Key word = "netsh" />
<Key word = "netstat" />
<Key word = "notepad" />
<Key word = "ntbackup" />
<Key word = "print" />
<Key word = "ping" />
<Key word = "regedit" />
<Key word = "regedt32" />
<Key word = "regedit" />
<Key word = "soon" />
<Key word = "sort" />
<Key word = "shutdown" />
<Key word = "rundll32" />
<Key word = "regsvr32" />
<Key word = "subst" />
<Key word = "runonce" />
<Key word = "telnet" />
<Key word = "write" />
<Key word = "xcopy" />
<Key word = "wscript" />
</KeyWords>
<KeyWords name = "BatchCommands" bold="false" italic="false" color="DarkBlue">
<Key word = "assoc" />
<Key word = "at" />
<Key word = "attrib" />
<Key word = "break" />
<Key word = "cacls" />
<Key word = "call" />
<Key word = "cd" />
<Key word = "chcp" />
<Key word = "chdir" />
<Key word = "chkdsk" />
<Key word = "chkntfs" />
<Key word = "cls" />
<Key word = "cmd" />
<Key word = "color" />
<Key word = "comp" />
<Key word = "compact" />
<Key word = "convert" />
<Key word = "copy" />
<Key word = "date" />
<Key word = "del" />
<Key word = "dir" />
<Key word = "diskcomp" />
<Key word = "diskcopy" />
<Key word = "dosKey" />
<Key word = "echo" />
<Key word = "endlocal" />
<Key word = "erase" />
<Key word = "exit" />
<Key word = "fc" />
<Key word = "find" />
<Key word = "findstr" />
<Key word = "for" />
<Key word = "format" />
<Key word = "ftype" />
<Key word = "goto" />
<Key word = "graftabl" />
<Key word = "help" />
<Key word = "if" />
<Key word = "label" />
<Key word = "md" />
<Key word = "mkdir" />
<Key word = "mode" />
<Key word = "more" />
<Key word = "move" />
<Key word = "path" />
<Key word = "pause" />
<Key word = "popd" />
<Key word = "print" />
<Key word = "prompt" />
<Key word = "pushd" />
<Key word = "rd" />
<Key word = "recover" />
<Key word = "rem" />
<Key word = "ren" />
<Key word = "rename" />
<Key word = "replace" />
<Key word = "rmdir" />
<Key word = "set" />
<Key word = "setlocal" />
<Key word = "shift" />
<Key word = "sort" />
<Key word = "start" />
<Key word = "subst" />
<Key word = "time" />
<Key word = "title" />
<Key word = "tree" />
<Key word = "type" />
<Key word = "ver" />
<Key word = "verify" />
<Key word = "vol" />
<Key word = "xcopy" />
</KeyWords>
</RuleSet>
</RuleSets>
</SyntaxDefinition>
2. Add add a reference to it in C:\Program Files\Elite Agency\Imho Instant Blogger\formatters\CodeSnippet\styles\SyntaxModes.xml by adding this line:
I also wrote up a simple Quote XSHD with no keywords in case I want an easy way to drop a quote in a scrollable frame (installation is the left as an exercise for the reader):
<SyntaxDefinition name = "Quote" extensions = ".txt">
<Digits name = "Digits" bold = "false" italic = "false" color = "Black"/>
<RuleSets>
<RuleSet>
</RuleSet>
</RuleSets>
</SyntaxDefinition>
1 I know there are some nice solutions for doing this in Visual Studio (Jeff Atwood's VS addin, Copy Source as HTML), but I like having this built into the blog editor; plus this formatter does some cool stuff like copy the code into a scrolling frame.