@phenx-inc/ctlsurf 0.1.20 → 0.1.21
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/out/renderer/assets/{cssMode-Cxe23-tB.js → cssMode-C6bY9C4O.js} +3 -3
- package/out/renderer/assets/{freemarker2-Be0nj7Oa.js → freemarker2-CkAJiX1K.js} +1 -1
- package/out/renderer/assets/{handlebars-C0It7_Nu.js → handlebars-DnLXVUXp.js} +1 -1
- package/out/renderer/assets/{html-BW6LB-7J.js → html-Ds5-qvDh.js} +1 -1
- package/out/renderer/assets/{htmlMode-D_V-1VlE.js → htmlMode-DYFYy4MK.js} +3 -3
- package/out/renderer/assets/{index-D568SpEt.js → index-DwSsD_Xm.js} +41 -24
- package/out/renderer/assets/{javascript-D_LoeNc7.js → javascript-CiHhG2a9.js} +2 -2
- package/out/renderer/assets/{jsonMode-K3WSinSE.js → jsonMode-DdDRlbXP.js} +3 -3
- package/out/renderer/assets/{liquid-BqfOd6m8.js → liquid-BP5mb-uD.js} +1 -1
- package/out/renderer/assets/{lspLanguageFeatures-Bjf28WU6.js → lspLanguageFeatures-Dljhj5Gh.js} +1 -1
- package/out/renderer/assets/{mdx-BoESjI38.js → mdx-D4u3N7dt.js} +1 -1
- package/out/renderer/assets/{python-DlafOOgB.js → python-BQDHXVwp.js} +1 -1
- package/out/renderer/assets/{razor-CB6E9DBD.js → razor-BfXW9cDc.js} +1 -1
- package/out/renderer/assets/{tsMode-DYu1z_nn.js → tsMode-BGTjG8Ow.js} +1 -1
- package/out/renderer/assets/{typescript-CDjkh0d5.js → typescript-422MU_YO.js} +1 -1
- package/out/renderer/assets/{xml-C-XlilKZ.js → xml-B6EKhHiy.js} +1 -1
- package/out/renderer/assets/{yaml-BTrtxLEo.js → yaml-LkO_eGYb.js} +1 -1
- package/out/renderer/index.html +1 -1
- package/package.json +1 -1
- package/src/renderer/components/TerminalPanel.tsx +27 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createWebWorker, l as languages } from "./index-
|
|
2
|
-
import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-
|
|
3
|
-
import { h, i, j, t, k } from "./lspLanguageFeatures-
|
|
1
|
+
import { c as createWebWorker, l as languages } from "./index-DwSsD_Xm.js";
|
|
2
|
+
import { C as CompletionAdapter, H as HoverAdapter, D as DocumentHighlightAdapter, a as DefinitionAdapter, R as ReferenceAdapter, b as DocumentSymbolAdapter, c as RenameAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, e as DiagnosticsAdapter, S as SelectionRangeAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider } from "./lspLanguageFeatures-Dljhj5Gh.js";
|
|
3
|
+
import { h, i, j, t, k } from "./lspLanguageFeatures-Dljhj5Gh.js";
|
|
4
4
|
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
|
|
5
5
|
class WorkerManager {
|
|
6
6
|
constructor(defaults) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createWebWorker, l as languages } from "./index-
|
|
2
|
-
import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-
|
|
3
|
-
import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-
|
|
1
|
+
import { c as createWebWorker, l as languages } from "./index-DwSsD_Xm.js";
|
|
2
|
+
import { H as HoverAdapter, D as DocumentHighlightAdapter, h as DocumentLinkAdapter, F as FoldingRangeAdapter, b as DocumentSymbolAdapter, S as SelectionRangeAdapter, c as RenameAdapter, f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter } from "./lspLanguageFeatures-Dljhj5Gh.js";
|
|
3
|
+
import { a, e, d, R, i, j, t, k } from "./lspLanguageFeatures-Dljhj5Gh.js";
|
|
4
4
|
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
|
|
5
5
|
class WorkerManager {
|
|
6
6
|
constructor(defaults) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-C6bY9C4O.js","./lspLanguageFeatures-Dljhj5Gh.js","./htmlMode-DYFYy4MK.js","./jsonMode-DdDRlbXP.js","./javascript-CiHhG2a9.js","./typescript-422MU_YO.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
function getDefaultExportFromCjs(x) {
|
|
3
3
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
4
4
|
}
|
|
@@ -18724,6 +18724,16 @@ var addonWebLinksExports = requireAddonWebLinks();
|
|
|
18724
18724
|
let _terminal = null;
|
|
18725
18725
|
let _fitAddon = null;
|
|
18726
18726
|
let _currentAgentId = null;
|
|
18727
|
+
let _pinnedToBottom = true;
|
|
18728
|
+
function isAtBottom(terminal) {
|
|
18729
|
+
const buf = terminal.buffer.active;
|
|
18730
|
+
return buf.viewportY >= buf.baseY;
|
|
18731
|
+
}
|
|
18732
|
+
function scrollIfPinned(terminal) {
|
|
18733
|
+
if (_pinnedToBottom) {
|
|
18734
|
+
terminal.scrollToBottom();
|
|
18735
|
+
}
|
|
18736
|
+
}
|
|
18727
18737
|
function getOrCreateTerminal(onExit) {
|
|
18728
18738
|
if (_terminal && _fitAddon) {
|
|
18729
18739
|
return { terminal: _terminal, fitAddon: _fitAddon };
|
|
@@ -18761,11 +18771,17 @@ function getOrCreateTerminal(onExit) {
|
|
|
18761
18771
|
const fitAddon = new addonFitExports.FitAddon();
|
|
18762
18772
|
terminal.loadAddon(fitAddon);
|
|
18763
18773
|
terminal.loadAddon(new addonWebLinksExports.WebLinksAddon());
|
|
18774
|
+
terminal.onScroll(() => {
|
|
18775
|
+
_pinnedToBottom = isAtBottom(terminal);
|
|
18776
|
+
});
|
|
18764
18777
|
terminal.onData((data) => {
|
|
18778
|
+
_pinnedToBottom = true;
|
|
18779
|
+
terminal.scrollToBottom();
|
|
18765
18780
|
window.worker.writePty(data);
|
|
18766
18781
|
});
|
|
18767
18782
|
window.worker.onPtyData((data) => {
|
|
18768
18783
|
terminal.write(data);
|
|
18784
|
+
scrollIfPinned(terminal);
|
|
18769
18785
|
});
|
|
18770
18786
|
window.worker.onPtyExit((code) => {
|
|
18771
18787
|
terminal.writeln(`\r
|
|
@@ -18788,14 +18804,14 @@ function TerminalPanel({ agent, onSpawn, onExit }) {
|
|
|
18788
18804
|
terminal.open(containerRef.current);
|
|
18789
18805
|
}
|
|
18790
18806
|
fitAddon.fit();
|
|
18791
|
-
terminal
|
|
18807
|
+
scrollIfPinned(terminal);
|
|
18792
18808
|
let resizeTimeout;
|
|
18793
18809
|
const handleResize = () => {
|
|
18794
18810
|
clearTimeout(resizeTimeout);
|
|
18795
18811
|
resizeTimeout = setTimeout(() => {
|
|
18796
18812
|
if (_fitAddon && _terminal) {
|
|
18797
18813
|
_fitAddon.fit();
|
|
18798
|
-
_terminal
|
|
18814
|
+
scrollIfPinned(_terminal);
|
|
18799
18815
|
const { cols, rows } = _terminal;
|
|
18800
18816
|
window.worker.resizePty(cols, rows);
|
|
18801
18817
|
}
|
|
@@ -18818,6 +18834,7 @@ function TerminalPanel({ agent, onSpawn, onExit }) {
|
|
|
18818
18834
|
onSpawn(agent).then(() => {
|
|
18819
18835
|
if (_fitAddon && _terminal) {
|
|
18820
18836
|
_fitAddon.fit();
|
|
18837
|
+
_pinnedToBottom = true;
|
|
18821
18838
|
_terminal.scrollToBottom();
|
|
18822
18839
|
const { cols, rows } = _terminal;
|
|
18823
18840
|
window.worker.resizePty(cols, rows);
|
|
@@ -206500,7 +206517,7 @@ const lessDefaults = new LanguageServiceDefaultsImpl$3(
|
|
|
206500
206517
|
modeConfigurationDefault$2
|
|
206501
206518
|
);
|
|
206502
206519
|
function getMode$3() {
|
|
206503
|
-
return __vitePreload(() => import("./cssMode-
|
|
206520
|
+
return __vitePreload(() => import("./cssMode-C6bY9C4O.js"), true ? __vite__mapDeps([0,1]) : void 0, import.meta.url);
|
|
206504
206521
|
}
|
|
206505
206522
|
languages.onLanguage("less", () => {
|
|
206506
206523
|
getMode$3().then((mode2) => mode2.setupMode(lessDefaults));
|
|
@@ -206605,7 +206622,7 @@ const razorLanguageService = registerHTMLLanguageService(
|
|
|
206605
206622
|
);
|
|
206606
206623
|
const razorDefaults = razorLanguageService.defaults;
|
|
206607
206624
|
function getMode$2() {
|
|
206608
|
-
return __vitePreload(() => import("./htmlMode-
|
|
206625
|
+
return __vitePreload(() => import("./htmlMode-DYFYy4MK.js"), true ? __vite__mapDeps([2,1]) : void 0, import.meta.url);
|
|
206609
206626
|
}
|
|
206610
206627
|
function registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {
|
|
206611
206628
|
const defaults = new LanguageServiceDefaultsImpl$2(languageId, options, modeConfiguration);
|
|
@@ -206689,7 +206706,7 @@ const jsonDefaults = new LanguageServiceDefaultsImpl$1(
|
|
|
206689
206706
|
);
|
|
206690
206707
|
const getWorker$1 = () => getMode$1().then((mode2) => mode2.getWorker());
|
|
206691
206708
|
function getMode$1() {
|
|
206692
|
-
return __vitePreload(() => import("./jsonMode-
|
|
206709
|
+
return __vitePreload(() => import("./jsonMode-DdDRlbXP.js"), true ? __vite__mapDeps([3,1]) : void 0, import.meta.url);
|
|
206693
206710
|
}
|
|
206694
206711
|
languages.register({
|
|
206695
206712
|
id: "json",
|
|
@@ -206935,7 +206952,7 @@ const getJavaScriptWorker = () => {
|
|
|
206935
206952
|
return getMode().then((mode) => mode.getJavaScriptWorker());
|
|
206936
206953
|
};
|
|
206937
206954
|
function getMode() {
|
|
206938
|
-
return __vitePreload(() => import("./tsMode-
|
|
206955
|
+
return __vitePreload(() => import("./tsMode-BGTjG8Ow.js"), true ? [] : void 0, import.meta.url);
|
|
206939
206956
|
}
|
|
206940
206957
|
languages.onLanguage("typescript", () => {
|
|
206941
206958
|
return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults));
|
|
@@ -207130,49 +207147,49 @@ registerLanguage({
|
|
|
207130
207147
|
extensions: [".ftl", ".ftlh", ".ftlx"],
|
|
207131
207148
|
aliases: ["FreeMarker2", "Apache FreeMarker2"],
|
|
207132
207149
|
loader: () => {
|
|
207133
|
-
return __vitePreload(() => import("./freemarker2-
|
|
207150
|
+
return __vitePreload(() => import("./freemarker2-CkAJiX1K.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
|
|
207134
207151
|
}
|
|
207135
207152
|
});
|
|
207136
207153
|
registerLanguage({
|
|
207137
207154
|
id: "freemarker2.tag-angle.interpolation-dollar",
|
|
207138
207155
|
aliases: ["FreeMarker2 (Angle/Dollar)", "Apache FreeMarker2 (Angle/Dollar)"],
|
|
207139
207156
|
loader: () => {
|
|
207140
|
-
return __vitePreload(() => import("./freemarker2-
|
|
207157
|
+
return __vitePreload(() => import("./freemarker2-CkAJiX1K.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationDollar);
|
|
207141
207158
|
}
|
|
207142
207159
|
});
|
|
207143
207160
|
registerLanguage({
|
|
207144
207161
|
id: "freemarker2.tag-bracket.interpolation-dollar",
|
|
207145
207162
|
aliases: ["FreeMarker2 (Bracket/Dollar)", "Apache FreeMarker2 (Bracket/Dollar)"],
|
|
207146
207163
|
loader: () => {
|
|
207147
|
-
return __vitePreload(() => import("./freemarker2-
|
|
207164
|
+
return __vitePreload(() => import("./freemarker2-CkAJiX1K.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationDollar);
|
|
207148
207165
|
}
|
|
207149
207166
|
});
|
|
207150
207167
|
registerLanguage({
|
|
207151
207168
|
id: "freemarker2.tag-angle.interpolation-bracket",
|
|
207152
207169
|
aliases: ["FreeMarker2 (Angle/Bracket)", "Apache FreeMarker2 (Angle/Bracket)"],
|
|
207153
207170
|
loader: () => {
|
|
207154
|
-
return __vitePreload(() => import("./freemarker2-
|
|
207171
|
+
return __vitePreload(() => import("./freemarker2-CkAJiX1K.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAngleInterpolationBracket);
|
|
207155
207172
|
}
|
|
207156
207173
|
});
|
|
207157
207174
|
registerLanguage({
|
|
207158
207175
|
id: "freemarker2.tag-bracket.interpolation-bracket",
|
|
207159
207176
|
aliases: ["FreeMarker2 (Bracket/Bracket)", "Apache FreeMarker2 (Bracket/Bracket)"],
|
|
207160
207177
|
loader: () => {
|
|
207161
|
-
return __vitePreload(() => import("./freemarker2-
|
|
207178
|
+
return __vitePreload(() => import("./freemarker2-CkAJiX1K.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagBracketInterpolationBracket);
|
|
207162
207179
|
}
|
|
207163
207180
|
});
|
|
207164
207181
|
registerLanguage({
|
|
207165
207182
|
id: "freemarker2.tag-auto.interpolation-dollar",
|
|
207166
207183
|
aliases: ["FreeMarker2 (Auto/Dollar)", "Apache FreeMarker2 (Auto/Dollar)"],
|
|
207167
207184
|
loader: () => {
|
|
207168
|
-
return __vitePreload(() => import("./freemarker2-
|
|
207185
|
+
return __vitePreload(() => import("./freemarker2-CkAJiX1K.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationDollar);
|
|
207169
207186
|
}
|
|
207170
207187
|
});
|
|
207171
207188
|
registerLanguage({
|
|
207172
207189
|
id: "freemarker2.tag-auto.interpolation-bracket",
|
|
207173
207190
|
aliases: ["FreeMarker2 (Auto/Bracket)", "Apache FreeMarker2 (Auto/Bracket)"],
|
|
207174
207191
|
loader: () => {
|
|
207175
|
-
return __vitePreload(() => import("./freemarker2-
|
|
207192
|
+
return __vitePreload(() => import("./freemarker2-CkAJiX1K.js"), true ? [] : void 0, import.meta.url).then((m) => m.TagAutoInterpolationBracket);
|
|
207176
207193
|
}
|
|
207177
207194
|
});
|
|
207178
207195
|
registerLanguage({
|
|
@@ -207193,7 +207210,7 @@ registerLanguage({
|
|
|
207193
207210
|
extensions: [".handlebars", ".hbs"],
|
|
207194
207211
|
aliases: ["Handlebars", "handlebars", "hbs"],
|
|
207195
207212
|
mimetypes: ["text/x-handlebars-template"],
|
|
207196
|
-
loader: () => __vitePreload(() => import("./handlebars-
|
|
207213
|
+
loader: () => __vitePreload(() => import("./handlebars-DnLXVUXp.js"), true ? [] : void 0, import.meta.url)
|
|
207197
207214
|
});
|
|
207198
207215
|
registerLanguage({
|
|
207199
207216
|
id: "hcl",
|
|
@@ -207206,7 +207223,7 @@ registerLanguage({
|
|
|
207206
207223
|
extensions: [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm"],
|
|
207207
207224
|
aliases: ["HTML", "htm", "html", "xhtml"],
|
|
207208
207225
|
mimetypes: ["text/html", "text/x-jshtm", "text/template", "text/ng-template"],
|
|
207209
|
-
loader: () => __vitePreload(() => import("./html-
|
|
207226
|
+
loader: () => __vitePreload(() => import("./html-Ds5-qvDh.js"), true ? [] : void 0, import.meta.url)
|
|
207210
207227
|
});
|
|
207211
207228
|
registerLanguage({
|
|
207212
207229
|
id: "ini",
|
|
@@ -207229,7 +207246,7 @@ registerLanguage({
|
|
|
207229
207246
|
filenames: ["jakefile"],
|
|
207230
207247
|
aliases: ["JavaScript", "javascript", "js"],
|
|
207231
207248
|
mimetypes: ["text/javascript"],
|
|
207232
|
-
loader: () => __vitePreload(() => import("./javascript-
|
|
207249
|
+
loader: () => __vitePreload(() => import("./javascript-CiHhG2a9.js"), true ? __vite__mapDeps([4,5]) : void 0, import.meta.url)
|
|
207233
207250
|
});
|
|
207234
207251
|
registerLanguage({
|
|
207235
207252
|
id: "julia",
|
|
@@ -207268,7 +207285,7 @@ registerLanguage({
|
|
|
207268
207285
|
extensions: [".liquid", ".html.liquid"],
|
|
207269
207286
|
aliases: ["Liquid", "liquid"],
|
|
207270
207287
|
mimetypes: ["application/liquid"],
|
|
207271
|
-
loader: () => __vitePreload(() => import("./liquid-
|
|
207288
|
+
loader: () => __vitePreload(() => import("./liquid-BP5mb-uD.js"), true ? [] : void 0, import.meta.url)
|
|
207272
207289
|
});
|
|
207273
207290
|
registerLanguage({
|
|
207274
207291
|
id: "m3",
|
|
@@ -207286,7 +207303,7 @@ registerLanguage({
|
|
|
207286
207303
|
id: "mdx",
|
|
207287
207304
|
extensions: [".mdx"],
|
|
207288
207305
|
aliases: ["MDX", "mdx"],
|
|
207289
|
-
loader: () => __vitePreload(() => import("./mdx-
|
|
207306
|
+
loader: () => __vitePreload(() => import("./mdx-D4u3N7dt.js"), true ? [] : void 0, import.meta.url)
|
|
207290
207307
|
});
|
|
207291
207308
|
registerLanguage({
|
|
207292
207309
|
id: "mips",
|
|
@@ -207385,7 +207402,7 @@ registerLanguage({
|
|
|
207385
207402
|
extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
|
|
207386
207403
|
aliases: ["Python", "py"],
|
|
207387
207404
|
firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
|
|
207388
|
-
loader: () => __vitePreload(() => import("./python-
|
|
207405
|
+
loader: () => __vitePreload(() => import("./python-BQDHXVwp.js"), true ? [] : void 0, import.meta.url)
|
|
207389
207406
|
});
|
|
207390
207407
|
registerLanguage({
|
|
207391
207408
|
id: "qsharp",
|
|
@@ -207404,7 +207421,7 @@ registerLanguage({
|
|
|
207404
207421
|
extensions: [".cshtml"],
|
|
207405
207422
|
aliases: ["Razor", "razor"],
|
|
207406
207423
|
mimetypes: ["text/x-cshtml"],
|
|
207407
|
-
loader: () => __vitePreload(() => import("./razor-
|
|
207424
|
+
loader: () => __vitePreload(() => import("./razor-BfXW9cDc.js"), true ? [] : void 0, import.meta.url)
|
|
207408
207425
|
});
|
|
207409
207426
|
registerLanguage({
|
|
207410
207427
|
id: "redis",
|
|
@@ -207537,7 +207554,7 @@ registerLanguage({
|
|
|
207537
207554
|
aliases: ["TypeScript", "ts", "typescript"],
|
|
207538
207555
|
mimetypes: ["text/typescript"],
|
|
207539
207556
|
loader: () => {
|
|
207540
|
-
return __vitePreload(() => import("./typescript-
|
|
207557
|
+
return __vitePreload(() => import("./typescript-422MU_YO.js"), true ? [] : void 0, import.meta.url);
|
|
207541
207558
|
}
|
|
207542
207559
|
});
|
|
207543
207560
|
registerLanguage({
|
|
@@ -207582,14 +207599,14 @@ registerLanguage({
|
|
|
207582
207599
|
firstLine: "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
|
|
207583
207600
|
aliases: ["XML", "xml"],
|
|
207584
207601
|
mimetypes: ["text/xml", "application/xml", "application/xaml+xml", "application/xml-dtd"],
|
|
207585
|
-
loader: () => __vitePreload(() => import("./xml-
|
|
207602
|
+
loader: () => __vitePreload(() => import("./xml-B6EKhHiy.js"), true ? [] : void 0, import.meta.url)
|
|
207586
207603
|
});
|
|
207587
207604
|
registerLanguage({
|
|
207588
207605
|
id: "yaml",
|
|
207589
207606
|
extensions: [".yaml", ".yml"],
|
|
207590
207607
|
aliases: ["YAML", "yaml", "YML", "yml"],
|
|
207591
207608
|
mimetypes: ["application/x-yaml", "text/x-yaml"],
|
|
207592
|
-
loader: () => __vitePreload(() => import("./yaml-
|
|
207609
|
+
loader: () => __vitePreload(() => import("./yaml-LkO_eGYb.js"), true ? [] : void 0, import.meta.url)
|
|
207593
207610
|
});
|
|
207594
207611
|
var __defProp = Object.defineProperty;
|
|
207595
207612
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { conf as conf$1, language as language$1 } from "./typescript-
|
|
2
|
-
import "./index-
|
|
1
|
+
import { conf as conf$1, language as language$1 } from "./typescript-422MU_YO.js";
|
|
2
|
+
import "./index-DwSsD_Xm.js";
|
|
3
3
|
const conf = conf$1;
|
|
4
4
|
const language = {
|
|
5
5
|
// Set defaultToken to invalid to see what you do not tokenize yet
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createWebWorker, l as languages, e as editor } from "./index-
|
|
2
|
-
import { f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter, H as HoverAdapter, b as DocumentSymbolAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, S as SelectionRangeAdapter, e as DiagnosticsAdapter } from "./lspLanguageFeatures-
|
|
3
|
-
import { a, D, h, R, c, i, j, t, k } from "./lspLanguageFeatures-
|
|
1
|
+
import { c as createWebWorker, l as languages, e as editor } from "./index-DwSsD_Xm.js";
|
|
2
|
+
import { f as DocumentFormattingEditProvider, g as DocumentRangeFormattingEditProvider, C as CompletionAdapter, H as HoverAdapter, b as DocumentSymbolAdapter, d as DocumentColorAdapter, F as FoldingRangeAdapter, S as SelectionRangeAdapter, e as DiagnosticsAdapter } from "./lspLanguageFeatures-Dljhj5Gh.js";
|
|
3
|
+
import { a, D, h, R, c, i, j, t, k } from "./lspLanguageFeatures-Dljhj5Gh.js";
|
|
4
4
|
const STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;
|
|
5
5
|
class WorkerManager {
|
|
6
6
|
constructor(defaults) {
|
package/out/renderer/assets/{lspLanguageFeatures-Bjf28WU6.js → lspLanguageFeatures-Dljhj5Gh.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as Range$1, l as languages, e as editor, U as Uri, M as MarkerSeverity } from "./index-
|
|
1
|
+
import { R as Range$1, l as languages, e as editor, U as Uri, M as MarkerSeverity } from "./index-DwSsD_Xm.js";
|
|
2
2
|
var DocumentUri;
|
|
3
3
|
(function(DocumentUri2) {
|
|
4
4
|
function is(value) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as createWebWorker, e as editor, U as Uri, a as MarkerTag, M as MarkerSeverity, l as languages, t as typescriptDefaults, R as Range } from "./index-
|
|
1
|
+
import { c as createWebWorker, e as editor, U as Uri, a as MarkerTag, M as MarkerSeverity, l as languages, t as typescriptDefaults, R as Range } from "./index-DwSsD_Xm.js";
|
|
2
2
|
class WorkerManager {
|
|
3
3
|
constructor(_modeId, _defaults) {
|
|
4
4
|
this._modeId = _modeId;
|
package/out/renderer/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>ctlsurf-worker</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/index-
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-DwSsD_Xm.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="./assets/index-DK9wLFFm.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phenx-inc/ctlsurf",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
4
4
|
"description": "Agent-agnostic terminal and desktop app for ctlsurf — run Claude Code, Codex, or any coding agent with live session logging and remote control",
|
|
5
5
|
"main": "out/main/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -27,6 +27,20 @@ let _unsubData: (() => void) | null = null
|
|
|
27
27
|
let _unsubExit: (() => void) | null = null
|
|
28
28
|
let _currentAgentId: string | null = null
|
|
29
29
|
|
|
30
|
+
// Scroll-pinning: true means user is at/near bottom, auto-scroll is allowed
|
|
31
|
+
let _pinnedToBottom = true
|
|
32
|
+
|
|
33
|
+
function isAtBottom(terminal: Terminal): boolean {
|
|
34
|
+
const buf = terminal.buffer.active
|
|
35
|
+
return buf.viewportY >= buf.baseY
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function scrollIfPinned(terminal: Terminal) {
|
|
39
|
+
if (_pinnedToBottom) {
|
|
40
|
+
terminal.scrollToBottom()
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
30
44
|
function getOrCreateTerminal(onExit: () => void): { terminal: Terminal; fitAddon: FitAddon } {
|
|
31
45
|
if (_terminal && _fitAddon) {
|
|
32
46
|
return { terminal: _terminal, fitAddon: _fitAddon }
|
|
@@ -67,14 +81,22 @@ function getOrCreateTerminal(onExit: () => void): { terminal: Terminal; fitAddon
|
|
|
67
81
|
terminal.loadAddon(fitAddon)
|
|
68
82
|
terminal.loadAddon(new WebLinksAddon())
|
|
69
83
|
|
|
70
|
-
//
|
|
84
|
+
// Track scroll position — detect when user scrolls away from bottom
|
|
85
|
+
terminal.onScroll(() => {
|
|
86
|
+
_pinnedToBottom = isAtBottom(terminal)
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
// Send keystrokes to pty — re-pin to bottom on user input
|
|
71
90
|
terminal.onData((data) => {
|
|
91
|
+
_pinnedToBottom = true
|
|
92
|
+
terminal.scrollToBottom()
|
|
72
93
|
window.worker.writePty(data)
|
|
73
94
|
})
|
|
74
95
|
|
|
75
|
-
// Receive pty output —
|
|
96
|
+
// Receive pty output — auto-scroll only if pinned
|
|
76
97
|
_unsubData = window.worker.onPtyData((data) => {
|
|
77
98
|
terminal.write(data)
|
|
99
|
+
scrollIfPinned(terminal)
|
|
78
100
|
})
|
|
79
101
|
|
|
80
102
|
// Handle pty exit
|
|
@@ -108,7 +130,7 @@ export function TerminalPanel({ agent, onSpawn, onExit }: TerminalPanelProps) {
|
|
|
108
130
|
}
|
|
109
131
|
|
|
110
132
|
fitAddon.fit()
|
|
111
|
-
terminal
|
|
133
|
+
scrollIfPinned(terminal)
|
|
112
134
|
|
|
113
135
|
// Resize handling
|
|
114
136
|
let resizeTimeout: ReturnType<typeof setTimeout>
|
|
@@ -117,7 +139,7 @@ export function TerminalPanel({ agent, onSpawn, onExit }: TerminalPanelProps) {
|
|
|
117
139
|
resizeTimeout = setTimeout(() => {
|
|
118
140
|
if (_fitAddon && _terminal) {
|
|
119
141
|
_fitAddon.fit()
|
|
120
|
-
_terminal
|
|
142
|
+
scrollIfPinned(_terminal)
|
|
121
143
|
const { cols, rows } = _terminal
|
|
122
144
|
window.worker.resizePty(cols, rows)
|
|
123
145
|
}
|
|
@@ -147,6 +169,7 @@ export function TerminalPanel({ agent, onSpawn, onExit }: TerminalPanelProps) {
|
|
|
147
169
|
onSpawn(agent).then(() => {
|
|
148
170
|
if (_fitAddon && _terminal) {
|
|
149
171
|
_fitAddon.fit()
|
|
172
|
+
_pinnedToBottom = true
|
|
150
173
|
_terminal.scrollToBottom()
|
|
151
174
|
const { cols, rows } = _terminal
|
|
152
175
|
window.worker.resizePty(cols, rows)
|