You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by sh...@apache.org on 2023/03/24 19:40:41 UTC
[daffodil-vscode] branch main updated: Reordered OE server kill & added verbose vars
This is an automated email from the ASF dual-hosted git repository.
shanedell pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil-vscode.git
The following commit(s) were added to refs/heads/main by this push:
new c31b6f0 Reordered OE server kill & added verbose vars
c31b6f0 is described below
commit c31b6f037a2368a7fd03ec1ab16d5dde4c7be5ba
Author: Robert Strickland <st...@gmail.com>
AuthorDate: Fri Mar 24 11:24:40 2023 -0500
Reordered OE server kill & added verbose vars
- The Omega Edit server kill on DataEditWebviewPanel disposal now
nullifies port
- Variables related to Omega Edit server connection were changed to be
more verbose/specific, in the chance of potentially additional
"serverPorts" that may be needed in the future.
Closes #528
---
package.json | 4 +--
src/omega_edit/client.ts | 43 +++++++++++++++++------------
src/omega_edit/dataEditWebView.ts | 4 +--
src/svelte/src/components/dataEditor.svelte | 6 ++--
4 files changed, 33 insertions(+), 24 deletions(-)
diff --git a/package.json b/package.json
index 259f4bc..474a7e0 100644
--- a/package.json
+++ b/package.json
@@ -599,7 +599,7 @@
},
"default": {}
},
- "dataEditor.serverPort": {
+ "dataEditor.omegaEditPort": {
"type": "integer",
"description": "Editor server default port",
"default": 9000
@@ -607,7 +607,7 @@
"dataEditor.logFile": {
"type": "string",
"description": "Path to log file for data editor",
- "default": "${workspaceFolder}/dataEditor-${serverPort}.log"
+ "default": "${workspaceFolder}/dataEditor-${omegaEditPort}.log"
},
"dataEditor.logLevel": {
"type": "string",
diff --git a/src/omega_edit/client.ts b/src/omega_edit/client.ts
index e639be9..0be80fc 100644
--- a/src/omega_edit/client.ts
+++ b/src/omega_edit/client.ts
@@ -25,8 +25,11 @@ import XDGAppPaths from 'xdg-app-paths'
import { DataEditWebView } from './dataEditWebView'
import { initOmegaEditClient } from './utils'
-const defaultServerPort: number = 9000
-export let serverPort: number = 0
+const DEFAULT_OMEGA_EDIT_PORT: number = 9000
+const OMEGA_EDIT_MIN_PORT: number = 1024
+const OMEGA_EDIT_MAX_PORT: number = 65535
+
+export let omegaEditPort: number = 0
const appDataPath = XDGAppPaths({ name: 'omega_edit' }).data()
@@ -38,17 +41,20 @@ export function getOmegaEditPackageVersion(filePath: fs.PathLike) {
}
function getServerPidFile(port?: number) {
- return path.join(appDataPath, `serv-${serverPort}.pid`)
+ return path.join(appDataPath, `serv-${omegaEditPort}.pid`)
}
async function getOmegaEditPort() {
- if (serverPort === 0) {
- serverPort = vscode.workspace
+ if (omegaEditPort === 0) {
+ omegaEditPort = vscode.workspace
.getConfiguration('dataEditor')
- .get<number>('serverPort', defaultServerPort)
+ .get<number>('oemgaEditServerPort', DEFAULT_OMEGA_EDIT_PORT)
- if (serverPort <= 1024 || serverPort > 65535) {
- serverPort = 0
+ if (
+ omegaEditPort <= OMEGA_EDIT_MIN_PORT ||
+ omegaEditPort > OMEGA_EDIT_MAX_PORT
+ ) {
+ omegaEditPort = 0
throw 'Invalid port'
}
} else throw 'Data Editor currently only supports a single instance.'
@@ -57,9 +63,12 @@ async function getOmegaEditPort() {
function setupLogging() {
const config = vscode.workspace.getConfiguration('dataEditor')
const logFile = config
- .get<string>('logFile', '${workspaceFolder}/dataEditor-${serverPort}.log')
+ .get<string>(
+ 'logFile',
+ '${workspaceFolder}/dataEditor-${omegaEditPort}.log'
+ )
?.replace('${workspaceFolder}', appDataPath)
- .replace('${serverPort}', serverPort.toString())
+ .replace('${omegaEditPort}', omegaEditPort.toString())
const logLevel =
process.env.OMEGA_EDIT_CLIENT_LOG_LEVEL ||
config.get<string>('logLevel', 'info')
@@ -77,17 +86,16 @@ async function serverStop() {
if (await stopServerUsingPID(pid)) {
fs.unlinkSync(pidFile)
vscode.window.setStatusBarMessage(
- `Ωedit server stopped on port ${serverPort} with PID ${pid}`,
+ `Ωedit server stopped on port ${omegaEditPort} with PID ${pid}`,
new Promise((resolve) => {
setTimeout(() => {
resolve(true)
}, 1000)
})
)
- serverPort = 0
} else {
vscode.window.showErrorMessage(
- `Ωedit server on port ${serverPort} with PID ${pid} failed to stop`
+ `Ωedit server on port ${omegaEditPort} with PID ${pid} failed to stop`
)
}
}
@@ -97,7 +105,7 @@ async function serverStart(ctx, version) {
const pidFile = getServerPidFile()
await serverStop()
- const serverStartingText = `Ωedit server v${version} starting on port ${serverPort}`
+ const serverStartingText = `Ωedit server v${version} starting on port ${omegaEditPort}`
const statusBarItem = vscode.window.createStatusBarItem(
vscode.StatusBarAlignment.Left
)
@@ -116,14 +124,14 @@ async function serverStart(ctx, version) {
const serverPid = await startServer(
ctx.asAbsolutePath('node_modules/omega-edit'),
version,
- serverPort
+ omegaEditPort
)
if (serverPid) {
fs.writeFileSync(pidFile, serverPid.toString())
}
clearInterval(animationIntervalId)
- statusBarItem.text = `Ωedit server v${version} started on port ${serverPort} with PID ${serverPid}`
+ statusBarItem.text = `Ωedit server v${version} started on port ${omegaEditPort} with PID ${serverPid}`
setTimeout(() => {
statusBarItem.dispose()
}, 1000)
@@ -145,7 +153,7 @@ export function activate(ctx: vscode.ExtensionContext) {
if (startServ) {
await serverStart(ctx, omegaEditPackageVersion)
}
- await initOmegaEditClient(serverPort)
+ await initOmegaEditClient(omegaEditPort)
return await createOmegaEditWebviewPanel(ctx, startServ, fileToEdit)
}
)
@@ -173,6 +181,7 @@ async function createOmegaEditWebviewPanel(
await serverStop()
}
await dataEditorView.dispose()
+ omegaEditPort = 0
},
undefined,
ctx.subscriptions
diff --git a/src/omega_edit/dataEditWebView.ts b/src/omega_edit/dataEditWebView.ts
index ed57d48..02347cd 100644
--- a/src/omega_edit/dataEditWebView.ts
+++ b/src/omega_edit/dataEditWebView.ts
@@ -22,7 +22,7 @@ import { CountKind } from 'omega-edit/session'
import * as omegaEditViewport from 'omega-edit/viewport'
import * as vscode from 'vscode'
import { EditorMessage, MessageCommand } from '../svelte/src/utilities/message'
-import { serverPort } from './client'
+import { omegaEditPort } from './client'
import { SvelteWebviewInitializer } from './svelteWebviewInitializer'
import {
dataToEncodedStr,
@@ -144,7 +144,7 @@ export class DataEditWebView implements vscode.Disposable {
this.panel.webview.postMessage({
command: MessageCommand.heartBeat,
data: {
- serverPort: serverPort,
+ omegaEditPort: omegaEditPort,
serverVersion: heartbeat.resp,
serverLatency: heartbeat.latency,
},
diff --git a/src/svelte/src/components/dataEditor.svelte b/src/svelte/src/components/dataEditor.svelte
index bc5adf2..b04d693 100644
--- a/src/svelte/src/components/dataEditor.svelte
+++ b/src/svelte/src/components/dataEditor.svelte
@@ -105,7 +105,7 @@ limitations under the License.
let logicalOffsetText: string
let logicalDisplayText: string = ''
let currentScrollEvt: string | null, scrollSyncTimer: NodeJS.Timeout
- let serverPort: number
+ let omegaEditPort: number
let serverVersion: string = 'Connecting...'
let serverLatency: number
let physical_vwRef: HTMLTextAreaElement
@@ -722,7 +722,7 @@ limitations under the License.
break
case MessageCommand.heartBeat:
- serverPort = msg.data.data.serverPort
+ omegaEditPort = msg.data.data.omegaEditPort
serverVersion = msg.data.data.serverVersion
serverLatency = msg.data.data.serverLatency
break
@@ -1408,7 +1408,7 @@ limitations under the License.
</main>
<hr />
<div class="omega-latency flex-container row center">
- <div>Powered by Ωedit v{serverVersion} on port {serverPort}</div>
+ <div>Powered by Ωedit v{serverVersion} on port {omegaEditPort}</div>
<div class="latency-group flex-container row center">
<svg class="latency-indicator">
{#if serverLatency < 20}