Index: /trunk/sources/HeuristicLab 3.3.sln
===================================================================
--- /trunk/sources/HeuristicLab 3.3.sln	(revision 10505)
+++ /trunk/sources/HeuristicLab 3.3.sln	(revision 10506)
@@ -384,7 +384,7 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Trading.Views-3.4", "HeuristicLab.Problems.DataAnalysis.Trading.Views\3.4\HeuristicLab.Problems.DataAnalysis.Trading.Views-3.4.csproj", "{CB3D0A1E-1BE8-476B-A53C-2B189E30064F}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.HLScript-3.3", "HeuristicLab.HLScript\3.3\HeuristicLab.HLScript-3.3.csproj", "{21977CC3-1757-4B3B-87BD-FF817AAA900F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.HLScript.Views-3.3", "HeuristicLab.HLScript.Views\3.3\HeuristicLab.HLScript.Views-3.3.csproj", "{0C2917C8-7AA8-4E18-800A-C4D064F992ED}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Scripting-3.3", "HeuristicLab.HLScript\3.3\HeuristicLab.Scripting-3.3.csproj", "{21977CC3-1757-4B3B-87BD-FF817AAA900F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Scripting.Views-3.3", "HeuristicLab.HLScript.Views\3.3\HeuristicLab.Scripting.Views-3.3.csproj", "{0C2917C8-7AA8-4E18-800A-C4D064F992ED}"
 EndProject
 Global
Index: unk/sources/HeuristicLab.HLScript.Views/3.3/HeuristicLab.HLScript.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.HLScript.Views/3.3/HeuristicLab.HLScript.Views-3.3.csproj	(revision 10505)
+++ 	(revision )
@@ -1,180 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{0C2917C8-7AA8-4E18-800A-C4D064F992ED}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HeuristicLab.HLScript.Views</RootNamespace>
-    <AssemblyName>HeuristicLab.HLScript.Views-3.3</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup>
-    <SignAssembly>true</SignAssembly>
-  </PropertyGroup>
-  <PropertyGroup>
-    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Plugin.cs.frame" />
-    <Compile Include="ScriptView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="ScriptView.Designer.cs">
-      <DependentUpon>ScriptView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Plugin.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="VariableStoreView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="VariableStoreView.Designer.cs">
-      <DependentUpon>VariableStoreView.cs</DependentUpon>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="HeuristicLab.snk" />
-    <None Include="Properties\AssemblyInfo.cs.frame" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\HeuristicLab.CodeEditor\3.3\HeuristicLab.CodeEditor-3.3.csproj">
-      <Project>{489cfe09-fdf7-4c89-bab5-bd09cadd61ad}</Project>
-      <Name>HeuristicLab.CodeEditor-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
-      <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>
-      <Name>HeuristicLab.Collections-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
-      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
-      <Name>HeuristicLab.Common.Resources-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
-      <Project>{a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c}</Project>
-      <Name>HeuristicLab.Common-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
-      <Project>{e226881d-315f-423d-b419-a766fe0d8685}</Project>
-      <Name>HeuristicLab.Core.Views-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
-      <Project>{c36bd924-a541-4a00-afa8-41701378ddc5}</Project>
-      <Name>HeuristicLab.Core-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.HLScript\3.3\HeuristicLab.HLScript-3.3.csproj">
-      <Project>{21977cc3-1757-4b3b-87bd-ff817aaa900f}</Project>
-      <Name>HeuristicLab.HLScript-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
-      <Project>{ab687bbe-1bfe-476b-906d-44237135431d}</Project>
-      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
-      <Project>{3bd61258-31da-4b09-89c0-4f71fef5f05a}</Project>
-      <Name>HeuristicLab.MainForm-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
-      <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
-      <Name>HeuristicLab.Persistence-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
-      <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project>
-      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
-set ProjectDir=$(ProjectDir)
-set SolutionDir=$(SolutionDir)
-set Outdir=$(Outdir)
-
-call PreBuildEvent.cmd</PreBuildEvent>
-  </PropertyGroup>
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
Index: /trunk/sources/HeuristicLab.HLScript.Views/3.3/HeuristicLab.Scripting.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.HLScript.Views/3.3/HeuristicLab.Scripting.Views-3.3.csproj	(revision 10506)
+++ /trunk/sources/HeuristicLab.HLScript.Views/3.3/HeuristicLab.Scripting.Views-3.3.csproj	(revision 10506)
@@ -0,0 +1,180 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{0C2917C8-7AA8-4E18-800A-C4D064F992ED}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Scripting.Views</RootNamespace>
+    <AssemblyName>HeuristicLab.Scripting.Views-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Plugin.cs.frame" />
+    <Compile Include="ScriptView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ScriptView.Designer.cs">
+      <DependentUpon>ScriptView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="VariableStoreView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="VariableStoreView.Designer.cs">
+      <DependentUpon>VariableStoreView.cs</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.CodeEditor\3.3\HeuristicLab.CodeEditor-3.3.csproj">
+      <Project>{489cfe09-fdf7-4c89-bab5-bd09cadd61ad}</Project>
+      <Name>HeuristicLab.CodeEditor-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
+      <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>
+      <Name>HeuristicLab.Collections-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
+      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
+      <Name>HeuristicLab.Common.Resources-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
+      <Project>{e226881d-315f-423d-b419-a766fe0d8685}</Project>
+      <Name>HeuristicLab.Core.Views-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{c36bd924-a541-4a00-afa8-41701378ddc5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.HLScript\3.3\HeuristicLab.Scripting-3.3.csproj">
+      <Project>{21977cc3-1757-4b3b-87bd-ff817aaa900f}</Project>
+      <Name>HeuristicLab.Scripting-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
+      <Project>{ab687bbe-1bfe-476b-906d-44237135431d}</Project>
+      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
+      <Project>{3bd61258-31da-4b09-89c0-4f71fef5f05a}</Project>
+      <Name>HeuristicLab.MainForm-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
+      <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
+      <Name>HeuristicLab.Persistence-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
+      <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project>
+      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd</PreBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /trunk/sources/HeuristicLab.HLScript.Views/3.3/Plugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.HLScript.Views/3.3/Plugin.cs.frame	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript.Views/3.3/Plugin.cs.frame	(revision 10506)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -22,7 +22,7 @@
 using HeuristicLab.PluginInfrastructure;
 
-namespace HeuristicLab.HLScript.Views {
-  [Plugin("HeuristicLab.HLScript.Views", "3.3.9.$WCREV$")]
-  [PluginFile("HeuristicLab.HLScript.Views-3.3.dll", PluginFileType.Assembly)]
+namespace HeuristicLab.Scripting.Views {
+  [Plugin("HeuristicLab.Scripting.Views", "3.3.9.$WCREV$")]
+  [PluginFile("HeuristicLab.Scripting.Views-3.3.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.CodeEditor", "3.3")]
   [PluginDependency("HeuristicLab.Collections", "3.3")]
@@ -31,9 +31,9 @@
   [PluginDependency("HeuristicLab.Core", "3.3")]
   [PluginDependency("HeuristicLab.Core.Views", "3.3")]
-  [PluginDependency("HeuristicLab.HLScript", "3.3")]
+  [PluginDependency("HeuristicLab.Scripting", "3.3")]
   [PluginDependency("HeuristicLab.MainForm", "3.3")]
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
-  public class HeuristicLabHLScriptViewsPlugin : PluginBase {
+  public class HeuristicLabScriptingViewsPlugin : PluginBase {
   }
 }
Index: /trunk/sources/HeuristicLab.HLScript.Views/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.HLScript.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 10506)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -27,10 +27,10 @@
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
-[assembly: AssemblyTitle("HeuristicLab.HLScript.Views")]
+[assembly: AssemblyTitle("HeuristicLab.Scripting.Views")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("HeuristicLab")]
-[assembly: AssemblyCopyright("(c) 2002-2013 HEAL")]
+[assembly: AssemblyCopyright("(c) 2002-2014 HEAL")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
Index: /trunk/sources/HeuristicLab.HLScript.Views/3.3/ScriptView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.HLScript.Views/3.3/ScriptView.Designer.cs	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript.Views/3.3/ScriptView.Designer.cs	(revision 10506)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -20,5 +20,5 @@
 #endregion
 
-namespace HeuristicLab.HLScript.Views {
+namespace HeuristicLab.Scripting.Views {
   partial class ScriptView {
     /// <summary> 
@@ -45,7 +45,9 @@
     /// </summary>
     private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
       this.compilationLabel = new System.Windows.Forms.Label();
       this.startStopButton = new System.Windows.Forms.Button();
       this.errorListView = new System.Windows.Forms.ListView();
+      this.iconColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
       this.categoryColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
       this.errorNumberColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
@@ -53,13 +55,15 @@
       this.columnColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
       this.descriptionColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+      this.imageList = new System.Windows.Forms.ImageList(this.components);
       this.codeEditor = new HeuristicLab.CodeEditor.CodeEditor();
       this.splitContainer1 = new System.Windows.Forms.SplitContainer();
       this.splitContainer2 = new System.Windows.Forms.SplitContainer();
-      this.tabControl1 = new System.Windows.Forms.TabControl();
-      this.errorListTabPage = new System.Windows.Forms.TabPage();
+      this.infoTabControl = new System.Windows.Forms.TabControl();
       this.outputTabPage = new System.Windows.Forms.TabPage();
       this.outputTextBox = new System.Windows.Forms.TextBox();
-      this.variableStoreView = new HeuristicLab.HLScript.Views.VariableStoreView();
+      this.errorListTabPage = new System.Windows.Forms.TabPage();
+      this.variableStoreView = new HeuristicLab.Scripting.Views.VariableStoreView();
       this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.compileButton = new System.Windows.Forms.Button();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
@@ -71,7 +75,7 @@
       this.splitContainer2.Panel2.SuspendLayout();
       this.splitContainer2.SuspendLayout();
-      this.tabControl1.SuspendLayout();
+      this.infoTabControl.SuspendLayout();
+      this.outputTabPage.SuspendLayout();
       this.errorListTabPage.SuspendLayout();
-      this.outputTabPage.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -91,5 +95,5 @@
       this.compilationLabel.AutoSize = true;
       this.compilationLabel.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
-      this.compilationLabel.Location = new System.Drawing.Point(33, 32);
+      this.compilationLabel.Location = new System.Drawing.Point(66, 32);
       this.compilationLabel.Name = "compilationLabel";
       this.compilationLabel.Size = new System.Drawing.Size(69, 13);
@@ -100,5 +104,5 @@
       // 
       this.startStopButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Play;
-      this.startStopButton.Location = new System.Drawing.Point(3, 26);
+      this.startStopButton.Location = new System.Drawing.Point(36, 26);
       this.startStopButton.Name = "startStopButton";
       this.startStopButton.Size = new System.Drawing.Size(24, 24);
@@ -112,4 +116,5 @@
       // 
       this.errorListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.iconColumnHeader,
             this.categoryColumnHeader,
             this.errorNumberColumnHeader,
@@ -124,8 +129,13 @@
       this.errorListView.Name = "errorListView";
       this.errorListView.Size = new System.Drawing.Size(623, 79);
+      this.errorListView.SmallImageList = this.imageList;
       this.errorListView.TabIndex = 0;
       this.errorListView.UseCompatibleStateImageBehavior = false;
       this.errorListView.View = System.Windows.Forms.View.Details;
       // 
+      // iconColumnHeader
+      // 
+      this.iconColumnHeader.Text = "";
+      // 
       // categoryColumnHeader
       // 
@@ -135,20 +145,22 @@
       // 
       this.errorNumberColumnHeader.Text = "Error Number";
-      this.errorNumberColumnHeader.Width = 78;
       // 
       // lineColumnHeader
       // 
       this.lineColumnHeader.Text = "Line";
-      this.lineColumnHeader.Width = 50;
       // 
       // columnColumnHeader
       // 
       this.columnColumnHeader.Text = "Column";
-      this.columnColumnHeader.Width = 50;
       // 
       // descriptionColumnHeader
       // 
       this.descriptionColumnHeader.Text = "Description";
-      this.descriptionColumnHeader.Width = 600;
+      // 
+      // imageList
+      // 
+      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
+      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
       // 
       // codeEditor
@@ -197,30 +209,19 @@
       // splitContainer2.Panel2
       // 
-      this.splitContainer2.Panel2.Controls.Add(this.tabControl1);
+      this.splitContainer2.Panel2.Controls.Add(this.infoTabControl);
       this.splitContainer2.Size = new System.Drawing.Size(637, 543);
       this.splitContainer2.SplitterDistance = 428;
       this.splitContainer2.TabIndex = 5;
       // 
-      // tabControl1
-      // 
-      this.tabControl1.Controls.Add(this.errorListTabPage);
-      this.tabControl1.Controls.Add(this.outputTabPage);
-      this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.tabControl1.Location = new System.Drawing.Point(0, 0);
-      this.tabControl1.Name = "tabControl1";
-      this.tabControl1.SelectedIndex = 0;
-      this.tabControl1.Size = new System.Drawing.Size(637, 111);
-      this.tabControl1.TabIndex = 1;
-      // 
-      // errorListTabPage
-      // 
-      this.errorListTabPage.Controls.Add(this.errorListView);
-      this.errorListTabPage.Location = new System.Drawing.Point(4, 22);
-      this.errorListTabPage.Name = "errorListTabPage";
-      this.errorListTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.errorListTabPage.Size = new System.Drawing.Size(629, 85);
-      this.errorListTabPage.TabIndex = 0;
-      this.errorListTabPage.Text = "Error List";
-      this.errorListTabPage.UseVisualStyleBackColor = true;
+      // infoTabControl
+      // 
+      this.infoTabControl.Controls.Add(this.outputTabPage);
+      this.infoTabControl.Controls.Add(this.errorListTabPage);
+      this.infoTabControl.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.infoTabControl.Location = new System.Drawing.Point(0, 0);
+      this.infoTabControl.Name = "infoTabControl";
+      this.infoTabControl.SelectedIndex = 0;
+      this.infoTabControl.Size = new System.Drawing.Size(637, 111);
+      this.infoTabControl.TabIndex = 1;
       // 
       // outputTabPage
@@ -247,4 +248,15 @@
       this.outputTextBox.TabIndex = 0;
       this.outputTextBox.WordWrap = false;
+      // 
+      // errorListTabPage
+      // 
+      this.errorListTabPage.Controls.Add(this.errorListView);
+      this.errorListTabPage.Location = new System.Drawing.Point(4, 22);
+      this.errorListTabPage.Name = "errorListTabPage";
+      this.errorListTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.errorListTabPage.Size = new System.Drawing.Size(629, 85);
+      this.errorListTabPage.TabIndex = 0;
+      this.errorListTabPage.Text = "Error List";
+      this.errorListTabPage.UseVisualStyleBackColor = true;
       // 
       // variableStoreView
@@ -273,7 +285,20 @@
       this.viewHost.ViewType = null;
       // 
+      // compileButton
+      // 
+      this.compileButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Script;
+      this.compileButton.Location = new System.Drawing.Point(6, 26);
+      this.compileButton.Name = "compileButton";
+      this.compileButton.Size = new System.Drawing.Size(24, 24);
+      this.compileButton.TabIndex = 8;
+      this.compileButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
+      this.toolTip.SetToolTip(this.compileButton, "Compile (F6)");
+      this.compileButton.UseVisualStyleBackColor = true;
+      this.compileButton.Click += new System.EventHandler(this.compileButton_Click);
+      // 
       // ScriptView
       // 
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+      this.Controls.Add(this.compileButton);
       this.Controls.Add(this.splitContainer1);
       this.Controls.Add(this.startStopButton);
@@ -287,4 +312,5 @@
       this.Controls.SetChildIndex(this.nameTextBox, 0);
       this.Controls.SetChildIndex(this.infoLabel, 0);
+      this.Controls.SetChildIndex(this.compileButton, 0);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.splitContainer1.Panel1.ResumeLayout(false);
@@ -296,8 +322,8 @@
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
       this.splitContainer2.ResumeLayout(false);
-      this.tabControl1.ResumeLayout(false);
-      this.errorListTabPage.ResumeLayout(false);
+      this.infoTabControl.ResumeLayout(false);
       this.outputTabPage.ResumeLayout(false);
       this.outputTabPage.PerformLayout();
+      this.errorListTabPage.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -320,8 +346,11 @@
     private System.Windows.Forms.ColumnHeader errorNumberColumnHeader;
     private System.Windows.Forms.ColumnHeader categoryColumnHeader;
-    private System.Windows.Forms.TabControl tabControl1;
+    private System.Windows.Forms.TabControl infoTabControl;
     private System.Windows.Forms.TabPage errorListTabPage;
     private System.Windows.Forms.TabPage outputTabPage;
     private System.Windows.Forms.TextBox outputTextBox;
+    private System.Windows.Forms.Button compileButton;
+    private System.Windows.Forms.ColumnHeader iconColumnHeader;
+    private System.Windows.Forms.ImageList imageList;
   }
 }
Index: /trunk/sources/HeuristicLab.HLScript.Views/3.3/ScriptView.cs
===================================================================
--- /trunk/sources/HeuristicLab.HLScript.Views/3.3/ScriptView.cs	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript.Views/3.3/ScriptView.cs	(revision 10506)
@@ -22,6 +22,6 @@
 using System;
 using System.CodeDom.Compiler;
-using System.Collections.Generic;
 using System.Drawing;
+using System.Globalization;
 using System.Linq;
 using System.Windows.Forms;
@@ -31,5 +31,5 @@
 using HeuristicLab.MainForm;
 
-namespace HeuristicLab.HLScript.Views {
+namespace HeuristicLab.Scripting.Views {
 
   [View("Script View")]
@@ -45,4 +45,6 @@
     public ScriptView() {
       InitializeComponent();
+      errorListView.SmallImageList.Images.AddRange(new Image[] { VSImageLibrary.Warning, VSImageLibrary.Error });
+      AdjustErrorListViewColumnSizes();
     }
 
@@ -68,16 +70,29 @@
     }
     private void Content_ScriptExecutionStarted(object sender, EventArgs e) {
-      Locked = true;
-      ReadOnly = true;
-      startStopButton.Image = VSImageLibrary.Stop;
-    }
-    private void Content_ScriptExecutionFinished(object sender, EventArgs e) {
-      Locked = false;
-      ReadOnly = false;
-      startStopButton.Image = VSImageLibrary.Play;
-      running = false;
+      if (InvokeRequired)
+        Invoke((Action<object, EventArgs>)Content_ScriptExecutionStarted, sender, e);
+      else {
+        Locked = true;
+        ReadOnly = true;
+        startStopButton.Image = VSImageLibrary.Stop;
+        infoTabControl.SelectedTab = outputTabPage;
+      }
+    }
+    private void Content_ScriptExecutionFinished(object sender, EventArgs<Exception> e) {
+      if (InvokeRequired)
+        Invoke((Action<object, EventArgs<Exception>>)Content_ScriptExecutionFinished, sender, e);
+      else {
+        Locked = false;
+        ReadOnly = false;
+        startStopButton.Image = VSImageLibrary.Play;
+        running = false;
+        var ex = e.Value;
+        if (ex != null)
+          PluginInfrastructure.ErrorHandling.ShowErrorDialog(this, ex);
+      }
     }
     private void Content_ConsoleOutputChanged(object sender, EventArgs<string> e) {
-      if (InvokeRequired) Invoke((Action<object, EventArgs<string>>)Content_ConsoleOutputChanged, sender, e);
+      if (InvokeRequired)
+        Invoke((Action<object, EventArgs<string>>)Content_ConsoleOutputChanged, sender, e);
       else {
         outputTextBox.AppendText(e.Value);
@@ -111,4 +126,5 @@
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
+      compileButton.Enabled = Content != null && !Locked && !ReadOnly;
       startStopButton.Enabled = Content != null && (!Locked || running);
       codeEditor.Enabled = Content != null && !Locked && !ReadOnly;
@@ -116,4 +132,8 @@
 
     #region Child Control event handlers
+    private void compileButton_Click(object sender, EventArgs e) {
+      Compile();
+    }
+
     private void startStopButton_Click(object sender, EventArgs e) {
       if (running) {
@@ -134,17 +154,22 @@
     #region global HotKeys
     protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
-      if (keyData == Keys.F5) {
-        if (Content == null || Locked)
-          return base.ProcessCmdKey(ref msg, keyData);
-        outputTextBox.Clear();
-        bool result = Compile();
-        if (result) {
-          outputTextBox.Clear();
-          Content.Execute();
-          running = true;
-        }
-        return true;
-      } else if (keyData == (Keys.F5 | Keys.Shift)) {
-        Content.Kill();
+      switch (keyData) {
+        case Keys.F5:
+          if (Content != null && !Locked) {
+            if (Compile()) {
+              outputTextBox.Clear();
+              Content.Execute();
+              running = true;
+            } else
+              infoTabControl.SelectedTab = errorListTabPage;
+          }
+          break;
+        case Keys.F5 | Keys.Shift:
+          if (running) Content.Kill();
+          break;
+        case Keys.F6:
+          if (!Compile() || Content.CompileErrors.HasWarnings)
+            infoTabControl.SelectedTab = errorListTabPage;
+          break;
       }
       return base.ProcessCmdKey(ref msg, keyData);
@@ -157,6 +182,5 @@
       Locked = true;
       errorListView.Items.Clear();
-      outputTextBox.Clear();
-      outputTextBox.AppendText("Compiling ... ");
+      outputTextBox.Text = "Compiling ... ";
       try {
         Content.Compile();
@@ -165,46 +189,40 @@
       } catch {
         outputTextBox.AppendText("Compilation failed.");
-        ShowCompilationErrors();
         return false;
       } finally {
-        OnContentChanged();
+        ShowCompilationResults();
         ReadOnly = false;
         Locked = false;
-      }
-    }
-    #endregion
-
-    private void ShowCompilationErrors() {
+        OnContentChanged();
+      }
+    }
+    #endregion
+
+    private void ShowCompilationResults() {
       if (Content.CompileErrors.Count == 0) return;
-      var warnings = new List<CompilerError>();
-      var errors = new List<CompilerError>();
-      foreach (CompilerError ce in Content.CompileErrors) {
-        if (ce.IsWarning) warnings.Add(ce);
-        else errors.Add(ce);
-      }
-      var msgs = warnings.OrderBy(x => x.Line)
-                         .ThenBy(x => x.Column)
-                   .Concat(errors.OrderBy(x => x.Line)
-                                 .ThenBy(x => x.Column));
-      outputTextBox.AppendText(Environment.NewLine);
-      outputTextBox.AppendText("---");
-      outputTextBox.AppendText(Environment.NewLine);
+      var msgs = Content.CompileErrors.OfType<CompilerError>()
+                                      .OrderBy(x => x.IsWarning)
+                                      .ThenBy(x => x.Line)
+                                      .ThenBy(x => x.Column);
       foreach (var m in msgs) {
-        var item = new ListViewItem(new[] {
+        var item = new ListViewItem();
+        item.SubItems.AddRange(new[] {
           m.IsWarning ? "Warning" : "Error",
           m.ErrorNumber,
-          m.Line.ToString(),
-          m.Column.ToString(),
+          m.Line.ToString(CultureInfo.InvariantCulture),
+          m.Column.ToString(CultureInfo.InvariantCulture),
           m.ErrorText
         });
+        item.ImageIndex = m.IsWarning ? 0 : 1;
         errorListView.Items.Add(item);
-        outputTextBox.AppendText(string.Format("{0} {1} ({2}:{3}): {4}",
-                                 item.SubItems[0].Text,
-                                 item.SubItems[1].Text,
-                                 item.SubItems[2].Text,
-                                 item.SubItems[3].Text,
-                                 item.SubItems[4].Text));
-        outputTextBox.AppendText(Environment.NewLine);
-      }
+      }
+      AdjustErrorListViewColumnSizes();
+    }
+
+    private void AdjustErrorListViewColumnSizes() {
+      foreach (ColumnHeader ch in errorListView.Columns)
+        // adjusts the column width to the width of the column
+        // header or the column content, whichever is greater
+        ch.Width = -2;
     }
   }
Index: /trunk/sources/HeuristicLab.HLScript.Views/3.3/VariableStoreView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.HLScript.Views/3.3/VariableStoreView.Designer.cs	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript.Views/3.3/VariableStoreView.Designer.cs	(revision 10506)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -22,5 +22,5 @@
 using System.Windows.Forms;
 
-namespace HeuristicLab.HLScript.Views {
+namespace HeuristicLab.Scripting.Views {
   partial class VariableStoreView {
     /// <summary>
Index: /trunk/sources/HeuristicLab.HLScript.Views/3.3/VariableStoreView.cs
===================================================================
--- /trunk/sources/HeuristicLab.HLScript.Views/3.3/VariableStoreView.cs	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript.Views/3.3/VariableStoreView.cs	(revision 10506)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,4 +25,5 @@
 using System.Drawing;
 using System.Linq;
+using System.Text.RegularExpressions;
 using System.Windows.Forms;
 using HeuristicLab.Collections;
@@ -36,5 +37,5 @@
 using HeuristicLab.PluginInfrastructure;
 
-namespace HeuristicLab.HLScript.Views {
+namespace HeuristicLab.Scripting.Views {
   [View("ItemCollection View")]
   [Content(typeof(VariableStore), true)]
@@ -288,10 +289,12 @@
     }
 
+    private readonly Regex SafeVariableNameRegex = new Regex("^[@]?[_a-zA-Z][_a-zA-Z0-9]*$");
     private void variableListView_AfterLabelEdit(object sender, LabelEditEventArgs e) {
-      if (!string.IsNullOrEmpty(e.Label)) {
+      string name = e.Label;
+      if (!string.IsNullOrEmpty(name) && SafeVariableNameRegex.IsMatch(name)) {
         var variable = (KeyValuePair<string, object>)variableListView.Items[e.Item].Tag;
-        if (!Content.ContainsKey(e.Label)) {
+        if (!Content.ContainsKey(name)) {
           Content.Remove(variable.Key);
-          Content.Add(e.Label, variable.Value);
+          Content.Add(name, variable.Value);
         }
       }
@@ -390,8 +393,6 @@
     }
     protected virtual void AdjustListViewColumnSizes() {
-      if (variableListView.Items.Count > 0) {
-        for (int i = 0; i < variableListView.Columns.Count; i++)
-          variableListView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-      }
+      foreach (ColumnHeader ch in variableListView.Columns)
+        ch.Width = -2;
     }
     protected virtual void RebuildImageList() {
Index: unk/sources/HeuristicLab.HLScript/3.3/HeuristicLab.HLScript-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.HLScript/3.3/HeuristicLab.HLScript-3.3.csproj	(revision 10505)
+++ 	(revision )
@@ -1,146 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{21977CC3-1757-4B3B-87BD-FF817AAA900F}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HeuristicLab.HLScript</RootNamespace>
-    <AssemblyName>HeuristicLab.HLScript-3.3</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup>
-    <SignAssembly>true</SignAssembly>
-  </PropertyGroup>
-  <PropertyGroup>
-    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
-    <OutputPath>..\..\bin\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x86</PlatformTarget>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="VariableStore.cs" />
-    <None Include="Plugin.cs.frame" />
-    <Compile Include="Script.cs" />
-    <Compile Include="UserScriptBase.cs" />
-    <Compile Include="Plugin.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <None Include="Properties\AssemblyInfo.cs.frame" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="HeuristicLab.snk" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
-      <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>
-      <Name>HeuristicLab.Collections-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
-      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
-      <Name>HeuristicLab.Common.Resources-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
-      <Project>{a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c}</Project>
-      <Name>HeuristicLab.Common-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
-      <Project>{c36bd924-a541-4a00-afa8-41701378ddc5}</Project>
-      <Name>HeuristicLab.Core-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
-      <Project>{102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b}</Project>
-      <Name>HeuristicLab.Persistence-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
-      <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project>
-      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
-set ProjectDir=$(ProjectDir)
-set SolutionDir=$(SolutionDir)
-set Outdir=$(Outdir)
-
-call PreBuildEvent.cmd</PreBuildEvent>
-  </PropertyGroup>
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
Index: /trunk/sources/HeuristicLab.HLScript/3.3/HeuristicLab.Scripting-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.HLScript/3.3/HeuristicLab.Scripting-3.3.csproj	(revision 10506)
+++ /trunk/sources/HeuristicLab.HLScript/3.3/HeuristicLab.Scripting-3.3.csproj	(revision 10506)
@@ -0,0 +1,146 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{21977CC3-1757-4B3B-87BD-FF817AAA900F}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Scripting</RootNamespace>
+    <AssemblyName>HeuristicLab.Scripting-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="VariableStore.cs" />
+    <None Include="Plugin.cs.frame" />
+    <Compile Include="Script.cs" />
+    <Compile Include="UserScriptBase.cs" />
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
+      <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>
+      <Name>HeuristicLab.Collections-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
+      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
+      <Name>HeuristicLab.Common.Resources-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{c36bd924-a541-4a00-afa8-41701378ddc5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
+      <Project>{102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b}</Project>
+      <Name>HeuristicLab.Persistence-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
+      <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project>
+      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd</PreBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /trunk/sources/HeuristicLab.HLScript/3.3/Plugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.HLScript/3.3/Plugin.cs.frame	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript/3.3/Plugin.cs.frame	(revision 10506)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -22,7 +22,7 @@
 using HeuristicLab.PluginInfrastructure;
 
-namespace HeuristicLab.HLScript {
-  [Plugin("HeuristicLab.HLScript", "3.3.9.$WCREV$")]
-  [PluginFile("HeuristicLab.HLScript-3.3.dll", PluginFileType.Assembly)]
+namespace HeuristicLab.Scripting {
+  [Plugin("HeuristicLab.Scripting", "3.3.9.$WCREV$")]
+  [PluginFile("HeuristicLab.Scripting-3.3.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Collections", "3.3")] 
   [PluginDependency("HeuristicLab.Common", "3.3")]
@@ -30,5 +30,5 @@
   [PluginDependency("HeuristicLab.Core", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
-  public class HeuristicLabHLScriptPlugin : PluginBase {
+  public class HeuristicLabScriptingPlugin : PluginBase {
   }
 }
Index: /trunk/sources/HeuristicLab.HLScript/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.HLScript/3.3/Properties/AssemblyInfo.cs.frame	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript/3.3/Properties/AssemblyInfo.cs.frame	(revision 10506)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -27,10 +27,10 @@
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
-[assembly: AssemblyTitle("HeuristicLab.HLScript")]
+[assembly: AssemblyTitle("HeuristicLab.Scripting")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("HeuristicLab")]
-[assembly: AssemblyCopyright("(c) 2002-2013 HEAL")]
+[assembly: AssemblyCopyright("(c) 2002-2014 HEAL")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
Index: /trunk/sources/HeuristicLab.HLScript/3.3/Script.cs
===================================================================
--- /trunk/sources/HeuristicLab.HLScript/3.3/Script.cs	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript/3.3/Script.cs	(revision 10506)
@@ -1,3 +1,24 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
 using System.CodeDom;
 using System.CodeDom.Compiler;
@@ -16,6 +37,6 @@
 using Microsoft.CSharp;
 
-namespace HeuristicLab.HLScript {
-  [Item("Script", "A HeuristicLab script.")]
+namespace HeuristicLab.Scripting {
+  [Item("Script", "An empty C# script.")]
   [Creatable("Scripts")]
   [StorableClass]
@@ -27,14 +48,17 @@
 
 using System;
-
-namespace UserScripts {
-  public class UserScript : HeuristicLab.HLScript.UserScriptBase {
-    public override void Main() {
-      // type your code here
-    }
-
-    // further classes and methods
-
+using System.Linq;
+using System.Collections.Generic;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+
+public class UserScript : HeuristicLab.Scripting.UserScriptBase {
+  public override void Main() {
+    // type your code here
   }
+
+  // further classes and methods
+
 }";
     #endregion
@@ -126,5 +150,6 @@
         GenerateExecutable = false,
         GenerateInMemory = true,
-        IncludeDebugInformation = false
+        IncludeDebugInformation = true,
+        WarningLevel = 4
       };
       parameters.ReferencedAssemblies.AddRange(
@@ -212,9 +237,14 @@
       if (executeMethod != null) {
         scriptThread = new Thread(() => {
+          Exception ex = null;
           try {
             OnScriptExecutionStarted();
             executeMethod.Invoke(compiledScript, new[] { VariableStore });
+          } catch (ThreadAbortException) {
+            // the execution was cancelled by the user
+          } catch (TargetInvocationException e) {
+            ex = e.InnerException;
           } finally {
-            OnScriptExecutionFinished();
+            OnScriptExecutionFinished(ex);
           }
         });
@@ -250,8 +280,8 @@
     }
 
-    public event EventHandler ScriptExecutionFinished;
-    private void OnScriptExecutionFinished() {
+    public event EventHandler<EventArgs<Exception>> ScriptExecutionFinished;
+    private void OnScriptExecutionFinished(Exception e) {
       var handler = ScriptExecutionFinished;
-      if (handler != null) handler(this, EventArgs.Empty);
+      if (handler != null) handler(this, new EventArgs<Exception>(e));
     }
 
Index: /trunk/sources/HeuristicLab.HLScript/3.3/UserScriptBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.HLScript/3.3/UserScriptBase.cs	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript/3.3/UserScriptBase.cs	(revision 10506)
@@ -1,10 +1,30 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
 using System.Dynamic;
 using System.IO;
 using System.Text;
-using System.Threading;
 using HeuristicLab.Common;
 
-namespace HeuristicLab.HLScript {
+namespace HeuristicLab.Scripting {
   public abstract class UserScriptBase {
     protected dynamic vars;
@@ -23,11 +43,5 @@
     private void Execute(VariableStore variableStore) {
       vars = new Variables(variableStore);
-      try {
-        Main();
-      } catch (ThreadAbortException) {
-      } catch (Exception e) {
-        Console.WriteLine("---");
-        Console.WriteLine(e);
-      }
+      Main();
     }
 
Index: /trunk/sources/HeuristicLab.HLScript/3.3/VariableStore.cs
===================================================================
--- /trunk/sources/HeuristicLab.HLScript/3.3/VariableStore.cs	(revision 10505)
+++ /trunk/sources/HeuristicLab.HLScript/3.3/VariableStore.cs	(revision 10506)
@@ -1,8 +1,29 @@
-﻿using HeuristicLab.Collections;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Collections;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.HLScript {
+namespace HeuristicLab.Scripting {
   [Item("VariableStore", "Represents a variable store.")]
   [StorableClass]
