Skip to content

Commit 3f61d8b

Browse files
committed
Workaround breaking change in 2016.1.2
1 parent f7991cf commit 3f61d8b

File tree

6 files changed

+144
-115
lines changed

6 files changed

+144
-115
lines changed

src/resharper-angularjs/Psi/Html/AngularJsHtmlElementsProvider.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
using System;
1818
using System.Collections.Generic;
1919
using System.Linq;
20+
using System.Reflection;
2021
using JetBrains.DataFlow;
2122
using JetBrains.ProjectModel;
2223
using JetBrains.ReSharper.Plugins.AngularJS.Feature.Services.Caches;
@@ -40,6 +41,7 @@ public class AngularJsHtmlElementsProvider : IHtmlDeclaredElementsProvider
4041
private readonly IHtmlAttributeValueType cdataAttributeValueType;
4142
private readonly Dictionary<string, IHtmlTagDeclaredElement> tags = new Dictionary<string, IHtmlTagDeclaredElement>();
4243
private readonly Dictionary<string, IHtmlAttributeDeclaredElement> attributes = new Dictionary<string, IHtmlAttributeDeclaredElement>();
44+
private readonly MethodInfo getTagMethodInfo;
4345
private IList<AttributeInfo> commonAttributeInfos = new List<AttributeInfo>();
4446
private ISymbolTable commonAttributesSymbolTable;
4547
private ISymbolTable allAttributesSymbolTable;
@@ -60,6 +62,9 @@ public AngularJsHtmlElementsProvider(Lifetime lifetime, AngularJsCache cache, IS
6062

6163
// TODO: Is this the right value for angular attributes?
6264
cdataAttributeValueType = new HtmlAttributeValueType("CDATA");
65+
66+
// The API for HtmlDeclareElementsCache.GetTag changed between 2016.1 and 2016.1.2
67+
getTagMethodInfo = typeof(HtmlDeclaredElementsCache).GetMethod("GetTag");
6368
}
6469

