css-variable-lsp 1.0.17 → 1.0.18

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.
Files changed (42) hide show
  1. package/package.json +1 -1
  2. package/docs/SCSS_SASS_SUPPORT_RESEARCH.md +0 -96
  3. package/out/handlers/callHierarchy.js +0 -128
  4. package/out/handlers/callHierarchy.js.map +0 -1
  5. package/out/handlers/codeAction.js +0 -142
  6. package/out/handlers/codeAction.js.map +0 -1
  7. package/out/handlers/codeLens.js +0 -41
  8. package/out/handlers/codeLens.js.map +0 -1
  9. package/out/handlers/declaration.js +0 -34
  10. package/out/handlers/declaration.js.map +0 -1
  11. package/out/handlers/documentHighlight.js +0 -45
  12. package/out/handlers/documentHighlight.js.map +0 -1
  13. package/out/handlers/documentLink.js +0 -61
  14. package/out/handlers/documentLink.js.map +0 -1
  15. package/out/handlers/documentSync.js +0 -15
  16. package/out/handlers/documentSync.js.map +0 -1
  17. package/out/handlers/foldingRange.js +0 -77
  18. package/out/handlers/foldingRange.js.map +0 -1
  19. package/out/handlers/formatting.js +0 -99
  20. package/out/handlers/formatting.js.map +0 -1
  21. package/out/handlers/implementation.js +0 -35
  22. package/out/handlers/implementation.js.map +0 -1
  23. package/out/handlers/inlayHint.js +0 -46
  24. package/out/handlers/inlayHint.js.map +0 -1
  25. package/out/handlers/linkedEditingRange.js +0 -45
  26. package/out/handlers/linkedEditingRange.js.map +0 -1
  27. package/out/handlers/prepareRename.js +0 -44
  28. package/out/handlers/prepareRename.js.map +0 -1
  29. package/out/handlers/selectionRange.js +0 -100
  30. package/out/handlers/selectionRange.js.map +0 -1
  31. package/out/handlers/semanticTokens.js +0 -57
  32. package/out/handlers/semanticTokens.js.map +0 -1
  33. package/out/handlers/signatureHelp.js +0 -54
  34. package/out/handlers/signatureHelp.js.map +0 -1
  35. package/out/handlers/typeDefinition.js +0 -35
  36. package/out/handlers/typeDefinition.js.map +0 -1
  37. package/out/hierarchy/callHierarchy.js +0 -119
  38. package/out/hierarchy/callHierarchy.js.map +0 -1
  39. package/out/hierarchy/shared/hierarchyTypes.js +0 -45
  40. package/out/hierarchy/shared/hierarchyTypes.js.map +0 -1
  41. package/out/hierarchy/shared/variableAnalyzer.js +0 -43
  42. package/out/hierarchy/shared/variableAnalyzer.js.map +0 -1
