From 259dcba1a41c377453137aa158ab7955f5150eea Mon Sep 17 00:00:00 2001
From: Siegfried Pammer <siegfriedpammer@gmail.com>
Date: Sat, 11 Jan 2014 18:51:45 +0100
Subject: [PATCH] fix AvalonEdit.Sample

---
 .../AvalonEdit.Sample/AvalonEdit.Sample.csproj    |  9 ++++++++-
 samples/AvalonEdit.Sample/AvalonEdit.Sample.sln   |  1 +
 samples/AvalonEdit.Sample/BraceFoldingStrategy.cs | 12 ++++++++++--
 samples/AvalonEdit.Sample/MyCompletionData.cs     |  1 +
 samples/AvalonEdit.Sample/Window1.xaml.cs         | 15 +++++++++------
 samples/AvalonEdit.Sample/app.config              |  6 ++++++
 6 files changed, 35 insertions(+), 9 deletions(-)
 create mode 100644 samples/AvalonEdit.Sample/app.config

diff --git a/samples/AvalonEdit.Sample/AvalonEdit.Sample.csproj b/samples/AvalonEdit.Sample/AvalonEdit.Sample.csproj
index 353d94ab1b..9cc34c8284 100644
--- a/samples/AvalonEdit.Sample/AvalonEdit.Sample.csproj
+++ b/samples/AvalonEdit.Sample/AvalonEdit.Sample.csproj
@@ -7,8 +7,9 @@
     <OutputType>WinExe</OutputType>
     <RootNamespace>AvalonEdit.Sample</RootNamespace>
     <AssemblyName>AvalonEdit.Sample</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
     <AppDesignerFolder>Properties</AppDesignerFolder>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Platform)' == 'x86' ">
     <PlatformTarget>x86</PlatformTarget>
@@ -36,6 +37,9 @@
     <Reference Include="ICSharpCode.AvalonEdit">
       <HintPath>..\..\bin\ICSharpCode.AvalonEdit.dll</HintPath>
     </Reference>
+    <Reference Include="ICSharpCode.NRefactory">
+      <HintPath>..\..\bin\ICSharpCode.NRefactory.dll</HintPath>
+    </Reference>
     <Reference Include="PresentationCore">
       <RequiredTargetFramework>3.0</RequiredTargetFramework>
     </Reference>
@@ -100,5 +104,8 @@
   <ItemGroup>
     <EmbeddedResource Include="CustomHighlighting.xshd" />
   </ItemGroup>
+  <ItemGroup>
+    <None Include="app.config" />
+  </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
 </Project>
\ No newline at end of file
diff --git a/samples/AvalonEdit.Sample/AvalonEdit.Sample.sln b/samples/AvalonEdit.Sample/AvalonEdit.Sample.sln
index 8b5b9105d5..689058acbd 100644
--- a/samples/AvalonEdit.Sample/AvalonEdit.Sample.sln
+++ b/samples/AvalonEdit.Sample/AvalonEdit.Sample.sln
@@ -1,6 +1,7 @@
 
 Microsoft Visual Studio Solution File, Format Version 11.00
 # Visual Studio 2010
+# SharpDevelop 5.0
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.Sample", "AvalonEdit.Sample.csproj", "{13A5B497-BA12-45AE-9033-22620C3153FB}"
 EndProject
 Global
diff --git a/samples/AvalonEdit.Sample/BraceFoldingStrategy.cs b/samples/AvalonEdit.Sample/BraceFoldingStrategy.cs
index ddd0535a86..def5244f04 100644
--- a/samples/AvalonEdit.Sample/BraceFoldingStrategy.cs
+++ b/samples/AvalonEdit.Sample/BraceFoldingStrategy.cs
@@ -20,13 +20,14 @@ using System;
 using System.Collections.Generic;
 using ICSharpCode.AvalonEdit.Document;
 using ICSharpCode.AvalonEdit.Folding;