6570
// Gets a symbol table that contains all common attributes, that is, all attributes that apply to any tag.
@@ -131,6 +136,11 @@ from n in GetPrefixedNames(p.Name)
131136
// so providers other than the standard HtmlDeclaredElementsProvider should only return
132137
// new, non-standard HTML tags
133138
// Used all over the place to get a declared element for a named tag
139+
public IHtmlTagDeclaredElement GetTag(string name, string parentTag)
140+
{
141+
return GetTag(name);
142+
}
143+
134144
public IHtmlTagDeclaredElement GetTag(string name)
135145
{
136146
lock (lockObject)
@@ -394,7 +404,14 @@ private IHtmlAttributeDeclaredElement GetOrCreateAttributeLocked(string attribut
394404
// Using IHtmlDeclaredElementsProvider to add elements and attributes is surprisingly
395405
// tricky. Perhaps I should be creating all attributes and tags at once, rather than
396406
// doing it piecemeal. Would definitely be nice to get more fine grained caching for that.
397-
tag = solution.GetComponent<HtmlDeclaredElementsCache>().GetTag(tagName, null);
407+
408+
var htmlDeclaredElementsCache = solution.GetComponent<HtmlDeclaredElementsCache>();
409+
// Ugh. The API changed between 2016.1 and 2016.1.2...
410+
//tag = htmlDeclaredElementsCache.GetTag(null, tagName);
411+
if (getTagMethodInfo.GetParameters().Length == 3)
412+
tag = (IHtmlTagDeclaredElement) getTagMethodInfo.Invoke(htmlDeclaredElementsCache, new object[] {null, tagName, null});
413+
else
414+
tag = (IHtmlTagDeclaredElement) getTagMethodInfo.Invoke(htmlDeclaredElementsCache, new object[] {tagName, null});
398415
attribute = GetAttributeLocked(key);
399416
if (attribute != null)
400417
return attribute;

src/resharper-angularjs/packages.config

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,32 @@
66
<package id="DotNetZip.Reduced" version="1.9.1.8" targetFramework="net40" />
77
<package id="JetBrains.Annotations" version="10.1.4" targetFramework="net40" />
88
<package id="JetBrains.Build.Platform.Tasks.ThemedIconsPacker" version="2.0.20151217.1" targetFramework="net40" developmentDependency="true" />
9-
<package id="JetBrains.ExternalAnnotations" version="10.1.8" targetFramework="net40" />
9+
<package id="JetBrains.ExternalAnnotations" version="10.1.13" targetFramework="net40" />
1010
<package id="JetBrains.Mono.Posix" version="0.1" targetFramework="net40" />
11-
<package id="JetBrains.Platform.Core.Ide" version="105.0.20160414.153405" targetFramework="net40" />
12-
<package id="JetBrains.Platform.Core.Shell" version="105.0.20160414.95726" targetFramework="net40" />
13-
<package id="JetBrains.Platform.Core.Text" version="105.0.20160414.153405" targetFramework="net40" />
14-
<package id="JetBrains.Platform.Installer" version="105.0.20160414.153405" targetFramework="net40" />
15-
<package id="JetBrains.Platform.Interop.dotMemoryUnit.Interop" version="105.0.20160414.153405" targetFramework="net40" />
11+
<package id="JetBrains.Platform.Core.Ide" version="105.0.20160522.80211" targetFramework="net40" />
12+
<package id="JetBrains.Platform.Core.Shell" version="105.0.20160520.92915" targetFramework="net40" />
13+
<package id="JetBrains.Platform.Core.Text" version="105.0.20160522.80211" targetFramework="net40" />
14+
<package id="JetBrains.Platform.Installer" version="105.0.20160522.80211" targetFramework="net40" />
15+
<package id="JetBrains.Platform.Interop.dotMemoryUnit.Interop" version="105.0.20160522.80211" targetFramework="net40" />
1616
<package id="JetBrains.Platform.Lib.DevExpress" version="2.0.20150224.0" targetFramework="net40" />
1717
<package id="JetBrains.Platform.Lib.Microsoft.Deployment.Compression.Cab" version="2.0.20140304.0" targetFramework="net40" />
1818
<package id="JetBrains.Platform.Lib.Microsoft.Deployment.WindowsInstaller" version="2.0.20140821.0" targetFramework="net40" />
1919
<package id="JetBrains.Platform.Lib.System.Windows.Interactivity" version="2.0.20140318.0" targetFramework="net40" />
2020
<package id="JetBrains.Platform.Lib.VisualStudio.AnyVs.ShellInterop.PrivateBuild" version="2.0.20140304.0" targetFramework="net40" />
2121
<package id="JetBrains.Platform.Lib.WpfContrib" version="2.0.20150225.0" targetFramework="net40" />
22-
<package id="JetBrains.Platform.Symbols" version="105.0.20160414.153405" targetFramework="net40" />
23-
<package id="JetBrains.Platform.Tests.Framework" version="105.0.20160414.153405" targetFramework="net40" />
24-
<package id="JetBrains.Platform.VisualStudio" version="105.0.20160414.153405" targetFramework="net40" />
25-
<package id="JetBrains.Psi.Features.Core" version="105.0.20160414.153845" targetFramework="net40" />
26-
<package id="JetBrains.Psi.Features.Cpp.Src" version="105.0.20160414.155000" targetFramework="net40" />
27-
<package id="JetBrains.Psi.Features.SolutionBuilder" version="105.0.20160414.153845" targetFramework="net40" />
28-
<package id="JetBrains.Psi.Features.src" version="105.0.20160414.153845" targetFramework="net40" />
29-
<package id="JetBrains.Psi.Features.Tasks" version="105.0.20160414.153845" targetFramework="net40" />
30-
<package id="JetBrains.Psi.Features.test.Framework" version="105.0.20160414.153845" targetFramework="net40" />
31-
<package id="JetBrains.Psi.Features.UnitTesting" version="105.0.20160414.153845" targetFramework="net40" />
32-
<package id="JetBrains.Psi.Features.VisualStudio" version="105.0.20160414.153845" targetFramework="net40" />
33-
<package id="JetBrains.ReSharper.SDK" version="2016.1.20160414.161610" targetFramework="net40" developmentDependency="true" />
34-
<package id="JetBrains.ReSharper.SDK.Internal" version="105.0.20160414.161610" targetFramework="net40" />
22+
<package id="JetBrains.Platform.Symbols" version="105.0.20160522.80211" targetFramework="net40" />
23+
<package id="JetBrains.Platform.Tests.Framework" version="105.0.20160522.80211" targetFramework="net40" />
24+
<package id="JetBrains.Platform.VisualStudio" version="105.0.20160522.80211" targetFramework="net40" />
25+
<package id="JetBrains.Psi.Features.Core" version="105.0.20160523.140224" targetFramework="net40" />
26+
<package id="JetBrains.Psi.Features.Cpp.Src" version="105.0.20160523.141910" targetFramework="net40" />
27+
<package id="JetBrains.Psi.Features.SolutionBuilder" version="105.0.20160523.140224" targetFramework="net40" />
28+
<package id="JetBrains.Psi.Features.src" version="105.0.20160523.140224" targetFramework="net40" />
29+
<package id="JetBrains.Psi.Features.Tasks" version="105.0.20160523.140224" targetFramework="net40" />
30+
<package id="JetBrains.Psi.Features.test.Framework" version="105.0.20160523.140224" targetFramework="net40" />
31+
<package id="JetBrains.Psi.Features.UnitTesting" version="105.0.20160523.140224" targetFramework="net40" />
32+
<package id="JetBrains.Psi.Features.VisualStudio" version="105.0.20160523.140224" targetFramework="net40" />
33+
<package id="JetBrains.ReSharper.SDK" version="2016.1.20160523.144409" targetFramework="net40" developmentDependency="true" />
34+
<package id="JetBrains.ReSharper.SDK.Internal" version="105.0.20160523.144409" targetFramework="net40" />
3535
<package id="JetBrains.WinDbg.SymStore" version="10.0.10586.20151201" targetFramework="net40" developmentDependency="true" />
3636
<package id="Microsoft.VC100.CRT.JetBrains" version="10.00.40219.2" targetFramework="net40" />
3737
<package id="Microsoft.VC120.CRT.JetBrains" version="12.0.21005.2" targetFramework="net40" />

0 commit comments

Comments
 (0)