aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-07-23 22:07:44 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-07-23 22:07:44 +0300
commit84b3861addbb2f60c8b45e74d2748d4de5c39d86 (patch)
tree006a6575c226df5437dc3f0d48a2715cd1885f7b
parent449cc62b5bd91e5233edc5c0042d5792c8aa2972 (diff)
downloadTango-84b3861addbb2f60c8b45e74d2748d4de5c39d86.tar.gz
Tango-84b3861addbb2f60c8b45e74d2748d4de5c39d86.zip
Implemented find & replace.
Improved symbols loading and highlighting. Implemented font +/-.
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Contracts/IProcedureDesignerView.cs6
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/lib_template.csx1
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/main_template.csx1
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Tango.FSE.Procedures_wgi5baya_wpftmp.csproj403
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/ViewModels/ProcedureDesignerViewVM.cs92
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml187
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml.cs53
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Highlighting/OffsetColorizer.cs2
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs218
-rw-r--r--Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs10
10 files changed, 901 insertions, 72 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Contracts/IProcedureDesignerView.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Contracts/IProcedureDesignerView.cs
index eaa8562f8..4dfb62cb7 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Contracts/IProcedureDesignerView.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Contracts/IProcedureDesignerView.cs
@@ -13,5 +13,11 @@ namespace Tango.FSE.Procedures.Contracts
void HighlightCode(int position, int length, int line);
void InsertCode(String code);
void InvalidateHighlighting();
+ void Find(String text);
+ void ReplaceNext(String text, String replace);
+ int ReplaceAll(String text, String replace);
+ void FocusCurrentEditor();
+ void ColorizeKeyword(String text);
+ void ResetColrization();
}
}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/lib_template.csx b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/lib_template.csx
index 0588f3ba3..8690a23b4 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/lib_template.csx
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/lib_template.csx
@@ -6,7 +6,6 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
-using System.Windows.Forms;
using System.Drawing;
using Google.Protobuf;
using Tango.BL.Enumerations;
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/main_template.csx b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/main_template.csx
index 90b432a2f..6f564682f 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/main_template.csx
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Resources/main_template.csx
@@ -6,7 +6,6 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
-using System.Windows.Forms;
using System.Drawing;
using Google.Protobuf;
using Tango.BL.Enumerations;
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Tango.FSE.Procedures_wgi5baya_wpftmp.csproj b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Tango.FSE.Procedures_wgi5baya_wpftmp.csproj
new file mode 100644
index 000000000..5503559aa
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Tango.FSE.Procedures_wgi5baya_wpftmp.csproj
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 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>{1754F846-4763-4000-807F-C7BFAA145DB2}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>Tango.FSE.Procedures</RootNamespace>
+ <AssemblyName>Tango.FSE.Procedures</AssemblyName>
+ <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <Deterministic>true</Deterministic>
+ <NuGetPackageImportStamp>
+ </NuGetPackageImportStamp>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\..\Build\FSE\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>..\..\..\Build\FSE\Debug\Tango.FSE.Procedures.xml</DocumentationFile>
+ <NoWarn>1591</NoWarn>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\..\Build\FSE\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>..\..\..\Build\FSE\Release\Tango.FSE.Procedures.xml</DocumentationFile>
+ </PropertyGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="ArrayParsingStyle.cs" />
+ <Compile Include="Contracts\IProcedureDesignerView.cs" />
+ <Compile Include="Converters\BitmapToBitmapSourceConverter.cs" />
+ <Compile Include="CreateGroup.cs" />
+ <Compile Include="CreateItem.cs" />
+ <Compile Include="CSV\CsvColumn.cs" />
+ <Compile Include="CSV\CsvRow.cs" />
+ <Compile Include="Designer\ProjectModel.cs" />
+ <Compile Include="Designer\ScriptTabModel.cs" />
+ <Compile Include="Dialogs\AddReferenceAssemblyView.xaml.cs">
+ <DependentUpon>AddReferenceAssemblyView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\AddReferenceAssemblyViewVM.cs" />
+ <Compile Include="Dialogs\LoadPublishedProjectView.xaml.cs">
+ <DependentUpon>LoadPublishedProjectView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\LoadPublishedProjectViewVM.cs" />
+ <Compile Include="Dialogs\ResultGridView.xaml.cs">
+ <DependentUpon>ResultGridView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\ResultGridViewVM.cs" />
+ <Compile Include="Dialogs\SaveFileDialogView.xaml.cs">
+ <DependentUpon>SaveFileDialogView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\OpenFileDialogView.xaml.cs">
+ <DependentUpon>OpenFileDialogView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\SaveFileDialogViewVM.cs" />
+ <Compile Include="Dialogs\OpenFileDialogViewVM.cs" />
+ <Compile Include="Dialogs\UserInputDialogView.xaml.cs">
+ <DependentUpon>UserInputDialogView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\UserInputDialogViewVM.cs" />
+ <Compile Include="IProcedureContext.cs" />
+ <Compile Include="IProcedureLogger.cs" />
+ <Compile Include="Messages\ProcedureProjectPublishedOrSuppressed.cs" />
+ <Compile Include="ProjectRunner.cs" />
+ <Compile Include="ProjectRunnerState.cs" />
+ <Compile Include="Result.cs" />
+ <Compile Include="ResultType.cs" />
+ <Compile Include="ProcedureContext.cs" />
+ <Compile Include="ProcedureFailedException.cs" />
+ <Compile Include="ProcedureInput.cs" />
+ <Compile Include="ProcedureProject.cs" />
+ <Compile Include="UserInput.cs" />
+ <Compile Include="ViewModelLocator.cs" />
+ <Compile Include="ProceduresModule.cs" />
+ <Compile Include="ViewModels\MainViewVM.cs" />
+ <Compile Include="ViewModels\ProcedureDesignerViewVM.cs" />
+ <Compile Include="ViewModels\ProcedureRunnerViewVM.cs" />
+ <Compile Include="ViewModels\ResultsViewVM.cs" />
+ <Compile Include="Views\MainView.xaml.cs">
+ <DependentUpon>MainView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\ProcedureDesignerView.xaml.cs">
+ <DependentUpon>ProcedureDesignerView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\ProcedureRunnerCatalogView.xaml.cs">
+ <DependentUpon>ProcedureRunnerCatalogView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\ProcedureRunnerExecutionView.xaml.cs">
+ <DependentUpon>ProcedureRunnerExecutionView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\ProcedureRunnerView.xaml.cs">
+ <DependentUpon>ProcedureRunnerView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\ResultsView.xaml.cs">
+ <DependentUpon>ResultsView.xaml</DependentUpon>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="app.config">
+ <SubType>Designer</SubType>
+ </None>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ <None Include="Resources\lib_template.csx" />
+ <None Include="Resources\main_template.csx" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\Scripting\Tango.Scripting.Basic\Tango.Scripting.Basic.csproj">
+ <Project>{2b29a699-1d65-463a-8250-a2ce81d019c9}</Project>
+ <Name>Tango.Scripting.Basic</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Scripting\Tango.Scripting.Core\Tango.Scripting.Core.csproj">
+ <Project>{5812e1c6-abaa-4066-94ac-971c27b4f46a}</Project>
+ <Name>Tango.Scripting.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Scripting\Tango.Scripting.Editors\Tango.Scripting.Editors.csproj">
+ <Project>{da62fa39-668b-47a6-b0f2-d2c1daf777b0}</Project>
+ <Name>Tango.Scripting.Editors</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\SideChains\RealTimeGraphX-master\RealTimeGraphX.WPF\RealTimeGraphX.WPF.csproj">
+ <Project>{6b9774f7-960d-438e-ad81-c6b9be328d50}</Project>
+ <Name>RealTimeGraphX.WPF</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\SideChains\RealTimeGraphX-master\RealTimeGraphX\RealTimeGraphX.csproj">
+ <Project>{f13a489c-80ee-4cd0-bdd4-92d959215646}</Project>
+ <Name>RealTimeGraphX</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\SideChains\Tango.AutoComplete\Tango.AutoComplete.csproj">
+ <Project>{bb2abb74-ba58-4812-83aa-ec8171f42df4}</Project>
+ <Name>Tango.AutoComplete</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.BL\Tango.BL.csproj">
+ <Project>{f441feee-322a-4943-b566-110e12fd3b72}</Project>
+ <Name>Tango.BL</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Core\Tango.Core.csproj">
+ <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
+ <Name>Tango.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.CSV\Tango.CSV.csproj">
+ <Project>{58e8825f-0c96-449c-b320-1e82b0aa876b}</Project>
+ <Name>Tango.CSV</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Integration\Tango.Integration.csproj">
+ <Project>{4206ac58-3b57-4699-8835-90bf6db01a61}</Project>
+ <Name>Tango.Integration</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Logging\Tango.Logging.csproj">
+ <Project>{bc932dbd-7cdb-488c-99e4-f02cf441f55e}</Project>
+ <Name>Tango.Logging</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.PMR\Tango.PMR.csproj">
+ <Project>{e4927038-348d-4295-aaf4-861c58cb3943}</Project>
+ <Name>Tango.PMR</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Settings\Tango.Settings.csproj">
+ <Project>{d8f1ad85-526a-4f50-b6dc-d437af63d8d8}</Project>
+ <Name>Tango.Settings</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.SharedUI\Tango.SharedUI.csproj">
+ <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
+ <Name>Tango.SharedUI</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Transport\Tango.Transport.csproj">
+ <Project>{74e700b0-1156-4126-be40-ee450d3c3026}</Project>
+ <Name>Tango.Transport</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Tango.FSE.BL\Tango.FSE.BL.csproj">
+ <Project>{834c81c3-09b5-45d7-be12-e7d1e6655a7c}</Project>
+ <Name>Tango.FSE.BL</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Tango.FSE.Common\Tango.FSE.Common.csproj">
+ <Project>{bc37cccb-7392-4f78-8d1c-e9629e6e046e}</Project>
+ <Name>Tango.FSE.Common</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <Import Project="..\..\..\packages\MaterialDesignThemes.3.0.1\build\MaterialDesignThemes.targets" Condition="Exists('..\..\..\packages\MaterialDesignThemes.3.0.1\build\MaterialDesignThemes.targets')" />
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('..\..\..\packages\MaterialDesignThemes.3.0.1\build\MaterialDesignThemes.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\MaterialDesignThemes.3.0.1\build\MaterialDesignThemes.targets'))" />
+ </Target>
+ <ItemGroup>
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\Google.Protobuf.3.4.1\lib\net45\Google.Protobuf.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\MahApps.Metro.1.6.5\lib\net46\MahApps.Metro.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\MaterialDesignColors.1.2.2\lib\net45\MaterialDesignColors.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\MaterialDesignThemes.3.0.1\lib\net45\MaterialDesignThemes.Wpf.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Microsoft.CSharp.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\Microsoft.Win32.Primitives.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\mscorlib.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netfx.force.conflicts.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\PresentationCore.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\PresentationFramework.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\SideChains\RealTimeGraphX-master\RealTimeGraphX\bin\Debug\netstandard2.0\RealTimeGraphX.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\SideChains\RealTimeGraphX-master\RealTimeGraphX.WPF\bin\Debug\RealTimeGraphX.WPF.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.AppContext.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Collections.Concurrent.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Collections.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Collections.NonGeneric.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Collections.Specialized.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.ComponentModel.DataAnnotations.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ComponentModel.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ComponentModel.EventBasedAsync.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ComponentModel.Primitives.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ComponentModel.TypeConverter.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Console.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Core.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Data.Common.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Data.DataSetExtensions.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Data.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Contracts.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Debug.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.FileVersionInfo.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Process.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.StackTrace.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.TextWriterTraceListener.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Tools.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.TraceSource.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Tracing.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Drawing.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Drawing.Primitives.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Dynamic.Runtime.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Globalization.Calendars.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Globalization.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Globalization.Extensions.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.Compression.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.Compression.ZipFile.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.FileSystem.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.FileSystem.DriveInfo.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.FileSystem.Primitives.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.FileSystem.Watcher.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.IsolatedStorage.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.MemoryMappedFiles.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.Pipes.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.IO.UnmanagedMemoryStream.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Linq.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Linq.Expressions.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Linq.Parallel.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Linq.Queryable.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Http.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.NameResolution.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.NetworkInformation.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Ping.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Primitives.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Requests.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Security.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Sockets.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.WebHeaderCollection.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.WebSockets.Client.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.WebSockets.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ObjectModel.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\System.Reactive.Core.3.1.1\lib\net46\System.Reactive.Core.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\System.Reactive.Interfaces.3.1.1\lib\net45\System.Reactive.Interfaces.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\System.Reactive.Linq.3.1.1\lib\net46\System.Reactive.Linq.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\System.Reactive.PlatformServices.3.1.1\lib\net46\System.Reactive.PlatformServices.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\System.Reactive.Windows.Threading.3.1.1\lib\net45\System.Reactive.Windows.Threading.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Reflection.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Reflection.Extensions.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Reflection.Primitives.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Resources.Reader.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Resources.ResourceManager.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Resources.Writer.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.CompilerServices.VisualC.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Extensions.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Handles.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.InteropServices.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.InteropServices.RuntimeInformation.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Numerics.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Serialization.Formatters.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Serialization.Json.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Serialization.Primitives.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Runtime.Serialization.Xml.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Claims.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.Algorithms.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.Csp.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.Encoding.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.Primitives.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Cryptography.X509Certificates.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.Principal.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Security.SecureString.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Text.Encoding.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Text.Encoding.Extensions.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Text.RegularExpressions.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Overlapped.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Tasks.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Tasks.Parallel.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Thread.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.ThreadPool.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.Timer.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.ValueTuple.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Windows.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Windows.Forms.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xaml.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xml.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Xml.Linq.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.ReaderWriter.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XDocument.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XmlDocument.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XmlSerializer.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XPath.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Xml.XPath.XDocument.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\SideChains\Tango.AutoComplete\bin\Debug\Tango.AutoComplete.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.BL.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.Core.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.CSV.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\FSE\Debug\Tango.FSE.BL.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\FSE\Debug\Tango.FSE.Common.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.Integration.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.Logging.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.PMR.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Scripting\Tango.Scripting.Basic\bin\Debug\Tango.Scripting.Basic.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Scripting\Tango.Scripting.Core\bin\Debug\Tango.Scripting.Core.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Scripting\Debug\Tango.Scripting.Editors.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.Settings.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.SharedUI.dll" />
+ <ReferencePath Include="C:\DATA\Development\Tango\Software\Visual_Studio\Build\Core\Debug\Tango.Transport.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\WindowsBase.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ComponentModel.Annotations.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Emit.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Emit.ILGeneration.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Reflection.Emit.Lightweight.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.Runtime.InteropServices.WindowsRuntime.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Duplex.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Http.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.NetTcp.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Primitives.dll" />
+ <ReferencePath Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\Facades\System.ServiceModel.Security.dll" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\App.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Dialogs\AddReferenceAssemblyView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Dialogs\LoadPublishedProjectView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Dialogs\ResultGridView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Dialogs\SaveFileDialogView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Dialogs\OpenFileDialogView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Dialogs\UserInputDialogView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Views\MainView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Views\ProcedureDesignerView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Views\ProcedureRunnerCatalogView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Views\ProcedureRunnerExecutionView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Views\ProcedureRunnerView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\Views\ResultsView.g.cs" />
+ <Compile Include="C:\DATA\Development\Tango\Software\Visual_Studio\FSE\Modules\Tango.FSE.Stubs\obj\Debug\GeneratedInternalTypeHelper.g.cs" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/ViewModels/ProcedureDesignerViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/ViewModels/ProcedureDesignerViewVM.cs
index b5d56f638..96c554a07 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/ViewModels/ProcedureDesignerViewVM.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/ViewModels/ProcedureDesignerViewVM.cs
@@ -99,7 +99,13 @@ namespace Tango.FSE.Procedures.ViewModels
public Script SelectedScript
{
get { return _selectedScript; }
- set { _selectedScript = value; RaisePropertyChangedAuto(); }
+ set
+ {
+ _selectedScript = value;
+ View?.ResetColrization();
+ DisplayFindAndReplace = false;
+ RaisePropertyChangedAuto();
+ }
}
public TextController Logger { get; set; }
@@ -146,6 +152,48 @@ namespace Tango.FSE.Procedures.ViewModels
set { _createGroups = value; RaisePropertyChangedAuto(); }
}
+ private bool _displayFindAndReplace;
+ public bool DisplayFindAndReplace
+ {
+ get { return _displayFindAndReplace; }
+ set { _displayFindAndReplace = value; RaisePropertyChangedAuto(); }
+ }
+
+ private String _findText;
+ public String FindText
+ {
+ get { return _findText; }
+ set
+ {
+ _findText = value;
+ RaisePropertyChangedAuto();
+ FindNextCommand?.RaiseCanExecuteChanged();
+ ReplaceCommand?.RaiseCanExecuteChanged();
+ ReplaceAllCommand?.RaiseCanExecuteChanged();
+ View?.ColorizeKeyword(value);
+ }
+ }
+
+ private String _replaceText;
+ public String ReplaceText
+ {
+ get { return _replaceText; }
+ set { _replaceText = value; RaisePropertyChangedAuto(); ReplaceCommand?.RaiseCanExecuteChanged(); ReplaceAllCommand?.RaiseCanExecuteChanged(); }
+ }
+
+ private double _fontSize;
+ public double FontSize
+ {
+ get { return _fontSize; }
+ set
+ {
+ if (value > 5 && value < 41)
+ {
+ _fontSize = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
#endregion
@@ -175,6 +223,14 @@ namespace Tango.FSE.Procedures.ViewModels
public RelayCommand TogglePublishPanelCommand { get; set; }
public RelayCommand<Script> RenameLibraryCommand { get; set; }
public RelayCommand<CreateItem> CreateItemCommand { get; set; }
+ public RelayCommand ShowFindAndReplaceCommand { get; set; }
+ public RelayCommand HideFindAndReplaceCommand { get; set; }
+ public RelayCommand FindNextCommand { get; set; }
+ public RelayCommand ReplaceCommand { get; set; }
+ public RelayCommand ReplaceAllCommand { get; set; }
+ public RelayCommand IncreaseFontSizeCommand { get; set; }
+ public RelayCommand DecreaseFontSizeCommand { get; set; }
+
#endregion
@@ -184,6 +240,9 @@ namespace Tango.FSE.Procedures.ViewModels
{
Status = "Ready";
+ FontSize = 13;
+ ReplaceText = String.Empty;
+
LoadedAssemblies = new ObservableCollection<Assembly>();
ResultsViewVM = new ResultsViewVM();
CompilationErrors = new List<CompilationError>();
@@ -222,6 +281,13 @@ namespace Tango.FSE.Procedures.ViewModels
TogglePublishPanelCommand = new RelayCommand(() => IsPublishPanelOpened = !IsPublishPanelOpened, () => CurrentUser.HasPermission(Permissions.FSE_PublishProcedureProjects));
RenameLibraryCommand = new RelayCommand<Script>(RenameLibrary);
CreateItemCommand = new RelayCommand<CreateItem>(AutoCreateItem);
+ ShowFindAndReplaceCommand = new RelayCommand(() => { DisplayFindAndReplace = true; this.SetFocus(() => FindText); View.ColorizeKeyword(FindText); });
+ HideFindAndReplaceCommand = new RelayCommand(() => { DisplayFindAndReplace = false; View.FocusCurrentEditor(); View.ResetColrization(); });
+ FindNextCommand = new RelayCommand(FindNext,() => !String.IsNullOrEmpty(FindText));
+ ReplaceCommand = new RelayCommand(ReplaceNext, () => !String.IsNullOrEmpty(FindText));
+ ReplaceAllCommand = new RelayCommand(ReplaceAll, () => !String.IsNullOrEmpty(FindText));
+ IncreaseFontSizeCommand = new RelayCommand(() => FontSize++);
+ DecreaseFontSizeCommand = new RelayCommand(() => FontSize--);
}
#endregion
@@ -957,5 +1023,29 @@ namespace Tango.FSE.Procedures.ViewModels
}
#endregion
+
+ #region Find & Replace
+
+ private void FindNext()
+ {
+ View.Find(FindText);
+ }
+
+ private void ReplaceAll()
+ {
+ var count = View.ReplaceAll(FindText, ReplaceText);
+
+ if (count > 0)
+ {
+ NotificationProvider.ShowInfo($"{count} instances of the keyword were replaced.");
+ }
+ }
+
+ private void ReplaceNext()
+ {
+ View.ReplaceNext(FindText, ReplaceText);
+ }
+
+ #endregion
}
}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml
index 51e966c9f..44bd113ed 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml
@@ -27,6 +27,10 @@
<KeyBinding Modifiers="Ctrl" Key="N" Command="{Binding NewProjectCommand}" />
<KeyBinding Modifiers="Ctrl" Key="O" Command="{Binding OpenProjectCommand}" />
<KeyBinding Modifiers="Ctrl" Key="P" Command="{Binding TogglePublishPanelCommand}" />
+ <KeyBinding Modifiers="Ctrl" Key="F" Command="{Binding ShowFindAndReplaceCommand}" />
+ <KeyBinding Key="F3" Command="{Binding FindNextCommand}" />
+ <KeyBinding Modifiers="Ctrl" Key="OemPlus" Command="{Binding IncreaseFontSizeCommand}" />
+ <KeyBinding Modifiers="Ctrl" Key="OemMinus" Command="{Binding DecreaseFontSizeCommand}" />
</UserControl.InputBindings>
<Grid>
@@ -96,11 +100,32 @@
</MenuItem.Icon>
</MenuItem>
<Separator/>
+ <MenuItem Header="_Find &amp; Replace" InputGestureText="Ctrl+F" Command="{Binding ShowFindAndReplaceCommand}">
+ <MenuItem.Icon>
+ <material:PackIcon Kind="FindReplace" />
+ </MenuItem.Icon>
+ </MenuItem>
+ <Separator/>
<MenuItem Header="_Format Code" InputGestureText="Ctrl+K+D" Command="{Binding FormatCodeCommand}">
<MenuItem.Icon>
<material:PackIcon Kind="FormatColumns" />
</MenuItem.Icon>
</MenuItem>
+ <Separator/>
+ <MenuItem>
+ <MenuItem.Icon>
+ <material:PackIcon Kind="FormatFont" />
+ </MenuItem.Icon>
+ <MenuItem.Header>
+ <DockPanel>
+ <TextBlock VerticalAlignment="Center" Text="{Binding RelativeSource={RelativeSource AncestorType=Menu},Path=DataContext.FontSize}"/>
+ <UniformGrid VerticalAlignment="Center" HorizontalAlignment="Right" Columns="2" Margin="70 0 0 0">
+ <controls:IconButton Command="{Binding RelativeSource={RelativeSource AncestorType=Menu},Path=DataContext.DecreaseFontSizeCommand}" Cursor="Hand" ToolTip="Decrease Font Size (Ctrl-)" Width="24" Height="24" Icon="FormatFontSizeDecrease" Padding="0" />
+ <controls:IconButton Command="{Binding RelativeSource={RelativeSource AncestorType=Menu},Path=DataContext.IncreaseFontSizeCommand}" Cursor="Hand" ToolTip="Increase Font Size (Ctrl+)" Margin="10 0 0 0" Width="24" Height="24" Icon="FormatFontSizeIncrease" Padding="0" />
+ </UniformGrid>
+ </DockPanel>
+ </MenuItem.Header>
+ </MenuItem>
</MenuItem>
<MenuItem Header="Debug">
<MenuItem Header="_Build" MinWidth="250" Command="{Binding CompileProjectCommand}" InputGestureText="F6" IsEnabled="{Binding ProjectRunner.CanCompile}">
@@ -368,76 +393,106 @@
<Rectangle Grid.Column="2" VerticalAlignment="Bottom" StrokeThickness="2" Stroke="{StaticResource FSE_PrimaryAccentDarkBrush}" />
</Grid>
- <ItemsControl x:Name="tabControl" Margin="0 0 0 0" ItemsSource="{Binding Project.Scripts}" BorderThickness="0" Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <Grid/>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemContainerStyle>
- <Style TargetType="FrameworkElement">
- <Setter Property="Visibility" Value="Hidden"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsSelected}" Value="True">
- <Setter Property="Visibility" Value="Visible"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </ItemsControl.ItemContainerStyle>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <editors:ScriptEditor
+ <Grid>
+ <ItemsControl x:Name="tabControl" Margin="0 0 0 0" ItemsSource="{Binding Project.Scripts}" BorderThickness="0" Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <Grid/>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemContainerStyle>
+ <Style TargetType="FrameworkElement">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsSelected}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </ItemsControl.ItemContainerStyle>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <editors:ScriptEditor
ReferenceAssemblies="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.LoadedAssemblies}"
AdditionalScripts="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.Project.AdditionalScripts}"
+ FontSize="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.FontSize}"
Code="{Binding Code,Mode=TwoWay}">
- <editors:ScriptEditor.ContextMenu>
- <ContextMenu>
- <MenuItem Header="_Cut" Command="Cut">
- <MenuItem.Icon>
- <material:PackIcon Kind="ContentCut" />
- </MenuItem.Icon>
- </MenuItem>
- <MenuItem Header="_Copy" Command="Copy">
- <MenuItem.Icon>
- <material:PackIcon Kind="ContentCopy" />
- </MenuItem.Icon>
- </MenuItem>
- <MenuItem Header="_Paste" Command="Paste">
- <MenuItem.Icon>
- <material:PackIcon Kind="ContentPaste" />
- </MenuItem.Icon>
- </MenuItem>
- <Separator/>
- <MenuItem Header="_Format Code" InputGestureText="Ctrl+K+D" Command="{Binding Source={StaticResource proxy},Path=Data.FormatCodeCommand}">
- <MenuItem.Icon>
- <material:PackIcon Kind="FormatColumns" />
- </MenuItem.Icon>
- </MenuItem>
- <Separator/>
- <MenuItem Header="_Wizard" ItemsSource="{Binding Source={StaticResource proxy},Path=Data.CreateGroups}">
- <MenuItem.Icon>
- <material:PackIcon Kind="Wand" />
- </MenuItem.Icon>
- <MenuItem.ItemContainerStyle>
- <Style TargetType="{x:Type MenuItem}" BasedOn="{StaticResource {x:Type MenuItem}}">
- <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CreateItemCommand}" />
- <Setter Property="CommandParameter" Value="{Binding}"></Setter>
- </Style>
- </MenuItem.ItemContainerStyle>
- <MenuItem.ItemTemplate>
- <HierarchicalDataTemplate DataType="{x:Type global:CreateItem}" ItemsSource="{Binding Path=Items}">
- <TextBlock Text="{Binding Name}"/>
- </HierarchicalDataTemplate>
- </MenuItem.ItemTemplate>
- </MenuItem>
- </ContextMenu>
- </editors:ScriptEditor.ContextMenu>
-
- </editors:ScriptEditor>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
+ <editors:ScriptEditor.ContextMenu>
+ <ContextMenu>
+ <MenuItem Header="_Cut" Command="Cut">
+ <MenuItem.Icon>
+ <material:PackIcon Kind="ContentCut" />
+ </MenuItem.Icon>
+ </MenuItem>
+ <MenuItem Header="_Copy" Command="Copy">
+ <MenuItem.Icon>
+ <material:PackIcon Kind="ContentCopy" />
+ </MenuItem.Icon>
+ </MenuItem>
+ <MenuItem Header="_Paste" Command="Paste">
+ <MenuItem.Icon>
+ <material:PackIcon Kind="ContentPaste" />
+ </MenuItem.Icon>
+ </MenuItem>
+ <Separator/>
+ <MenuItem Header="_Format Code" InputGestureText="Ctrl+K+D" Command="{Binding Source={StaticResource proxy},Path=Data.FormatCodeCommand}">
+ <MenuItem.Icon>
+ <material:PackIcon Kind="FormatColumns" />
+ </MenuItem.Icon>
+ </MenuItem>
+ <Separator/>
+ <MenuItem Header="_Wizard" ItemsSource="{Binding Source={StaticResource proxy},Path=Data.CreateGroups}">
+ <MenuItem.Icon>
+ <material:PackIcon Kind="Wand" />
+ </MenuItem.Icon>
+ <MenuItem.ItemContainerStyle>
+ <Style TargetType="{x:Type MenuItem}" BasedOn="{StaticResource {x:Type MenuItem}}">
+ <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CreateItemCommand}" />
+ <Setter Property="CommandParameter" Value="{Binding}"></Setter>
+ </Style>
+ </MenuItem.ItemContainerStyle>
+ <MenuItem.ItemTemplate>
+ <HierarchicalDataTemplate DataType="{x:Type global:CreateItem}" ItemsSource="{Binding Path=Items}">
+ <TextBlock Text="{Binding Name}"/>
+ </HierarchicalDataTemplate>
+ </MenuItem.ItemTemplate>
+ </MenuItem>
+ </ContextMenu>
+ </editors:ScriptEditor.ContextMenu>
+
+ </editors:ScriptEditor>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+
+ <Grid Visibility="{Binding DisplayFindAndReplace,Converter={StaticResource BooleanToVisibilityConverter}}" HorizontalAlignment="Right" VerticalAlignment="Top" MinWidth="400" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}">
+ <Border BorderBrush="{StaticResource FSE_BorderBrush}" BorderThickness="1 1 1 0">
+ <Border BorderThickness="0 0 0 2" Margin="-1 0 -1 0" BorderBrush="{StaticResource FSE_PrimaryAccentBrush}" Padding="5 5 5 10">
+ <StackPanel>
+ <DockPanel VerticalAlignment="Top">
+ <controls:ToggleIconButton x:Name="toggleReplace" Cursor="Hand" DockPanel.Dock="Left" Width="20" Height="20" CheckedIcon="ChevronUp" UncheckedIcon="ChevronDown" />
+ <controls:IconButton Cursor="Hand" Icon="Close" ToolTip="Close" Command="{Binding HideFindAndReplaceCommand}" DockPanel.Dock="Right" Width="24" Height="24" Padding="2" />
+ <controls:IconButton Cursor="Hand" Margin="5 0 0 0" Icon="ArrowRight" ToolTip="Find Next" Command="{Binding FindNextCommand}" DockPanel.Dock="Right" Width="24" Height="24" Padding="2" />
+ <TextBox FontSize="{StaticResource FSE_SmallFontSize}" Margin="5 0 0 0" Style="{StaticResource FSE_Rounded_Corners_TextBox}" Text="{Binding FindText,UpdateSourceTrigger=PropertyChanged}">
+ <TextBox.InputBindings>
+ <KeyBinding Key="Return" Command="{Binding FindNextCommand}" />
+ <KeyBinding Key="F3" Command="{Binding FindNextCommand}" />
+ <KeyBinding Key="Esc" Command="{Binding HideFindAndReplaceCommand}" />
+ </TextBox.InputBindings>
+ </TextBox>
+ </DockPanel>
+
+ <DockPanel Margin="21 10 0 0" VerticalAlignment="Top" Visibility="{Binding ElementName=toggleReplace,Path=IsChecked,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <controls:IconButton Cursor="Hand" Icon="FileReplace" ToolTip="Replace All" Command="{Binding ReplaceAllCommand}" DockPanel.Dock="Right" Width="24" Height="24" Padding="2" />
+ <controls:IconButton Cursor="Hand" Margin="5 0 0 0" Icon="FindReplace" ToolTip="Replace" Command="{Binding ReplaceCommand}" DockPanel.Dock="Right" Width="24" Height="24" Padding="2" />
+ <TextBox FontSize="{StaticResource FSE_SmallFontSize}" Margin="5 0 0 0" Style="{StaticResource FSE_Rounded_Corners_TextBox}" Text="{Binding ReplaceText,UpdateSourceTrigger=PropertyChanged}"/>
+ </DockPanel>
+ </StackPanel>
+ </Border>
+ </Border>
+ </Grid>
+ </Grid>
</DockPanel>
</Grid>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml.cs
index a8c37cc10..d00413b25 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Stubs/Views/ProcedureDesignerView.xaml.cs
@@ -44,6 +44,11 @@ namespace Tango.FSE.Procedures.Views
return editor;
}
+ private List<ScriptEditor> GetAllEditors()
+ {
+ return tabControl.FindVisualChildren<ScriptEditor>().ToList();
+ }
+
public void FormatCode()
{
GetCurrentEditor()?.FormatCode();
@@ -69,5 +74,53 @@ namespace Tango.FSE.Procedures.Views
}
}));
}
+
+ public void Find(string text)
+ {
+ GetCurrentEditor()?.Find(text);
+ }
+
+ public void ReplaceNext(string text, string replace)
+ {
+ GetCurrentEditor()?.ReplaceNext(text, replace);
+ ColorizeKeyword(text);
+ }
+
+ public int ReplaceAll(string text, string replace)
+ {
+ var editor = GetCurrentEditor();
+
+ if (editor != null)
+ {
+ int count = editor.ReplaceAll(text, replace);
+ ColorizeKeyword(text);
+ return count;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ public void FocusCurrentEditor()
+ {
+ var editor = GetCurrentEditor();
+
+ if (editor != null)
+ {
+ editor.Focus();
+ Keyboard.Focus(editor);
+ }
+ }
+
+ public void ColorizeKeyword(string text)
+ {
+ GetCurrentEditor()?.ColorizeByKeyword(text);
+ }
+
+ public void ResetColrization()
+ {
+ GetAllEditors().ForEach(x => x.ResetColorizationByKeyword());
+ }
}
}
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Highlighting/OffsetColorizer.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Highlighting/OffsetColorizer.cs
index a05d1fc75..72c27f9a9 100644
--- a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Highlighting/OffsetColorizer.cs
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Highlighting/OffsetColorizer.cs
@@ -30,7 +30,7 @@ namespace Tango.Scripting.Editors.Highlighting
{
try
{
- ChangeLinePart(StartOffset, EndOffset, element => element.TextRunProperties.SetForegroundBrush(Brush));
+ ChangeLinePart(StartOffset, EndOffset, element => element.TextRunProperties.SetBackgroundBrush(Brush));
}
catch { }
}
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs
index 71a455f86..7b5c38a2b 100644
--- a/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/ScriptEditor.cs
@@ -69,6 +69,7 @@ namespace Tango.Scripting.Editors
public static event EventHandler<TangoProgressChangedEventArgs<int>> LoadingSymbolsProgress;
public static event EventHandler LoadingSymbolsStarted;
public static event EventHandler LoadingSymbolsCompleted;
+ private static event EventHandler KnownTypesAvailable;
#region Mini Classes
@@ -161,6 +162,14 @@ namespace Tango.Scripting.Editors
public static readonly DependencyProperty AdditionalScriptsProperty =
DependencyProperty.Register("AdditionalScripts", typeof(ObservableCollection<IScriptSource>), typeof(ScriptEditor), new PropertyMetadata(null));
+ public Brush ColorizeBrush
+ {
+ get { return (Brush)GetValue(ColorizeBrushProperty); }
+ set { SetValue(ColorizeBrushProperty, value); }
+ }
+ public static readonly DependencyProperty ColorizeBrushProperty =
+ DependencyProperty.Register("ColorizeBrush", typeof(Brush), typeof(ScriptEditor), new PropertyMetadata(new SolidColorBrush(Colors.YellowGreen) { Opacity = 0.5 }));
+
#endregion
#region Constructors
@@ -266,6 +275,8 @@ namespace Tango.Scripting.Editors
_knownTypes = new List<KnownType>();
_parser = new ScriptParser();
+ KnownTypesAvailable += ScriptEditor_KnownTypesAvailable;
+
TextArea.IndentationStrategy = new Indentation.CSharp.CSharpIndentationStrategy(Options);
foldingStrategy = new BraceFoldingStrategy();
@@ -287,6 +298,14 @@ namespace Tango.Scripting.Editors
TextChanged += ScriptEditor_TextChanged;
}
+ private void ScriptEditor_KnownTypesAvailable(object sender, EventArgs e)
+ {
+ if (sender != this)
+ {
+ InvalidateHighlightingPartial();
+ }
+ }
+
private bool preventCodeUpdate;
private void ScriptEditor_TextChanged(object sender, EventArgs e)
{
@@ -1357,7 +1376,7 @@ namespace Tango.Scripting.Editors
return popup;
}
- public static void LoadUsingsSymbols(List<Assembly> assemblies, List<String> usings)
+ public void LoadUsingsSymbols(List<Assembly> assemblies, List<String> usings)
{
lock (_loadUsingsLock)
{
@@ -1390,6 +1409,9 @@ namespace Tango.Scripting.Editors
_knownTypesCache.Add(knownType.Type, knownType);
}
+ KnownTypesAvailable?.Invoke(this, new EventArgs());
+ InvalidateHighlightingPartial();
+
continue;
}
@@ -1575,6 +1597,100 @@ namespace Tango.Scripting.Editors
// _isLoadingCachedAssemblies = false;
//}
+ private void InvalidateHighlightingPartial()
+ {
+ List<Assembly> assemblies = new List<Assembly>();
+ Dispatcher.Invoke(() =>
+ {
+ assemblies = ReferenceAssemblies.ToList();
+ });
+
+ var usings = _current_usings.ToList();
+
+ _knownTypes.Clear();
+
+ foreach (var knownType in _knownTypesCache.ToList().Select(x => x.Value).ToList())
+ {
+ if (usings.Exists(x => knownType.Type.Namespace == x) && assemblies.Exists(x => x == knownType.Type.Assembly))
+ {
+ lock (_knownTypes)
+ {
+ _knownTypes.Add(knownType);
+ }
+ }
+ }
+
+ if (_knownTypes.Count > 0 || _declaredTypes.Count > 0)
+ {
+ String text = String.Empty;
+
+ Stream xshd_stream = typeof(ScriptEditor).Assembly.GetManifestResourceStream("Tango.Scripting.Editors.Highlighting.Resources.CSharp-Mode.xshd");
+
+ using (StreamReader reader = new StreamReader(xshd_stream))
+ {
+ text = reader.ReadToEnd();
+ }
+
+ List<String> referenceTypes = new List<string>();
+ List<String> interfaceTypes = new List<string>();
+
+ lock (_knownTypes)
+ {
+ foreach (var type in _knownTypes.ToList().Where(x => x != null))
+ {
+ String name = type.Name;
+
+ if (type.Type.ContainsGenericParameters)
+ {
+ name = new String(name.TakeWhile(x => x != '`').ToArray());
+ }
+
+ if (type.Type.IsInterface || type.Type.IsEnum)
+ {
+ interfaceTypes.Add(String.Format("<Word>{0}</Word>", name));
+ }
+ else if (type.Type.IsClass || (type.Type.IsValueType))
+ {
+ referenceTypes.Add(String.Format("<Word>{0}</Word>", name));
+ }
+ }
+ }
+
+ foreach (var type in _declaredTypes)
+ {
+ if (type.Kind == TypeKind.Interface || type.Kind == TypeKind.Enum)
+ {
+ interfaceTypes.Add(String.Format("<Word>{0}</Word>", type.Name));
+ }
+ else if (type.Kind == TypeKind.Class)
+ {
+ referenceTypes.Add(String.Format("<Word>{0}</Word>", type.Name));
+ }
+ }
+
+ if (referenceTypes.Count > 0)
+ {
+ text = text.Replace("<Word>@ReferenceTypes@</Word>", String.Join(Environment.NewLine, referenceTypes.Distinct()));
+ }
+
+ if (interfaceTypes.Count > 0)
+ {
+ text = text.Replace("<Word>@InterfaceTypes@</Word>", String.Join(Environment.NewLine, interfaceTypes.Distinct()));
+ }
+
+ MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(text));
+
+ XmlTextReader xshd_reader = new XmlTextReader(ms);
+
+ Dispatcher.Invoke(new Action(() =>
+ {
+ SyntaxHighlighting = HighlightingLoader.Load(xshd_reader, HighlightingManager.Instance);
+ xshd_reader.Close();
+ ms.Dispose();
+ }));
+ }
+ }
+
public void InvalidateHighlighting(bool loadKnownTypes = true)
{
if (!_isLoadingTypes)
@@ -1964,7 +2080,7 @@ namespace Tango.Scripting.Editors
{
int parameterIndex = expression.Count(x => x == ',');
-
+
expression = new string(expression.TakeWhile(x => x != '(').ToArray());
var tree = expression.Split('.').Select(x => x.Remove(@"\n|\r|\s|\t|\(|\)|\[|\]|<.*>")).ToList();
@@ -2209,6 +2325,104 @@ namespace Tango.Scripting.Editors
Document.Insert(TextArea.Caret.Offset, code);
}
+ public int Find(String text)
+ {
+ if (String.IsNullOrEmpty(text)) return -1;
+
+ string txt = Document.Text;
+ int index = txt.IndexOf(text, TextArea.Caret.Offset);
+
+ if (index > -1)
+ {
+ Select(index, text.Length);
+ ScrollToLine(TextArea.Selection.StartPosition.Line);
+ }
+ else
+ {
+ index = txt.IndexOf(text, 0);
+
+ if (index > -1)
+ {
+ Select(index, text.Length);
+ ScrollToLine(TextArea.Selection.StartPosition.Line);
+ }
+ else
+ {
+ Select(0, 0);
+ System.Media.SystemSounds.Beep.Play();
+ }
+ }
+
+ return index;
+ }
+
+ public int ReplaceNext(String text, String replace)
+ {
+ if (String.IsNullOrEmpty(text)) return -1;
+
+ String selectedText = TextArea.Selection.GetText();
+
+ if (selectedText == text)
+ {
+ TextArea.Selection.ReplaceSelectionWithText(replace);
+ }
+
+ return Find(text);
+ }
+
+ public int ReplaceAll(String text, String replace)
+ {
+ int counter = 0;
+
+ Select(0, 0);
+
+ while (ReplaceNext(text, replace) > -1)
+ {
+ counter++;
+ };
+
+ return counter;
+ }
+
+ public void ColorizeByKeyword(String text)
+ {
+ ResetColorizationByKeyword();
+
+ if (String.IsNullOrEmpty(text)) return;
+
+ var txt = Document.Text;
+
+ var indexes = txt.AllIndexesOf(text).ToList();
+
+ foreach (var index in indexes)
+ {
+ Document.BeginUpdate();
+
+ var line = Document.GetLineByOffset(index);
+
+ OffsetColorizer colorizer = new OffsetColorizer(line, index, index + text.Length, ColorizeBrush);
+ TextArea.TextView.LineTransformers.Add(colorizer);
+
+ Document.EndUpdate();
+ }
+ }
+
+ public void ResetColorizationByKeyword()
+ {
+ Document.BeginUpdate();
+
+ for (int i = 0; i < TextArea.TextView.LineTransformers.Count; i++)
+ {
+ if (TextArea.TextView.LineTransformers[i] is OffsetColorizer)
+ {
+ TextArea.TextView.LineTransformers.RemoveAt(i);
+ i--;
+ }
+ }
+
+ Document.EndUpdate();
+ }
+
#endregion
}
}
diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs
index 4984c84db..ef17f0279 100644
--- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs
+++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs
@@ -250,4 +250,14 @@ public static class StringExtensions
return new List<T>();
}
}
+
+ public static IEnumerable<int> AllIndexesOf(this string str, string searchstring)
+ {
+ int minIndex = str.IndexOf(searchstring);
+ while (minIndex != -1)
+ {
+ yield return minIndex;
+ minIndex = str.IndexOf(searchstring, minIndex + searchstring.Length);
+ }
+ }
}