Skip to content

Commit 08aec0d

Browse files
committed
Showing find result window
- Display find results - Close support
1 parent 6aa537e commit 08aec0d

File tree

4 files changed

+88
-41
lines changed

4 files changed

+88
-41
lines changed

SourceCodeReader.Web/Content/Site.css

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ body {
2828
{
2929
height: 20px;
3030
bottom: 0;
31-
font-size: 0.5em;
31+
font-size: 0.85em;
3232
}
3333

3434
#sourcecodeviewer
@@ -91,29 +91,29 @@ body {
9191
background: url('/images/loader.gif') no-repeat center center;
9292
}
9393

94-
.projectcontent::-webkit-scrollbar{
94+
.stylishscrollbar::-webkit-scrollbar{
9595
width:10px;
9696
height:10px;
9797
background-color:#fff;
9898
box-shadow: inset 1px 1px 0 rgba(0,0,0,.1),inset -1px -1px 0 rgba(0,0,0,.07);
9999
}
100-
.projectcontent::-webkit-scrollbar:hover{
100+
.stylishscrollbar::-webkit-scrollbar:hover{
101101
background-color:#eee;
102102
}
103-
.projectcontent::-webkit-resizer{
103+
.stylishscrollbar::-webkit-resizer{
104104
-webkit-border-radius:4px;
105105
background-color:#666;
106106
}
107-
.projectcontent::-webkit-scrollbar-thumb{
107+
.stylishscrollbar::-webkit-scrollbar-thumb{
108108
min-height:0.8em;
109109
min-width:0.8em;
110110
background-color: rgba(0, 0, 0, .2);
111111
box-shadow: inset 1px 1px 0 rgba(0,0,0,.1),inset -1px -1px 0 rgba(0,0,0,.07);
112112
}
113-
.projectcontent::-webkit-scrollbar-thumb:hover{
113+
.stylishscrollbar::-webkit-scrollbar-thumb:hover{
114114
background-color: #bbb;
115115
}
116-
.projectcontent::-webkit-scrollbar-thumb:active{
116+
.stylishscrollbar::-webkit-scrollbar-thumb:active{
117117
background-color:#888;
118118
}
119119

@@ -126,3 +126,25 @@ body {
126126
{
127127
display: none;
128128
}
129+
130+
#findresult
131+
{
132+
border: 1px solid #ddd;
133+
border-bottom: none;
134+
bottom: 34px;
135+
background-color:#fff;
136+
font-size: 0.9em;
137+
}
138+
139+
.findresultheader
140+
{
141+
padding: 7px 8px;
142+
background-color: #ddd;
143+
background-repeat: repeat-x;
144+
font-weight: bold;
145+
}
146+
147+
.findresultpane
148+
{
149+
height: 150px;
150+
}

SourceCodeReader.Web/LanguageServices/DotNet/DotNetCodeEditorService.cs

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,25 +65,38 @@ public List<FindReferenceResult> FindRefernces(FindReferenceParameter parameter)
6565

6666
this.findReferenceProgressListener.OnFindReferenceInProgress();
6767

68-
var workspace = Roslyn.Services.Workspace.LoadSolution(solutionPath);
68+
var workspace = Roslyn.Services.Workspace.LoadSolution(solutionPath);
6969
var currentFilePath = Path.Combine(projectCodeDirectory.FullName, parameter.Path.Replace(@"/", @"\"));
7070
var solution = workspace.CurrentSolution;
7171

7272
foreach (var project in solution.Projects)
7373
{
74-
foreach (var document in project.Documents)
74+
75+
try
7576
{
76-
var documentSemanticModel = document.GetSemanticModel();
77-
var findReferenceSyntaxtWalker = new FindReferenceSyntaxWalker();
78-
CommonSyntaxNode syntaxRoot = null;
79-
if (documentSemanticModel.SyntaxTree.TryGetRoot(out syntaxRoot))
77+
if (!project.HasDocuments)
78+
{
79+
continue;
80+
}
81+
82+
foreach (var document in project.Documents)
8083
{
81-
findReferenceSyntaxtWalker.DoVisit(syntaxRoot, parameter.Text, (foundLocation) =>
84+
var documentSemanticModel = document.GetSemanticModel();
85+
var findReferenceSyntaxtWalker = new FindReferenceSyntaxWalker();
86+
CommonSyntaxNode syntaxRoot = null;
87+
if (documentSemanticModel.SyntaxTree.TryGetRoot(out syntaxRoot))
8288
{
83-
result.Add(new FindReferenceResult { FileName = document.Name, Path = document.FilePath, Position = foundLocation });
84-
});
89+
findReferenceSyntaxtWalker.DoVisit(syntaxRoot, parameter.Text, (foundLocation) =>
90+
{
91+
result.Add(new FindReferenceResult { FileName = document.Name, Path = document.FilePath, Position = foundLocation });
92+
});
93+
}
8594
}
8695
}
96+
catch (Exception)
97+
{
98+
//TODO: Log
99+
}
87100
}
88101

89102
this.findReferenceProgressListener.OnFindReferenceCompleted(result.Count);

SourceCodeReader.Web/Scripts/App/Application.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ function appViewModel() {
162162
self.projectIsActive = ko.observable();
163163
self.projectStatus = ko.observable();
164164
self.findResult = ko.observable();
165+
self.showFindResultWindow = ko.observable(false);
166+
self.findResultWindowTitle = ko.observable();
165167

166168
self.projectHub = $.connection.projectHub;
167169

@@ -182,10 +184,15 @@ function appViewModel() {
182184
}
183185
};
184186

187+
self.closeFindReferenceWindow = function () {
188+
self.showFindResultWindow(false);
189+
};
190+
185191
self.findReferences = function (kind, text, position) {
186192
var project = self.project();
187193
var currentFilePath = project.file().path;
188194
var findReferencesUrl = '/api/solution/findreferences';
195+
self.findResultWindowTitle('Find result for "' + text + '"');
189196

190197
$.post(findReferencesUrl,
191198
{
@@ -196,10 +203,13 @@ function appViewModel() {
196203
position: position
197204
},
198205
function (result) {
199-
self.findResult({ items : result});
206+
self.findResult({ items: result });
207+
self.showFindResultWindow(true);
200208
}
201209
);
202210
};
211+
212+
203213

204214
// Routing handlers
205215
Sammy('#main', function () {

SourceCodeReader.Web/Views/Home/Index.cshtml

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
</li>
2525
</ul>
2626
</div>
27-
<div class="projectcontent dockrow scroll-x scroll-y">
27+
<div class="projectcontent stylishscrollbar dockrow scroll-x scroll-y">
2828
<div class="showprogress" data-bind="visible: inProgress"></div>
2929
<div data-bind="with: file">
3030
<pre data-bind="html: content" id="sourcecodeviewer">
@@ -59,32 +59,34 @@
5959
</table>
6060
</div>
6161
</div>
62+
<div data-bind="with: $root.findResult, visible: $root.showFindResultWindow" id="findresult" class="dockrow">
63+
<button class="close" data-bind="click: $root.closeFindReferenceWindow">&times;</button>
64+
<div class="findresultheader"><span data-bind="text: $root.findResultWindowTitle"></span></div>
65+
<div class="findresultpane container stylishscrollbar scroll-x scroll-y">
66+
<table class="table">
67+
<thead>
68+
<tr>
69+
<th>Filename</th>
70+
<th>Path</th>
71+
<th>Line Number</th>
72+
</tr>
73+
</thead>
74+
<tbody>
75+
<!-- ko foreach: items -->
76+
<tr>
77+
<td data-bind="text: FileName"></td>
78+
<td data-bind="text: Path"></td>
79+
<td data-bind="text: Position"></td>
80+
</tr>
81+
<!-- /ko -->
82+
</tbody>
83+
</table>
84+
</div>
85+
</div>
6286
<div class="statusbar dockrow" data-bind="text: $root.projectStatus">
6387
</div>
6488
</div>
65-
<div data-bind="with: findResult">
66-
<div><a href='#findresult' data-toggle="collapse" data-target="#findresult">Find Result</a></div>
67-
<div id="findresult">
68-
<table class="table">
69-
<thead>
70-
<tr>
71-
<th>Filename</th>
72-
<th>Path</th>
73-
<th>Line Number</th>
74-
</tr>
75-
</thead>
76-
<tbody>
77-
<!-- ko foreach: items -->
78-
<tr>
79-
<td data-bind="text: FileName"></td>
80-
<td data-bind="text: Path"></td>
81-
<td data-bind="text: Position"></td>
82-
</tr>
83-
<!-- /ko -->
84-
</tbody>
85-
</table>
86-
</div>
87-
</div>
89+
8890

8991
</div>
9092

0 commit comments

Comments
 (0)