+using ICSharpCode.NRefactory.Editor;
 
 namespace AvalonEdit.Sample
 {
 	/// <summary>
 	/// Allows producing foldings from a document based on braces.
 	/// </summary>
-	public class BraceFoldingStrategy : AbstractFoldingStrategy
+	public class BraceFoldingStrategy
 	{
 		/// <summary>
 		/// Gets/Sets the opening brace. The default value is '{'.
@@ -47,10 +48,17 @@ namespace AvalonEdit.Sample
 			this.ClosingBrace = '}';
 		}
 		
+		public void UpdateFoldings(FoldingManager manager, TextDocument document)
+		{
+			int firstErrorOffset;
+			IEnumerable<NewFolding> newFoldings = CreateNewFoldings(document, out firstErrorOffset);
+			manager.UpdateFoldings(newFoldings, firstErrorOffset);
+		}
+		
 		/// <summary>
 		/// Create <see cref="NewFolding"/>s for the specified document.
 		/// </summary>
-		public override IEnumerable<NewFolding> CreateNewFoldings(TextDocument document, out int firstErrorOffset)
+		public IEnumerable<NewFolding> CreateNewFoldings(TextDocument document, out int firstErrorOffset)
 		{
 			firstErrorOffset = -1;
 			return CreateNewFoldings(document);
diff --git a/samples/AvalonEdit.Sample/MyCompletionData.cs b/samples/AvalonEdit.Sample/MyCompletionData.cs
index 7ab77048a3..002ef06e24 100644
--- a/samples/AvalonEdit.Sample/MyCompletionData.cs
+++ b/samples/AvalonEdit.Sample/MyCompletionData.cs
@@ -20,6 +20,7 @@ using System;
 using ICSharpCode.AvalonEdit.CodeCompletion;
 using ICSharpCode.AvalonEdit.Document;
 using ICSharpCode.AvalonEdit.Editing;
+using ICSharpCode.NRefactory.Editor;
 
 namespace AvalonEdit.Sample
 {
diff --git a/samples/AvalonEdit.Sample/Window1.xaml.cs b/samples/AvalonEdit.Sample/Window1.xaml.cs
index 35fc9bde94..ebd4da6eb2 100755
--- a/samples/AvalonEdit.Sample/Window1.xaml.cs
+++ b/samples/AvalonEdit.Sample/Window1.xaml.cs
@@ -65,7 +65,7 @@ namespace AvalonEdit.Sample
 			
 			DispatcherTimer foldingUpdateTimer = new DispatcherTimer();
 			foldingUpdateTimer.Interval = TimeSpan.FromSeconds(2);
-			foldingUpdateTimer.Tick += foldingUpdateTimer_Tick;
+			foldingUpdateTimer.Tick += delegate { UpdateFoldings(); };
 			foldingUpdateTimer.Start();
 		}
 
@@ -147,7 +147,7 @@ namespace AvalonEdit.Sample
 		
 		#region Folding
 		FoldingManager foldingManager;
-		AbstractFoldingStrategy foldingStrategy;
+		object foldingStrategy;
 		
 		void HighlightingComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 		{
@@ -175,7 +175,7 @@ namespace AvalonEdit.Sample
 			if (foldingStrategy != null) {
 				if (foldingManager == null)
 					foldingManager = FoldingManager.Install(textEditor.TextArea);
-				foldingStrategy.UpdateFoldings(foldingManager, textEditor.Document);
+				UpdateFoldings();
 			} else {
 				if (foldingManager != null) {
 					FoldingManager.Uninstall(foldingManager);
@@ -184,10 +184,13 @@ namespace AvalonEdit.Sample
 			}
 		}
 		
-		void foldingUpdateTimer_Tick(object sender, EventArgs e)
+		void UpdateFoldings()
 		{
-			if (foldingStrategy != null) {
-				foldingStrategy.UpdateFoldings(foldingManager, textEditor.Document);
+			if (foldingStrategy is BraceFoldingStrategy) {
+				((BraceFoldingStrategy)foldingStrategy).UpdateFoldings(foldingManager, textEditor.Document);
+			}
+			if (foldingStrategy is XmlFoldingStrategy) {
+				((XmlFoldingStrategy)foldingStrategy).UpdateFoldings(foldingManager, textEditor.Document);
 			}
 		}
 		#endregion
diff --git a/samples/AvalonEdit.Sample/app.config b/samples/AvalonEdit.Sample/app.config
new file mode 100644
index 0000000000..9008dd2558
--- /dev/null
+++ b/samples/AvalonEdit.Sample/app.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+	<startup>
+		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+	</startup>
+</configuration>
\ No newline at end of file