<?xml version="1.0" encoding ="utf-8"?>

<!-- 
PureScript syntax highlighting
Written by Ezra Altahan
Created 28/11/2016
Version 1.0

hello@exr.be
https://github.com/ei
-->

<SyntaxDefinition name="PureScript" extensions=".purs">
    
    <Environment> 
        <Default color="Black" bgcolor="#FFFFFF"/>
        <Selection color="Black" bgcolor="#C3C3FF"/>
        <LineNumbers color="Gray" bgcolor="#FFFFFF"/>
        <CaretMarker color="#F0F0F1"/>
        <VRuler color="#E0E0E5"/>
        
        <FoldLine color="#A0A0A0" bgcolor="#FFFFFF"/>
        <FoldMarker color="Black" bgcolor="#FFFFFF"/>
        <SelectedFoldLine color="Black" bgcolor="#FFFFFF"/>
        
        <EOLMarkers color="#CACAD2"/>
        <SpaceMarkers color="#B6B6C0"/>
        <TabMarkers color="#B6B6C0"/>
        <InvalidLines color="#B6B6C0"/>
    </Environment>
    
    <Properties>
        <Property name="LineComment" value="--"/>
        <Property name="BlockCommentBegin" value="{-"/>
        <Property name="BlockCommentEnd" value="-}"/>
    </Properties>
    
    <Digits name="Digits" color="Black"/>
    
    <RuleSets>
        <RuleSet ignorecase="false">
        
        <Delimiters>=+-*/`,#";.@|^$&gt;&lt;[]{}()</Delimiters>
        
            <Span name="LineComment" stopateol="true" color="Green" bold="false" italic="false">
                <Begin>--</Begin>
            </Span>
            
            <Span name="BlockComment" rule="CommentSet1" stopateol="false" color="Green" bold="false" italic="false">
                <Begin>{-</Begin>
                <End>-}</End>
            </Span>
            
            <Span name="String1" stopateol="false" color="#808080" bold="false" italic="false">
                <Begin>"""</Begin>
                <End>"""</End>
            </Span>
            
            <Span name="String2" stopateol="false" color="#808080" bold="false" italic="false" escapecharacter='\'>
                <Begin>"</Begin>
                <End>"</End>
            </Span>
                        
            <KeyWords name="Keywords1" color="Blue" bold="false" italic="false">
                <Key word="as"/>
                <Key word="case"/>
                <Key word="class"/>
                <Key word="data"/>
                <Key word="default"/>
                <Key word="deriving"/>
                <Key word="do"/>
                <Key word="else"/>
                <Key word="false"/>
                <Key word="forall"/>
                <Key word="foreign"/>
                <Key word="if"/>
                <Key word="import"/>
                <Key word="in"/>
                <Key word="infix"/>
                <Key word="infixl"/>
                <Key word="infixr"/>
                <Key word="instance"/>
                <Key word="let"/>
                <Key word="module"/>
                <Key word="newtype"/>
                <Key word="of"/>
                <Key word="then"/>
                <Key word="true"/>
                <Key word="type"/>
                <Key word="where"/>
            </KeyWords>
        </RuleSet>
        
        <RuleSet ignorecase="false" name="CommentSet1">
            <Delimiters>&amp;&lt;&gt;~!@%^*()-+=|\#/{}[]:;"' ,  .?</Delimiters>

            <Span name="BlockComment" stopateol="false" color="Green" bold="false" italic="false">
                <Begin >{-</Begin>
                <End >-}</End>
            </Span>
        </RuleSet>
    </RuleSets>
</SyntaxDefinition>
