Skip to content

Commit 3acfdd1

Browse files
committed
Merge branch 'next' of https://github.com/rubberduck-vba/Rubberduck into extractMethodRefactoring_Testing
2 parents 73c72aa + eaf2de5 commit 3acfdd1

File tree

67 files changed

+5266
-4699
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+5266
-4699
lines changed

RetailCoder.VBE/Common/ClipboardWriter.cs

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1-
using System.Windows;
1+
using System;
2+
using System.Collections.Generic;
3+
using System.IO;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using System.Windows;
28

39
namespace Rubberduck.Common
410
{
511
public interface IClipboardWriter
612
{
713
void Write(string text);
8-
void AppendData(string format, object data);
14+
void AppendString(string formatName, string data);
15+
void AppendStream(string formatName, MemoryStream stream);
916
void Flush();
1017
}
1118

@@ -15,17 +22,26 @@ public class ClipboardWriter : IClipboardWriter
1522

1623
public void Write(string text)
1724
{
18-
this.AppendData(DataFormats.UnicodeText, text);
25+
this.AppendString(DataFormats.UnicodeText, text);
1926
this.Flush();
2027
}
2128

22-
public void AppendData(string format, object data)
29+
public void AppendString(string formatName, string data)
2330
{
2431
if (_data == null)
2532
{
2633
_data = new DataObject();
2734
}
28-
_data.SetData(format, data);
35+
_data.SetData(formatName, data);
36+
}
37+
38+
public void AppendStream(string formatName, MemoryStream stream)
39+
{
40+
if (_data == null)
41+
{
42+
_data = new DataObject();
43+
}
44+
_data.SetData(formatName, stream);
2945
}
3046

3147
public void Flush()

RetailCoder.VBE/Common/ExportFormatter.cs

Lines changed: 359 additions & 16 deletions
Large diffs are not rendered by default.

RetailCoder.VBE/Inspections/ConvertToProcedureQuickFix.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.Linq;
88
using System.Text.RegularExpressions;
99
using Microsoft.Vbe.Interop;
10+
using Rubberduck.Parsing.Symbols;
1011

1112
namespace Rubberduck.Inspections
1213
{
@@ -55,13 +56,13 @@ public override void Fix()
5556
: Tokens.Property;
5657

5758
string visibility = context.visibility() == null ? string.Empty : context.visibility().GetText() + ' ';
58-
string name = ' ' + functionName.identifier().identifierValue().GetText();
59-
bool hasTypeHint = functionName.identifier().typeHint() != null;
59+
string name = ' ' + Identifier.GetName(functionName.identifier());
60+
bool hasTypeHint = Identifier.GetTypeHintValue(functionName.identifier()) != null;
6061

6162
string args = context.argList().GetText();
6263
string asType = context.asTypeClause() == null ? string.Empty : ' ' + context.asTypeClause().GetText();
6364

64-
string oldSignature = visibility + token + name + (hasTypeHint ? functionName.identifier().typeHint().GetText() : string.Empty) + args + asType;
65+
string oldSignature = visibility + token + name + (hasTypeHint ? Identifier.GetTypeHintValue(functionName.identifier()) : string.Empty) + args + asType;
6566
string newSignature = visibility + Tokens.Sub + name + args;
6667

6768
string procedure = Context.GetText();

RetailCoder.VBE/Inspections/IParseTreeInspection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Rubberduck.Inspections
66
{
7-
internal interface IParseTreeInspection : IInspection
7+
public interface IParseTreeInspection : IInspection
88
{
99
ParseTreeResults ParseTreeResults { get; set; }
1010
}

RetailCoder.VBE/Inspections/InspectionResultBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public int CompareTo(object obj)
121121
public object[] ToArray()
122122
{
123123
var module = QualifiedSelection.QualifiedName;
124-
return new object[] {Inspection.Severity.ToString(), Description, module.ProjectId, module.ComponentName, QualifiedSelection.Selection.StartLine };
124+
return new object[] { Inspection.Severity.ToString(), module.ProjectTitle, module.ComponentTitle, Description, QualifiedSelection.Selection.StartLine, QualifiedSelection.Selection.StartColumn };
125125
}
126126

127127
public string ToCsvString()

RetailCoder.VBE/Inspections/ObsoleteTypeHintInspectionResult.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Rubberduck.Parsing.Grammar;
88
using Rubberduck.Parsing.Symbols;
99
using Rubberduck.VBEditor;
10+
using Rubberduck.Parsing.Symbols;
1011

1112
namespace Rubberduck.Inspections
1213
{
@@ -74,7 +75,7 @@ private void FixTypeHintUsage(string hint, CodeModule module, Selection selectio
7475

7576
if (isDeclaration && Context is VBAParser.FunctionStmtContext)
7677
{
77-
var typeHint = ((VBAParser.FunctionStmtContext)Context).functionName().identifier().typeHint();
78+
var typeHint = Identifier.GetTypeHintContext(((VBAParser.FunctionStmtContext)Context).functionName().identifier());
7879
var argList = ((VBAParser.FunctionStmtContext)Context).argList();
7980
var endLine = argList.Stop.Line;
8081
var endColumn = argList.Stop.Column;
@@ -86,7 +87,7 @@ private void FixTypeHintUsage(string hint, CodeModule module, Selection selectio
8687
}
8788
else if (isDeclaration && Context is VBAParser.PropertyGetStmtContext)
8889
{
89-
var typeHint = ((VBAParser.PropertyGetStmtContext)Context).functionName().identifier().typeHint();
90+
var typeHint = Identifier.GetTypeHintContext(((VBAParser.PropertyGetStmtContext)Context).functionName().identifier());
9091
var argList = ((VBAParser.PropertyGetStmtContext)Context).argList();
9192
var endLine = argList.Stop.Line;
9293
var endColumn = argList.Stop.Column;

RetailCoder.VBE/Inspections/ParameterNotUsedInspection.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,12 @@ public sealed class ParameterNotUsedInspection : InspectionBase
1616
{
1717
private readonly VBE _vbe;
1818
private readonly IMessageBox _messageBox;
19-
private readonly ICodePaneWrapperFactory _wrapperFactory;
2019

2120
public ParameterNotUsedInspection(VBE vbe, RubberduckParserState state, IMessageBox messageBox)
2221
: base(state)
2322
{
2423
_vbe = vbe;
2524
_messageBox = messageBox;
26-
_wrapperFactory = new CodePaneWrapperFactory();
2725
}
2826

2927
public override string Meta { get { return InspectionsUI.ParameterNotUsedInspectionName; }}

RetailCoder.VBE/Inspections/ProcedureShouldBeFunctionInspectionResult.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Rubberduck.Parsing.Symbols;
77
using Rubberduck.Parsing.VBA;
88
using Rubberduck.VBEditor;
9+
using Rubberduck.Parsing.Symbols;
910

1011
namespace Rubberduck.Inspections
1112
{
@@ -115,7 +116,7 @@ private void UpdateSignature()
115116

116117
private void UpdateCalls()
117118
{
118-
var procedureName = _subStmtQualifiedContext.Context.subroutineName().identifier().identifierValue().GetText();
119+
var procedureName = Identifier.GetName(_subStmtQualifiedContext.Context.subroutineName().identifier());
119120

120121
var procedure =
121122
_state.AllDeclarations.SingleOrDefault(d =>

RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorer_FindAllReferencesCommand.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ public CodeExplorer_FindAllReferencesCommand(RubberduckParserState state, FindAl
1717

1818
public override bool CanExecute(object parameter)
1919
{
20-
return _state.Status == ParserState.Ready && !(parameter is CodeExplorerCustomFolderViewModel);
20+
return _state.Status == ParserState.Ready &&
21+
parameter != null &&
22+
!(parameter is CodeExplorerCustomFolderViewModel);
2123
}
2224

2325
public override void Execute(object parameter)

RetailCoder.VBE/UI/CodeInspections/InspectionResultsViewModel.cs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Collections.ObjectModel;
44
using System.Diagnostics;
55
using System.Globalization;
6+
using System.IO;
67
using System.Linq;
78
using System.Threading;
89
using System.Threading.Tasks;
@@ -359,26 +360,33 @@ private void ExecuteQuickFixInProjectCommand(object parameter)
359360

360361
private void ExecuteCopyResultsCommand(object parameter)
361362
{
363+
const string XML_SPREADSHEET_DATA_FORMAT = "XML Spreadsheet";
362364
if (_results == null)
363365
{
364366
return;
365367
}
368+
ColumnInfo[] ColumnInfos = { new ColumnInfo("Type"), new ColumnInfo("Project"), new ColumnInfo("Component"), new ColumnInfo("Issue"), new ColumnInfo("Line", hAlignment.Right), new ColumnInfo("Column", hAlignment.Right) };
369+
366370
var aResults = _results.Select(result => result.ToArray()).ToArray();
367371

368372
var resource = _results.Count == 1
369373
? RubberduckUI.CodeInspections_NumberOfIssuesFound_Singular
370374
: RubberduckUI.CodeInspections_NumberOfIssuesFound_Plural;
371375

372-
var title = string.Format(resource, DateTime.Now.ToString(CultureInfo.InstalledUICulture), _results.Count);
376+
var title = string.Format(resource, DateTime.Now.ToString(CultureInfo.InvariantCulture), _results.Count);
373377

374378
var textResults = title + Environment.NewLine + string.Join("", _results.Select(result => result.ToString() + Environment.NewLine).ToArray());
375-
var csvResults = ExportFormatter.Csv(aResults, title);
376-
var htmlResults = ExportFormatter.HtmlClipboardFragment(aResults, title);
377-
379+
var csvResults = ExportFormatter.Csv(aResults, title,ColumnInfos);
380+
var htmlResults = ExportFormatter.HtmlClipboardFragment(aResults, title,ColumnInfos);
381+
var rtfResults = ExportFormatter.RTF(aResults, title);
382+
383+
MemoryStream strm1 = ExportFormatter.XmlSpreadsheetNew(aResults, title, ColumnInfos);
378384
//Add the formats from richest formatting to least formatting
379-
_clipboard.AppendData(DataFormats.Html, htmlResults);
380-
_clipboard.AppendData(DataFormats.CommaSeparatedValue, csvResults);
381-
_clipboard.AppendData(DataFormats.UnicodeText, textResults);
385+
_clipboard.AppendStream(DataFormats.GetDataFormat(XML_SPREADSHEET_DATA_FORMAT).Name, strm1);
386+
_clipboard.AppendString(DataFormats.Rtf, rtfResults);
387+
_clipboard.AppendString(DataFormats.Html, htmlResults);
388+
_clipboard.AppendString(DataFormats.CommaSeparatedValue, csvResults);
389+
_clipboard.AppendString(DataFormats.UnicodeText, textResults);
382390

383391
_clipboard.Flush();
384392
}

0 commit comments

Comments
 (0)