Browse Source

Converted VBNet-Mode.xshd to new file format.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5401 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 16 years ago
parent
commit
4d372dc9b5
  1. 443
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/Resources/VBNET-Mode.xshd
  2. 8
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/Xshd/V2Loader.cs

443
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/Resources/VBNET-Mode.xshd

@ -2,264 +2,209 @@
<!-- Syntaxdefinition for VB.NET, v0.1 Rev 1 by Christian Holm --> <!-- Syntaxdefinition for VB.NET, v0.1 Rev 1 by Christian Holm -->
<!-- Updated 2005 by Daniel Grunwald for VB.NET 2.0 --> <!-- Updated 2005 by Daniel Grunwald for VB.NET 2.0 -->
<!-- Converted to AvalonEdit format by Daniel Grunwald in 2010 -->
<SyntaxDefinition name = "VBNET" extensions = ".vb"> <SyntaxDefinition name="VBNET" extensions=".vb" xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008">
<Color name="Comment" foreground="Green" />
<Properties> <Color name="String" />
<Property name="LineComment" value="'"/> <RuleSet ignoreCase="true">
</Properties> <Span color="String">
<Digits name = "Digits" bold = "false" italic = "false" color = "Black"/>
<RuleSets>
<RuleSet ignorecase = "true">
<Delimiters>~!@%^*()-+=|\#/{}[]:;"'&lt;&gt;,.?</Delimiters>
<Span name = "STRING" bold = "false" italic = "false" color = "Black" stopateol = "true" escapecharacter='"'>
<Begin>"</Begin> <Begin>"</Begin>
<End>"</End> <End>"</End>
<RuleSet>
<Span begin="&quot;&quot;" end="" />
</RuleSet>
</Span> </Span>
<!-- <Span foreground="Maroon" ruleSet="PreprocessorSet">
<Span name = "LINECOMMENT" rule = "DocumentSet" bold = "false" italic = "false" color = "Green" stopateol = "true"> <Begin>(?&lt;=(^\s*))\#</Begin>
<Begin>'</Begin>
</Span>
<Span name = "LINECOMMENT" rule = "DocumentSet" bold = "false" italic = "false" color = "Green" stopateol = "true">
<Begin>REM</Begin>
</Span> </Span>
--> <Span foreground="Blue">
<Span name = "PREPROCESSORDIRECTIVE" rule = "PreprocessorSet" bold = "false" italic = "false" color = "Maroon" stopateol = "true"> <!-- Date Literal -->
<Begin startofline="true">#</Begin> <Begin>(?&lt;!(^\s*))\#</Begin>
<End>\#</End>
</Span> </Span>
<Span color="Comment" ruleSet="XmlDoc/DocCommentSet">
<Span name = "DATELITERAL" bold = "false" italic = "false" color = "Blue" stopateol = "true"> <Begin color="XmlDoc/DocComment">'''</Begin>
<Begin startofline="false">#</Begin>
<End>#</End>
</Span> </Span>
<Span color="Comment">
<Span name = "LINECOMMENT" bold = "false" italic = "false" color = "Green" stopateol = "true">
<Begin>'</Begin> <Begin>'</Begin>
</Span> </Span>
<Span color="Comment">
<Span name = "LINECOMMENT" bold = "false" italic = "false" color = "Green" stopateol = "true"> <Begin>\bREM\b</Begin>
<Begin singleword="true">REM@C</Begin>
</Span> </Span>
<Keywords foreground="#FF6F002F">
<KeyWords name = "DataTypes" bold="false" italic="false" color="#6F002F"> <Word>Boolean</Word>
<Key word = "Boolean" /> <Word>Byte</Word>
<Key word = "Byte" /> <Word>Char</Word>
<Key word = "Char" /> <Word>Date</Word>
<Key word = "Date" /> <Word>Decimal</Word>
<Key word = "Decimal" /> <Word>Double</Word>
<Key word = "Double" /> <Word>Integer</Word>
<Key word = "Integer" /> <Word>Long</Word>
<Key word = "Long" /> <Word>Object</Word>
<Key word = "Object" /> <Word>SByte</Word>
<Key word = "SByte" /> <Word>Short</Word>
<Key word = "Short" /> <Word>Single</Word>
<Key word = "Single" /> <Word>String</Word>
<Key word = "String" /> <Word>UInteger</Word>
<Key word = "UInteger" /> <Word>ULong</Word>
<Key word = "ULong" /> <Word>UShort</Word>
<Key word = "UShort" /> <Word>Variant</Word>
<Key word = "Variant" /> </Keywords>
</KeyWords> <Keywords foreground="#FF8515EA">
<Word>AddressOf</Word>
<KeyWords name = "Operators" bold="false" italic="false" color="#8515EA"> <Word>And</Word>
<Key word = "AddressOf" /> <Word>AndAlso</Word>
<Key word = "And" /> <Word>Is</Word>
<Key word = "AndAlso" /> <Word>IsNot</Word>
<Key word = "Is" /> <Word>Like</Word>
<Key word = "IsNot" /> <Word>Mod</Word>
<Key word = "Like" /> <Word>New</Word>
<Key word = "Mod" /> <Word>Not</Word>
<Key word = "New" /> <Word>Or</Word>
<Key word = "Not" /> <Word>OrElse</Word>
<Key word = "Or" /> <Word>Xor</Word>
<Key word = "OrElse" /> </Keywords>
<Key word = "Xor" /> <Keywords foreground="Blue">
</KeyWords> <Word>False</Word>
<Word>Me</Word>
<KeyWords name = "Constants" bold="false" italic="false" color="Blue"> <Word>MyBase</Word>
<Key word = "False" /> <Word>MyClass</Word>
<Key word = "Me" /> <Word>Nothing</Word>
<Key word = "MyBase" /> <Word>True</Word>
<Key word = "MyClass" /> <Word>As</Word>
<Key word = "Nothing" /> <Word>Of</Word>
<Key word = "True" /> <Word>New</Word>
</KeyWords> <Word>End</Word>
<Word>CBool</Word>
<KeyWords name = "CommonKeywords" bold="false" italic="false" color="Blue"> <Word>CByte</Word>
<Key word = "As" /> <Word>CChar</Word>
<Key word = "Of" /> <Word>CDate</Word>
<Key word = "New" /> <Word>CDec</Word>
<Key word = "End" /> <Word>CDbl</Word>
</KeyWords> <Word>CInt</Word>
<Word>CLng</Word>
<KeyWords name = "FunctionKeywords" bold="false" italic="false" color="Blue"> <Word>CObj</Word>
<Key word = "CBool" /> <Word>CSByte</Word>
<Key word = "CByte" /> <Word>CShort</Word>
<Key word = "CChar" /> <Word>CSng</Word>
<Key word = "CDate" /> <Word>CStr</Word>
<Key word = "CDec" /> <Word>CType</Word>
<Key word = "CDbl" /> <Word>CUInt</Word>
<Key word = "CInt" /> <Word>CULng</Word>
<Key word = "CLng" /> <Word>CUShort</Word>
<Key word = "CObj" /> <Word>DirectCast</Word>
<Key word = "CSByte" /> <Word>GetType</Word>
<Key word = "CShort" /> <Word>TryCast</Word>
<Key word = "CSng" /> <Word>TypeOf</Word>
<Key word = "CStr" /> <Word>ByRef</Word>
<Key word = "CType" /> <Word>ByVal</Word>
<Key word = "CUInt" /> <Word>Optional</Word>
<Key word = "CULng" /> <Word>ParamArray</Word>
<Key word = "CUShort" /> <Word>Friend</Word>
<Key word = "DirectCast" /> <Word>Private</Word>
<Key word = "GetType" /> <Word>Protected</Word>
<Key word = "TryCast" /> <Word>Public</Word>
<Key word = "TypeOf" /> <Word>Const</Word>
</KeyWords> <Word>Custom</Word>
<Word>Default</Word>
<KeyWords name = "ParamModifiers" bold="false" italic="false" color="Blue"> <Word>Global</Word>
<Key word = "ByRef" /> <Word>MustInherit</Word>
<Key word = "ByVal" /> <Word>MustOverride</Word>
<Key word = "Optional" /> <Word>Narrowing</Word>
<Key word = "ParamArray" /> <Word>NotInheritable</Word>
</KeyWords> <Word>NotOverridable</Word>
<Word>Overloads</Word>
<KeyWords name = "AccessModifiers" bold="false" italic="false" color="Blue"> <Word>Overridable</Word>
<Key word = "Friend" /> <Word>Overrides</Word>
<Key word = "Private" /> <Word>Partial</Word>
<Key word = "Protected" /> <Word>ReadOnly</Word>
<Key word = "Public" /> <Word>Shadows</Word>
</KeyWords> <Word>Shared</Word>
<Word>Static</Word>
<KeyWords name = "OtherModifiers" bold="false" italic="false" color="Blue"> <Word>Widening</Word>
<Key word = "Const" /> <Word>WithEvents</Word>
<Key word = "Custom" /> <Word>WriteOnly</Word>
<Key word = "Default" /> <Word>Throw</Word>
<Key word = "Global" /> <Word>Stop</Word>
<Key word = "MustInherit" /> <Word>Return</Word>
<Key word = "MustOverride" /> <Word>Resume</Word>
<Key word = "Narrowing" /> <Word>AddHandler</Word>
<Key word = "NotInheritable" /> <Word>RemoveHandler</Word>
<Key word = "NotOverridable" /> <Word>RaiseEvent</Word>
<Key word = "Overloads" /> <Word>Option</Word>
<Key word = "Overridable" /> <Word>Let</Word>
<Key word = "Overrides" /> <Word>GoTo</Word>
<Key word = "Partial" /> <Word>GoSub</Word>
<Key word = "ReadOnly" /> <Word>Call</Word>
<Key word = "Shadows" /> <Word>Continue</Word>
<Key word = "Shared" /> <Word>Dim</Word>
<Key word = "Static" /> <Word>ReDim</Word>
<Key word = "Widening" /> <Word>Erase</Word>
<Key word = "WithEvents" /> <Word>On</Word>
<Key word = "WriteOnly" /> <Word>Error</Word>
</KeyWords> <Word>Exit</Word>
<Word>Namespace</Word>
<KeyWords name = "Statements" bold="false" italic="false" color="Blue"> <Word>Class</Word>
<Key word = "Throw" /> <Word>Imports</Word>
<Key word = "Stop" /> <Word>Implements</Word>
<Key word = "Return" /> <Word>Inherits</Word>
<Key word = "Resume" /> <Word>Interface</Word>
<Key word = "AddHandler" /> <Word>Delegate</Word>
<Key word = "RemoveHandler" /> <Word>Module</Word>
<Key word = "RaiseEvent" /> <Word>Structure</Word>
<Key word = "Option" /> <Word>Enum</Word>
<Key word = "Let" /> <Word>Sub</Word>
<Key word = "GoTo" /> <Word>Function</Word>
<Key word = "GoSub" /> <Word>Handles</Word>
<Key word = "Call" /> <Word>Declare</Word>
<Key word = "Continue" /> <Word>Lib</Word>
<Key word = "Dim" /> <Word>Alias</Word>
<Key word = "ReDim" /> <Word>Get</Word>
<Key word = "Erase" /> <Word>Set</Word>
<Key word = "On" /> <Word>Property</Word>
<Key word = "Error" /> <Word>Operator</Word>
<Key word = "Exit" /> <Word>Event</Word>
</KeyWords> <Word>SyncLock</Word>
<Word>Using</Word>
<KeyWords name = "GlobalConstructs" bold="false" italic="false" color="Blue"> <Word>With</Word>
<Key word = "Namespace" /> <Word>Do</Word>
<Key word = "Class" /> <Word>While</Word>
<Key word = "Imports" /> <Word>Loop</Word>
<Key word = "Implements" /> <Word>Wend</Word>
<Key word = "Inherits" /> <Word>Try</Word>
<Key word = "Interface" /> <Word>Catch</Word>
<Key word = "Delegate" /> <Word>When</Word>
<Key word = "Module" /> <Word>Finally</Word>
<Key word = "Structure" /> <Word>If</Word>
<Key word = "Enum" /> <Word>Then</Word>
</KeyWords> <Word>Else</Word>
<Word>ElseIf</Word>
<KeyWords name = "TypeLevelConstructs" bold="false" italic="false" color="Blue"> <Word>EndIf</Word>
<Key word = "Sub" /> <Word>For</Word>
<Key word = "Function" /> <Word>To</Word>
<Key word = "Handles" /> <Word>Step</Word>
<Key word = "Declare" /> <Word>Each</Word>
<Key word = "Lib" /> <Word>In</Word>
<Key word = "Alias" /> <Word>Next</Word>
<Key word = "Get" /> <Word>Select</Word>
<Key word = "Set" /> <Word>Case</Word>
<Key word = "Property" /> <Word>Ansi</Word>
<Key word = "Operator" /> <Word>Auto</Word>
<Key word = "Event" /> <Word>Unicode</Word>
</KeyWords> <Word>Preserve</Word>
<Word>Until</Word>
<KeyWords name = "Constructs" bold="false" italic="false" color="Blue"> </Keywords>
<Key word = "SyncLock" />
<Key word = "Using" />
<Key word = "With" />
<Key word = "Do" />
<Key word = "While" />
<Key word = "Loop" />
<Key word = "Wend" />
<Key word = "Try" />
<Key word = "Catch" />
<Key word = "When" />
<Key word = "Finally" />
<Key word = "If" />
<Key word = "Then" />
<Key word = "Else" />
<Key word = "ElseIf" />
<Key word = "EndIf" />
<Key word = "For" />
<Key word = "To" />
<Key word = "Step" />
<Key word = "Each" />
<Key word = "In" />
<Key word = "Next" />
<Key word = "Select" />
<Key word = "Case" />
</KeyWords>
<KeyWords name = "ContextKeywords" bold="false" italic="false" color="Blue">
<Key word = "Ansi" />
<Key word = "Auto" />
<Key word = "Unicode" />
<Key word = "Preserve" />
<Key word = "Until" />
</KeyWords>
</RuleSet> </RuleSet>
<RuleSet name="PreprocessorSet" ignoreCase="true">
<RuleSet name = "PreprocessorSet" ignorecase = "true"> <Keywords foreground="Maroon" fontWeight="bold">
<Delimiters>~!@%^*()-+=|\#/{}[]:;"'&lt;&gt;,.?</Delimiters> <Word>Const</Word>
<Word>If</Word>
<KeyWords name = "PreProcessor" bold="true" italic="false" color="Maroon"> <Word>ElseIf</Word>
<Key word = "Const" /> <Word>Else</Word>
<Key word = "If" /> <Word>End</Word>
<Key word = "ElseIf" /> <Word>ExternalSource</Word>
<Key word = "Else" /> <Word>Region</Word>
<Key word = "End" /> <Word>ExternalChecksum</Word>
<Key word = "ExternalSource" /> </Keywords>
<Key word = "Region" />
<Key word = "ExternalChecksum" />
</KeyWords>
</RuleSet> </RuleSet>
</RuleSets>
</SyntaxDefinition> </SyntaxDefinition>

8
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/Xshd/V2Loader.cs

@ -210,6 +210,7 @@ namespace ICSharpCode.AvalonEdit.Highlighting.Xshd
{ {
string ruleSet = reader.GetAttribute("ruleSet"); string ruleSet = reader.GetAttribute("ruleSet");
if (ruleSet != null) { if (ruleSet != null) {
// '/' is valid in highlighting definition names, so we need the last occurence
int pos = ruleSet.LastIndexOf('/'); int pos = ruleSet.LastIndexOf('/');
if (pos >= 0) { if (pos >= 0) {
return new XshdReference<XshdRuleSet>(ruleSet.Substring(0, pos), ruleSet.Substring(pos + 1)); return new XshdReference<XshdRuleSet>(ruleSet.Substring(0, pos), ruleSet.Substring(pos + 1));
@ -226,7 +227,7 @@ namespace ICSharpCode.AvalonEdit.Highlighting.Xshd
if (name != null) { if (name != null) {
if (name.Length == 0) if (name.Length == 0)
throw Error(reader, "The empty string is not a valid name."); throw Error(reader, "The empty string is not a valid name.");
if (name.Contains("/")) if (name.IndexOf('/') >= 0)
throw Error(reader, "Element names must not contain a slash."); throw Error(reader, "Element names must not contain a slash.");
} }
} }
@ -235,8 +236,9 @@ namespace ICSharpCode.AvalonEdit.Highlighting.Xshd
static XshdColor ParseNamedColor(XmlReader reader) static XshdColor ParseNamedColor(XmlReader reader)
{ {
XshdColor color = ParseColorAttributes(reader); XshdColor color = ParseColorAttributes(reader);
if (color.Foreground == null && color.FontWeight == null && color.FontStyle == null) // check removed: invisible named colors may be useful now that apps can read highlighting data
throw Error(reader, "A named color must have at least one element."); //if (color.Foreground == null && color.FontWeight == null && color.FontStyle == null)
// throw Error(reader, "A named color must have at least one element.");
color.Name = reader.GetAttribute("name"); color.Name = reader.GetAttribute("name");
CheckElementName(reader, color.Name); CheckElementName(reader, color.Name);
return color; return color;

Loading…
Cancel
Save