You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* [WIP] Publishing and editing object scripts directly from the viewer.
* [WIP] Act as a consumer for objects published from the viewer. Treat them as virtual file systems, so that they appear as folders in the explorer tab. Not yet in a stable state.
* Rider test (#73)
Revise workflow for publishing to VSCode marketplace.
* chore: prepare release v1.0.4
* Update README.md with marketplace url
* forced syntax update now uses the correct API
* Request correct files.
* [WIP] Publishing and editing object scripts directly from the viewer.
* [WIP] Act as a consumer for objects published from the viewer. Treat them as virtual file systems, so that they appear as folders in the explorer tab. Not yet in a stable state.
* object publishing checkpoint.
* Large refactor, converting `normalizedPath` into `vscode.uri` where that can be used and `StringURI` when vscode is not available.
* couple of issues found in cr.
* Third time I've tried to fix this file.
* link scripts from published objects with scripts in the local directory.
* Numerous small issues, and more solid script creation.
* Updates to the interface doc.
* Fix preprocessing with published files.
* Update the language defs.
* Object renaming, luau inventory icon, runstate, restart.
* Left out a file... plus pre-commit.
* Trying to fix the precommits.
* Some permission cleanup and fix rpc document TOC.
* Two more PR fixes.
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: WolfGang <flamin2k8@gmail.com>
* Workspace roots provided at construction (`new NodeHost({ roots, config })`).
228
228
* Minimal logger injection (optional) with no-op defaults.
229
229
* Config access fully delegated to injected `FullConfigInterface` implementation—no direct env or global lookups inside NodeHost.
@@ -243,7 +243,7 @@ Guidelines:
243
243
1. Do not introduce VS Code imports into `src/server/`.
244
244
2. Keep feature parity between extension host and NodeHost include resolution.
245
245
3. Add new serialization helpers via optional methods (feature-detect in callers) rather than expanding core method contracts.
246
-
4. Always return `NormalizedPath` for resolved files.
246
+
4. Always return `StringUri` for resolved files.
247
247
248
248
Future Extensions:
249
249
* Optional file watching (likely via `fs.watch` or chokidar) for cache invalidation.
@@ -266,24 +266,24 @@ Most services use optional chaining and the `maybe()` utility for safe property
266
266
267
267
Always use workspace-relative paths for security. Include paths are configurable via `includePaths` setting with patterns like `["./include/", "include/", "*/include/", "."]`.
All internal path handling in the preprocessor layer now uses `NormalizedPath`, a branded string type produced by `normalizePath()` (see `llsharedutils`). This replaces previous reliance on `vscode.Uri` within core logic and tests.
271
+
All internal path handling in the preprocessor layer uses `StringUri`, a branded `string` type produced by `filePathToStringUri()` (see `hostinterface.ts`). This replaced the earlier `NormalizedPath`/`normalizePath()` approach and the reliance on `vscode.Uri` within core logic and tests.
272
272
273
273
Key guidelines:
274
-
- Do not store or compare raw/relative paths directly; always normalize first.
275
-
- Equality checks are simple strict equality (`===`) because normalization canonicalizes separators and casing rules (platform appropriate).
276
-
- Tests must no longer access `.fsPath` or other `Uri` properties—compare the `NormalizedPath` values directly.
277
-
- When constructing mappings (`LineMapping`), assign `sourceFile: NormalizedPath`.
274
+
- Do not store or compare raw/relative paths directly; always convert to `StringUri` first.
275
+
- Equality checks use `uriEquals()` (case-insensitive on Windows for `file://` URIs); use `uriKey()` for Map/Set keys.
276
+
- Tests compare `StringUri` values directly, not `.fsPath` or other `Uri` properties.
277
+
- When constructing mappings (`LineMapping`), assign `sourceFile: StringUri`.
278
278
279
279
#### HostInterface for Includes (formerly FileInterface)
280
280
281
281
`IncludeProcessor` now depends on an injected `HostInterface` (renamed from earlier `FileInterface` for broader future responsibilities) instead of directly using VS Code APIs. Implementations must provide:
Test shims may implement minimal logic (e.g., in-memory maps). For realistic include resolution tests, provide a hybrid in-memory + disk implementation and pass it to `new IncludeProcessor(fsImpl)`.
- Updated services and sync logic to use `LLConfigService.getInstance()` only at composition boundaries; core logic depends on abstracted `HostInterface` + `FullConfigInterface`.
376
-
- Ensured path branding (`NormalizedPath`) throughout preprocessing and language data flows.
376
+
- Ensured URI branding (`StringUri`) throughout preprocessing and language data flows.
377
377
- Guidance: New settings belong in `ConfigKey` + `LLConfigService`; avoid reintroducing host-level config APIs.
0 commit comments