ttsc 0.31.5 → 0.32.0
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/cmd/ttsc/compiler_argument_cwd_test.go +38 -38
- package/cmd/ttscserver/main.go +2 -12
- package/cmd/ttscserver/resolve_launch_uses_native_flag_authority_test.go +7 -7
- package/driver/lsp.go +4 -43
- package/driver/rewrite.go +1 -1
- package/internal/e2etrace/completion_hints.go +3 -3
- package/internal/e2etrace/completion_hints_test.go +26 -12
- package/internal/graph/build.go +5 -6
- package/internal/graph/graph.go +3 -3
- package/internal/graph/line_model.go +2 -35
- package/internal/lspserver/lsp_clean_didopen_refreshes_compiler_state_test.go +13 -36
- package/internal/lspserver/lsp_hints_refresh_ignores_a_superseded_generation_test.go +9 -3
- package/internal/lspserver/lsp_plugin.go +19 -0
- package/internal/lspserver/lsp_proxy.go +9 -129
- package/internal/lspserver/lsp_server.go +0 -8
- package/internal/lspserver/lsp_watched_file_changes_reach_compiler_caches_test.go +6 -36
- package/internal/sourceprocess/windows_target_owns_suspended_admission_test.go +5 -5
- package/lib/compiler/internal/build/BuildExecution.js +1 -1
- package/lib/compiler/internal/build/BuildExecution.js.map +1 -1
- package/lib/compiler/internal/build/TsgoArguments.js.map +1 -1
- package/lib/compiler/internal/project/CompilerProjectSelection.d.ts +9 -8
- package/lib/compiler/internal/project/CompilerProjectSelection.js +11 -9
- package/lib/compiler/internal/project/CompilerProjectSelection.js.map +1 -1
- package/lib/compiler/internal/project/resolveOwningProjectConfig.d.ts +20 -8
- package/lib/compiler/internal/project/resolveOwningProjectConfig.js +21 -12
- package/lib/compiler/internal/project/resolveOwningProjectConfig.js.map +1 -1
- package/lib/compiler/internal/runSingleFileEmit.d.ts +5 -4
- package/lib/compiler/internal/runSingleFileEmit.js +5 -4
- package/lib/compiler/internal/runSingleFileEmit.js.map +1 -1
- package/lib/flags/ParseOptions.d.ts +2 -2
- package/lib/internal/E2ETrace.js.map +1 -1
- package/lib/internal/OwnedNativeProcess.d.ts +2 -2
- package/lib/internal/OwnedNativeProcess.js +2 -2
- package/lib/internal/SourceNativeRetirement.d.ts +8 -7
- package/lib/internal/SourceNativeRetirement.js +19 -10
- package/lib/internal/SourceNativeRetirement.js.map +1 -1
- package/lib/internal/TtsxNodeOptions.d.ts +79 -0
- package/lib/internal/TtsxNodeOptions.js +121 -0
- package/lib/internal/TtsxNodeOptions.js.map +1 -0
- package/lib/internal/javascriptRuntimeCapabilities.js +4 -1
- package/lib/internal/javascriptRuntimeCapabilities.js.map +1 -1
- package/lib/internal/parseWindowsDirectoryCaseSensitivity.d.ts +5 -5
- package/lib/internal/parseWindowsDirectoryCaseSensitivity.js +5 -5
- package/lib/internal/pathIdentity/createCaseSensitivityObservations.d.ts +35 -0
- package/lib/internal/pathIdentity/createCaseSensitivityObservations.js +209 -0
- package/lib/internal/pathIdentity/createCaseSensitivityObservations.js.map +1 -0
- package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.js +2 -143
- package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.js.map +1 -1
- package/lib/internal/projectInputPathIdentity.d.ts +1 -0
- package/lib/internal/projectInputPathIdentity.js +1 -0
- package/lib/internal/projectInputPathIdentity.js.map +1 -1
- package/lib/launcher/internal/parseTtsxCLI.d.ts +5 -4
- package/lib/launcher/internal/parseTtsxCLI.js +5 -4
- package/lib/launcher/internal/parseTtsxCLI.js.map +1 -1
- package/lib/launcher/internal/prepareExecution.js.map +1 -1
- package/lib/launcher/internal/resolveSingleFileOutput.d.ts +8 -9
- package/lib/launcher/internal/resolveSingleFileOutput.js +8 -9
- package/lib/launcher/internal/resolveSingleFileOutput.js.map +1 -1
- package/lib/launcher/internal/runTtsc.js +5 -5
- package/lib/launcher/internal/runTtsx.js +5 -2
- package/lib/launcher/internal/runTtsx.js.map +1 -1
- package/lib/launcher/internal/runtime/RuntimeEntrySources.d.ts +40 -0
- package/lib/launcher/internal/runtime/RuntimeEntrySources.js +57 -0
- package/lib/launcher/internal/runtime/RuntimeEntrySources.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeProjectOwnership.d.ts +5 -4
- package/lib/launcher/internal/runtime/RuntimeProjectOwnership.js +8 -6
- package/lib/launcher/internal/runtime/RuntimeProjectOwnership.js.map +1 -1
- package/lib/launcher/internal/runtime/commonJsExportNames.d.ts +2 -1
- package/lib/launcher/internal/runtime/commonJsExportNames.js +2 -1
- package/lib/launcher/internal/runtime/commonJsExportNames.js.map +1 -1
- package/lib/launcher/internal/runtime/installRuntimeHooks.js +35 -9
- package/lib/launcher/internal/runtime/installRuntimeHooks.js.map +1 -1
- package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.js +3 -1
- package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.js.map +1 -1
- package/lib/launcher/internal/watch/WatchTopology.d.ts +74 -12
- package/lib/launcher/internal/watch/WatchTopology.js +301 -92
- package/lib/launcher/internal/watch/WatchTopology.js.map +1 -1
- package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.d.ts +4 -1
- package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.js +3 -2
- package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.js.map +1 -1
- package/lib/plugin/internal/load/loadProjectPlugins.js +13 -7
- package/lib/plugin/internal/load/loadProjectPlugins.js.map +1 -1
- package/lib/plugin/internal/load/resolveNativeSource.js +2 -3
- package/lib/plugin/internal/load/resolveNativeSource.js.map +1 -1
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.d.ts +4 -1
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js +9 -2
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js.map +1 -1
- package/lib/structures/internal/TtscCommonOptions.d.ts +2 -2
- package/package.json +9 -9
- package/src/compiler/internal/build/BuildExecution.ts +5 -2
- package/src/compiler/internal/build/TsgoArguments.ts +4 -1
- package/src/compiler/internal/project/CompilerProjectSelection.ts +14 -14
- package/src/compiler/internal/project/resolveOwningProjectConfig.ts +29 -14
- package/src/compiler/internal/runSingleFileEmit.ts +11 -7
- package/src/flags/ParseOptions.ts +2 -2
- package/src/internal/E2ETrace.ts +3 -1
- package/src/internal/OwnedNativeProcess.ts +2 -2
- package/src/internal/SourceNativeRetirement.ts +42 -19
- package/src/internal/TtsxNodeOptions.ts +124 -0
- package/src/internal/javascriptRuntimeCapabilities.ts +6 -1
- package/src/internal/parseWindowsDirectoryCaseSensitivity.ts +5 -5
- package/src/internal/pathIdentity/createCaseSensitivityObservations.ts +242 -0
- package/src/internal/pathIdentity/createFilesystemPathIdentityContext.ts +2 -169
- package/src/internal/projectInputPathIdentity.ts +1 -0
- package/src/launcher/internal/parseTtsxCLI.ts +5 -4
- package/src/launcher/internal/prepareExecution.ts +4 -1
- package/src/launcher/internal/resolveSingleFileOutput.ts +8 -9
- package/src/launcher/internal/runTtsc.ts +5 -5
- package/src/launcher/internal/runTtsx.ts +17 -8
- package/src/launcher/internal/runtime/RuntimeEntrySources.ts +57 -0
- package/src/launcher/internal/runtime/RuntimeProjectOwnership.ts +23 -10
- package/src/launcher/internal/runtime/commonJsExportNames.ts +11 -4
- package/src/launcher/internal/runtime/installRuntimeHooks.ts +55 -13
- package/src/launcher/internal/runtime/resolveRuntimeCleanTargets.ts +17 -5
- package/src/launcher/internal/watch/WatchTopology.ts +387 -99
- package/src/launcher/internal/watch/projectInputReloadEventShouldNotify.ts +14 -9
- package/src/plugin/internal/load/loadProjectPlugins.ts +13 -1
- package/src/plugin/internal/load/resolveNativeSource.ts +10 -4
- package/src/plugin/internal/source/pluginModuleReplaceDirectories.ts +10 -1
- package/src/structures/internal/TtscCommonOptions.ts +2 -2
- package/internal/graphsymbols/position_helpers_follow_ecma_line_terminators_test.go +0 -78
- package/internal/graphsymbols/provider.go +0 -650
- package/internal/lspserver/lsp_symbols.go +0 -212
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
|
+
import { createCaseSensitivityObservations } from "../../../internal/pathIdentity/createCaseSensitivityObservations";
|
|
2
3
|
import { PluginContentIdentities } from "../../../plugin/internal/source/PluginContentIdentities";
|
|
3
4
|
import type { ITtscParsedProjectConfig } from "../../../structures/internal/ITtscParsedProjectConfig";
|
|
4
5
|
import type { ITtscProjectInputSnapshot } from "../../../structures/internal/ITtscProjectInputSnapshot";
|
|
@@ -12,26 +13,26 @@ import { watchDirectory } from "./watchDirectory";
|
|
|
12
13
|
* output for source and declaration membership. An explicit reader supplies the
|
|
13
14
|
* same absolute-path membership and failure contract for each resolved project.
|
|
14
15
|
* Configuration files, project-reference roots, output inference and native
|
|
15
|
-
* filesystem identity remain this topology's responsibility.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
16
|
+
* filesystem identity remain this topology's responsibility. Response frames
|
|
17
|
+
* are observed once per project refresh at its compiler cwd; that option view
|
|
18
|
+
* serves all project-output queries while the original argv reaches compiler
|
|
19
|
+
* membership. A second observation rejects response changes across membership
|
|
20
|
+
* resolution. Response files join the config reload set; these observations do
|
|
21
|
+
* not pin files or detect a change restored in between.
|
|
21
22
|
*
|
|
22
23
|
* `TTSC_WATCH_DEBUG_INPUTS` reports the named event, observed population deltas
|
|
23
24
|
* and reload decision. These diagnostics reuse the decision's existing inputs;
|
|
24
25
|
* they perform no extra filesystem observations.
|
|
25
26
|
*
|
|
26
27
|
* @evidence contracts/common.md#principled-implementation The compiler-input operation's membership, published rule inputs and actual content fingerprints qualify notifications; its native default obtains the real compiler list. Post-registration reconciliation compares baselines to recover observed handoff changes, not an atomic guarantee against every transient mutation. Explicit operations preserve native defaults without replacing global filesystem or compiler methods. Project-input attribution: Observed member deltas establish attribution; stale selected names cannot override them, while directory names retain supported population causality and unrelated multiple members remain unnamed.
|
|
27
|
-
* @evidence contracts/common.md#clear-and-simple-design Compiler, plugin and project-input watch populations keep their own baselines and callbacks under one topology owner; small classifiers separate membership, selection and handle replacement.
|
|
28
|
+
* @evidence contracts/common.md#clear-and-simple-design Compiler, plugin and project-input watch populations keep their own baselines and callbacks under one topology owner; small classifiers separate membership, selection and handle replacement. Five distinct operations own directory subscriptions, file subscriptions, immediate reload-directory reads, compiler membership and each decision's case-policy observations; existing callers need no new argument. Project-input attribution: One private reconciliation separates member deltas from immediate resolution-directory digests before choosing a supported event name or an observed single member.
|
|
28
29
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts Supported native backends and explicit gap/replacement ownership replace foreign watcher patching; failed observation is reported rather than represented as complete coverage. The constructor manufactures no observations and bypasses no input or content proof; supplied operations retain the existing callback and result contracts. Project-input attribution: Native event names do not manufacture a delta; the current and previous physical membership identify already observed names without filename or fixture exceptions.
|
|
29
30
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs explain membership authority, plugin fingerprinting, publication races, physical registration and public lifecycle operations following the documentation skill. Parameters identify each supplied operation and native default beside the constructor. Project-input attribution: Native paragraphs explain stale attention, directory causality, accompanying resolution digests and unselected immediate entries.
|
|
30
31
|
* @evidence contracts/portability.md#os-neutral-implementation Native paths use Node APIs and registration uses realpath; compiler/plugin maps preserve lexical aliases and fold only measured insensitive ASCII components. Project inputs use physical identities, while unknown/native Unicode relations remain conservative event candidates rather than identity proof. Registration paths and read options are passed unchanged; compiler-input readers supply absolute membership paths without replacing the topology's native identity policy. Project-input attribution: The supplied filesystem identity transaction establishes selected names and ancestry without an OS-wide case assumption or lexical alias guess.
|
|
31
32
|
*
|
|
32
33
|
* @evidence contracts/performance.md#efficient-algorithms Identity-keyed maps separate membership, baselines and handle registries; reconciliation delegates project/config discovery, native compiler listing, filesystem traversal/hashing and backend callbacks, with costs described by its members. Construction retains operation references and empty indexes without a filesystem observation or build. Attribution indexed visits additionally pay path/key text, ancestor and native identity work; shared ancestor keys avoid repeating the same walk within a transaction.
|
|
33
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Current membership, content baselines and live registrations belong to one topology; reconciliation owners decide their reuse against fresh premises. Supplied operation identities are retained without
|
|
34
|
-
* @evidence contracts/performance.md#bound-retention-and-release-resources Current and pending maps and live subscriptions remain topology-owned without a population cap; reconciliation attempts obsolete handle retirement. Constructor acquires no handle; directory arrays and attribution deltas are call-local. close invokes supplied close methods but does not await backend closure, and a thrown close can interrupt later map cleanup; retained snapshots remain until the facade is released.
|
|
34
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Current membership, content baselines and live registrations belong to one topology; reconciliation owners decide their reuse against fresh premises. Supplied operation identities are retained without assuming changed inputs remain equivalent. Each project's last compiler listing is kept with its arguments and answers only a plugin-input change, which cannot move Program membership; every other refresh lists again. Notifications delivered in one poll iteration are decided together in the check phase, so one change lists and rescans once. Project-input attribution: This classifier borrows one scan's deltas and identity transaction without retaining cross-event answers.
|
|
35
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources Current and pending maps and live subscriptions remain topology-owned without a population cap; compiler listings are replaced by each resolution and hold only its projects; reconciliation attempts obsolete handle retirement. Constructor acquires no handle; directory arrays and attribution deltas are call-local. close invokes supplied close methods but does not await backend closure, and a thrown close can interrupt later map cleanup; retained snapshots remain until the facade is released.
|
|
35
36
|
*/
|
|
36
37
|
export declare class WatchTopology {
|
|
37
38
|
private readonly options;
|
|
@@ -40,6 +41,7 @@ export declare class WatchTopology {
|
|
|
40
41
|
private readonly openFileWatch;
|
|
41
42
|
private readonly readDirectory;
|
|
42
43
|
private readonly getCompilerInputs;
|
|
44
|
+
private readonly observeCaseSensitivity;
|
|
43
45
|
private analysisOnly;
|
|
44
46
|
private closed;
|
|
45
47
|
private compilerPostRegistrationMembershipRefresh;
|
|
@@ -70,13 +72,36 @@ export declare class WatchTopology {
|
|
|
70
72
|
/** The plugin inputs whose directories the last sync already watched. */
|
|
71
73
|
private watchedExtraInputs;
|
|
72
74
|
private compilerFileSnapshots;
|
|
75
|
+
/**
|
|
76
|
+
* The last compiler listing of each project the topology resolved, by its
|
|
77
|
+
* config path, with the arguments it was asked under (`listingQuestion`). A
|
|
78
|
+
* change of plugin inputs reuses it (samchon/ttsc#1741).
|
|
79
|
+
*/
|
|
80
|
+
private compilerListings;
|
|
81
|
+
/**
|
|
82
|
+
* Notifications the current poll iteration delivered, decided together in the
|
|
83
|
+
* check phase (`deferNotification`).
|
|
84
|
+
*/
|
|
85
|
+
private pendingNotifications;
|
|
86
|
+
private notificationsScheduled;
|
|
73
87
|
private files;
|
|
88
|
+
/**
|
|
89
|
+
* The current decision's directory case-policy observations, which every
|
|
90
|
+
* identity context the decision creates shares (samchon/ttsc#1742).
|
|
91
|
+
*/
|
|
92
|
+
private caseObservations;
|
|
74
93
|
private lexicalIdentities;
|
|
75
94
|
private fileWatchers;
|
|
76
95
|
private observedDirectories;
|
|
77
96
|
private outputFiles;
|
|
78
97
|
private outputs;
|
|
79
98
|
private projectInputFingerprints;
|
|
99
|
+
/**
|
|
100
|
+
* The metadata and physical owner each matched project-input file had when
|
|
101
|
+
* its fingerprint was taken, by match key; a named notification re-reads only
|
|
102
|
+
* the files whose metadata moved (samchon/ttsc#1748).
|
|
103
|
+
*/
|
|
104
|
+
private projectInputFileSnapshots;
|
|
80
105
|
private projectInputMatches;
|
|
81
106
|
private projectInputs;
|
|
82
107
|
private declaredProjectInputs;
|
|
@@ -104,8 +129,10 @@ export declare class WatchTopology {
|
|
|
104
129
|
* membership; the default invokes the native compiler. Readers throw
|
|
105
130
|
* listing failures and retain ownership of their returned array, which this
|
|
106
131
|
* topology does not mutate.
|
|
132
|
+
* @param observeCaseSensitivity Create one decision's directory case-policy
|
|
133
|
+
* observations; the default asks the native filesystem.
|
|
107
134
|
*/
|
|
108
|
-
constructor(options: WatchTopologyOptions, callbacks: WatchTopologyCallbacks, openDirectoryWatch?: typeof watchDirectory, openFileWatch?: typeof fs.watch, readDirectory?: typeof fs.readdirSync, getCompilerInputs?: typeof listCompilerInputs);
|
|
135
|
+
constructor(options: WatchTopologyOptions, callbacks: WatchTopologyCallbacks, openDirectoryWatch?: typeof watchDirectory, openFileWatch?: typeof fs.watch, readDirectory?: typeof fs.readdirSync, getCompilerInputs?: typeof listCompilerInputs, observeCaseSensitivity?: typeof createCaseSensitivityObservations);
|
|
109
136
|
/**
|
|
110
137
|
* Re-resolve compiler inputs and notify when the resolved topology changes,
|
|
111
138
|
* including membership, output/configuration or analysis-mode changes. Errors
|
|
@@ -122,6 +149,11 @@ export declare class WatchTopology {
|
|
|
122
149
|
* @evidence contracts/performance.md#bound-retention-and-release-resources Current snapshots prune removed members and synchronization attempts obsolete handle closure, keeping old coverage after incomplete registration. Current/recovery populations and observations have no size cap; supplied close/error callbacks can throw and close does not await backend completion. State remains owner-held until released.
|
|
123
150
|
*/
|
|
124
151
|
refresh(notify: boolean): void;
|
|
152
|
+
/**
|
|
153
|
+
* @param reuseListings Answer each project's membership with its last listing
|
|
154
|
+
* under the same arguments instead of asking the compiler again. Only a
|
|
155
|
+
* refresh whose cause cannot move Program membership passes it.
|
|
156
|
+
*/
|
|
125
157
|
private refreshCompilerInputs;
|
|
126
158
|
/**
|
|
127
159
|
* Hand one Program-membership transition from the compiler lane to the
|
|
@@ -157,8 +189,8 @@ export declare class WatchTopology {
|
|
|
157
189
|
* @evidence contracts/common.md#prohibited-implementation-shortcuts The actual plugin source digest applies its owning source-selection and pruning policy; named plugins or fixture output do not replace observed input state.
|
|
158
190
|
* @evidence contracts/common.md#meaningful-documentation Native prose explains baseline timing and why existing inputs are not restamped following the documentation skill.
|
|
159
191
|
* @evidence contracts/portability.md#os-neutral-implementation Native path resolution and canonical backend registration govern source trees; lexical keys preserve declarations and unknown names, folding ASCII only under measured insensitive parents rather than an OS-derived rule.
|
|
160
|
-
* @evidence contracts/performance.md#efficient-algorithms Input/path keys deduplicate with text and native case/ancestor work; only newly admitted inputs compute initial source digests, each proven from the selected files' metadata when the load's records hold and read from the selected pruned corpus otherwise;
|
|
161
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Unchanged ordered input sets return immediately; existing inputs reuse their recorded digest until actual notification processing establishes changed consumed state; a new input's digest is the one the load recorded while its metadata holds.
|
|
192
|
+
* @evidence contracts/performance.md#efficient-algorithms Input/path keys deduplicate with text and native case/ancestor work; only newly admitted inputs compute initial source digests, each proven from the selected files' metadata when the load's records hold and read from the selected pruned corpus otherwise; the following reconciliation pays project configuration, directory traversal and watcher work but answers membership from each project's last compiler listing; fixed publication count does not bound delegated bytes or backend work.
|
|
193
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Unchanged ordered input sets return immediately; a changed set reuses each project's last compiler listing under the same arguments, since plugin inputs cannot move Program membership; existing inputs reuse their recorded digest until actual notification processing establishes changed consumed state; a new input's digest is the one the load recorded while its metadata holds.
|
|
162
194
|
* @evidence contracts/performance.md#bound-retention-and-release-resources Publications replace input/digest populations and case-observation caches without a population cap; synchronization attempts obsolete watcher closure. Native/supplied closure has its own lifetime and can throw; owner close does not prove every backend has stopped or every retained snapshot byte was released.
|
|
163
195
|
*/
|
|
164
196
|
setExtraInputs(inputs: readonly string[], identities?: PluginContentIdentities.Store): void;
|
|
@@ -197,6 +229,14 @@ export declare class WatchTopology {
|
|
|
197
229
|
close(): void;
|
|
198
230
|
/** Start fresh native case observations for one synchronous watch decision. */
|
|
199
231
|
private beginLexicalTransaction;
|
|
232
|
+
/**
|
|
233
|
+
* A strict project-input identity context for the current decision. Its
|
|
234
|
+
* physical paths are resolved afresh, and its case answers are the
|
|
235
|
+
* decision's: one decision builds such contexts per declaration and per
|
|
236
|
+
* candidate, and each asked every directory again, which on Windows is an
|
|
237
|
+
* `fsutil` process per question (samchon/ttsc#1742).
|
|
238
|
+
*/
|
|
239
|
+
private projectInputIdentities;
|
|
200
240
|
/** Keep lexical alias ownership while sharing this decision's case probes. */
|
|
201
241
|
private pathKey;
|
|
202
242
|
private syncFileWatchers;
|
|
@@ -211,6 +251,22 @@ export declare class WatchTopology {
|
|
|
211
251
|
/** A config's physical replacement can change resolution with equal bytes. */
|
|
212
252
|
private compilerMovementReports;
|
|
213
253
|
private syncDirectoryWatchers;
|
|
254
|
+
/**
|
|
255
|
+
* Decide a notification in the event loop's check phase, together with every
|
|
256
|
+
* other notification the same poll iteration delivered (samchon/ttsc#1741).
|
|
257
|
+
*
|
|
258
|
+
* One filesystem change usually arrives as several notifications, rename and
|
|
259
|
+
* change or create and modify, and each listed the compiler inputs or
|
|
260
|
+
* rescanned the project inputs again. Identical notifications of one lane,
|
|
261
|
+
* location and path merge, keeping a rename or a gap any of them carried, and
|
|
262
|
+
* the batch refreshes compiler membership once after deciding them all. The
|
|
263
|
+
* refresh therefore starts after every notification it absorbs, and one
|
|
264
|
+
* delivered later schedules another batch.
|
|
265
|
+
*/
|
|
266
|
+
private deferNotification;
|
|
267
|
+
private decideNotifications;
|
|
268
|
+
/** Decide one merged directory notification of the compiler lane. */
|
|
269
|
+
private decideCompilerDirectoryNotification;
|
|
214
270
|
/**
|
|
215
271
|
* Reconcile tracked compiler files after a newly registered watcher returns.
|
|
216
272
|
*
|
|
@@ -337,6 +393,12 @@ export declare class WatchTopology {
|
|
|
337
393
|
private refreshProjectInputs;
|
|
338
394
|
private collectProjectInputMatches;
|
|
339
395
|
private refreshFromDirectory;
|
|
396
|
+
/**
|
|
397
|
+
* Refresh compiler membership once for every directory a decision asked
|
|
398
|
+
* about. A failed refresh still reports, once each, the reload inputs every
|
|
399
|
+
* requested change names.
|
|
400
|
+
*/
|
|
401
|
+
private refreshFromDirectories;
|
|
340
402
|
private isCompilerOutputDirectory;
|
|
341
403
|
private isCompilerOutput;
|
|
342
404
|
private isProjectInputCompilerOutputDirectory;
|