Skip to content

Commit 43d5ee7

Browse files
committed
Add comments to interfaces.ts and databases-ui.ts
Also, small refactoring of the vscodeMessageHandler.
1 parent 54fee0b commit 43d5ee7

6 files changed

Lines changed: 79 additions & 23 deletions

File tree

extensions/ql-vscode/CHANGELOG.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44

55
- Add friendly welcome message when the databases view is empty.
66
- Add open query, open results, and remove query commands in the query history view title bar.
7-
- Max number of simultaneous queries launchable by runQueries command is now configurable by changing the codeQL.runningQueries.maxQueries setting.
7+
- Max number of simultaneous queries launchable by runQueries command is now configurable by changing the `codeQL.runningQueries.maxQueries` setting.
88
- Fix sorting of results. Some pages of results would have the wrong sort order and columns.
99
- Remember previous sort order when reloading query results.
1010
- Fix proper escaping of backslashes in SARIF message strings.
1111
- Allow setting `codeQL.runningQueries.numberOfThreads` and `codeQL.runningTests.numberOfThreads` to 0, (which is interpreted as 'use one thread per core on the machine').
12-
- Clear the problems view of all Code QL problems when a database is removed.
1312
- Clear the problems view of all CodeQL query results when a database is removed.
1413

1514
## 1.3.3 - 16 September 2020

extensions/ql-vscode/src/databases-ui.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ class DatabaseTreeDataProvider extends DisposableObject
103103
private handleDidChangeDatabaseItem = (event: DatabaseChangedEvent): void => {
104104
// Note that events from the databse manager are instances of DatabaseChangedEvent
105105
// and events fired by the UI are instances of DatabaseItem
106+
107+
// When event.item is undefined, then the entire tree is refreshed.
108+
// When event.item is a db item, then only that item is refreshed.
106109
this._onDidChangeTreeData.fire(event.item);
107110
};
108111

extensions/ql-vscode/src/interface-types.ts

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ export interface ResultsUpdatingMsg {
8686
t: 'resultsUpdating';
8787
}
8888

