Browse Source

Check project item type before adding TypeScript file to context.

Ignore all project item types apart from None and TypeScriptCompile.
This fixes the startup exception when opening SharpDevelop.Tests.sln
with SharpDevelop when the TypeScript addin is enabled.

System.ArgumentException: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at ICSharpCode.TypeScriptBinding.Hosting.TypeScriptContextProvider.AddFileToProjectContext(TypeScriptContext context, FileName fileName)
   at ICSharpCode.TypeScriptBinding.Hosting.TypeScriptContextProvider.CreateProjectContext(TypeScriptProject project)
   at ICSharpCode.TypeScriptBinding.TypeScriptProjectMonitor.CreateTypeScriptContextIfProjectHasTypeScriptFiles(IProject project)
   at ICSharpCode.TypeScriptBinding.TypeScriptProjectMonitor.SolutionLoaded(Object sender, SolutionEventArgs e)
pull/765/head
Matt Ward 9 years ago
parent
commit
8a1a71cc80
  1. 7
      src/AddIns/BackendBindings/TypeScript/Project/Src/TypeScriptProject.cs

7
src/AddIns/BackendBindings/TypeScript/Project/Src/TypeScriptProject.cs

@ -85,9 +85,16 @@ namespace ICSharpCode.TypeScriptBinding @@ -85,9 +85,16 @@ namespace ICSharpCode.TypeScriptBinding
return project
.Items
.Where(item => TypeScriptParser.IsTypeScriptFileName(item.FileName))
.Where(IsSupportedProjectItemType)
.Select(item => item.FileName);
}
bool IsSupportedProjectItemType(ProjectItem item)
{
return item.ItemType == ItemType.None ||
item.ItemType.ItemName == "TypeScriptCompile";
}
bool HasMSBuildProject {
get { return msbuildProject != null; }
}

Loading…
Cancel
Save