@zentryc5t/ts-plugin-for-bruno 1.0.5 → 3.0.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
@@ -11,6 +11,7 @@ Only some of the intellisense features for `Bruno` files are provided by this np
11
11
  ## Debugging
12
12
 
13
13
  For using the local TS plugin within the VS Code extension, please follow these steps:
14
- - Replace the `name` in the base [package.json](../../package.json) for the `typescriptServerPlugins` contibution field with the name `typescript-for-bruno`.
15
- - In the base [tsconfig.json](../../tsconfig.json) replace the value for the `plugins` field with the commented out plugins value.
16
- - Use the launch configuration `Run Extension With local TS plugin` for launching the extension
14
+
15
+ - Replace the `name` in the base [package.json](../../package.json) for the `typescriptServerPlugins` contibution field with the name `typescript-for-bruno`.
16
+ - In the base [tsconfig.json](../../tsconfig.json) replace the value for the `plugins` field with the commented out plugins value.
17
+ - Use the launch configuration `Run Extension With local TS plugin` for launching the extension
package/out/index.js CHANGED
@@ -20,24 +20,95 @@ function init(_modules) {
20
20
  };
21
21
  proxy.getSuggestionDiagnostics = (fileName) => {
22
22
  const defaultDiagnostics = info.languageService.getSuggestionDiagnostics(fileName);
23
- if (!isBrunoFile(fileName)) {
24
- return defaultDiagnostics;
25
- }
26
- const allDiagnosticsForCodeBlocks = filterDefaultDiagnostics(info, fileName, defaultDiagnostics);
23
+ const isBruFile = isBrunoFile(fileName);
24
+ const allDiagnostics = filterDefaultDiagnostics(info, fileName, defaultDiagnostics);
27
25
  // The ts server always reports errors when importing a Javascript function in a .bru file.
28
- return allDiagnosticsForCodeBlocks.filter(
29
- // Do not show diagnostics that only make sense for Typescript files.
30
- // Bru file code blocks should be treated like Javascript functions instead.
31
- // A list of diagnostics can be found here: https://github.com/microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json
32
- ({ code }) => (code < 7043 || code > 7050) &&
33
- code != 80001 &&
34
- code != 80004);
26
+ return isBruFile
27
+ ? allDiagnostics.filter(
28
+ // Do not show diagnostics that only make sense for Typescript files.
29
+ // Bru file code blocks should be treated like Javascript functions instead.
30
+ // A list of diagnostics can be found here: https://github.com/microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json
31
+ ({ code }) => (code < 7043 || code > 7050) &&
32
+ code != 80001 &&
33
+ code != 80004)
34
+ : allDiagnostics.filter(({ code }) => code != 80001); // Bruno currently only supports CommonJS modules.
35
35
  };
