# HG changeset patch
# User cin
# Date 2018-01-23 16:39:21
# Node ID fa6cbf4d8841204bd901308afe0e594dc61387e5
# Parent eedf4d834e67d7edec360d2b5ab9ec773eb9bd17
refactoring, moving to dotnercore, simplifying promises
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,39 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+
+ {
+ "name": "Launch webserver",
+ "type": "mono",
+ "request": "launch",
+ "program": "/usr/lib/mono/4.5/xsp4.exe",
+ "args":[
+ "--root=.",
+ "--port=8081",
+ "-v",
+ "--printlog"
+ ],
+ "preLaunchTask": "build",
+ "cwd": "${workspaceRoot}/Pallada.PoiskAvia.Web",
+ "runtimeExecutable": null,
+ "env": {},
+ "console": "integratedTerminal"
+ },{
+ "name": "Launch model tests",
+ "type": "mono",
+ "request": "launch",
+ "program": "${env:HOME}/.nuget/packages/nunit.consolerunner/3.7.0/tools/nunit3-console.exe",
+ "args": [
+ "${workspaceRoot}/Pallada.PoiskAvia.Model.Test/bin/Debug/net45/Pallada.PoiskAvia.Model.Test.mono.dll",
+ "--where=\"cat==Debug\"",
+ "--labels='On'",
+ "--inprocess",
+ "--workers=1"
+ ],
+ "preLaunchTask": "build",
+ "console": "internalConsole",
+ "internalConsoleOptions": "openOnSessionStart",
+ "cwd": "${workspaceRoot}/Pallada.PoiskAvia.Model.Test/"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,13 @@
+// Поместите параметры в этот файл, чтобы перезаписать параметры по умолчанию и пользовательские параметры.
+{
+ "files.exclude": {
+ "**/.git": true,
+ "**/.svn": true,
+ "**/.hg": true,
+ "**/CVS": true,
+ "**/.DS_Store": true,
+ "**/bin": true,
+ "**/obj": true
+ },
+ "omnisharp.useMono": true
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,55 @@
+{
+ // See https://go.microsoft.com/fwlink/?LinkId=733558
+ // for the documentation about the tasks.json format
+ "version": "0.1.0",
+ "command": "msbuild",
+ "args": [
+ // Ask msbuild to generate full paths for file names.
+ "/property:GenerateFullPaths=true"
+ ],
+ "taskSelector": "/t:",
+ "showOutput": "silent",
+ "tasks": [
+ {
+ "taskName": "build",
+ "suppressTaskName": true,
+ // Show the output window only if unrecognized errors occur.
+ "showOutput": "always",
+ // Use the standard MS compiler pattern to detect errors, warnings and infos
+ "problemMatcher": "$msCompile",
+
+ "args" : [
+ "/t:restore;build",
+ "/p:Configuration=DebugMono",
+ "Pallada.PoiskAvia.mono.sln"
+ ]
+ },
+ {
+ "taskName": "clean",
+ // Show the output window only if unrecognized errors occur.
+ "showOutput": "always",
+ // Use the standard MS compiler pattern to detect errors, warnings and infos
+ "problemMatcher": "$msCompile",
+
+ "args" : [
+ "/p:Configuration=DebugMono",
+ "Pallada.PoiskAvia.mono.sln"
+ ]
+ },
+ {
+ "taskName": "runtests",
+ "isTestCommand": true,
+ "suppressTaskName": true,
+ // Show the output window only if unrecognized errors occur.
+ "showOutput": "always",
+ // Use the standard MS compiler pattern to detect errors, warnings and infos
+ "problemMatcher": "$msCompile",
+
+ "args" : [
+ "/t:runtests",
+ "/p:Configuration=DebugMono",
+ "Pallada.PoiskAvia.mono.sln"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Implab.Playground2.psess b/Implab.Playground2.psess
deleted file mode 100644
--- a/Implab.Playground2.psess
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
- Implab.sln
- Sampling
- None
- true
- true
- Timestamp
- Cycles
- 50000
- 10
- 10
-
- false
-
-
-
- false
- 500
-
- \Память\Обмен страниц/с
- \Процессор(_Total)\% загруженности процессора
- \Физический диск(_Total)\Средняя длина очереди диска
-
-
-
- true
- false
- false
-
- false
-
-
- false
-
-
-
- Implab.Playground\obj\Debug\Implab.Playground.exe
- 01/01/0001 00:00:00
- true
- true
- false
- false
- false
- false
- false
- true
- false
- Executable
- Implab.Playground\bin\Debug\Implab.Playground.exe
- Implab.Playground\bin\Debug\
-
-
- IIS
- InternetExplorer
- true
- false
-
- false
-
-
- false
-
- {100DFEB0-75BE-436F-ADDF-1F46EF433F46}|Implab.Playground\Implab.Playground.csproj
- Implab.Playground\Implab.Playground.csproj
- Implab.Playground
-
-
-
\ No newline at end of file
diff --git a/Implab.sln b/Implab.sln
deleted file mode 100644
--- a/Implab.sln
+++ /dev/null
@@ -1,71 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Implab", "Implab\Implab.csproj", "{F550F1F8-8746-4AD0-9614-855F4C4B7F05}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CE8D8D18-437A-445C-B662-4C2CE79A76F6}"
- ProjectSection(SolutionItems) = preProject
- Implab.vsmdi = Implab.vsmdi
- Local.testsettings = Local.testsettings
- TraceAndTestImpact.testsettings = TraceAndTestImpact.testsettings
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Implab.Test", "Implab.Test\Implab.Test.csproj", "{63F92C0C-61BF-48C0-A377-8D67C3C661D0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Implab.Format.Test", "Implab.Format.Test\Implab.Format.Test.csproj", "{4D364996-7ECD-4193-8F90-F223FFEA49DA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Implab.Playground", "Implab.Playground\Implab.Playground.csproj", "{100DFEB0-75BE-436F-ADDF-1F46EF433F46}"
-EndProject
-Global
- GlobalSection(Performance) = preSolution
- HasPerformanceSessions = true
- EndGlobalSection
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug 4.5|Any CPU = Debug 4.5|Any CPU
- Debug|Any CPU = Debug|Any CPU
- Release 4.5|Any CPU = Release 4.5|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {F550F1F8-8746-4AD0-9614-855F4C4B7F05}.Debug 4.5|Any CPU.ActiveCfg = Debug|Any CPU
- {F550F1F8-8746-4AD0-9614-855F4C4B7F05}.Debug 4.5|Any CPU.Build.0 = Debug|Any CPU
- {F550F1F8-8746-4AD0-9614-855F4C4B7F05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F550F1F8-8746-4AD0-9614-855F4C4B7F05}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F550F1F8-8746-4AD0-9614-855F4C4B7F05}.Release 4.5|Any CPU.ActiveCfg = Release|Any CPU
- {F550F1F8-8746-4AD0-9614-855F4C4B7F05}.Release 4.5|Any CPU.Build.0 = Release|Any CPU
- {F550F1F8-8746-4AD0-9614-855F4C4B7F05}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F550F1F8-8746-4AD0-9614-855F4C4B7F05}.Release|Any CPU.Build.0 = Release|Any CPU
- {63F92C0C-61BF-48C0-A377-8D67C3C661D0}.Debug 4.5|Any CPU.ActiveCfg = Debug 4.5|Any CPU
- {63F92C0C-61BF-48C0-A377-8D67C3C661D0}.Debug 4.5|Any CPU.Build.0 = Debug 4.5|Any CPU
- {63F92C0C-61BF-48C0-A377-8D67C3C661D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {63F92C0C-61BF-48C0-A377-8D67C3C661D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {63F92C0C-61BF-48C0-A377-8D67C3C661D0}.Release 4.5|Any CPU.ActiveCfg = Release 4.5|Any CPU
- {63F92C0C-61BF-48C0-A377-8D67C3C661D0}.Release 4.5|Any CPU.Build.0 = Release 4.5|Any CPU
- {63F92C0C-61BF-48C0-A377-8D67C3C661D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {63F92C0C-61BF-48C0-A377-8D67C3C661D0}.Release|Any CPU.Build.0 = Release|Any CPU
- {4D364996-7ECD-4193-8F90-F223FFEA49DA}.Debug 4.5|Any CPU.ActiveCfg = Debug|Any CPU
- {4D364996-7ECD-4193-8F90-F223FFEA49DA}.Debug 4.5|Any CPU.Build.0 = Debug|Any CPU
- {4D364996-7ECD-4193-8F90-F223FFEA49DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4D364996-7ECD-4193-8F90-F223FFEA49DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4D364996-7ECD-4193-8F90-F223FFEA49DA}.Release 4.5|Any CPU.ActiveCfg = Release|Any CPU
- {4D364996-7ECD-4193-8F90-F223FFEA49DA}.Release 4.5|Any CPU.Build.0 = Release|Any CPU
- {4D364996-7ECD-4193-8F90-F223FFEA49DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4D364996-7ECD-4193-8F90-F223FFEA49DA}.Release|Any CPU.Build.0 = Release|Any CPU
- {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Debug 4.5|Any CPU.ActiveCfg = Debug|Any CPU
- {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Debug 4.5|Any CPU.Build.0 = Debug|Any CPU
- {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Release 4.5|Any CPU.ActiveCfg = Release|Any CPU
- {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Release 4.5|Any CPU.Build.0 = Release|Any CPU
- {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {100DFEB0-75BE-436F-ADDF-1F46EF433F46}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(TestCaseManagementSettings) = postSolution
- CategoryFile = Implab.vsmdi
- EndGlobalSection
-EndGlobal
diff --git a/Implab.suo b/Implab.suo
deleted file mode 100644
index 2551c242a8fc7c93912d4e7a7aa20b99c6d0d1d9..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@
-
-
-
-
-
\ No newline at end of file
diff --git a/Implab/AbstractEvent.cs b/Implab/AbstractEvent.cs
--- a/Implab/AbstractEvent.cs
+++ b/Implab/AbstractEvent.cs
@@ -4,7 +4,7 @@ using System.Threading;
using System.Reflection;
namespace Implab {
- public abstract class AbstractEvent : ICancellationToken, ICancellable {
+ public abstract class AbstractEvent : ICancellable {
const int UNRESOLVED_SATE = 0;
const int TRANSITIONAL_STATE = 1;
@@ -30,8 +30,6 @@ namespace Implab {
int m_cancelRequest;
Exception m_cancelationReason;
- SimpleAsyncQueue> m_cancelationHandlers;
-
#region state managment
bool BeginTransit() {
diff --git a/Implab/Automaton/DFATable.cs b/Implab/Automaton/DFATable.cs
--- a/Implab/Automaton/DFATable.cs
+++ b/Implab/Automaton/DFATable.cs
@@ -311,7 +311,7 @@ namespace Implab.Automaton {
optimalDFA.Add(t);
}
- protected string PrintDFA(IAlphabet inputAlphabet, IAlphabet stateAlphabet) {
+ /*protected string PrintDFA(IAlphabet inputAlphabet, IAlphabet stateAlphabet) {
Safe.ArgumentNotNull(inputAlphabet, "inputAlphabet");
Safe.ArgumentNotNull(stateAlphabet, "stateAlphabet");
@@ -343,6 +343,6 @@ namespace Implab.Automaton {
return writer.ToString();
}
}
- }
+ }*/
}
}
diff --git a/Implab/Automaton/EnumAlphabet.cs b/Implab/Automaton/EnumAlphabet.cs
deleted file mode 100644
--- a/Implab/Automaton/EnumAlphabet.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Globalization;
-using System.Linq;
-using System.Diagnostics.CodeAnalysis;
-
-namespace Implab.Automaton {
- ///
- /// Алфавит символами которого являются элементы перечислений.
- ///
- /// Тип перечислений
- public class EnumAlphabet : IndexedAlphabetBase where T : struct, IConvertible {
- [SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes")]
- static readonly Lazy _symbols = new Lazy(GetSymbols);
-
- [SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes")]
- static readonly Lazy> _fullAlphabet = new Lazy>(CreateEnumAlphabet);
-
- static EnumAlphabet CreateEnumAlphabet() {
- var symbols = _symbols.Value;
-
- if (
- symbols[symbols.Length - 1].ToInt32(CultureInfo.InvariantCulture) >= symbols.Length
- || symbols[0].ToInt32(CultureInfo.InvariantCulture) != 0
- )
- throw new InvalidOperationException("The specified enumeration must be zero-based and continuously numbered");
-
- return new EnumAlphabet(symbols.Select(x => x.ToInt32(CultureInfo.InvariantCulture)).ToArray());
- }
-
- static T[] GetSymbols() {
- if (!typeof(T).IsEnum)
- throw new InvalidOperationException("Invalid generic parameter, enumeration is required");
-
- if (Enum.GetUnderlyingType(typeof(T)) != typeof(Int32))
- throw new InvalidOperationException("Only enums based on Int32 are supported");
-
- return ((T[])Enum.GetValues(typeof(T)))
- .OrderBy(x => x.ToInt32(CultureInfo.InvariantCulture))
- .ToArray();
- }
-
- public static EnumAlphabet FullAlphabet {
- get {
- return _fullAlphabet.Value;
- }
- }
-
-
- public EnumAlphabet()
- : base(_symbols.Value.Length) {
- }
-
- public EnumAlphabet(int[] map)
- : base(map) {
- Debug.Assert(map.Length == _symbols.Value.Length);
- }
-
-
- public override int GetSymbolIndex(T symbol) {
- return symbol.ToInt32(CultureInfo.InvariantCulture);
- }
-
- }
-}
diff --git a/Implab/Automaton/RegularExpressions/RegularDFA.cs b/Implab/Automaton/RegularExpressions/RegularDFA.cs
--- a/Implab/Automaton/RegularExpressions/RegularDFA.cs
+++ b/Implab/Automaton/RegularExpressions/RegularDFA.cs
@@ -77,14 +77,14 @@ namespace Implab.Automaton.RegularExpres
return states.GroupBy(x => m_tags[x] ?? new TTag[0], arrayComparer).Select(g => new HashSet(g));
}
- public override string ToString() {
+ /*public override string ToString() {
var states = new MapAlphabet(false, null);
for (int i = 0; i < StateCount; i++)
states.DefineSymbol(string.Format("s{0}", i), i);
return string.Format("//[RegularDFA {1} x {2}]\n{0}", PrintDFA(InputAlphabet, states),StateCount, AlphabetSize);
- }
+ }*/
}
}
diff --git a/Implab/CancellationToken.cs b/Implab/CancellationToken.cs
new file mode 100644
--- /dev/null
+++ b/Implab/CancellationToken.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Threading;
+using Implab.Parallels;
+
+namespace Implab {
+ public class CancellationToken : ICancellationToken {
+ const int CANCEL_NOT_REQUESTED = 0;
+ const int CANCEL_REQUESTING = 1;
+ const int CANCEL_REQUESTED = 2;
+
+ volatile int m_state = CANCEL_NOT_REQUESTED;
+
+ Action m_handler;
+
+ Parallels.SimpleAsyncQueue> m_handlers;
+
+ public bool IsCancellationRequested {
+ get { return m_state == CANCEL_REQUESTED; }
+ }
+
+ public Exception CancellationReason {
+ get; set;
+ }
+
+ public void CancellationRequested(Action handler) {
+ Safe.ArgumentNotNull(handler, nameof(handler));
+ if (IsCancellationRequested) {
+ handler(CancellationReason);
+ } else {
+ EnqueueHandler(handler);
+ if (IsCancellationRequested && TryDequeueHandler(out handler))
+ handler(CancellationReason);
+ }
+ }
+
+ bool TryDequeueHandler(out Action handler) {
+ handler = Interlocked.Exchange(ref m_handler, null);
+ if (handler != null)
+ return true;
+ else if (m_handlers != null)
+ return m_handlers.TryDequeue(out handler);
+ else
+ return false;
+ }
+
+ void EnqueueHandler(Action handler) {
+ if (Interlocked.CompareExchange(ref m_handler, handler, null) != null) {
+ if (m_handlers == null)
+ // compare-exchange will fprotect from loosing already created queue
+ Interlocked.CompareExchange(ref m_handlers, new SimpleAsyncQueue>(), null);
+ m_handlers.Enqueue(handler);
+ }
+ }
+
+ void RequestCancellation(Exception reason) {
+ if (Interlocked.CompareExchange(ref m_state, CANCEL_REQUESTING, CANCEL_NOT_REQUESTED) == CANCEL_NOT_REQUESTED) {
+ if (reason == null)
+ reason = new OperationCanceledException();
+ CancellationReason = reason;
+ m_state = CANCEL_REQUESTED;
+ }
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/Implab/IDeferred.cs b/Implab/IDeferred.cs
--- a/Implab/IDeferred.cs
+++ b/Implab/IDeferred.cs
@@ -4,7 +4,7 @@ namespace Implab {
///
/// Deferred result, usually used by asynchronous services as the service part of the promise.
///
- public interface IDeferred : ICancellationToken {
+ public interface IDeferred {
void Resolve();
@@ -19,6 +19,13 @@ namespace Implab {
/// is used as the reason to reject promise.
///
void Reject(Exception error);
+
+ ///
+ /// Marks current instance as cencelled with the specified reason.
+ ///
+ /// The reason for the operation cancellation,
+ /// if not specified the new will be created
+ void SetCancelled(Exception reason);
}
}
diff --git a/Implab/IDeferredT.cs b/Implab/IDeferredT.cs
--- a/Implab/IDeferredT.cs
+++ b/Implab/IDeferredT.cs
@@ -1,10 +1,12 @@
using System;
namespace Implab {
- public interface IDeferred : ICancellationToken {
+ public interface IDeferred {
void Resolve(T value);
void Reject(Exception error);
+
+ void SetCancelled(Exception error);
}
}
diff --git a/Implab/Implab.csproj b/Implab/Implab.csproj
--- a/Implab/Implab.csproj
+++ b/Implab/Implab.csproj
@@ -1,189 +1,8 @@
-
-
+
+
- Debug
- AnyCPU
- {F550F1F8-8746-4AD0-9614-855F4C4B7F05}
- Library
- Implab
- Implab
- v4.5
-
-
-
- true
- full
- true
- bin\Debug
- TRACE;DEBUG;NET_4_5
- prompt
- 4
- false
- true
-
-
- full
- true
- bin\Release
- NET_4_5
- prompt
- 4
- false
-
-
- false
-
-
- implab.snk
+ netstandard2.0;net45
+ /usr/lib/mono/4.5/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Designer
-
-
-
-
-
-
-
\ No newline at end of file
+
+
diff --git a/Implab/Implab.old.csproj b/Implab/Implab.old.csproj
new file mode 100644
--- /dev/null
+++ b/Implab/Implab.old.csproj
@@ -0,0 +1,189 @@
+
+
+
+ Debug
+ AnyCPU
+ {F550F1F8-8746-4AD0-9614-855F4C4B7F05}
+ Library
+ Implab
+ Implab
+ v4.5
+
+
+
+ true
+ full
+ true
+ bin\Debug
+ TRACE;DEBUG;NET_4_5
+ prompt
+ 4
+ false
+ true
+
+
+ full
+ true
+ bin\Release
+ NET_4_5
+ prompt
+ 4
+ false
+
+
+ false
+
+
+ implab.snk
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Designer
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Implab/Properties/AssemblyInfo.cs b/Implab/Properties/AssemblyInfo.cs
deleted file mode 100644
--- a/Implab/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-
-[assembly: AssemblyTitle("Implab")]
-[assembly: AssemblyDescription("Tools")]
-[assembly: AssemblyCompany("Implab.org")]
-[assembly: AssemblyCopyright("Implab")]
-[assembly: AssemblyTrademark("Implab")]
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-
-[assembly: AssemblyVersion("2.1.*")]
-[assembly: ComVisible(false)]
-
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
-
diff --git a/Local.testsettings b/Local.testsettings
deleted file mode 100644
--- a/Local.testsettings
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- These are default test settings for a local test run.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/TraceAndTestImpact.testsettings b/TraceAndTestImpact.testsettings
deleted file mode 100644
--- a/TraceAndTestImpact.testsettings
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
- These are test settings for Trace and Test Impact.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/omnisharp.json b/omnisharp.json
new file mode 100644
--- /dev/null
+++ b/omnisharp.json
@@ -0,0 +1,54 @@
+{
+ "FormattingOptions": {
+ "NewLine": "\n",
+ "UseTabs": false,
+ "TabSize": 4,
+ "IndentationSize": 4,
+ "SpacingAfterMethodDeclarationName": false,
+ "SpaceWithinMethodDeclarationParenthesis": false,
+ "SpaceBetweenEmptyMethodDeclarationParentheses": false,
+ "SpaceAfterMethodCallName": false,
+ "SpaceWithinMethodCallParentheses": false,
+ "SpaceBetweenEmptyMethodCallParentheses": false,
+ "SpaceAfterControlFlowStatementKeyword": true,
+ "SpaceWithinExpressionParentheses": false,
+ "SpaceWithinCastParentheses": false,
+ "SpaceWithinOtherParentheses": false,
+ "SpaceAfterCast": false,
+ "SpacesIgnoreAroundVariableDeclaration": false,
+ "SpaceBeforeOpenSquareBracket": false,
+ "SpaceBetweenEmptySquareBrackets": false,
+ "SpaceWithinSquareBrackets": false,
+ "SpaceAfterColonInBaseTypeDeclaration": true,
+ "SpaceAfterComma": true,
+ "SpaceAfterDot": false,
+ "SpaceAfterSemicolonsInForStatement": true,
+ "SpaceBeforeColonInBaseTypeDeclaration": true,
+ "SpaceBeforeComma": false,
+ "SpaceBeforeDot": false,
+ "SpaceBeforeSemicolonsInForStatement": false,
+ "SpacingAroundBinaryOperator": "single",
+ "IndentBraces": false,
+ "IndentBlock": true,
+ "IndentSwitchSection": true,
+ "IndentSwitchCaseSection": true,
+ "LabelPositioning": "oneLess",
+ "WrappingPreserveSingleLine": true,
+ "WrappingKeepStatementsOnSingleLine": true,
+ "NewLinesForBracesInTypes": false,
+ "NewLinesForBracesInMethods": false,
+ "NewLinesForBracesInProperties": false,
+ "NewLinesForBracesInAccessors": false,
+ "NewLinesForBracesInAnonymousMethods": false,
+ "NewLinesForBracesInControlBlocks": false,
+ "NewLinesForBracesInAnonymousTypes": false,
+ "NewLinesForBracesInObjectCollectionArrayInitializers": false,
+ "NewLinesForBracesInLambdaExpressionBody": false,
+ "NewLineForElse": false,
+ "NewLineForCatch": false,
+ "NewLineForFinally": false,
+ "NewLineForMembersInObjectInit": false,
+ "NewLineForMembersInAnonymousTypes": false,
+ "NewLineForClausesInQuery": false
+ }
+}
\ No newline at end of file