@tui-sandbox/library 12.2.4 → 12.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/assets/{index-BiCHXrmL.js → index-DZMdP7t7.js} +25 -25
- package/dist/browser/assets/{index-BibnzQaA.css → index-DeHrVVje.css} +1 -1
- package/dist/browser/index.html +2 -2
- package/dist/src/browser/neovim-client.d.ts +3 -0
- package/dist/src/browser/neovim-client.js +7 -5
- package/dist/src/browser/neovim-client.js.map +1 -1
- package/dist/src/client/neovim/neovim-terminal-client.d.ts +9 -2
- package/dist/src/client/neovim/neovim-terminal-client.js +35 -35
- package/dist/src/client/neovim/neovim-terminal-client.js.map +1 -1
- package/dist/src/client/startTerminal.d.ts +2 -0
- package/dist/src/client/startTerminal.js +3 -0
- package/dist/src/client/startTerminal.js.map +1 -1
- package/dist/src/client/terminal/terminal-config.d.ts +10 -0
- package/dist/src/client/terminal/terminal-config.js +22 -0
- package/dist/src/client/terminal/terminal-config.js.map +1 -1
- package/dist/src/client/terminal/terminal-terminal-client.d.ts +7 -4
- package/dist/src/client/terminal/terminal-terminal-client.js +26 -26
- package/dist/src/client/terminal/terminal-terminal-client.js.map +1 -1
- package/dist/src/server/applications/neovim/api.js +1 -0
- package/dist/src/server/applications/neovim/api.js.map +1 -1
- package/dist/src/server/cypress-support/contents.js +17 -6
- package/dist/src/server/cypress-support/contents.js.map +1 -1
- package/dist/src/server/dirtree/index.test.js +2 -0
- package/dist/src/server/dirtree/index.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000)0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000)6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000)6px 0 6px -6px inset}@font-face{font-family:DejaVuSansMNerdFontMono;src:url(/assets/DejaVuSansMNerdFontMono-Regular-CRJgiq0O.ttf);font-weight:400;font-style:normal}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:#000}#app{width:100vw;height:100vh;display:flex}*{font-family:DejaVuSansMNerdFontMono,monospace}.xterm .xterm-viewport{overflow-y:hidden}body{margin:0;overflow:hidden}
|
|
1
|
+
.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}@font-face{font-family:DejaVuSansMNerdFontMono;src:url(/assets/DejaVuSansMNerdFontMono-Regular-CRJgiq0O.ttf);font-weight:400;font-style:normal}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:#000}#app{width:100vw;height:100vh;display:flex}*{font-family:DejaVuSansMNerdFontMono,monospace}.xterm .xterm-viewport{overflow-y:hidden}body{margin:0;overflow:hidden}
|
package/dist/browser/index.html
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<title>tui-sandbox integration tests</title>
|
|
6
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
6
|
+
<script type="module" crossorigin src="/assets/index-DZMdP7t7.js"></script>
|
|
7
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DeHrVVje.css">
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
10
10
|
<div id="app"></div>
|
|
@@ -7,6 +7,7 @@ import type { ExCommandClientInput, LuaCodeClientInput, PollLuaCodeClientInput,
|
|
|
7
7
|
import type { StartTerminalGenericArguments } from "../server/applications/terminal/TerminalTestApplication.js";
|
|
8
8
|
import type { BlockingCommandClientInput } from "../server/blockingCommandInputSchema.js";
|
|
9
9
|
import type { BlockingShellCommandOutput, RunExCommandOutput, RunLuaCodeOutput, StartNeovimGenericArguments, TestDirectory } from "../server/types.js";
|
|
10
|
+
import { Lazy } from "../server/utilities/Lazy.js";
|
|
10
11
|
export type GenericNeovimBrowserApi = {
|
|
11
12
|
runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
|
|
12
13
|
runLuaCode(input: LuaCodeClientInput): Promise<RunLuaCodeOutput>;
|
|
@@ -15,6 +16,7 @@ export type GenericNeovimBrowserApi = {
|
|
|
15
16
|
runExCommand(input: ExCommandClientInput): Promise<RunExCommandOutput>;
|
|
16
17
|
dir: TestDirectory;
|
|
17
18
|
clipboard: InMemoryClipboard;
|
|
19
|
+
title: Lazy<string>;
|
|
18
20
|
};
|
|
19
21
|
declare global {
|
|
20
22
|
interface Window {
|
|
@@ -26,6 +28,7 @@ export type GenericTerminalBrowserApi = {
|
|
|
26
28
|
dir: TestDirectory;
|
|
27
29
|
runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
|
|
28
30
|
clipboard: InMemoryClipboard;
|
|
31
|
+
title: Lazy<string>;
|
|
29
32
|
};
|
|
30
33
|
export type BrowserTerminalSettings = {
|
|
31
34
|
configureTerminal?: (term: {
|
|
@@ -8,11 +8,11 @@ if (!app) {
|
|
|
8
8
|
throw new Error("No app element found");
|
|
9
9
|
}
|
|
10
10
|
// limitation: right now only one client can be used in the same test
|
|
11
|
-
const neovimClient = new Lazy(() =>
|
|
12
|
-
const terminalClient = new Lazy(() =>
|
|
11
|
+
const neovimClient = new Lazy(() => NeovimTerminalClient.create(app));
|
|
12
|
+
const terminalClient = new Lazy(() => TerminalTerminalClient.create(app));
|
|
13
13
|
/** Entrypoint for the test runner (cypress) */
|
|
14
14
|
window.startNeovim = async function (startArgs) {
|
|
15
|
-
const neovim = neovimClient.get();
|
|
15
|
+
const neovim = await neovimClient.get();
|
|
16
16
|
const testDirectory = await neovim.startNeovim({
|
|
17
17
|
additionalEnvironmentVariables: startArgs?.additionalEnvironmentVariables,
|
|
18
18
|
filename: startArgs?.filename ?? "initial-file.txt",
|
|
@@ -38,19 +38,21 @@ window.startNeovim = async function (startArgs) {
|
|
|
38
38
|
},
|
|
39
39
|
dir: testDirectory,
|
|
40
40
|
clipboard: neovim.clipboard,
|
|
41
|
+
title: neovim.terminalApi.title,
|
|
41
42
|
};
|
|
42
43
|
return neovimBrowserApi;
|
|
43
44
|
};
|
|
44
45
|
/** Entrypoint for the test runner (cypress) */
|
|
45
46
|
window.startTerminalApplication = async function (args) {
|
|
46
|
-
const terminal = terminalClient.get();
|
|
47
|
+
const terminal = await terminalClient.get();
|
|
47
48
|
const testDirectory = await terminal.startTerminalApplication(args);
|
|
48
49
|
const terminalBrowserApi = {
|
|
49
50
|
dir: testDirectory,
|
|
50
51
|
runBlockingShellCommand(input) {
|
|
51
52
|
return terminal.runBlockingShellCommand(input);
|
|
52
53
|
},
|
|
53
|
-
clipboard: terminal.clipboard,
|
|
54
|
+
clipboard: terminal.terminalApi.clipboard,
|
|
55
|
+
title: terminal.terminalApi.title,
|
|
54
56
|
};
|
|
55
57
|
return terminalBrowserApi;
|
|
56
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neovim-client.js","sourceRoot":"","sources":["../../../src/browser/neovim-client.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AAEjF,OAAO,qBAAqB,CAAA;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAiBvF,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAElD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAc,MAAM,CAAC,CAAA;AACvD,IAAI,CAAC,GAAG,EAAE,CAAC;IACT,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;AACzC,CAAC;AAED,qEAAqE;AACrE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"neovim-client.js","sourceRoot":"","sources":["../../../src/browser/neovim-client.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AAEjF,OAAO,qBAAqB,CAAA;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAiBvF,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAElD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAc,MAAM,CAAC,CAAA;AACvD,IAAI,CAAC,GAAG,EAAE,CAAC;IACT,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;AACzC,CAAC;AAED,qEAAqE;AACrE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AACrE,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAazE,+CAA+C;AAC/C,MAAM,CAAC,WAAW,GAAG,KAAK,WAAW,SAAuC;IAC1E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,CAAA;IACvC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QAC7C,8BAA8B,EAAE,SAAS,EAAE,8BAA8B;QACzE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,kBAAkB;QACnD,0BAA0B,EAAE,SAAS,EAAE,0BAA0B,IAAI,EAAE;QACvE,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS,EAAE,YAAY;KACS,CAAC,CAAA;IAEjD,MAAM,gBAAgB,GAA4B;QAChD,uBAAuB,CAAC,KAAiC;YACvD,OAAO,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC;QACD,UAAU,CAAC,KAAK;YACd,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,MAAM,CAAC,KAAK;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;QACD,cAAc,CAAC,KAAK;YAClB,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;QACD,YAAY,CAAC,KAAK;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC;QACD,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;KAChC,CAAA;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AA0CD,+CAA+C;AAC/C,MAAM,CAAC,wBAAwB,GAAG,KAAK,WACrC,IAAmC;IAEnC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,CAAA;IAC3C,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAEnE,MAAM,kBAAkB,GAA8B;QACpD,GAAG,EAAE,aAAa;QAClB,uBAAuB,CAAC,KAAK;YAC3B,OAAO,QAAQ,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAChD,CAAC;QACD,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;QACzC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK;KAClC,CAAA;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAA"}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
+
import { createTRPCClient } from "@trpc/client";
|
|
2
|
+
import type { Terminal } from "@xterm/xterm";
|
|
1
3
|
import type { ExCommandClientInput, LuaCodeClientInput, PollLuaCodeClientInput, RunLuaFileClientInput } from "../..//server/applications/neovim/neovimRouter.js";
|
|
4
|
+
import type { AppRouter } from "../..//server/server.js";
|
|
2
5
|
import type { BlockingShellCommandOutput, RunExCommandOutput, RunLuaCodeOutput, StartNeovimGenericArguments, TestDirectory } from "../..//server/types.js";
|
|
3
6
|
import type { BlockingCommandClientInput } from "../../server/blockingCommandInputSchema.js";
|
|
7
|
+
import type { TabId } from "../../server/utilities/tabId.js";
|
|
8
|
+
import { BatchedAsyncQueue, type TerminalInputEvent } from "../BatchedAsyncQueue.js";
|
|
4
9
|
import type { InMemoryClipboard } from "../clipboard.js";
|
|
10
|
+
import { type TuiTerminalApi } from "../startTerminal.js";
|
|
5
11
|
/** Manages the terminal state in the browser as well as the (browser's)
|
|
6
12
|
* connection to the server side terminal application api. */
|
|
7
13
|
export declare class NeovimTerminalClient {
|
|
8
|
-
private readonly ready;
|
|
9
14
|
private readonly tabId;
|
|
10
15
|
private readonly terminal;
|
|
11
16
|
private readonly trpc;
|
|
12
17
|
readonly clipboard: InMemoryClipboard;
|
|
13
18
|
private readonly inputQueue;
|
|
14
|
-
|
|
19
|
+
readonly terminalApi: TuiTerminalApi;
|
|
20
|
+
constructor(tabId: TabId, terminal: Terminal, trpc: ReturnType<typeof createTRPCClient<AppRouter>>, clipboard: InMemoryClipboard, inputQueue: BatchedAsyncQueue<TerminalInputEvent>, terminalApi: TuiTerminalApi);
|
|
21
|
+
static create(app: HTMLElement): Promise<NeovimTerminalClient>;
|
|
15
22
|
startNeovim(args: StartNeovimGenericArguments): Promise<TestDirectory>;
|
|
16
23
|
runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
|
|
17
24
|
runLuaCode(input: LuaCodeClientInput): Promise<RunLuaCodeOutput>;
|
|
@@ -1,64 +1,69 @@
|
|
|
1
1
|
import { createTRPCClient, httpBatchLink, httpSubscriptionLink, splitLink } from "@trpc/client";
|
|
2
|
+
import { Lazy } from "../../server/utilities/Lazy.js";
|
|
2
3
|
import { BatchedAsyncQueue } from "../BatchedAsyncQueue.js";
|
|
3
4
|
import { InMemoryClipboardProvider } from "../clipboard.js";
|
|
4
5
|
import { getTabId, startTerminal } from "../startTerminal.js";
|
|
6
|
+
import { supportDSR } from "../terminal/terminal-config.js";
|
|
5
7
|
/** Manages the terminal state in the browser as well as the (browser's)
|
|
6
8
|
* connection to the server side terminal application api. */
|
|
7
9
|
export class NeovimTerminalClient {
|
|
8
|
-
ready;
|
|
9
10
|
tabId;
|
|
10
11
|
terminal;
|
|
11
12
|
trpc;
|
|
12
13
|
clipboard;
|
|
13
14
|
inputQueue;
|
|
14
|
-
|
|
15
|
+
terminalApi;
|
|
16
|
+
constructor(tabId, terminal, trpc, clipboard, inputQueue, terminalApi) {
|
|
17
|
+
this.tabId = tabId;
|
|
18
|
+
this.terminal = terminal;
|
|
19
|
+
this.trpc = trpc;
|
|
20
|
+
this.clipboard = clipboard;
|
|
21
|
+
this.inputQueue = inputQueue;
|
|
22
|
+
this.terminalApi = terminalApi;
|
|
23
|
+
}
|
|
24
|
+
static async create(app) {
|
|
15
25
|
const trpc = createTRPCClient({
|
|
16
26
|
links: [
|
|
17
27
|
splitLink({
|
|
18
28
|
condition: operation => operation.type === "subscription",
|
|
19
|
-
true: httpSubscriptionLink({
|
|
20
|
-
|
|
21
|
-
}),
|
|
22
|
-
false: httpBatchLink({
|
|
23
|
-
url: "/trpc",
|
|
24
|
-
}),
|
|
29
|
+
true: httpSubscriptionLink({ url: "/trpc" }),
|
|
30
|
+
false: httpBatchLink({ url: "/trpc" }),
|
|
25
31
|
}),
|
|
26
32
|
],
|
|
27
33
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
const keys = events.join("");
|
|
38
|
-
await trpc.neovim.sendStdin.mutate({ tabId: this.tabId, data: keys });
|
|
39
|
-
}, controller.signal);
|
|
40
|
-
}
|
|
34
|
+
const tabId = getTabId();
|
|
35
|
+
const controller = new AbortController();
|
|
36
|
+
window.addEventListener("pagehide", () => {
|
|
37
|
+
controller.abort();
|
|
38
|
+
});
|
|
39
|
+
const inputQueue = new BatchedAsyncQueue(async (events) => {
|
|
40
|
+
const keys = events.join("");
|
|
41
|
+
await trpc.neovim.sendStdin.mutate({ tabId, data: keys });
|
|
42
|
+
}, controller.signal);
|
|
41
43
|
const clipboard = new InMemoryClipboardProvider();
|
|
42
|
-
const
|
|
44
|
+
const terminalApi = {
|
|
43
45
|
onMouseEvent: (data) => {
|
|
44
|
-
|
|
46
|
+
inputQueue.enqueue(data);
|
|
45
47
|
},
|
|
46
48
|
onKeyPress: (event) => {
|
|
47
|
-
|
|
49
|
+
inputQueue.enqueue(event.key);
|
|
48
50
|
},
|
|
49
51
|
clipboard,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
title: new Lazy(() => "title not set yet"),
|
|
53
|
+
};
|
|
54
|
+
const terminal = startTerminal(app, terminalApi);
|
|
55
|
+
// Neovim sends a DSR query during startup to detect terminal capabilities.
|
|
56
|
+
// Without a response, it waits 100ms and warns about slower startup.
|
|
57
|
+
supportDSR(terminal, terminalApi);
|
|
53
58
|
// start listening to Neovim stdout - this will take some (short) amount of
|
|
54
59
|
// time to complete
|
|
55
|
-
|
|
60
|
+
await new Promise(resolve => {
|
|
56
61
|
console.log("Subscribing to stdout");
|
|
57
62
|
trpc.neovim.onStdout.subscribe({ client: tabId }, {
|
|
58
63
|
onStarted() {
|
|
59
64
|
resolve();
|
|
60
65
|
},
|
|
61
|
-
onData(data) {
|
|
66
|
+
onData: (data) => {
|
|
62
67
|
terminal.write(data);
|
|
63
68
|
},
|
|
64
69
|
onError(err) {
|
|
@@ -66,9 +71,9 @@ export class NeovimTerminalClient {
|
|
|
66
71
|
},
|
|
67
72
|
});
|
|
68
73
|
});
|
|
74
|
+
return new NeovimTerminalClient(tabId, terminal, trpc, clipboard, inputQueue, terminalApi);
|
|
69
75
|
}
|
|
70
76
|
async startNeovim(args) {
|
|
71
|
-
await this.ready;
|
|
72
77
|
const testDirectory = await this.trpc.neovim.start.mutate({
|
|
73
78
|
startNeovimArguments: {
|
|
74
79
|
filename: args.filename,
|
|
@@ -86,15 +91,12 @@ export class NeovimTerminalClient {
|
|
|
86
91
|
return testDirectory;
|
|
87
92
|
}
|
|
88
93
|
async runBlockingShellCommand(input) {
|
|
89
|
-
await this.ready;
|
|
90
94
|
return this.trpc.neovim.runBlockingShellCommand.mutate({ ...input, tabId: this.tabId });
|
|
91
95
|
}
|
|
92
96
|
async runLuaCode(input) {
|
|
93
|
-
await this.ready;
|
|
94
97
|
return this.trpc.neovim.runLuaCode.mutate({ ...input, tabId: this.tabId });
|
|
95
98
|
}
|
|
96
99
|
async doFile(input) {
|
|
97
|
-
await this.ready;
|
|
98
100
|
return this.trpc.neovim.runExCommand.mutate({
|
|
99
101
|
...input,
|
|
100
102
|
tabId: this.tabId,
|
|
@@ -102,11 +104,9 @@ export class NeovimTerminalClient {
|
|
|
102
104
|
});
|
|
103
105
|
}
|
|
104
106
|
async waitForLuaCode(input) {
|
|
105
|
-
await this.ready;
|
|
106
107
|
return this.trpc.neovim.waitForLuaCode.mutate({ ...input, tabId: this.tabId });
|
|
107
108
|
}
|
|
108
109
|
async runExCommand(input) {
|
|
109
|
-
await this.ready;
|
|
110
110
|
return this.trpc.neovim.runExCommand.mutate({ ...input, tabId: this.tabId });
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neovim-terminal-client.js","sourceRoot":"","sources":["../../../../src/client/neovim/neovim-terminal-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAiB/F,OAAO,EAAE,iBAAiB,EAA2B,MAAM,yBAAyB,CAAA;AAEpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"neovim-terminal-client.js","sourceRoot":"","sources":["../../../../src/client/neovim/neovim-terminal-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Terminal } from "@xterm/xterm";
|
|
2
|
+
import type { Lazy } from "../server/index.js";
|
|
2
3
|
import type { TabId } from "../server/utilities/tabId.ts";
|
|
3
4
|
import type { InMemoryClipboardProvider } from "./clipboard.js";
|
|
4
5
|
export type TuiTerminalApi = {
|
|
@@ -8,6 +9,7 @@ export type TuiTerminalApi = {
|
|
|
8
9
|
domEvent: KeyboardEvent;
|
|
9
10
|
}) => void;
|
|
10
11
|
clipboard: InMemoryClipboardProvider;
|
|
12
|
+
title: Lazy<string>;
|
|
11
13
|
};
|
|
12
14
|
export declare function startTerminal(app: HTMLElement, api: TuiTerminalApi): Terminal;
|
|
13
15
|
/** An identifier unique to a browser tab, so that each tab can have its own
|
|
@@ -12,6 +12,9 @@ export function startTerminal(app, api) {
|
|
|
12
12
|
convertEol: true,
|
|
13
13
|
fontSize: 13,
|
|
14
14
|
});
|
|
15
|
+
terminal.onTitleChange(title => {
|
|
16
|
+
api.title.set(title);
|
|
17
|
+
});
|
|
15
18
|
const colors = flavors.macchiato.colors;
|
|
16
19
|
terminal.options.theme = {
|
|
17
20
|
background: colors.base.hex,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startTerminal.js","sourceRoot":"","sources":["../../../src/client/startTerminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"startTerminal.js","sourceRoot":"","sources":["../../../src/client/startTerminal.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,3 +11,13 @@ import type { TuiTerminalApi } from "../startTerminal.js";
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function supportDA1(terminal: Terminal, api: TuiTerminalApi): void;
|
|
13
13
|
export type FakeDA1Response = "[?1;2c";
|
|
14
|
+
/** DSR—Device Status Report
|
|
15
|
+
* The terminal application sends ESC[5n to ask "are you OK?"
|
|
16
|
+
* The terminal responds with ESC[0n meaning "terminal ready, no malfunction."
|
|
17
|
+
* https://vt100.net/docs/vt510-rm/DSR.html
|
|
18
|
+
*
|
|
19
|
+
* Neovim uses this during startup to detect terminal capabilities faster.
|
|
20
|
+
* Without a DSR response, Neovim waits 100ms and logs a warning about slower
|
|
21
|
+
* startup.
|
|
22
|
+
*/
|
|
23
|
+
export declare function supportDSR(terminal: Terminal, api: TuiTerminalApi): void;
|
|
@@ -18,4 +18,26 @@ export function supportDA1(terminal, api) {
|
|
|
18
18
|
return true; // prevent default handling
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
+
/** DSR—Device Status Report
|
|
22
|
+
* The terminal application sends ESC[5n to ask "are you OK?"
|
|
23
|
+
* The terminal responds with ESC[0n meaning "terminal ready, no malfunction."
|
|
24
|
+
* https://vt100.net/docs/vt510-rm/DSR.html
|
|
25
|
+
*
|
|
26
|
+
* Neovim uses this during startup to detect terminal capabilities faster.
|
|
27
|
+
* Without a DSR response, Neovim waits 100ms and logs a warning about slower
|
|
28
|
+
* startup.
|
|
29
|
+
*/
|
|
30
|
+
export function supportDSR(terminal, api) {
|
|
31
|
+
terminal.parser.registerCsiHandler({ final: "n" }, params => {
|
|
32
|
+
if (params[0] === 5) {
|
|
33
|
+
// Respond with ESC[0n (terminal OK)
|
|
34
|
+
api.onKeyPress({
|
|
35
|
+
key: "\x1b[0n",
|
|
36
|
+
domEvent: new KeyboardEvent("keydown", { key: "Escape" }),
|
|
37
|
+
});
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
return false; // let other 'n' handlers run
|
|
41
|
+
});
|
|
42
|
+
}
|
|
21
43
|
//# sourceMappingURL=terminal-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-config.js","sourceRoot":"","sources":["../../../../src/client/terminal/terminal-config.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,GAAmB;IAChE,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;QACtD,4CAA4C;QAC5C,GAAG,CAAC,UAAU,CAAC;YACb,GAAG,EAAE,MAAM,GAAI,QAAmC;YAClD,QAAQ,EAAE,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;SAC1D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA,CAAC,2BAA2B;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"terminal-config.js","sourceRoot":"","sources":["../../../../src/client/terminal/terminal-config.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,GAAmB;IAChE,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;QACtD,4CAA4C;QAC5C,GAAG,CAAC,UAAU,CAAC;YACb,GAAG,EAAE,MAAM,GAAI,QAAmC;YAClD,QAAQ,EAAE,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;SAC1D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA,CAAC,2BAA2B;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC;AAID;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,GAAmB;IAChE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE;QAC1D,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,oCAAoC;YACpC,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,SAAS;gBACd,QAAQ,EAAE,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;aAC1D,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAA,CAAC,6BAA6B;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
+
import { createTRPCClient } from "@trpc/client";
|
|
2
|
+
import type { Terminal } from "@xterm/xterm";
|
|
1
3
|
import type { StartTerminalBrowserArguments } from "../../browser/neovim-client.js";
|
|
2
4
|
import type { BlockingCommandClientInput } from "../../server/blockingCommandInputSchema.js";
|
|
5
|
+
import type { AppRouter } from "../../server/server.js";
|
|
3
6
|
import type { BlockingShellCommandOutput, ServerTestDirectory } from "../../server/types.js";
|
|
4
|
-
import type {
|
|
7
|
+
import type { TabId } from "../../server/utilities/tabId.js";
|
|
8
|
+
import { BatchedAsyncQueue, type TerminalInputEvent } from "../BatchedAsyncQueue.js";
|
|
5
9
|
import type { TuiTerminalApi } from "../startTerminal.js";
|
|
6
10
|
/** Manages the terminal state in the browser as well as the (browser's)
|
|
7
11
|
* connection to the server side terminal application api. */
|
|
8
12
|
export declare class TerminalTerminalClient {
|
|
9
|
-
private readonly ready;
|
|
10
13
|
private readonly tabId;
|
|
11
14
|
private readonly terminal;
|
|
12
15
|
private readonly trpc;
|
|
13
16
|
private readonly inputQueue;
|
|
14
|
-
readonly clipboard: InMemoryClipboard;
|
|
15
17
|
readonly terminalApi: TuiTerminalApi;
|
|
16
|
-
constructor(
|
|
18
|
+
constructor(tabId: TabId, terminal: Terminal, trpc: ReturnType<typeof createTRPCClient<AppRouter>>, inputQueue: BatchedAsyncQueue<TerminalInputEvent>, terminalApi: TuiTerminalApi);
|
|
19
|
+
static create(app: HTMLElement): Promise<TerminalTerminalClient>;
|
|
17
20
|
startTerminalApplication(args: StartTerminalBrowserArguments): Promise<ServerTestDirectory>;
|
|
18
21
|
runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
|
|
19
22
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createTRPCClient, httpBatchLink, httpSubscriptionLink, splitLink } from "@trpc/client";
|
|
2
|
+
import { Lazy } from "../../server/utilities/Lazy.js";
|
|
2
3
|
import { BatchedAsyncQueue } from "../BatchedAsyncQueue.js";
|
|
3
4
|
import { InMemoryClipboardProvider } from "../clipboard.js";
|
|
4
5
|
import { getTabId, startTerminal } from "../startTerminal.js";
|
|
@@ -6,14 +7,19 @@ import { supportDA1 } from "./terminal-config.js";
|
|
|
6
7
|
/** Manages the terminal state in the browser as well as the (browser's)
|
|
7
8
|
* connection to the server side terminal application api. */
|
|
8
9
|
export class TerminalTerminalClient {
|
|
9
|
-
ready;
|
|
10
10
|
tabId;
|
|
11
11
|
terminal;
|
|
12
12
|
trpc;
|
|
13
13
|
inputQueue;
|
|
14
|
-
clipboard;
|
|
15
14
|
terminalApi;
|
|
16
|
-
constructor(
|
|
15
|
+
constructor(tabId, terminal, trpc, inputQueue, terminalApi) {
|
|
16
|
+
this.tabId = tabId;
|
|
17
|
+
this.terminal = terminal;
|
|
18
|
+
this.trpc = trpc;
|
|
19
|
+
this.inputQueue = inputQueue;
|
|
20
|
+
this.terminalApi = terminalApi;
|
|
21
|
+
}
|
|
22
|
+
static async create(app) {
|
|
17
23
|
const trpc = createTRPCClient({
|
|
18
24
|
links: [
|
|
19
25
|
splitLink({
|
|
@@ -27,41 +33,36 @@ export class TerminalTerminalClient {
|
|
|
27
33
|
}),
|
|
28
34
|
],
|
|
29
35
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
const keys = events.join("");
|
|
40
|
-
await trpc.terminal.sendStdin.mutate({ tabId: this.tabId, data: keys });
|
|
41
|
-
}, controller.signal);
|
|
42
|
-
}
|
|
36
|
+
const tabId = getTabId();
|
|
37
|
+
const controller = new AbortController();
|
|
38
|
+
window.addEventListener("pagehide", () => {
|
|
39
|
+
controller.abort();
|
|
40
|
+
});
|
|
41
|
+
const inputQueue = new BatchedAsyncQueue(async (events) => {
|
|
42
|
+
const keys = events.join("");
|
|
43
|
+
await trpc.terminal.sendStdin.mutate({ tabId, data: keys });
|
|
44
|
+
}, controller.signal);
|
|
43
45
|
const clipboard = new InMemoryClipboardProvider();
|
|
44
|
-
|
|
46
|
+
const terminalApi = {
|
|
45
47
|
onMouseEvent: (data) => {
|
|
46
|
-
|
|
48
|
+
inputQueue.enqueue(data);
|
|
47
49
|
},
|
|
48
50
|
onKeyPress: (event) => {
|
|
49
|
-
|
|
51
|
+
inputQueue.enqueue(event.key);
|
|
50
52
|
},
|
|
51
53
|
clipboard,
|
|
54
|
+
title: new Lazy(() => "title not set yet"),
|
|
52
55
|
};
|
|
53
|
-
|
|
54
|
-
const terminal = startTerminal(app, this.terminalApi);
|
|
55
|
-
this.terminal = terminal;
|
|
56
|
+
const terminal = startTerminal(app, terminalApi);
|
|
56
57
|
// start listening to stdout - this will take some (short) amount of time
|
|
57
58
|
// to complete
|
|
58
|
-
|
|
59
|
+
await new Promise(resolve => {
|
|
59
60
|
console.log("Subscribing to stdout");
|
|
60
61
|
trpc.terminal.onStdout.subscribe({ client: tabId }, {
|
|
61
62
|
onStarted() {
|
|
62
63
|
resolve();
|
|
63
64
|
},
|
|
64
|
-
onData(data) {
|
|
65
|
+
onData: (data) => {
|
|
65
66
|
terminal.write(data);
|
|
66
67
|
},
|
|
67
68
|
onError(err) {
|
|
@@ -69,9 +70,9 @@ export class TerminalTerminalClient {
|
|
|
69
70
|
},
|
|
70
71
|
});
|
|
71
72
|
});
|
|
73
|
+
return new TerminalTerminalClient(tabId, terminal, trpc, inputQueue, terminalApi);
|
|
72
74
|
}
|
|
73
75
|
async startTerminalApplication(args) {
|
|
74
|
-
await this.ready;
|
|
75
76
|
args.browserSettings.configureTerminal?.({
|
|
76
77
|
terminal: this.terminal,
|
|
77
78
|
api: this.terminalApi,
|
|
@@ -96,7 +97,6 @@ export class TerminalTerminalClient {
|
|
|
96
97
|
return testDirectory;
|
|
97
98
|
}
|
|
98
99
|
async runBlockingShellCommand(input) {
|
|
99
|
-
await this.ready;
|
|
100
100
|
return this.trpc.terminal.runBlockingShellCommand.mutate({ ...input, tabId: this.tabId });
|
|
101
101
|
}
|
|
102
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-terminal-client.js","sourceRoot":"","sources":["../../../../src/client/terminal/terminal-terminal-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAM/F,OAAO,EAAE,iBAAiB,EAA2B,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"terminal-terminal-client.js","sourceRoot":"","sources":["../../../../src/client/terminal/terminal-terminal-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -187,6 +187,7 @@ export async function waitForLuaCode(options, signal) {
|
|
|
187
187
|
};
|
|
188
188
|
const maxIterations = 100;
|
|
189
189
|
for (let iteration = 1; iteration <= maxIterations; iteration++) {
|
|
190
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- modified by AbortSignal
|
|
190
191
|
if (!running) {
|
|
191
192
|
reportFailure();
|
|
192
193
|
throw new Error(`Polling Lua code: '${options.luaAssertion}' was aborted after ${iteration} iterations`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/api.ts"],"names":[],"mappings":"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"}
|