Skip to content

Commit 6b46f19

Browse files
committed
Add additional verbose logging
1 parent 795ebca commit 6b46f19

File tree

3 files changed

+36
-3
lines changed

3 files changed

+36
-3
lines changed

Source/ExcelDna.IntelliSense/IntellisenseHelper.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,11 @@ void Provider_Invalidate(object sender, EventArgs e)
5555
void RefreshProvider(object providerObj)
5656
{
5757
Debug.Assert(Thread.CurrentThread.ManagedThreadId == 1);
58+
Logger.Provider.Verbose($"IntelliSenseHelper.RefreshProvider - Begin Refresh for {providerObj.GetType().Name}");
5859
IIntelliSenseProvider provider = (IIntelliSenseProvider)providerObj;
5960
provider.Refresh();
6061
UpdateDisplay(provider);
62+
Logger.Provider.Verbose($"IntelliSenseHelper.RefreshProvider - End");
6163
}
6264

6365
void UpdateDisplay(IIntelliSenseProvider provider)

Source/ExcelDna.IntelliSense/Providers/WorkbookIntelliSenseProvider.cs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,20 @@ public void Refresh()
4040
var wb = app.Workbooks[_name];
4141
_path = wb.Path;
4242

43+
Logger.Provider.Verbose($"WorkbookRegistrationInfo.Refresh - Workbook {_name} at {_path}");
4344
try
4445
{
4546
var ws = wb.Sheets[intelliSenseWorksheetName];
46-
47+
Logger.Provider.Verbose($"WorkbookRegistrationInfo.Refresh - IntelliSense sheet found");
4748
var info = ws.UsedRange.Value;
4849
_regInfo = info as object[,];
50+
Logger.Provider.Verbose($"WorkbookRegistrationInfo.Refresh - Read {_regInfo.GetLength(0) - 1} registrations");
4951
}
5052
catch (Exception ex)
5153
{
5254
// We expect this if there is no sheet.
5355
Debug.Print("WorkbookIntelliSenseProvider.Refresh Error : " + ex.Message);
56+
Logger.Provider.Verbose($"WorkbookRegistrationInfo.Refresh - No IntelliSense sheet found");
5457
_regInfo = null;
5558
}
5659
_lastUpdate = DateTime.Now;
@@ -141,12 +144,15 @@ public void Initialize()
141144
xlApp.WorkbookBeforeClose += Excel_WorkbookBeforeClose;
142145
xlApp.WorkbookAddinInstall += Excel_WorkbookAddinInstall;
143146
xlApp.WorkbookAddinUninstall += Excel_WorkbookAddinUninstall;
147+
Logger.Provider.Verbose("WorkbookIntelliSenseProvider.Initialize - Installed event listeners");
144148