36
- // All hovers are provided by the extension implementation
36
+ // All hovers are provided by the extension implementation for '.bru' files.
37
37
  proxy.getQuickInfoAtPosition = (fileName, position) => {
38
- return isBrunoFile(fileName)
39
- ? undefined
40
- : info.languageService.getQuickInfoAtPosition(fileName, position);
38
+ if (isBrunoFile(fileName)) {
39
+ return undefined;
40
+ }
41
+ return info.languageService.getQuickInfoAtPosition(fileName, position);
42
+ };
43
+ proxy.getCompletionsAtPosition = (fileName, position, options) => {
44
+ const defaultCompletions = info.languageService.getCompletionsAtPosition(fileName, position, options);
45
+ return defaultCompletions && isInABrunoCollection(info, fileName)
46
+ ? {
47
+ ...defaultCompletions,
48
+ entries: defaultCompletions.entries.filter(({ data }) => !data ||
49
+ !data.fileName ||
50
+ !data.fileName.includes(getTempJsFileBaseNameWithoutExtension())),
51
+ }
52
+ : defaultCompletions;
53
+ };
54
+ proxy.getRenameInfo = (fileName, position, preferences) => {
55
+ const defaultRenameInfo = info.languageService.getRenameInfo(fileName, position, preferences);
56
+ if ((0, path_1.extname)(fileName) != ".js" ||
57
+ !isInABrunoCollection(info, fileName)) {
58
+ return defaultRenameInfo;
59
+ }
60
+ const definitionForPosition = info.languageService.getDefinitionAtPosition(fileName, position);
61
+ const isForInbuiltRuntimeFunction = definitionForPosition &&
62
+ definitionForPosition.some(({ fileName }) => fileName.includes(getTempJsFileBaseNameWithoutExtension()));
63
+ return isForInbuiltRuntimeFunction
64
+ ? { canRename: false, localizedErrorMessage: "You cannot rename elements that are provided by Bruno at runtime." }
65
+ : defaultRenameInfo;
66
+ };
67
+ proxy.findRenameLocations = (fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename) => {
68
+ const defaultRenameLocations = info.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename &&
69
+ typeof providePrefixAndSuffixTextForRename != "boolean"
70
+ ? providePrefixAndSuffixTextForRename
71
+ : {});
72
+ return defaultRenameLocations &&
73
+ isInABrunoCollection(info, fileName)
74
+ ? defaultRenameLocations.filter(({ fileName: fileForRenameLocation }) => !fileForRenameLocation.includes(getTempJsFileBaseNameWithoutExtension()))
75
+ : defaultRenameLocations;
76
+ };
77
+ proxy.findReferences = (fileName, position) => {
78
+ const defaultReferences = info.languageService.findReferences(fileName, position);
79
+ return defaultReferences && isInABrunoCollection(info, fileName)
80
+ ? defaultReferences.filter(({ definition: { fileName: fileForDefinition } }) => !fileForDefinition.includes(getTempJsFileBaseNameWithoutExtension()))
81
+ : defaultReferences;
82
+ };
83
+ proxy.getDefinitionAtPosition = (fileName, position) => {
84
+ const defaultDefinitions = info.languageService.getDefinitionAtPosition(fileName, position);
85
+ return defaultDefinitions && isInABrunoCollection(info, fileName)
86
+ ? defaultDefinitions.filter(({ fileName: fileForDefinition }) => !fileForDefinition.includes(getTempJsFileBaseNameWithoutExtension()))
87
+ : defaultDefinitions;
88
+ };
89
+ proxy.getDefinitionAndBoundSpan = (fileName, position) => {
90
+ const defaultDefinition = info.languageService.getDefinitionAndBoundSpan(fileName, position);
91
+ return defaultDefinition &&
92
+ isInABrunoCollection(info, fileName) &&
93
+ defaultDefinition.definitions
94
+ ? {
95
+ ...defaultDefinition,
96
+ definitions: defaultDefinition.definitions.filter(({ fileName: fileForDefinition }) => !fileForDefinition.includes(getTempJsFileBaseNameWithoutExtension())),
97
+ }
98
+ : defaultDefinition;
99
+ };
100
+ proxy.getTypeDefinitionAtPosition = (fileName, position) => {
101
+ const defaultDefinitions = info.languageService.getDefinitionAtPosition(fileName, position);
102
+ return defaultDefinitions && isInABrunoCollection(info, fileName)
103
+ ? defaultDefinitions.filter(({ fileName: fileForDefinition }) => !fileForDefinition.includes(getTempJsFileBaseNameWithoutExtension()))
104
+ : defaultDefinitions;
105
+ };
106
+ proxy.getImplementationAtPosition = (fileName, position) => {
107
+ const defaultImplementations = info.languageService.getImplementationAtPosition(fileName, position);
108
+ return defaultImplementations &&
109
+ isInABrunoCollection(info, fileName)
110
+ ? defaultImplementations.filter(({ fileName: fileForImplementation }) => !fileForImplementation.includes(getTempJsFileBaseNameWithoutExtension()))
111
+ : defaultImplementations;
41
112
  };
42
113
  return proxy;
43
114
  }
@@ -46,34 +117,31 @@ function init(_modules) {
46
117
  };
47
118
  }
