@canonical/terrazzo-lsp-extension 0.4.4 → 0.5.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/README.md CHANGED
@@ -36,6 +36,17 @@ Optional runtime override. Leave empty to auto-detect `bun` first and `node >= 2
36
36
 
37
37
  Controls the VS Code language client trace level.
38
38
 
39
+ ## Monorepos and multi-folder workspaces
40
+
41
+ The LSP loads its configuration once, based on the first CSS or SCSS file
42
+ you open. In a monorepo with multiple packages, open a file from the
43
+ package that contains `terrazzo-lsp.config.json` first. Alternatively,
44
+ place the config at the workspace root so it is reachable from any package.
45
+
46
+ If the first file opened lives in a folder without a config, the server
47
+ enters degraded mode — it stays alive but provides no token intelligence
48
+ until VS Code is reloaded with a config-bearing file opened first.
49
+
39
50
  ## Troubleshooting
40
51
 
41
52
  If the extension cannot find a runtime, install `bun` or `node >= 22`, or set `terrazzo-lsp.runtime` explicitly in your workspace settings.
@@ -13,8 +13,9 @@ export default async function loadConfiguredArtifacts(state) {
13
13
  const artifactDir = path.dirname(artifactPath);
14
14
  loadArtifact(artifact, state.graph, packageSource, artifactDir);
15
15
  }
16
- catch {
17
- // Artifact not found or invalid continue without it
16
+ catch (error) {
17
+ const detail = error instanceof Error ? error.message : String(error);
18
+ state.log(`Failed to load artifact: ${artifactPath} — ${detail}`);
18
19
  }
19
20
  }
20
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loadConfiguredArtifacts.js","sourceRoot":"","sources":["../../../../src/runtime/artifacts/loadConfiguredArtifacts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,uBAAuB,CACnD,KAAkB;IAElB,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC/C,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAoB;IAC/C,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/D,IAAI,gBAAgB,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAC7C,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAC1C,CAAC;IACF,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"loadConfiguredArtifacts.js","sourceRoot":"","sources":["../../../../src/runtime/artifacts/loadConfiguredArtifacts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,uBAAuB,CACnD,KAAkB;IAElB,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC/C,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,KAAK,CAAC,GAAG,CAAC,4BAA4B,YAAY,MAAM,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAoB;IAC/C,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/D,IAAI,gBAAgB,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAC7C,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAC1C,CAAC;IACF,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC"}
@@ -23,7 +23,7 @@ import { LogMessageType, routeLspRequest } from "./dispatch/index.js";
23
23
  * never returns (until shutdown).
24
24
  */
25
25
  export default function startLspServer(fallbackRootDir, options = {}) {
26
- const { allowDegraded = false } = options;
26
+ const { allowDegraded = true } = options;
27
27
  const state = {
28
28
  allowDegraded,
29
29
  fallbackRootDir,
@@ -1 +1 @@
1
- {"version":3,"file":"startLspServer.js","sourceRoot":"","sources":["../../../src/runtime/startLspServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,eAAuB,EACvB,UAAiC,EAAE;IAEnC,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,KAAK,GAAmB;QAC5B,aAAa;QACb,eAAe;QACf,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,UAAU,EAAE,CAAC;QACb,iBAAiB,EAAE,KAAK;QACxB,MAAM,EAAE,SAAS;KAClB,CAAC;IACF,mEAAmE;IACnE,8DAA8D;IAC9D,oEAAoE;IACpE,gDAAgD;IAChD,IAAI,YAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACpD,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YACrB,YAAY,GAAG,YAAY;iBACxB,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;iBAC1D,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACxB,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;oBACzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACvC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBACD,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;gBAC3C,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtE,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,EAAE;oBAClD,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,OAAO,EAAE,kCAAkC,MAAM,MAAM,MAAM,EAAE;iBAChE,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;KACF,CAAC,CAAC;IAEH,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"startLspServer.js","sourceRoot":"","sources":["../../../src/runtime/startLspServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,eAAuB,EACvB,UAAiC,EAAE;IAEnC,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,KAAK,GAAmB;QAC5B,aAAa;QACb,eAAe;QACf,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,UAAU,EAAE,CAAC;QACb,iBAAiB,EAAE,KAAK;QACxB,MAAM,EAAE,SAAS;KAClB,CAAC;IACF,mEAAmE;IACnE,8DAA8D;IAC9D,oEAAoE;IACpE,gDAAgD;IAChD,IAAI,YAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACpD,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YACrB,YAAY,GAAG,YAAY;iBACxB,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;iBAC1D,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACxB,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;oBACzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACvC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBACD,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;gBAC3C,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtE,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,EAAE;oBAClD,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,OAAO,EAAE,kCAAkC,MAAM,MAAM,MAAM,EAAE;iBAChE,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;KACF,CAAC,CAAC;IAEH,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
@@ -1,4 +1,4 @@
1
- import pkg from "../package.json" with { type: "json" };
1
+ import pkg from "./version.json" with { type: "json" };
2
2
  /** The version string from the package's own package.json. */
3
3
  export const VERSION = pkg.version;
4
4
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAExD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEvD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "version": "0.5.0"
3
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@canonical/terrazzo-lsp-extension",
3
3
  "displayName": "Terrazzo LSP",
4
4
  "description": "CSS custom property intelligence for design token workflows",
5
- "version": "0.4.4",
5
+ "version": "0.5.0",
6
6
  "publisher": "canonical",
7
7
  "license": "LGPL-3.0-only",
8
8
  "galleryBanner": {
@@ -86,7 +86,7 @@
86
86
  }
87
87
  },
88
88
  "dependencies": {
89
- "@canonical/terrazzo-lsp": "^0.4.4",
89
+ "@canonical/terrazzo-lsp": "^0.5.0",
90
90
  "vscode-languageclient": "^9.0.1"
91
91
  },
92
92
  "devDependencies": {
package/terrazzo-lsp.vsix CHANGED
Binary file