From dd10e928ef3d0e8464032f86b9eaf9379a67da7a Mon Sep 17 00:00:00 2001
From: tel0065 <77864718+tel0065@users.noreply.github.com>
Date: Wed, 27 Apr 2022 12:01:44 -0500
Subject: [PATCH] updated webview
---
src/commands/nav.ts | 170 ++++++++++++++++++++++++++++++++++++--------
1 file changed, 140 insertions(+), 30 deletions(-)
diff --git a/src/commands/nav.ts b/src/commands/nav.ts
index f694e40..a9be064 100755
--- a/src/commands/nav.ts
+++ b/src/commands/nav.ts
@@ -1,24 +1,21 @@
-import * as vscode from 'vscode';
-import * as fs from 'fs';
+import * as vscode from "vscode";
+// import * as fs from "fs";
+// import * as os from 'os';
-import { CommandEntry } from './commandEntry';
+import { CommandEntry } from "./commandEntry";
export const navCommands: CommandEntry[] = [
{
name: 'mind-reader.openWebview',
callback: openWebview,
},
-
{
- name: 'mind-reader.openKeyBindWin',
- callback: () => openKeyBindWin('Windows')
- },
- {
- name: 'mind-reader.openKeyBindMac',
- callback: () => openKeyBindWin('Mac'),
+ name: "mind-reader.openKeybinds",
+ callback: () => vscode.commands.executeCommand("workbench.action.openGlobalKeybindings", "mind-reader"),
},
//Navigation Keys......
+ // TODO: Why is this here? Extensions can rebind existing keybinds.
{
name: 'mind-reader.showAllSymbols',
callback: () => vscode.commands.executeCommand('workbench.action.showAllSymbols'),
@@ -82,35 +79,148 @@ export const navCommands: CommandEntry[] = [
// COMMAND CALLBACK IMPLEMENTATIONS
function openWebview(): void {
- //vscode.commands.executeCommand('workbench.action.zoomOut');
const panel = vscode.window.createWebviewPanel(
- 'mindReader', // Identifies the type of the webview. Used internally
- 'Mind Reader', // Title of the panel displayed to the user
+ "mindReader", // Identifies the type of the webview. Used internally
+ "Mind Reader", // Title of the panel displayed to the user
vscode.ViewColumn.One, // Editor column to show the new webview panel in.
{}
); // Webview options. More on these later.
- panel.webview.html = getWebviewContent('media/html/main.html');
+ panel.webview.html = getWebviewContent();
}
-function getWebviewContent(filepath: string) {
- return fs.readFileSync(filepath, {encoding: 'utf-8'});
+// function getWebviewContent(filepath: string) {
+// return fs.readFileSync(filepath, {encoding: 'utf-8'});
+// }
+
+function getWebviewContent() {
+ return `
+
+
+
+
+ Mind Reader
+
+
+
+
+ Welcome to Mind_Reader!
+ We are the Single Semester Snobs and this is our tool to Help Blind Students Program Lego Mindstorms Robots in Python.
+
+ -
+ This tool includes features such as a hotkey that says how many spaces in the text starts, an Accessibility Pane,
+ Audio Alerts, and an advanced settings window.
+
+ The tool has hotkeys for both PC and Mac commands.
+
+ - This system is intended for everyone, but primarily for students K-12 who are visually impaired.
+ -
+ Our goal is to provide an enhanced experience for students who are visually impaired that is transparent to
+ sighted students.
+
+ This allows for everyone to use the same software solution, whether or not they are
+ vision impaired.
+
+
+ Use the following key binding to bring up a page for all key bindings for windows
+
+ Control and Shift and 8
+
+ Use this key binding to do the same for mac computers:
+
+ Command and Shift and 9
+
+ This is the Lego Spike Prime!
+
+
+
+ Get the robot!
+
+ `;
}
-function openKeyBindWin(os: 'Mac' | 'Windows'): void {
- //vscode.commands.executeCommand('workbench.action.zoomOut');
- const panel = vscode.window.createWebviewPanel(
- 'mindReader', // Identifies the type of the webview. Used internally
- 'MR Key Bindings', // Title of the panel displayed to the user
- vscode.ViewColumn.One, // Editor column to show the new webview panel in.
- {}
- ); // Webview options. More on these later.
+// export function getPlatform(): 'windows' | 'mac' | 'linux' | undefined {
+// let platform: 'windows' | 'mac' | 'linux' | undefined;
- if (os === 'Windows') {
- panel.webview.html = getWebviewContent('media/html/winkeys.html');
- } else if (os === 'Mac') {
- panel.webview.html = getWebviewContent('media/html/mackeys.html');
- }
-}
+// if (os.platform().toUpperCase() === 'WIN32') {
+// platform = 'windows';
+// return platform;
+// }
+// if (os.platform().toUpperCase() === 'DARWIN') {
+// platform = 'mac';
+// return platform;
+// }
+// if (os.platform().toUpperCase() === 'linux') {
+// platform = 'linux';
+// return platform;
+// }
+
+// platform = undefined;
+// return platform;
+// }
+
+// function getDocumentWorkspaceFolder(): string | undefined {
+// const fileName = vscode.window.activeTextEditor?.document.fileName;
+// return vscode.workspace.workspaceFolders
+// ?.map((folder) => folder.uri.fsPath)
+// .filter((fsPath) => fileName?.startsWith(fsPath))[0];
+// }
+
+// function openKeyBindWin(): void {
+// //vscode.commands.executeCommand('workbench.action.zoomOut');
+// const panel = vscode.window.createWebviewPanel(
+// 'mindReader', // Identifies the type of the webview. Used internally
+// 'MR Key Bindings', // Title of the panel displayed to the user
+// vscode.ViewColumn.One, // Editor column to show the new webview panel in.
+// {}
+// ); // Webview options. More on these later.
+
+// const userPlatform: 'windows' | 'mac' | 'linux' | undefined = getPlatform();
+
+// switch (userPlatform) {
+// case 'windows':
+// if(vscode.workspace.workspaceFolders !== undefined) {
+// let wf = vscode.workspace.workspaceFolders[0].uri.path;
+// let f = vscode.workspace.workspaceFolders[0].uri.fsPath;
+// const message = `YOUR-EXTENSION: folder: ${wf} - ${f}`;
+// vscode.window.showInformationMessage(message);
+// }
+// else {
+// const message = "YOUR-EXTENSION: Working folder not found, open a folder an try again" ;
+// vscode.window.showErrorMessage(message);
+// }
+// // panel.webview.html = getWebviewContent('media/html/winkeys.html');
+// break;
+// case 'mac':
+// // panel.webview.html = getWebviewContent('media/html/mackeys.html');
+// break;
+// case 'linux':
+// // panel.webview.html = getWebviewContent('media/html/linuxkeys.html');
+// break;
+// default:
+// // panel.webview.html = getWebviewContent("../../media/html/main.html");
+// break;
+// }
+// }
+
+// function openKeyBindWin(os: 'Mac' | 'Windows'): void {
+// //vscode.commands.executeCommand('workbench.action.zoomOut');
+// const panel = vscode.window.createWebviewPanel(
+// 'mindReader', // Identifies the type of the webview. Used internally
+// 'MR Key Bindings', // Title of the panel displayed to the user
+// vscode.ViewColumn.One, // Editor column to show the new webview panel in.
+// {}
+// ); // Webview options. More on these later.
+
+// if (os === 'Windows') {
+// panel.webview.html = getWebviewContent('WINDOWS');
+// // panel.webview.html = getWebviewContent('/media/html/winkeys.html');
+// } else if (os === 'Mac') {
+// panel.webview.html = getWebviewContent('MAC');
+// // panel.webview.html = getWebviewContent('/media/html/mackeys.html');
+// }
+// }
+
+//vscode.commands.executeCommand('workbench.action.openGlobalKeybindings');