@nudojs/service 0.3.1 → 0.3.2
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/dist/index.js +17 -4
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -3116,11 +3116,19 @@ async function getTypeAtPositionAsync(filePath, source, line, column, activeCase
|
|
|
3116
3116
|
}
|
|
3117
3117
|
return getTypeAtPosition(filePath, source, line, column, activeCases);
|
|
3118
3118
|
}
|
|
3119
|
+
function positionInsideCaseFunction(source, ast, line) {
|
|
3120
|
+
try {
|
|
3121
|
+
const enclosing = findEnclosingFunction(extractDirectives(ast), line);
|
|
3122
|
+
return !!enclosing && enclosing.directives.some((d) => d.kind === "case");
|
|
3123
|
+
} catch {
|
|
3124
|
+
return false;
|
|
3125
|
+
}
|
|
3126
|
+
}
|
|
3119
3127
|
function getTypeAtPosition(filePath, source, line, column, activeCases) {
|
|
3120
3128
|
const ast = parse5(source);
|
|
3121
3129
|
const fileDirectives = extractFileDirectives(ast);
|
|
3122
3130
|
const envNames = fileDirectives.filter((d) => d.kind === "env").flatMap((d) => d.envs);
|
|
3123
|
-
if (isBPathCapable(source, envNames)) {
|
|
3131
|
+
if (isBPathCapable(source, envNames) && !positionInsideCaseFunction(source, ast, line)) {
|
|
3124
3132
|
try {
|
|
3125
3133
|
const seeds = mockDirectivesToAbsSeeds(extractDirectives(ast));
|
|
3126
3134
|
const { modules } = evalAbsModuleGraph(source, filePath);
|
|
@@ -3215,7 +3223,12 @@ function getHoverAtPosition(filePath, source, line, column, activeCases) {
|
|
|
3215
3223
|
absMultiline: info2.absMultiline ?? gMulti
|
|
3216
3224
|
};
|
|
3217
3225
|
};
|
|
3218
|
-
|
|
3226
|
+
const insideCaseFn = positionInsideCaseFunction(
|
|
3227
|
+
source,
|
|
3228
|
+
file ?? parse5(source),
|
|
3229
|
+
line
|
|
3230
|
+
);
|
|
3231
|
+
if (isBPathCapable(source, envNames) && !insideCaseFn) {
|
|
3219
3232
|
try {
|
|
3220
3233
|
const seeds = mockDirectivesToAbsSeeds(extractDirectives(file ?? parse5(source)));
|
|
3221
3234
|
const { modules } = evalAbsModuleGraph(source, filePath);
|
|
@@ -3249,7 +3262,7 @@ function getHoverAtPosition(filePath, source, line, column, activeCases) {
|
|
|
3249
3262
|
const tv = getTypeAtPosition(filePath, source, line, column, activeCases);
|
|
3250
3263
|
const info = tv ? { typeText: typeValueToString3(tv) } : null;
|
|
3251
3264
|
const ident = findIdentNameAtPosition(source, line, column, file);
|
|
3252
|
-
if (ident && !fnName) {
|
|
3265
|
+
if (ident && !fnName && !insideCaseFn) {
|
|
3253
3266
|
try {
|
|
3254
3267
|
if (isBPathCapable(source, []) || !/\brequire\s*\(/.test(source)) {
|
|
3255
3268
|
const seeds = mockDirectivesToAbsSeeds(extractDirectives(file ?? parse5(source)));
|
|
@@ -3273,7 +3286,7 @@ function getHoverAtPosition(filePath, source, line, column, activeCases) {
|
|
|
3273
3286
|
}
|
|
3274
3287
|
}
|
|
3275
3288
|
try {
|
|
3276
|
-
if (isBPathCapable(source, []) || !/\brequire\s*\(|\bimport\s*[{'"*]/.test(source)) {
|
|
3289
|
+
if (!insideCaseFn && (isBPathCapable(source, []) || !/\brequire\s*\(|\bimport\s*[{'"*]/.test(source))) {
|
|
3277
3290
|
const seeds = mockDirectivesToAbsSeeds(
|
|
3278
3291
|
extractDirectives(file ?? parse5(source))
|
|
3279
3292
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nudojs/service",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Shared inference service for Nudo IDE integrations — file analysis, completions, and .d.ts generation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@babel/traverse": "^7.29.0",
|
|
40
40
|
"@babel/types": "^7.29.0",
|
|
41
|
-
"@nudojs/core": "0.
|
|
42
|
-
"@nudojs/parser": "0.
|
|
43
|
-
"@nudojs/cli": "0.
|
|
44
|
-
"@nudojs/harvester": "0.2.
|
|
41
|
+
"@nudojs/core": "0.4.0",
|
|
42
|
+
"@nudojs/parser": "0.4.0",
|
|
43
|
+
"@nudojs/cli": "0.4.0",
|
|
44
|
+
"@nudojs/harvester": "0.2.2"
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
47
47
|
"build": "tsup src/index.ts --format esm --dts"
|