48
119
  function filterDefaultDiagnostics(info, fileName, defaultDiagnostics) {
49
- if (isJsFileFromBrunoCollection(info, fileName)) {
50
- const fileContent = getFileContent(info, fileName);
51
- if (!fileContent) {
52
- return [];
53
- }
54
- return filterOutDiagnosticsForInbuiltRuntimeFunctions(defaultDiagnostics, fileContent);
120
+ if (!isBrunoFile(fileName) &&
121
+ !fileName.includes(getTempJsFileBaseNameWithoutExtension())) {
122
+ return defaultDiagnostics;
55
123
  }
56
- else if (isBrunoFile(fileName)) {
57
- const fileContent = getFileContent(info, fileName);
58
- if (!fileContent) {
59
- return [];
60
- }
61
- const indizes = [];
62
- for (const blockName of Object.values(TextBlockName)) {
63
- const indizesForBlock = getCodeBlockStartAndEndIndex(fileContent, blockName);
64
- if (indizesForBlock) {
65
- indizes.push({ blockName, ...indizesForBlock });
66
- }
67
- }
68
- if (indizes.length == 0) {
69
- return [];
124
+ else if (fileName.includes(getTempJsFileBaseNameWithoutExtension()) &&
125
+ isInABrunoCollection(info, fileName)) {
126
+ // Filter out all diagnostics for temp js files.
127
+ return [];
128
+ }
129
+ const fileContent = getFileContent(info, fileName);
130
+ if (!fileContent) {
131
+ return [];
132
+ }
133
+ const indizes = [];
134
+ for (const blockName of Object.values(TextBlockName)) {
135
+ const indizesForBlock = getCodeBlockStartAndEndIndex(fileContent, blockName);
136
+ if (indizesForBlock) {
137
+ indizes.push({ blockName, ...indizesForBlock });
70
138
  }
71
- return filterOutDiagnosticsForInbuiltRuntimeFunctions(defaultDiagnostics.filter(({ start }) => start != undefined &&
72
- indizes.some(({ startIndex: blockStart, endIndex: blockEnd }) => start >= blockStart && start <= blockEnd)), fileContent);
73
139
  }
74
- else {
75
- return defaultDiagnostics;
140
+ if (indizes.length == 0) {
141
+ return [];
76
142
  }
143
+ return filterOutDiagnosticsForInbuiltRuntimeFunctions(defaultDiagnostics.filter(({ start }) => start != undefined &&
144
+ indizes.some(({ startIndex: blockStart, endIndex: blockEnd }) => start >= blockStart && start <= blockEnd)), fileContent);
77
145
  }
78
146
  function getCodeBlockStartAndEndIndex(fullTextContent, blockName) {
79
147
  const openingBracketChar = "{";
@@ -97,14 +165,11 @@ function getCodeBlockStartAndEndIndex(fullTextContent, blockName) {
97
165
  endIndex: blockStartIndex + blockNodeInSubDocument.end,
98
166
  };
99
167
  }
100
- function isJsFileFromBrunoCollection(info, fileName) {
101
- return (0, path_1.extname)(fileName) == ".js" && isInABrunoCollection(info, fileName);
102
- }
103
168
  function filterOutDiagnosticsForInbuiltRuntimeFunctions(diagnosticsToFilter, fileContent) {
104
169
  return diagnosticsToFilter.filter(({ start, length }) => start != undefined &&
105
170
  length != undefined &&
106
171
  // Do not show diagnostics for functions that are provided by Bruno at runtime
107
- !["bru", "req", "res", "test", "expect"].includes(fileContent.substring(start, start + length)) &&
172
+ !getNamesForInbuiltRuntimeVarsAndFunctions().includes(fileContent.substring(start, start + length)) &&
108
173
  // Avoid showing incorrect error when using `require`
109
174
  // (the error seems to only occur for short periods of time when typescript type definitions have not been reloaded for a while)
110
175
  fileContent.substring(start, start + length) != "require");
@@ -153,6 +218,12 @@ function isACollectionRootFolder(info, directoryPath) {
153
218
  function isBrunoFile(fileName) {
154
219
  return (0, path_1.extname)(fileName) == ".bru";
155
220
  }
221
+ function getTempJsFileBaseNameWithoutExtension() {
222
+ return "__temp_bru_reference";
223
+ }
224
+ function getNamesForInbuiltRuntimeVarsAndFunctions() {
225
+ return ["bru", "req", "res", "test", "expect"];
226
+ }
156
227
  var TextBlockName;
157
228
  (function (TextBlockName) {
158
229
  TextBlockName["Tests"] = "tests";
package/out/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,+BAAwC;AACxC,qDAAqD;AAErD,SAAS,IAAI,CAAC,QAEb;IACG,SAAS,MAAM,CAAC,IAAgC;QAC5C,0BAA0B;QAC1B,MAAM,KAAK,GAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEtD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CACvB,IAAI,CAAC,eAAe,CACS,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAE,CAAC;YACnC,yEAAyE;YACzE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;YAC9B,yEAAyE;YACzE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,uBAAuB,GAAG,CAAC,QAAQ,EAAE,EAAE;YACzC,OAAO,wBAAwB,CAC3B,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAC1B,CAAC;QACrC,CAAC,CAAC;QAEF,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE;YACxC,OAAO,wBAAwB,CAC3B,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CACxD,CAAC;QACN,CAAC,CAAC;QAEF,KAAK,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC1C,MAAM,kBAAkB,GACpB,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAE5D,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAExC,MAAM,cAAc,GAAG,wBAAwB,CAC3C,IAAI,EACJ,QAAQ,EACR,kBAAkB,CACU,CAAC;YAEjC,2FAA2F;YAC3F,OAAO,SAAS;gBACZ,CAAC,CAAC,cAAc,CAAC,MAAM;gBACjB,qEAAqE;gBACrE,4EAA4E;gBAC5E,kIAAkI;gBAClI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACT,CAAC,IAAI,GAAG,IAAK,IAAI,IAAI,GAAG,IAAK,CAAC;oBAC9B,IAAI,IAAI,KAAM;oBACd,IAAI,IAAI,KAAM,CACrB;gBACH,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,KAAM,CAAC,CAAC,CAAC,kDAAkD;QACjH,CAAC,CAAC;QAEF,4EAA4E;QAC5E,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAClD,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAC9C,QAAQ,EACR,QAAQ,CACX,CAAC;QACN,CAAC,CAAC;QAEF,KAAK,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC7D,MAAM,kBAAkB,GACpB,IAAI,CAAC,eAAe,CAAC,wBAAwB,CACzC,QAAQ,EACR,QAAQ,EACR,OAAO,CACV,CAAC;YAEN,OAAO,kBAAkB,IAAI,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC7D,CAAC,CAAC;oBACI,GAAG,kBAAkB;oBACrB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CACtC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACT,CAAC,IAAI;wBACL,CAAC,IAAI,CAAC,QAAQ;wBACd,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACnB,qCAAqC,EAAE,CAC1C,CACR;iBACJ;gBACH,CAAC,CAAC,kBAAkB,CAAC;QAC7B,CAAC,CAAC;QAEF,KAAK,CAAC,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE;YACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CACxD,QAAQ,EACR,QAAQ,EACR,WAAiC,CACpC,CAAC;YAEF,IACI,IAAA,cAAO,EAAC,QAAQ,CAAC,IAAI,KAAK;gBAC1B,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,EACvC,CAAC;gBACC,OAAO,iBAAiB,CAAC;YAC7B,CAAC;YAED,MAAM,qBAAqB,GACvB,IAAI,CAAC,eAAe,CAAC,uBAAuB,CACxC,QAAQ,EACR,QAAQ,CACX,CAAC;YAEN,MAAM,2BAA2B,GAC7B,qBAAqB;gBACrB,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxC,QAAQ,CAAC,QAAQ,CAAC,qCAAqC,EAAE,CAAC,CAC7D,CAAC;YAEN,OAAO,2BAA2B;gBAC9B,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,mEAAmE,EAAE;gBAClH,CAAC,CAAC,iBAAiB,CAAC;QAC5B,CAAC,CAAC;QAEF,KAAK,CAAC,mBAAmB,GAAG,CACxB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,cAAc,EACd,mCAAmC,EACrC,EAAE;YACA,MAAM,sBAAsB,GACxB,IAAI,CAAC,eAAe,CAAC,mBAAmB,CACpC,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,cAAc,EACd,mCAAmC;gBAC/B,OAAO,mCAAmC,IAAI,SAAS;gBACvD,CAAC,CAAC,mCAAmC;gBACrC,CAAC,CAAC,EAAE,CACX,CAAC;YAEN,OAAO,sBAAsB;gBACzB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;gBACpC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CACzB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,EAAE,CACpC,CAAC,qBAAqB,CAAC,QAAQ,CAC3B,qCAAqC,EAAE,CAC1C,CACR;gBACH,CAAC,CAAC,sBAAsB,CAAC;QACjC,CAAC,CAAC;QAEF,KAAK,CAAC,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CACzD,QAAQ,EACR,QAAQ,CACX,CAAC;YAEF,OAAO,iBAAiB,IAAI,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC5D,CAAC,CAAC,iBAAiB,CAAC,MAAM,CACpB,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAChD,CAAC,iBAAiB,CAAC,QAAQ,CACvB,qCAAqC,EAAE,CAC1C,CACR;gBACH,CAAC,CAAC,iBAAiB,CAAC;QAC5B,CAAC,CAAC;QAEF,KAAK,CAAC,uBAAuB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACnD,MAAM,kBAAkB,GACpB,IAAI,CAAC,eAAe,CAAC,uBAAuB,CACxC,QAAQ,EACR,QAAQ,CACX,CAAC;YAEN,OAAO,kBAAkB,IAAI,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC7D,CAAC,CAAC,kBAAkB,CAAC,MAAM,CACrB,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAChC,CAAC,iBAAiB,CAAC,QAAQ,CACvB,qCAAqC,EAAE,CAC1C,CACR;gBACH,CAAC,CAAC,kBAAkB,CAAC;QAC7B,CAAC,CAAC;QAEF,KAAK,CAAC,yBAAyB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACrD,MAAM,iBAAiB,GACnB,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAC1C,QAAQ,EACR,QAAQ,CACX,CAAC;YAEN,OAAO,iBAAiB;gBACpB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;gBACpC,iBAAiB,CAAC,WAAW;gBAC7B,CAAC,CAAC;oBACI,GAAG,iBAAiB;oBACpB,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAC7C,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAChC,CAAC,iBAAiB,CAAC,QAAQ,CACvB,qCAAqC,EAAE,CAC1C,CACR;iBACJ;gBACH,CAAC,CAAC,iBAAiB,CAAC;QAC5B,CAAC,CAAC;QAEF,KAAK,CAAC,2BAA2B,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACvD,MAAM,kBAAkB,GACpB,IAAI,CAAC,eAAe,CAAC,uBAAuB,CACxC,QAAQ,EACR,QAAQ,CACX,CAAC;YAEN,OAAO,kBAAkB,IAAI,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC7D,CAAC,CAAC,kBAAkB,CAAC,MAAM,CACrB,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAChC,CAAC,iBAAiB,CAAC,QAAQ,CACvB,qCAAqC,EAAE,CAC1C,CACR;gBACH,CAAC,CAAC,kBAAkB,CAAC;QAC7B,CAAC,CAAC;QAEF,KAAK,CAAC,2BAA2B,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACvD,MAAM,sBAAsB,GACxB,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAC5C,QAAQ,EACR,QAAQ,CACX,CAAC;YAEN,OAAO,sBAAsB;gBACzB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;gBACpC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CACzB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,EAAE,CACpC,CAAC,qBAAqB,CAAC,QAAQ,CAC3B,qCAAqC,EAAE,CAC1C,CACR;gBACH,CAAC,CAAC,sBAAsB,CAAC;QACjC,CAAC,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO;QACH,MAAM;KACT,CAAC;AACN,CAAC;AAED,SAAS,wBAAwB,CAC7B,IAAgC,EAChC,QAAgB,EAChB,kBAAiE;IAEjE,IACI,CAAC,WAAW,CAAC,QAAQ,CAAC;QACtB,CAAC,QAAQ,CAAC,QAAQ,CAAC,qCAAqC,EAAE,CAAC,EAC7D,CAAC;QACC,OAAO,kBAAkB,CAAC;IAC9B,CAAC;SAAM,IACH,QAAQ,CAAC,QAAQ,CAAC,qCAAqC,EAAE,CAAC;QAC1D,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,EACtC,CAAC;QACC,gDAAgD;QAChD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAIP,EAAE,CAAC;IAET,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnD,MAAM,eAAe,GAAG,4BAA4B,CAChD,WAAW,EACX,SAAS,CACZ,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,8CAA8C,CACjD,kBAAkB,CAAC,MAAM,CACrB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACV,KAAK,IAAI,SAAS;QAClB,OAAO,CAAC,IAAI,CACR,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC/C,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,QAAQ,CAC/C,CACR,EACD,WAAW,CACd,CAAC;AACN,CAAC;AAED,SAAS,4BAA4B,CACjC,eAAuB,EACvB,SAAwB;IAExB,MAAM,kBAAkB,GAAG,GAAG,CAAC;IAE/B,MAAM,YAAY,GAAG,IAAI,MAAM,CAC3B,QAAQ,SAAS,OAAO,kBAAkB,OAAO,EACjD,GAAG,CACN,CAAC;IACF,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAExD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;IAC3C,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAClC,SAAS,EACT,YAAY,EACZ,EAAE,CAAC,YAAY,CAAC,MAAM,CACzB,CAAC;IAEF,MAAM,sBAAsB,GAAI,UAAsB;SACjD,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC;SACzB,WAAW,CAAC,UAAU,CAAC;SACvB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAErD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACX,uDAAuD,YAAY,EAAE,CACxE,CAAC;IACN,CAAC;IAED,OAAO;QACH,UAAU,EACN,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC;QACrE,QAAQ,EAAE,eAAe,GAAG,sBAAsB,CAAC,GAAG;KACzD,CAAC;AACN,CAAC;AAED,SAAS,8CAA8C,CACnD,mBAAkE,EAClE,WAAmB;IAEnB,OAAO,mBAAmB,CAAC,MAAM,CAC7B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAClB,KAAK,IAAI,SAAS;QAClB,MAAM,IAAI,SAAS;QACnB,8EAA8E;QAC9E,CAAC,yCAAyC,EAAE,CAAC,QAAQ,CACjD,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,CAC/C;QACD,qDAAqD;QACrD,gIAAgI;QAChI,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,SAAS,CAChE,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAAC,IAAgC,EAAE,QAAgB;IACtE,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE5E,IAAI,cAAc,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CACzB,IAAgC,EAChC,QAAgB;IAEhB,IAAI,gBAAgB,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAEvE,OACI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,gBAAgB,CAAC;QACjD,CAAC,gBAAgB;QACjB,IAAA,cAAO,EAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,qFAAqF;MACrI,CAAC;QACC,gBAAgB,GAAG,IAAA,cAAO,EAAC,gBAAgB,CAAC,CAAC;QAC7C,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,SAAS,uBAAuB,CAC5B,IAAgC,EAChC,aAAqB;IAErB,OAAO,IAAI,CAAC,UAAU;SACjB,aAAa,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;SAChE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAEzB,CAAC;YAEhB,OAAO,aAAa,IAAI,aAAa,CAAC,IAAI,IAAI,YAAY,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACjC,OAAO,IAAA,cAAO,EAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;AACvC,CAAC;AAED,SAAS,qCAAqC;IAC1C,OAAO,sBAAsB,CAAC;AAClC,CAAC;AAED,SAAS,yCAAyC;IAC9C,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,IAAK,aAIJ;AAJD,WAAK,aAAa;IACd,gCAAe,CAAA;IACf,wDAAuC,CAAA;IACvC,4DAA2C,CAAA;AAC/C,CAAC,EAJI,aAAa,KAAb,aAAa,QAIjB;AAED,iBAAS,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@zentryc5t/ts-plugin-for-bruno",
3
- "version": "1.0.5",
3
+ "version": "3.0.0",
4
4
  "main": "./out/index.js",
5
5
  "scripts": {
6
- "test": "echo \"Error: no test specified\" && exit 1"
6
+ "compile": "tsc --project tsconfig.json"
7
7
  },
8
8
  "author": "zentryc5t",
9
9
  "license": "MIT",
package/src/index.ts CHANGED
@@ -38,35 +38,212 @@ function init(_modules: {
38
38
  const defaultDiagnostics =
39
39
  info.languageService.getSuggestionDiagnostics(fileName);
40
40
 
41
- if (!isBrunoFile(fileName)) {
42
- return defaultDiagnostics;
43
- }
44
- const allDiagnosticsForCodeBlocks = filterDefaultDiagnostics(
41
+ const isBruFile = isBrunoFile(fileName);
42
+
43
+ const allDiagnostics = filterDefaultDiagnostics(
45
44
  info,
46
45
  fileName,
47
46
  defaultDiagnostics,
48
47
  ) as ts.DiagnosticWithLocation[];
49
48
 
50
49
  // The ts server always reports errors when importing a Javascript function in a .bru file.
51
- return allDiagnosticsForCodeBlocks.filter(
52
- // Do not show diagnostics that only make sense for Typescript files.
53
- // Bru file code blocks should be treated like Javascript functions instead.
54
- // A list of diagnostics can be found here: https://github.com/microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json
55
- ({ code }) =>
56
- (code < 7_043 || code > 7_050) &&
57
- code != 80_001 &&
58
- code != 80_004,
59
- );
50
+ return isBruFile
51
+ ? allDiagnostics.filter(
52
+ // Do not show diagnostics that only make sense for Typescript files.
53
+ // Bru file code blocks should be treated like Javascript functions instead.
54
+ // A list of diagnostics can be found here: https://github.com/microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json
55
+ ({ code }) =>
56
+ (code < 7_043 || code > 7_050) &&
57
+ code != 80_001 &&
58
+ code != 80_004,
59
+ )
60
+ : allDiagnostics.filter(({ code }) => code != 80_001); // Bruno currently only supports CommonJS modules.
60
61
  };
61
62
 
62
- // All hovers are provided by the extension implementation
63
+ // All hovers are provided by the extension implementation for '.bru' files.
63
64
  proxy.getQuickInfoAtPosition = (fileName, position) => {
64
- return isBrunoFile(fileName)
65
- ? undefined
66
- : info.languageService.getQuickInfoAtPosition(
67
- fileName,
68
- position,
69
- );
65
+ if (isBrunoFile(fileName)) {
66
+ return undefined;
67
+ }
68
+
69
+ return info.languageService.getQuickInfoAtPosition(
70
+ fileName,
71
+ position,
72
+ );
73
+ };
74
+
75
+ proxy.getCompletionsAtPosition = (fileName, position, options) => {
76
+ const defaultCompletions =
77
+ info.languageService.getCompletionsAtPosition(
78
+ fileName,
79
+ position,
80
+ options,
81
+ );
82
+
83
+ return defaultCompletions && isInABrunoCollection(info, fileName)
84
+ ? {
85
+ ...defaultCompletions,
86
+ entries: defaultCompletions.entries.filter(
87
+ ({ data }) =>
88
+ !data ||
89
+ !data.fileName ||
90
+ !data.fileName.includes(
91
+ getTempJsFileBaseNameWithoutExtension(),
92
+ ),
93
+ ),
94
+ }
95
+ : defaultCompletions;
96
+ };
97
+
98
+ proxy.getRenameInfo = (fileName, position, preferences) => {
99
+ const defaultRenameInfo = info.languageService.getRenameInfo(
100
+ fileName,
101
+ position,
102
+ preferences as ts.UserPreferences,
103
+ );
104
+
105
+ if (
106
+ extname(fileName) != ".js" ||
107
+ !isInABrunoCollection(info, fileName)
108
+ ) {
109
+ return defaultRenameInfo;
110
+ }
111
+
112
+ const definitionForPosition =
113
+ info.languageService.getDefinitionAtPosition(
114
+ fileName,
115
+ position,
116
+ );
117
+
118
+ const isForInbuiltRuntimeFunction =
119
+ definitionForPosition &&
120
+ definitionForPosition.some(({ fileName }) =>
121
+ fileName.includes(getTempJsFileBaseNameWithoutExtension()),
122
+ );
123
+
124
+ return isForInbuiltRuntimeFunction
125
+ ? { canRename: false, localizedErrorMessage: "You cannot rename elements that are provided by Bruno at runtime." }
126
+ : defaultRenameInfo;
127
+ };
128
+
129
+ proxy.findRenameLocations = (
130
+ fileName,
131
+ position,
132
+ findInStrings,
133
+ findInComments,
134
+ providePrefixAndSuffixTextForRename,
135
+ ) => {
136
+ const defaultRenameLocations =
137
+ info.languageService.findRenameLocations(
138
+ fileName,
139
+ position,
140
+ findInStrings,
141
+ findInComments,
142
+ providePrefixAndSuffixTextForRename &&
143
+ typeof providePrefixAndSuffixTextForRename != "boolean"
144
+ ? providePrefixAndSuffixTextForRename
145
+ : {},
146
+ );
147
+
148
+ return defaultRenameLocations &&
149
+ isInABrunoCollection(info, fileName)
150
+ ? defaultRenameLocations.filter(
151
+ ({ fileName: fileForRenameLocation }) =>
152
+ !fileForRenameLocation.includes(
153
+ getTempJsFileBaseNameWithoutExtension(),
154
+ ),
155
+ )
156
+ : defaultRenameLocations;
157
+ };
158
+
159
+ proxy.findReferences = (fileName, position) => {
160
+ const defaultReferences = info.languageService.findReferences(
161
+ fileName,
162
+ position,
163
+ );
164
+
165
+ return defaultReferences && isInABrunoCollection(info, fileName)
166
+ ? defaultReferences.filter(
167
+ ({ definition: { fileName: fileForDefinition } }) =>
168
+ !fileForDefinition.includes(
169
+ getTempJsFileBaseNameWithoutExtension(),
170
+ ),
171
+ )
172
+ : defaultReferences;
173
+ };
174
+
175
+ proxy.getDefinitionAtPosition = (fileName, position) => {
176
+ const defaultDefinitions =
177
+ info.languageService.getDefinitionAtPosition(
178
+ fileName,
179
+ position,
180
+ );
181
+
182
+ return defaultDefinitions && isInABrunoCollection(info, fileName)
183
+ ? defaultDefinitions.filter(
184
+ ({ fileName: fileForDefinition }) =>
185
+ !fileForDefinition.includes(
186
+ getTempJsFileBaseNameWithoutExtension(),
187
+ ),
188
+ )
189
+ : defaultDefinitions;
190
+ };
191
+
192
+ proxy.getDefinitionAndBoundSpan = (fileName, position) => {
193
+ const defaultDefinition =
194
+ info.languageService.getDefinitionAndBoundSpan(
195
+ fileName,
196
+ position,
197
+ );
198
+
199
+ return defaultDefinition &&
200
+ isInABrunoCollection(info, fileName) &&
201
+ defaultDefinition.definitions
202
+ ? {
203
+ ...defaultDefinition,
204
+ definitions: defaultDefinition.definitions.filter(
205
+ ({ fileName: fileForDefinition }) =>
206
+ !fileForDefinition.includes(
207
+ getTempJsFileBaseNameWithoutExtension(),
208
+ ),
209
+ ),
210
+ }
211
+ : defaultDefinition;
212
+ };
213
+
214
+ proxy.getTypeDefinitionAtPosition = (fileName, position) => {
215
+ const defaultDefinitions =
216
+ info.languageService.getDefinitionAtPosition(
217
+ fileName,
218
+ position,
219
+ );
220
+
221
+ return defaultDefinitions && isInABrunoCollection(info, fileName)
222
+ ? defaultDefinitions.filter(
223
+ ({ fileName: fileForDefinition }) =>
224
+ !fileForDefinition.includes(
225
+ getTempJsFileBaseNameWithoutExtension(),
226
+ ),
227
+ )
228
+ : defaultDefinitions;
229
+ };
230
+
231
+ proxy.getImplementationAtPosition = (fileName, position) => {
232
+ const defaultImplementations =
233
+ info.languageService.getImplementationAtPosition(
234
+ fileName,
235
+ position,
236
+ );
237
+
238
+ return defaultImplementations &&
239
+ isInABrunoCollection(info, fileName)
240
+ ? defaultImplementations.filter(
241
+ ({ fileName: fileForImplementation }) =>
242
+ !fileForImplementation.includes(
243
+ getTempJsFileBaseNameWithoutExtension(),
244
+ ),
245
+ )
246
+ : defaultImplementations;
70
247
  };
71
248
 
72
249
  return proxy;
@@ -82,59 +259,57 @@ function filterDefaultDiagnostics(
82
259
  fileName: string,
83
260
  defaultDiagnostics: (ts.Diagnostic | ts.DiagnosticWithLocation)[],
84
261
  ) {
85
- if (isJsFileFromBrunoCollection(info, fileName)) {
86
- const fileContent = getFileContent(info, fileName);
87
-
88
- if (!fileContent) {
89
- return [];
90
- }
91
-
92
- return filterOutDiagnosticsForInbuiltRuntimeFunctions(
93
- defaultDiagnostics,
94
- fileContent,
95
- );
96
- } else if (isBrunoFile(fileName)) {
97
- const fileContent = getFileContent(info, fileName);
262
+ if (
263
+ !isBrunoFile(fileName) &&
264
+ !fileName.includes(getTempJsFileBaseNameWithoutExtension())
265
+ ) {
266
+ return defaultDiagnostics;
267
+ } else if (
268
+ fileName.includes(getTempJsFileBaseNameWithoutExtension()) &&
269
+ isInABrunoCollection(info, fileName)
270
+ ) {
271
+ // Filter out all diagnostics for temp js files.
272
+ return [];
273
+ }
98
274
 
99
- if (!fileContent) {
100
- return [];
101
- }
275
+ const fileContent = getFileContent(info, fileName);
102
276
 
103
- const indizes: {
104
- blockName: string;
105
- startIndex: number;
106
- endIndex: number;
107
- }[] = [];
277
+ if (!fileContent) {
278
+ return [];
279
+ }
108
280
 
109
- for (const blockName of Object.values(TextBlockName)) {
110
- const indizesForBlock = getCodeBlockStartAndEndIndex(
111
- fileContent,
112
- blockName,
113
- );
281
+ const indizes: {
282
+ blockName: string;
283
+ startIndex: number;
284
+ endIndex: number;
285
+ }[] = [];
114
286
 
115
- if (indizesForBlock) {
116
- indizes.push({ blockName, ...indizesForBlock });
117
- }
118
- }
287
+ for (const blockName of Object.values(TextBlockName)) {
288
+ const indizesForBlock = getCodeBlockStartAndEndIndex(
289
+ fileContent,
290
+ blockName,
291
+ );
119
292
 
120
- if (indizes.length == 0) {
121
- return [];
293
+ if (indizesForBlock) {
294
+ indizes.push({ blockName, ...indizesForBlock });
122
295
  }
296
+ }
123
297
 
124
- return filterOutDiagnosticsForInbuiltRuntimeFunctions(
125
- defaultDiagnostics.filter(
126
- ({ start }) =>
127
- start != undefined &&
128
- indizes.some(
129
- ({ startIndex: blockStart, endIndex: blockEnd }) =>
130
- start >= blockStart && start <= blockEnd,
131
- ),
132
- ),
133
- fileContent,
134
- );
135
- } else {
136
- return defaultDiagnostics;
298
+ if (indizes.length == 0) {
299
+ return [];
137
300
  }
301
+
302
+ return filterOutDiagnosticsForInbuiltRuntimeFunctions(
303
+ defaultDiagnostics.filter(
304
+ ({ start }) =>
305
+ start != undefined &&
306
+ indizes.some(
307
+ ({ startIndex: blockStart, endIndex: blockEnd }) =>
308
+ start >= blockStart && start <= blockEnd,
309
+ ),
310
+ ),
311
+ fileContent,
312
+ );
138
313
  }
139
314
 
140
315
  function getCodeBlockStartAndEndIndex(
@@ -180,13 +355,6 @@ function getCodeBlockStartAndEndIndex(
180
355
  };
181
356
  }
182
357
 
183
- function isJsFileFromBrunoCollection(
184
- info: ts.server.PluginCreateInfo,
185
- fileName: string,
186
- ) {
187
- return extname(fileName) == ".js" && isInABrunoCollection(info, fileName);
188
- }
189
-
190
358
  function filterOutDiagnosticsForInbuiltRuntimeFunctions(
191
359
  diagnosticsToFilter: (ts.Diagnostic | ts.DiagnosticWithLocation)[],
192
360
  fileContent: string,
@@ -196,7 +364,7 @@ function filterOutDiagnosticsForInbuiltRuntimeFunctions(
196
364
  start != undefined &&
197
365
  length != undefined &&
198
366
  // Do not show diagnostics for functions that are provided by Bruno at runtime
199
- !["bru", "req", "res", "test", "expect"].includes(
367
+ !getNamesForInbuiltRuntimeVarsAndFunctions().includes(
200
368
  fileContent.substring(start, start + length),
201
369
  ) &&
202
370
  // Avoid showing incorrect error when using `require`
@@ -267,6 +435,14 @@ function isBrunoFile(fileName: string) {
267
435
  return extname(fileName) == ".bru";
268
436
  }
269
437
 
438
+ function getTempJsFileBaseNameWithoutExtension() {
439
+ return "__temp_bru_reference";
440
+ }
441
+
442
+ function getNamesForInbuiltRuntimeVarsAndFunctions() {
443
+ return ["bru", "req", "res", "test", "expect"];
444
+ }
445
+
270
446
  enum TextBlockName {
271
447
  Tests = "tests",
272
448
  PreRequestScript = "script:pre-request",