Skip to content

Commit 021c7ed

Browse files
authored
Extension Guide - Sync Installation Status (#457)
* Extension Guide - Sync Installation Status Signed-off-by: Rome Li <[email protected]> * Fix extension name of Project Manager Signed-off-by: Rome Li <[email protected]>
1 parent 3145a80 commit 021c7ed

File tree

5 files changed

+37
-9
lines changed

5 files changed

+37
-9
lines changed

package-lock.json

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
"style-loader": "^0.21.0",
135135
"ts-loader": "^4.3.0",
136136
"tslint": "^5.20.1",
137-
"typescript": "^2.6.1",
137+
"typescript": "^3.7.5",
138138
"webpack": "^4.43.0",
139139
"webpack-cli": "^3.3.11"
140140
},

src/ext-guide/assets/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ <h6 class="font-weight-light">Recommended extensions for Java development.</h5>
6767
<tr>
6868
<td>
6969
<div class="form-check">
70-
<input class="form-check-input" type="checkbox" value="vscjava.vscode-java-project" id="chk.vscjava.vscode-java-project">
71-
<label class="form-check-label" for="chk.vscjava.vscode-java-project">
70+
<input class="form-check-input" type="checkbox" value="vscjava.vscode-java-dependency" id="chk.vscjava.vscode-java-dependency">
71+
<label class="form-check-label" for="chk.vscjava.vscode-java-dependency">
7272
Project Manager for Java
7373
</label>
7474
</div>
@@ -201,7 +201,7 @@ <h6 class="font-weight-light">Recommended extensions for Java development.</h5>
201201
<p class="d-none" ext="vscjava.vscode-java-debug">
202202
Debug Java applications.
203203
</p>
204-
<p class="d-none" ext="vscjava.vscode-java-project">
204+
<p class="d-none" ext="vscjava.vscode-java-dependency">
205205
Manage Java projects, dependencies, and generate packages.
206206
</p>
207207
<p class="d-none" ext="vscjava.vscode-java-test">

src/ext-guide/assets/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,17 @@ function bsHide($elem: JQuery<HTMLElement>) {
7272
function bsShow($elem: JQuery<HTMLElement>) {
7373
$elem.removeClass("d-none");
7474
}
75+
76+
window.addEventListener("message", event => {
77+
if (event.data.command === "syncExtensionStatus") {
78+
syncExtensionStatus(event.data.installedExtensions);
79+
}
80+
});
81+
82+
function syncExtensionStatus(extensions: string[]) {
83+
$("input[type='checkbox']").each((i, elem) => {
84+
const isInstalled = extensions.includes(<string>$(elem).val());
85+
$(elem).prop("disabled", isInstalled);
86+
$(elem).prop("checked", isInstalled);
87+
});
88+
}

src/ext-guide/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,20 @@ async function initializeJavaExtGuideView(context: vscode.ExtensionContext, webv
4444
});
4545
}
4646
}));
47+
48+
vscode.extensions.onDidChange(e => {
49+
syncExtensionStatus();
50+
});
51+
52+
function syncExtensionStatus() {
53+
const installedExtensions = vscode.extensions.all.map(ext => ext.id.toLowerCase());
54+
webviewPanel.webview.postMessage({
55+
command: "syncExtensionStatus",
56+
installedExtensions: installedExtensions
57+
});
58+
}
59+
60+
syncExtensionStatus();
4761
}
4862

4963
export class JavaExtGuideViewSerializer implements vscode.WebviewPanelSerializer {

0 commit comments

Comments
 (0)