89+
/**
90+
* Message to set the initial state of the results view with a new
91+
* query.
92+
*/
8993
export interface SetStateMsg {
9094
t: 'setState';
9195
resultsPath: string;
@@ -109,6 +113,10 @@ export interface SetStateMsg {
109113
parsedResultSets: ParsedResultSets;
110114
}
111115

116+
/**
117+
* Message indicating that the results view should display interpreted
118+
* results.
119+
*/
112120
export interface ShowInterpretedPageMsg {
113121
t: 'showInterpretedPage';
114122
interpretation: Interpretation;
@@ -127,17 +135,27 @@ export interface NavigatePathMsg {
127135
direction: number;
128136
}
129137

138+
/**
139+
* A message indicating that the results view should untoggle the
140+
* "Show results in Problems view" checkbox.
141+
*/
130142
export interface UntoggleShowProblemsMsg {
131143
t: 'untoggleShowProblems';
132144
}
133145

146+
/**
147+
* A message sent into the results view.
148+
*/
134149
export type IntoResultsViewMsg =
135150
| ResultsUpdatingMsg
136151
| SetStateMsg
137152
| ShowInterpretedPageMsg
138153
| NavigatePathMsg
139154
| UntoggleShowProblemsMsg;
140155

156+
/**
157+
* A message sent from the results view.
158+
*/
141159
export type FromResultsViewMsg =
142160
| ViewSourceFileMsg
143161
| ToggleDiagnostics
@@ -146,12 +164,21 @@ export type FromResultsViewMsg =
146164
| ResultViewLoaded
147165
| ChangePage;
148166

167+
/**
168+
* Message from the results view to open a database source
169+
* file at the provided location.
170+
*/
149171
export interface ViewSourceFileMsg {
150172
t: 'viewSourceFile';
151173
loc: ResolvableLocationValue;
152174
databaseUri: string;
153175
}
154176

177+
178+
/**
179+
* Message from the results view to toggle the display of
180+
* query diagnostics.
181+
*/
155182
interface ToggleDiagnostics {
156183
t: 'toggleDiagnostics';
157184
databaseUri: string;
@@ -161,10 +188,18 @@ interface ToggleDiagnostics {
161188
kind?: string;
162189
}
163190

191+
/**
192+
* Message from the results view to signal that loading the results
193+
* is complete.
194+
*/
164195
interface ResultViewLoaded {
165196
t: 'resultViewLoaded';
166197
}
167198

199+
/**
200+
* Message from the results view to signal a request to change the
201+
* page.
202+
*/
168203
interface ChangePage {
169204
t: 'changePage';
170205
pageNumber: number; // 0-indexed, displayed to the user as 1-indexed
@@ -188,6 +223,9 @@ export interface InterpretedResultsSortState {
188223
sortDirection: SortDirection;
189224
}
190225

226+
/**
227+
* Message from the results view to request a sorting change.
228+
*/
191229
interface ChangeRawResultsSortMsg {
192230
t: 'changeSort';
193231
resultSetName: string;
@@ -198,6 +236,9 @@ interface ChangeRawResultsSortMsg {
198236
sortState?: RawResultsSortState;
199237
}
200238

239+
/**
240+
* Message from the results view to request a sorting change in interpreted results.
241+
*/
201242
interface ChangeInterpretedResultsSortMsg {
202243
t: 'changeInterpretedSort';
203244
/**
@@ -207,28 +248,43 @@ interface ChangeInterpretedResultsSortMsg {
207248
sortState?: InterpretedResultsSortState;
208249
}
209250

251+
/**
252+
* Message from the compare view to the extension.
253+
*/
210254
export type FromCompareViewMessage =
211255
| CompareViewLoadedMessage
212256
| ChangeCompareMessage
213257
| ViewSourceFileMsg
214258
| OpenQueryMessage;
215259

260+
/**
261+
* Message from the compare view to signal the completion of loading results.
262+
*/
216263
interface CompareViewLoadedMessage {
217264
t: 'compareViewLoaded';
218265
}
219266

267+
/**
268+
* Message from the compare view to request opening a query.
269+
*/
220270
export interface OpenQueryMessage {
221271
readonly t: 'openQuery';
222272
readonly kind: 'from' | 'to';
223273
}
224274

275+
/**
276+
* Message from the compare view to request changing the result set to compare.
277+
*/
225278
interface ChangeCompareMessage {
226279
t: 'changeCompare';
227280
newResultSetName: string;
228281
}
229282

230283
export type ToCompareViewMessage = SetComparisonsMessage;
231284

285+
/**
286+
* Message to the compare view that specifies the query results to compare.
287+
*/
232288
export interface SetComparisonsMessage {
233289
readonly t: 'setComparisons';
234290
readonly stats: {

extensions/ql-vscode/src/view/result-tables.tsx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export class ResultTables
110110
};
111111
}
112112

113-
untoggleProbemsView() {
113+
untoggleProblemsView() {
114114
this.setState({
115115
problemsViewSelected: false
116116
});
@@ -286,11 +286,7 @@ export class ResultTables
286286
// TODO: Duplicated from results.tsx consider a way to
287287
// avoid this duplication
288288
componentDidMount(): void {
289-
this.vscodeMessageHandler = (evt) =>
290-
evt.origin === window.origin
291-
? this.handleMessage(evt.data as IntoResultsViewMsg)
292-
: console.error(`Invalid event origin ${evt.origin}`);
293-
289+
this.vscodeMessageHandler = this.vscodeMessageHandler.bind(this);
294290
window.addEventListener('message', this.vscodeMessageHandler);
295291
}
296292

@@ -300,9 +296,11 @@ export class ResultTables
300296
}
301297
}
302298

303-
private vscodeMessageHandler:
304-
| ((ev: MessageEvent) => void)
305-
| undefined = undefined;
299+
private vscodeMessageHandler(evt: MessageEvent) {
300+
evt.origin === window.origin
301+
? this.handleMessage(evt.data as IntoResultsViewMsg)
302+
: console.error(`Invalid event origin ${evt.origin}`);
303+
}
306304
}
307305

308306
class ResultTable extends React.Component<ResultTableProps, {}> {

extensions/ql-vscode/src/view/results.tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,7 @@ class App extends React.Component<{}, ResultsViewState> {
287287
}
288288

289289
componentDidMount(): void {
290-
this.vscodeMessageHandler = (evt) =>
291-
evt.origin === window.origin
292-
? this.handleMessage(evt.data as IntoResultsViewMsg)
293-
: console.error(`Invalid event origin ${evt.origin}`);
294-
290+
this.vscodeMessageHandler = this.vscodeMessageHandler.bind(this);
295291
window.addEventListener('message', this.vscodeMessageHandler);
296292
}
297293

@@ -301,9 +297,11 @@ class App extends React.Component<{}, ResultsViewState> {
301297
}
302298
}
303299

304-
private vscodeMessageHandler:
305-
| ((ev: MessageEvent) => void)
306-
| undefined = undefined;
300+
private vscodeMessageHandler(evt: MessageEvent) {
301+
evt.origin === window.origin
302+
? this.handleMessage(evt.data as IntoResultsViewMsg)
303+
: console.error(`Invalid event origin ${evt.origin}`);
304+
}
307305
}
308306

309307
Rdom.render(<App />, document.getElementById('root'));

extensions/ql-vscode/src/vscode-tests/no-workspace/databases.test.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,18 @@ describe('databases', () => {
2727

2828
it('should fire events when adding and removing a db item', () => {
2929
const mockDbItem = {
30-
databaseUri: 'file:/abc',
30+
databaseUri: { path: 'file:/abc' },
31+
name: 'abc',
3132
getPersistedState() {
32-
return this.databaseUri;
33+
return this.name;
3334
}
3435
};
3536
const spy = sinon.spy();
3637
databaseManager.onDidChangeDatabaseItem(spy);
3738
(databaseManager as any).addDatabaseItem(mockDbItem);
3839

3940
expect((databaseManager as any)._databaseItems).to.deep.eq([mockDbItem]);
40-
expect(updateSpy).to.have.been.calledWith('databaseList', ['file:/abc']);
41+
expect(updateSpy).to.have.been.calledWith('databaseList', ['abc']);
4142
expect(spy).to.have.been.calledWith({
4243
item: undefined,
4344
kind: DatabaseEventKind.Add
@@ -66,13 +67,14 @@ describe('databases', () => {
6667
const spy = sinon.spy();
6768
databaseManager.onDidChangeDatabaseItem(spy);
6869
(databaseManager as any).addDatabaseItem(mockDbItem);
70+
sinon.restore();
6971

7072
databaseManager.renameDatabaseItem(mockDbItem as unknown as DatabaseItem, 'new name');
7173

7274
expect(mockDbItem.name).to.eq('new name');
7375
expect(updateSpy).to.have.been.calledWith('databaseList', ['new name']);
7476
expect(spy).to.have.been.calledWith({
75-
item: undefined,
77+
item: mockDbItem,
7678
kind: DatabaseEventKind.Rename
7779
});
7880
});

0 commit comments

Comments
 (0)