145149
lock (_workbookRegistrationInfos)
146150
{
151+
Logger.Provider.Verbose("WorkbookIntelliSenseProvider.Initialize - Starting Workbooks loop");
147152
foreach (Workbook wb in xlApp.Workbooks)
148153
{
149154
var name = wb.Name;
155+
Logger.Provider.Verbose($"WorkbookIntelliSenseProvider.Initialize - Adding registration for {name}");
150156
if (!_workbookRegistrationInfos.ContainsKey(name))
151157
{
152158
WorkbookRegistrationInfo regInfo = new WorkbookRegistrationInfo(name);
@@ -189,6 +195,8 @@ public void Initialize()
189195
// }
190196
//}
191197

198+
Logger.Provider.Verbose($"WorkbookIntelliSenseProvider.Initialize - Checking Add-Ins");
199+
192200
var loadedAddIns = Integration.XlCall.Excel(Integration.XlCall.xlfDocuments, 2) as object[,];
193201
if (loadedAddIns == null)
194202
{
@@ -199,6 +207,7 @@ public void Initialize()
199207
for (int i = 0; i < loadedAddIns.GetLength(1); i++)
200208
{
201209
var addInName = loadedAddIns[0, i] as string;
210+
Logger.Provider.Verbose($"WorkbookIntelliSenseProvider.Initialize - Checking Add-In {addInName}");
202211
if (addInName != null && Path.GetExtension(addInName) != ".xll") // We don't actually expect the .xll add-ins here - and they're taken care of elsewhere
203212
{
204213
// Can it be "Open" and not be loaded?
@@ -215,6 +224,8 @@ public void Initialize()
215224
continue;
216225
}
217226

227+
Logger.Provider.Verbose($"WorkbookIntelliSenseProvider.Initialize - Adding registration for add-in {name}");
228+
218229
WorkbookRegistrationInfo regInfo = new WorkbookRegistrationInfo(name);
219230
_workbookRegistrationInfos[name] = regInfo;
220231

@@ -330,16 +341,26 @@ void Excel_WorkbookAddinUninstall(Workbook wb)
330341

331342
void RegisterWithXmlProvider(Workbook wb)
332343
{
344+
Logger.Provider.Verbose($"WorkbookIntelliSenseProvider.RegisterWithXmlProvider");
345+
333346
var path = wb.FullName;
334347
var xmlPath = GetXmlPath(path);
335348
_xmlProvider.RegisterXmlFunctionInfo(xmlPath); // Will check if file exists
336349

350+
Logger.Provider.Verbose($"WorkbookIntelliSenseProvider.RegisterWithXmlProvider - Checking CustomXMLParts");
351+
337352
var customXmlParts = wb.CustomXMLParts.SelectByNamespace(XmlIntelliSense.Namespace);
338353
if (customXmlParts.Count > 0)
339354
{
355+
Logger.Provider.Verbose($"WorkbookIntelliSenseProvider.RegisterWithXmlProvider - CustomXMLPart found");
340356
// We just take the first one - register against the Bworkbook name
341357
_xmlProvider.RegisterXmlFunctionInfo(path, customXmlParts[1].XML);
342358
}
359+
else
360+
{
361+
Logger.Provider.Verbose($"WorkbookIntelliSenseProvider.RegisterWithXmlProvider - No CustomXMLPart found");
362+
}
363+
343364
}
344365

345366
void UnregisterWithXmlProvider(Workbook wb)

Source/ExcelDna.IntelliSense/Providers/XmlIntelliSenseProvider.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.IO;
44
using System.Linq;
55
using System.Text;
6+
using System.Threading;
67
using System.Xml;
78
using System.Xml.Serialization;
89
using ExcelDna.Integration;
@@ -89,16 +90,22 @@ public XmlIntelliSenseProvider()
8990
public void RegisterXmlFunctionInfo(string fileName, string xmlIntelliSense = null)
9091
{
9192
if (!File.Exists(fileName) && xmlIntelliSense == null)
93+
{
94+
Logger.Provider.Verbose($"XmlIntelliSenseProvider.RegisterXmlFunctionInfo - Not IntelliSense file at {fileName}");
9295
return;
96+
}
9397

9498
var regInfo = new XmlRegistrationInfo(fileName, xmlIntelliSense);
99+
Logger.Provider.Verbose($"XmlIntelliSenseProvider.RegisterXmlFunctionInfo - Created XmlRegistrationInfo info for {fileName}");
95100
lock (_xmlRegistrationInfos)
96101
{
102+
Logger.Provider.Verbose($"XmlIntelliSenseProvider.RegisterXmlFunctionInfo - Recording XmlRegistrationInfo info");
97103
_xmlRegistrationInfos.Add(fileName, regInfo);
98104

99105
if (!_isDirty)
100106
{
101107
_isDirty = true;
108+
Logger.Provider.Verbose($"XmlIntelliSenseProvider.RegisterXmlFunctionInfo - Posting OnInvalidate to Excel SyncContext");
102109
_syncContextExcel.Post(OnInvalidate, null);
103110
}
104111
}
@@ -135,22 +142,25 @@ public void Refresh()
135142
// May be called from any thread
136143
public IList<FunctionInfo> GetFunctionInfos()
137144
{
145+
Logger.Provider.Verbose($"XmlIntelliSenseProvider.GetFunctionInfos - Enter on Thread {Thread.CurrentThread.ManagedThreadId}");
146+
138147
IList<FunctionInfo> functionInfos;
139148
lock (_xmlRegistrationInfos)
140149
{
141150
functionInfos = _xmlRegistrationInfos.Values.SelectMany(ri => ri.GetFunctionInfos()).ToList();
142151
}
143-
Logger.Provider.Verbose("XmlIntelliSenseProvider.GetFunctionInfos Begin");
152+
Logger.Provider.Verbose("XmlIntelliSenseProvider.GetFunctionInfos - Begin");
144153
foreach (var info in functionInfos)
145154
{
146155
Logger.Provider.Verbose($"\t{info.Name}({info.ArgumentList.Count}) - {info.Description} ");
147156
}
148-
Logger.Provider.Verbose("XmlIntelliSenseProvider.GetFunctionInfos End");
157+
Logger.Provider.Verbose("XmlIntelliSenseProvider.GetFunctionInfos - End");
149158
return functionInfos;
150159
}
151160

152161
void OnInvalidate(object _unused_)
153162
{
163+
Logger.Provider.Verbose($"XmlIntelliSenseProvider.ROnInvalidate - Invoking Invalidate event");
154164
Invalidate?.Invoke(this, EventArgs.Empty);
155165
}
156166

0 commit comments

Comments
 (0)