@@ -1,119 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handlePrepareCallHierarchy = handlePrepareCallHierarchy;
4
- exports.handleIncomingCalls = handleIncomingCalls;
5
- exports.handleOutgoingCalls = handleOutgoingCalls;
6
- const node_1 = require("vscode-languageserver/node");
7
- const variableAnalyzer_1 = require("./shared/variableAnalyzer");
8
- /**
9
- * Implements textDocument/prepareCallHierarchy for CSS variables.
10
- * Returns a call hierarchy item for a variable at the given position.
11
- */
12
- function handlePrepareCallHierarchy(params, cssVariableManager) {
13
- const variables = cssVariableManager.getVariables(params.textDocument.uri);
14
- // Find the variable at the cursor position
15
- const targetVariable = findVariableAtPosition(variables, params.textDocument.uri, params.position);
16
- if (!targetVariable) {
17
- return null;
18
- }
19
- // Create call hierarchy item for the target variable
20
- const item = {
21
- name: targetVariable.name,
22
- kind: node_1.SymbolKind.Variable,
23
- uri: targetVariable.uri,
24
- range: targetVariable.range,
25
- detail: `CSS variable defined with ${targetVariable.value}`,
26
- selectionRange: targetVariable.range,
27
- };
28
- return item;
29
- }
30
- /**
31
- * Implements textDocument/callHierarchy/incomingCalls for CSS variables.
32
- * Returns all items that call the given variable.
33
- */
34
- function handleIncomingCalls(params, cssVariableManager) {
35
- const targetVariable = params.item;
36
- if (targetVariable.kind !== node_1.SymbolKind.Variable) {
37
- return { item: [] };
38
- }
39
- // Get all variables and analyze dependencies
40
- const allVariables = cssVariableManager.getAllVariables();
41
- const dependencies = (0, variableAnalyzer_1.analyzeVariableDependencies)(allVariables);
42
- // Find which variables reference the target variable
43
- const callers = dependencies.get(targetVariable.name);
44
- if (callers.size === 0) {
45
- return { item: [] };
46
- }
47
- // Find definition locations for each caller
48
- const incomingItems = [];
49
- for (const callerName of callers) {
50
- const callerVars = allVariables.filter(v => v.name === callerName);
51
- for (const callerVar of callerVars) {
52
- const item = {
53
- name: callerName,
54
- kind: node_1.SymbolKind.Variable,
55
- uri: callerVar.uri,
56
- range: callerVar.range,
57
- detail: `CSS variable that uses --${targetVariable.name}`,
58
- selectionRange: callerVar.range,
59
- };
60
- incomingItems.push(item);
61
- }
62
- }
63
- return { item: incomingItems };
64
- }
65
- /**
66
- * Implements textDocument/callHierarchy/outgoingCalls for CSS variables.
67
- * Returns all items that the given variable calls.
68
- */
69
- function handleOutgoingCalls(params, cssVariableManager) {
70
- const targetVariable = params.item;
71
- if (targetVariable.kind !== node_1.SymbolKind.Variable) {
72
- return { item: [] };
73
- }
74
- // Get the target variable and find its dependencies
75
- const targetVariables = allVariables.filter(v => v.name === targetVariable.name);
76
- if (targetVariables.length === 0) {
77
- return { item: [] };
78
- }
79
- const targetVariable = targetVariables[0];
80
- const dependencies = (0, variableAnalyzer_1.analyzeVariableDependencies)(allVariables);
81
- const callerVariables = dependencies.get(targetVariable.name) || [];
82
- // Find definition locations for each called variable
83
- const outgoingItems = [];
84
- for (const calledVarName of callerVariables) {
85
- const calledVarDefs = allVariables.filter(v => v.name === calledVarName);
86
- for (const calledVar of calledVarDefs) {
87
- const item = {
88
- name: calledVarName,
89
- kind: node_1.SymbolKind.Variable,
90
- uri: calledVar.uri,
91
- range: calledVar.range,
92
- detail: `CSS variable referenced by --${targetVariable.name}`,
93
- selectionRange: calledVar.range,
94
- };
95
- outgoingItems.push(item);
96
- }
97
- }
98
- return { item: outgoingItems };
99
- }
100
- /**
101
- * Finds a variable at the given cursor position in a list of variables.
102
- */
103
- function findVariableAtPosition(variables, uri, position) {
104
- // For simplicity, find the first variable that contains the cursor position
105
- for (const variable of variables) {
106
- const startOffset = (position.line * 1000) + position.character;
107
- const endOffset = (position.line * 1000) + position.character;
108
- // Check if cursor is within variable range
109
- if (variable.range.start.character <= position.character &&
110
- position.character <= variable.range.end.character &&
111
- startOffset >= variable.range.start.character &&
112
- endOffset <= variable.range.end.character &&
113
- variable.uri === uri) {
114
- return variable;
115
- }
116
- }
117
- return null;
118
- }
119
- //# sourceMappingURL=callHierarchy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"callHierarchy.js","sourceRoot":"","sources":["../../src/hierarchy/callHierarchy.ts"],"names":[],"mappings":";;AAeA,gEA2BC;AAMD,kDAqCC;AAMD,kDAoCC;AAzHD,qDAAwD;AAExD,gEAAwE;AAGxE;;;GAGG;AACH,SAAgB,0BAA0B,CACxC,MAAkC,EAClC,kBAAsC;IAEtC,MAAM,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3E,2CAA2C;IAC3C,MAAM,cAAc,GAAG,sBAAsB,CAC3C,SAAS,EACT,MAAM,CAAC,YAAY,CAAC,GAAG,EACvB,MAAM,CAAC,QAAQ,CAChB,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,MAAM,IAAI,GAAyB;QACjC,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,IAAI,EAAE,iBAAU,CAAC,QAAQ;QACzB,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,MAAM,EAAE,6BAA6B,cAAc,CAAC,KAAK,EAAE;QAC3D,cAAc,EAAE,cAAc,CAAC,KAAK;KACrC,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,MAAmC,EACnC,kBAAsC;IAEtC,MAAM,cAAc,GAAG,MAAM,CAAC,IAA4B,CAAC;IAC3D,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAU,CAAC,QAAQ,EAAE,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACtB,CAAC;IAED,6CAA6C;IAC7C,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAA,8CAA2B,EAAC,YAAY,CAAC,CAAC;IAE/D,qDAAqD;IACrD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACtB,CAAC;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAwB,EAAE,CAAC;IAC9C,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACnE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,GAAyB;gBACjC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,iBAAU,CAAC,QAAQ;gBACzB,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,MAAM,EAAE,4BAA4B,cAAc,CAAC,IAAI,EAAE;gBACzD,cAAc,EAAE,SAAS,CAAC,KAAK;aAChC,CAAC;YACF,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,MAAmC,EACnC,kBAAsC;IAEtC,MAAM,cAAc,GAAG,MAAM,CAAC,IAA4B,CAAC;IAC3D,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAU,CAAC,QAAQ,EAAE,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACtB,CAAC;IAED,oDAAoD;IACpD,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;IACjF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACtB,CAAC;IACD,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAA,8CAA2B,EAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEpE,qDAAqD;IACrD,MAAM,aAAa,GAAwB,EAAE,CAAC;IAC9C,KAAK,MAAM,aAAa,IAAI,eAAe,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACzE,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,GAAyB;gBACjC,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,iBAAU,CAAC,QAAQ;gBACzB,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,MAAM,EAAE,gCAAgC,cAAc,CAAC,IAAI,EAAE;gBAC7D,cAAc,EAAE,SAAS,CAAC,KAAK;aAChC,CAAC;YACF,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,SAAwB,EACxB,GAAW,EACX,QAA6C;IAE7C,4EAA4E;IAC5E,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;QAChE,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;QAE9D,2CAA2C;QAC3C,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;YACpD,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS;YAClD,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS;YAC7C,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS;YACzC,QAAQ,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PropertyCategory = void 0;
4
- /**
5
- * Categories of CSS properties for type hierarchy organization.
6
- */
7
- var PropertyCategory;
8
- (function (PropertyCategory) {
9
- PropertyCategory["Color"] = "color";
10
- PropertyCategory["Font"] = "font";
11
- PropertyCategory["Size"] = "size";
12
- PropertyCategory["Position"] = "position";
13
- PropertyCategory["Layout"] = "layout";
14
- PropertyCategory["Animation"] = "animation";
15
- PropertyCategory["Border"] = "border";
16
- PropertyCategory["Background"] = "background";
17
- PropertyCategory["Text"] = "text";
18
- PropertyCategory["Visual"] = "visual";
19
- PropertyCategory["Box"] = "box";
20
- PropertyCategory["Effect"] = "effect";
21
- PropertyCategory["Transform"] = "transform";
22
- PropertyCategory["Grid"] = "grid";
23
- PropertyCategory["Flex"] = "flex";
24
- })(PropertyCategory || (exports.PropertyCategory = PropertyCategory = {}));
25
- /**
26
- * Categories of CSS properties for type hierarchy organization.
27
- */
28
- (function (PropertyCategory) {
29
- PropertyCategory["Color"] = "color";
30
- PropertyCategory["Font"] = "font";
31
- PropertyCategory["Size"] = "size";
32
- PropertyCategory["Position"] = "position";
33
- PropertyCategory["Layout"] = "layout";
34
- PropertyCategory["Animation"] = "animation";
35
- PropertyCategory["Border"] = "border";
36
- PropertyCategory["Background"] = "background";
37
- PropertyCategory["Text"] = "text";
38
- PropertyCategory["Visual"] = "visual";
39
- PropertyCategory["Box"] = "box";
40
- PropertyCategory["Effect"] = "effect";
41
- PropertyCategory["Transform"] = "transform";
42
- PropertyCategory["Grid"] = "grid";
43
- PropertyCategory["Flex"] = "flex";
44
- })(PropertyCategory || (exports.PropertyCategory = PropertyCategory = {}));
45
- //# sourceMappingURL=hierarchyTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hierarchyTypes.js","sourceRoot":"","sources":["../../../src/hierarchy/shared/hierarchyTypes.ts"],"names":[],"mappings":";;;AA8CA;;GAEG;AACH,IAAY,gBAgBX;AAhBD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,qCAAiB,CAAA;IACjB,2CAAuB,CAAA;IACvB,qCAAiB,CAAA;IACjB,6CAAyB,CAAA;IACzB,iCAAa,CAAA;IACb,qCAAiB,CAAA;IACjB,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,2CAAuB,CAAA;IACvB,iCAAa,CAAA;IACb,iCAAa,CAAA;AACf,CAAC,EAhBW,gBAAgB,gCAAhB,gBAAgB,QAgB3B;AAuBD;;GAEG;AACH,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,qCAAiB,CAAA;IACjB,2CAAuB,CAAA;IACvB,qCAAiB,CAAA;IACjB,6CAAyB,CAAA;IACzB,iCAAa,CAAA;IACb,qCAAiB,CAAA;IACjB,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,2CAAuB,CAAA;IACvB,iCAAa,CAAA;IACb,iCAAa,CAAA;AACf,CAAC,EAhBW,gBAAgB,gCAAhB,gBAAgB,QAgB3B"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.analyzeVariableDependencies = analyzeVariableDependencies;
4
- exports.extractVariableUsages = extractVariableUsages;
5
- /**
6
- * Analyzes CSS variable dependencies to build call hierarchy.
7
- * Tracks which variables reference other variables in their values.
8
- */
9
- function analyzeVariableDependencies(variables) {
10
- const dependencies = new Map();
11
- for (const variable of variables) {
12
- const referencedVars = new Set();
13
- // Extract variable references from the variable value
14
- const varRegex = /var\((--[\w-]+)\)/g;
15
- let match;
16
- while ((match = varRegex.exec(variable.value)) !== null) {
17
- referencedVars.add(match[1]);
18
- }
19
- dependencies.set(variable.name, referencedVars);
20
- }
21
- return dependencies;
22
- }
23
- /**
24
- * Extracts CSS variable usages from a document's content.
25
- */
26
- function extractVariableUsages(content, uri) {
27
- const usages = [];
28
- const varRegex = /var\((--[\w-]+)\)/g;
29
- let match;
30
- while ((match = varRegex.exec(content)) !== null) {
31
- const startPos = match.index;
32
- const endPos = startPos + match[0].length;
33
- usages.push({
34
- variable: match[1],
35
- range: {
36
- start: { line: 0, character: startPos },
37
- end: { line: 0, character: endPos },
38
- },
39
- });
40
- }
41
- return usages;
42
- }
43
- //# sourceMappingURL=variableAnalyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variableAnalyzer.js","sourceRoot":"","sources":["../../../src/hierarchy/shared/variableAnalyzer.ts"],"names":[],"mappings":";;AAOA,kEAmBC;AAKD,sDAsBC;AAlDD;;;GAGG;AACH,SAAgB,2BAA2B,CACzC,SAAwB;IAExB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEpD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEzC,sDAAsD;QACtD,MAAM,QAAQ,GAAG,oBAAoB,CAAC;QACtC,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,OAAe,EACf,GAAW;IAEX,MAAM,MAAM,GAAgE,EAAE,CAAC;IAC/E,MAAM,QAAQ,GAAG,oBAAoB,CAAC;IAEtC,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAE1C,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAClB,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;gBACvC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;aACpC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}