@zentryc5t/ts-plugin-for-bruno 3.0.6 → 3.2.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.
Files changed (54) hide show
  1. package/README.md +4 -0
  2. package/out/codeBlocks/bruCodeBlocks.js +71 -0
  3. package/out/codeBlocks/bruCodeBlocks.js.map +1 -0
  4. package/out/codeChanges/codeChanges.js +144 -0
  5. package/out/codeChanges/codeChanges.js.map +1 -0
  6. package/out/collection/collectionFormat.js +69 -0
  7. package/out/collection/collectionFormat.js.map +1 -0
  8. package/out/constants.js +36 -0
  9. package/out/constants.js.map +1 -0
  10. package/out/diagnostics/filterDefaultDiagnostics.js +81 -0
  11. package/out/diagnostics/filterDefaultDiagnostics.js.map +1 -0
  12. package/out/fileContent.js +28 -0
  13. package/out/fileContent.js.map +1 -0
  14. package/out/fileTypes.js +16 -0
  15. package/out/fileTypes.js.map +1 -0
  16. package/out/index.js +18 -260
  17. package/out/index.js.map +1 -1
  18. package/out/languageService/codeChangeOverrides.js +40 -0
  19. package/out/languageService/codeChangeOverrides.js.map +1 -0
  20. package/out/languageService/diagnosticsOverrides.js +41 -0
  21. package/out/languageService/diagnosticsOverrides.js.map +1 -0
  22. package/out/languageService/formattingOverrides.js +18 -0
  23. package/out/languageService/formattingOverrides.js.map +1 -0
  24. package/out/languageService/navigationOverrides.js +98 -0
  25. package/out/languageService/navigationOverrides.js.map +1 -0
  26. package/out/pluginConfiguration.js +29 -0
  27. package/out/pluginConfiguration.js.map +1 -0
  28. package/out/yamlFiles/getIndentationOfScripts.js +24 -0
  29. package/out/yamlFiles/getIndentationOfScripts.js.map +1 -0
  30. package/out/yamlFiles/maskYamlFileContent.js +126 -0
  31. package/out/yamlFiles/maskYamlFileContent.js.map +1 -0
  32. package/out/yamlFiles/maskYamlFilesForTypescriptServer.js +94 -0
  33. package/out/yamlFiles/maskYamlFilesForTypescriptServer.js.map +1 -0
  34. package/package.json +4 -3
  35. package/src/codeBlocks/bruCodeBlocks.ts +66 -0
  36. package/src/codeChanges/codeChanges.ts +182 -0
  37. package/src/collection/collectionFormat.ts +96 -0
  38. package/src/constants.test.ts +12 -0
  39. package/src/constants.ts +31 -0
  40. package/src/diagnostics/filterDefaultDiagnostics.ts +145 -0
  41. package/src/fileContent.ts +38 -0
  42. package/src/fileTypes.ts +13 -0
  43. package/src/index.test.ts +329 -0
  44. package/src/index.ts +24 -496
  45. package/src/languageService/codeChangeOverrides.ts +90 -0
  46. package/src/languageService/diagnosticsOverrides.ts +65 -0
  47. package/src/languageService/formattingOverrides.ts +42 -0
  48. package/src/languageService/navigationOverrides.ts +201 -0
  49. package/src/pluginConfiguration.ts +34 -0
  50. package/src/yamlFiles/getIndentationOfScripts.ts +34 -0
  51. package/src/yamlFiles/maskYamlFileContent.test.ts +213 -0
  52. package/src/yamlFiles/maskYamlFileContent.ts +179 -0
  53. package/src/yamlFiles/maskYamlFilesForTypescriptServer.ts +85 -0
  54. package/tsconfig.json +2 -1
package/out/index.js CHANGED
@@ -1,8 +1,14 @@
1
1
  "use strict";
2
- const path_1 = require("path");
3
- const ts = require("typescript/lib/tsserverlibrary");
2
+ const maskYamlFilesForTypescriptServer_1 = require("./yamlFiles/maskYamlFilesForTypescriptServer");
3
+ const codeChangeOverrides_1 = require("./languageService/codeChangeOverrides");
4
+ const diagnosticsOverrides_1 = require("./languageService/diagnosticsOverrides");
5
+ const formattingOverrides_1 = require("./languageService/formattingOverrides");
6
+ const navigationOverrides_1 = require("./languageService/navigationOverrides");
7
+ const pluginConfiguration_1 = require("./pluginConfiguration");
4
8
  function init(_modules) {
9
+ const configuration = new pluginConfiguration_1.PluginConfiguration();
5
10
  function create(info) {
11
+ (0, maskYamlFilesForTypescriptServer_1.maskYamlFilesForTypescriptServer)(info, configuration);
6
12
  // Set up decorator object
7
13
  const proxy = Object.create(null);
8
14
  for (const k of Object.keys(info.languageService)) {
@@ -12,269 +18,21 @@ function init(_modules) {
12
18
  // @ts-expect-error - JS runtime trickery which is tricky to type tersely
13
19
  x.apply(info.languageService, args);
14
20
  }
15
- proxy.getSyntacticDiagnostics = (fileName) => {
16
- return filterDefaultDiagnostics(info, fileName, info.languageService.getSyntacticDiagnostics(fileName));
17
- };
18
- proxy.getSemanticDiagnostics = (fileName) => {
19
- const isBruFile = isBrunoFile(fileName);
20
- const allDiagnostics = filterDefaultDiagnostics(info, fileName, info.languageService.getSemanticDiagnostics(fileName));
21
- // The ts server always reports errors when importing a Javascript function in a .bru file.
22
- return isBruFile
23
- ? allDiagnostics.filter(
24
- // Do not show diagnostics that only make sense for Typescript files.
25
- // Bru file code blocks should be treated like Javascript functions instead.
26
- // A list of diagnostics can be found here: https://github.com/microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json
27
- ({ code }) => ![7_006, 7_031, 18_046].includes(code))
28
- : allDiagnostics;
29
- };
30
- proxy.getSuggestionDiagnostics = (fileName) => {
31
- const defaultDiagnostics = info.languageService.getSuggestionDiagnostics(fileName);
32
- const isBruFile = isBrunoFile(fileName);
33
- const allDiagnostics = filterDefaultDiagnostics(info, fileName, defaultDiagnostics);
34
- // The ts server always reports errors when importing a Javascript function in a .bru file.
35
- return isBruFile
36
- ? allDiagnostics.filter(
37
- // Do not show diagnostics that only make sense for Typescript files.
38
- // Bru file code blocks should be treated like Javascript functions instead.
39
- // A list of diagnostics can be found here: https://github.com/microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json
40
- ({ code }) => (code < 7_043 || code > 7_050) &&
41
- code != 80_001 &&
42
- code != 80_004)
43
- : isInABrunoCollection(info, fileName)
44
- ? allDiagnostics.filter(({ code }) => code != 80_001)
45
- : allDiagnostics; // Bruno currently only supports CommonJS modules.)
46
- };
47
- // All hovers are provided by the extension implementation for '.bru' files.
48
- proxy.getQuickInfoAtPosition = (fileName, position) => {
49
- if (isBrunoFile(fileName)) {
50
- return undefined;
51
- }
52
- return info.languageService.getQuickInfoAtPosition(fileName, position);
53
- };
54
- proxy.getCompletionsAtPosition = (fileName, position, options) => {
55
- // All completions are provided by the extension implementation for '.bru' files.
56
- if (isBrunoFile(fileName)) {
57
- return undefined;
58
- }
59
- const defaultCompletions = info.languageService.getCompletionsAtPosition(fileName, position, options);
60
- return defaultCompletions && isInABrunoCollection(info, fileName)
61
- ? {
62
- ...defaultCompletions,
63
- entries: defaultCompletions.entries.filter(({ data }) => !data ||
64
- !data.fileName ||
65
- !data.fileName.includes(getTempJsFileBaseNameWithoutExtension())),
66
- }
67
- : defaultCompletions;
68
- };
69
- proxy.getRenameInfo = (fileName, position, preferences) => {
70
- const defaultRenameInfo = info.languageService.getRenameInfo(fileName, position, preferences);
71
- if ((0, path_1.extname)(fileName) != ".js" ||
72
- !isInABrunoCollection(info, fileName)) {
73
- return defaultRenameInfo;
74
- }
75
- const definitionForPosition = info.languageService.getDefinitionAtPosition(fileName, position);
76
- const isForInbuiltRuntimeFunction = definitionForPosition &&
77
- definitionForPosition.some(({ fileName }) => fileName.includes(getTempJsFileBaseNameWithoutExtension()));
78
- return isForInbuiltRuntimeFunction
79
- ? {
80
- canRename: false,
81
- localizedErrorMessage: "You cannot rename elements that are provided by Bruno at runtime.",
82
- }
83
- : defaultRenameInfo;
84
- };
85
- proxy.findRenameLocations = (fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename) => {
86
- const defaultRenameLocations = info.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename &&
87
- typeof providePrefixAndSuffixTextForRename != "boolean"
88
- ? providePrefixAndSuffixTextForRename
89
- : {});
90
- return defaultRenameLocations &&
91
- isInABrunoCollection(info, fileName)
92
- ? defaultRenameLocations.filter(({ fileName: fileForRenameLocation }) => !fileForRenameLocation.includes(getTempJsFileBaseNameWithoutExtension()))
93
- : defaultRenameLocations;
94
- };
95
- proxy.findReferences = (fileName, position) => {
96
- const defaultReferences = info.languageService.findReferences(fileName, position);
97
- return defaultReferences && isInABrunoCollection(info, fileName)
98
- ? defaultReferences.filter(({ definition: { fileName: fileForDefinition } }) => !fileForDefinition.includes(getTempJsFileBaseNameWithoutExtension()))
99
- : defaultReferences;
100
- };
101
- proxy.getDefinitionAtPosition = (fileName, position) => {
102
- const defaultDefinitions = info.languageService.getDefinitionAtPosition(fileName, position);
103
- return defaultDefinitions && isInABrunoCollection(info, fileName)
104
- ? defaultDefinitions.filter(({ fileName: fileForDefinition }) => !fileForDefinition.includes(getTempJsFileBaseNameWithoutExtension()))
105
- : defaultDefinitions;
106
- };
107
- proxy.getDefinitionAndBoundSpan = (fileName, position) => {
108
- const defaultDefinition = info.languageService.getDefinitionAndBoundSpan(fileName, position);
109
- return defaultDefinition &&
110
- isInABrunoCollection(info, fileName) &&
111
- defaultDefinition.definitions
112
- ? {
113
- ...defaultDefinition,
114
- definitions: defaultDefinition.definitions.filter(({ fileName: fileForDefinition }) => !fileForDefinition.includes(getTempJsFileBaseNameWithoutExtension())),
115
- }
116
- : defaultDefinition;
117
- };
118
- proxy.getTypeDefinitionAtPosition = (fileName, position) => {
119
- const defaultDefinitions = info.languageService.getDefinitionAtPosition(fileName, position);
120
- return defaultDefinitions && isInABrunoCollection(info, fileName)
121
- ? defaultDefinitions.filter(({ fileName: fileForDefinition }) => !fileForDefinition.includes(getTempJsFileBaseNameWithoutExtension()))
122
- : defaultDefinitions;
123
- };
124
- proxy.getImplementationAtPosition = (fileName, position) => {
125
- const defaultImplementations = info.languageService.getImplementationAtPosition(fileName, position);
126
- return defaultImplementations &&
127
- isInABrunoCollection(info, fileName)
128
- ? defaultImplementations.filter(({ fileName: fileForImplementation }) => !fileForImplementation.includes(getTempJsFileBaseNameWithoutExtension()))
129
- : defaultImplementations;
130
- };
21
+ (0, diagnosticsOverrides_1.overrideDiagnostics)(info, proxy);
22
+ (0, navigationOverrides_1.overrideHoverAndCompletions)(info, proxy);
23
+ (0, navigationOverrides_1.overrideRename)(info, proxy);
24
+ (0, navigationOverrides_1.overrideReferencesAndDefinitions)(info, proxy);
25
+ (0, codeChangeOverrides_1.overrideCodeChanges)(info, proxy);
26
+ (0, formattingOverrides_1.overrideFormatting)(info, proxy);
131
27
  return proxy;
132
28
  }
133
- return {
134
- create,
135
- };
136
- }
137
- function filterDefaultDiagnostics(info, fileName, defaultDiagnostics) {
138
- if (!isBrunoFile(fileName)) {
139
- return (0, path_1.extname)(fileName) == ".js"
140
- ? filterDiagnosticsForJsFile(info, fileName, defaultDiagnostics)
141
- : defaultDiagnostics;
142
- }
143
- const fileContent = getFileContent(info, fileName);
144
- if (!fileContent) {
145
- return [];
146
- }
147
- const indizes = [];
148
- for (const blockName of Object.values(TextBlockName)) {
149
- const indizesForBlock = getCodeBlockStartAndEndIndex(fileContent, blockName);
150
- if (indizesForBlock) {
151
- indizes.push({ blockName, ...indizesForBlock });
152
- }
153
- }
154
- if (indizes.length == 0) {
155
- return [];
156
- }
157
- return filterOutDiagnosticsForInbuiltRuntimeFunctions(defaultDiagnostics.filter(({ start }) => start != undefined &&
158
- indizes.some(({ startIndex: blockStart, endIndex: blockEnd }) => start >= blockStart && start <= blockEnd)), fileContent);
159
- }
160
- function filterDiagnosticsForJsFile(info, fileName, defaultDiagnostics) {
161
- if (fileName.includes(getTempJsFileBaseNameWithoutExtension())) {
162
- // Filter out all diagnostics for temp js files.
163
- return [];
164
- }
165
- else if (!isInABrunoCollection(info, fileName)) {
166
- return defaultDiagnostics;
167
- }
168
- const fileContent = getFileContent(info, fileName);
169
- if (!fileContent) {
170
- return [];
171
- }
172
- const filteredDiagnostics = filterOutDiagnosticsForInbuiltRuntimeFunctions(defaultDiagnostics, fileContent);
173
- return filteredDiagnostics.map((diagnostic) => {
174
- const { relatedInformation } = diagnostic;
175
- const referencesTempJsFile = relatedInformation &&
176
- relatedInformation.some(({ file }) => file &&
177
- file.fileName.endsWith(`${getTempJsFileBaseNameWithoutExtension()}.js`));
178
- return referencesTempJsFile
179
- ? { ...diagnostic, relatedInformation: undefined }
180
- : diagnostic;
181
- });
182
- }
183
- function getCodeBlockStartAndEndIndex(fullTextContent, blockName) {
184
- const openingBracketChar = "{";
185
- const startPattern = new RegExp(`^\\s*${blockName}\\s*${openingBracketChar}\\s*$`, "m");
186
- const startMatches = startPattern.exec(fullTextContent);
187
- if (!startMatches || startMatches.length == 0) {
188
- return undefined;
189
- }
190
- const blockStartIndex = startMatches.index;
191
- const remainingDoc = fullTextContent.substring(blockStartIndex);
192
- const sourceFile = ts.createSourceFile("test.js", remainingDoc, ts.ScriptTarget.ES2020);
193
- const blockNodeInSubDocument = sourceFile
194
- .getChildAt(0, sourceFile)
195
- .getChildren(sourceFile)
196
- .find(({ kind }) => kind == ts.SyntaxKind.Block);
197
- if (!blockNodeInSubDocument) {
198
- throw new Error(`Could not find code block within given subdocument: ${remainingDoc}`);
29
+ function onConfigurationChanged(config) {
30
+ configuration.update(config);
199
31
  }
200
32
  return {
201
- startIndex: blockStartIndex + startMatches[0].indexOf(openingBracketChar) + 1,
202
- endIndex: blockStartIndex + blockNodeInSubDocument.end,
33
+ create,
34
+ onConfigurationChanged,
203
35
  };
204
36
  }
205
- function filterOutDiagnosticsForInbuiltRuntimeFunctions(diagnosticsToFilter, fileContent) {
206
- return filterOutMisleadingDiagnosticsForOtherTestFrameworks(diagnosticsToFilter).filter(({ start, length }) => start != undefined &&
207
- length != undefined &&
208
- // Do not show diagnostics for functions that are provided by Bruno at runtime
209
- !getNamesForInbuiltRuntimeVarsAndFunctions().includes(fileContent.substring(start, start + length)) &&
210
- // Avoid showing incorrect error when using `require`
211
- // (the error seems to only occur for short periods of time when typescript type definitions have not been reloaded for a while)
212
- fileContent.substring(start, start + length) != "require");
213
- }
214
- function filterOutMisleadingDiagnosticsForOtherTestFrameworks(diagnostics) {
215
- return diagnostics.filter(({ code, messageText }) => {
216
- const errorText = typeof messageText == "string"
217
- ? messageText
218
- : messageText.messageText;
219
- // When using global type definitions for Jest, the TS server expects every `expect` statement to use the matchers for Jest.
220
- return code != 2_339 || !errorText.includes("JestMatchers<any>");
221
- });
222
- }
223
- function getFileContent(info, fileName) {
224
- const scriptSnapshot = info.languageServiceHost.getScriptSnapshot(fileName);
225
- if (scriptSnapshot) {
226
- return scriptSnapshot.getText(0, scriptSnapshot.getLength());
227
- }
228
- else {
229
- return info.languageServiceHost.readFile(fileName);
230
- }
231
- }
232
- function isInABrunoCollection(info, fileName) {
233
- let currentDirectory = (0, path_1.dirname)(fileName);
234
- let isCollectionRoot = isACollectionRootFolder(info, currentDirectory);
235
- while (info.serverHost.directoryExists(currentDirectory) &&
236
- !isCollectionRoot &&
237
- (0, path_1.dirname)(currentDirectory) != currentDirectory // dirname of a base folder in the file system seems to return the input folder again
238
- ) {
239
- currentDirectory = (0, path_1.dirname)(currentDirectory);
240
- isCollectionRoot = isACollectionRootFolder(info, currentDirectory);
241
- }
242
- return isCollectionRoot;
243
- }
244
- function isACollectionRootFolder(info, directoryPath) {
245
- return info.serverHost
246
- .readDirectory(directoryPath, undefined, undefined, undefined, 1)
247
- .some((fileName) => {
248
- if (!fileName.endsWith("bruno.json")) {
249
- return false;
250
- }
251
- const content = info.languageServiceHost.readFile(fileName);
252
- if (!content) {
253
- return false;
254
- }
255
- try {
256
- const parsedContent = JSON.parse(content);
257
- return parsedContent && parsedContent.type == "collection";
258
- }
259
- catch {
260
- return false;
261
- }
262
- });
263
- }
264
- function isBrunoFile(fileName) {
265
- return (0, path_1.extname)(fileName) == ".bru";
266
- }
267
- function getTempJsFileBaseNameWithoutExtension() {
268
- return "__temp_bru_reference";
269
- }
270
- function getNamesForInbuiltRuntimeVarsAndFunctions() {
271
- return ["bru", "req", "res", "test", "expect"];
272
- }
273
- var TextBlockName;
274
- (function (TextBlockName) {
275
- TextBlockName["Tests"] = "tests";
276
- TextBlockName["PreRequestScript"] = "script:pre-request";
277
- TextBlockName["PostResponseScript"] = "script:post-response";
278
- })(TextBlockName || (TextBlockName = {}));
279
37
  module.exports = init;
280
38
  //# sourceMappingURL=index.js.map
package/out/index.js.map CHANGED
@@ -1 +1 @@
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,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAExC,MAAM,cAAc,GAAG,wBAAwB,CAC3C,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CACxD,CAAC;YAEF,2FAA2F;YAC3F,OAAO,SAAS;gBACZ,CAAC,CAAC,cAAc,CAAC,MAAM;gBACjB,qEAAqE;gBACrE,4EAA4E;gBAC5E,kIAAkI;gBAClI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CACvD;gBACH,CAAC,CAAC,cAAc,CAAC;QACzB,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,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC;oBAC9B,IAAI,IAAI,MAAM;oBACd,IAAI,IAAI,MAAM,CACrB;gBACH,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;oBACpC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC;oBACrD,CAAC,CAAC,cAAc,CAAC,CAAC,mDAAmD;QAC/E,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,iFAAiF;YACjF,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,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;oBACI,SAAS,EAAE,KAAK;oBAChB,qBAAqB,EACjB,mEAAmE;iBAC1E;gBACH,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,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,IAAA,cAAO,EAAC,QAAQ,CAAC,IAAI,KAAK;YAC7B,CAAC,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,CAAC;YAChE,CAAC,CAAC,kBAAkB,CAAC;IAC7B,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,0BAA0B,CAC/B,IAAgC,EAChC,QAAgB,EAChB,kBAAiE;IAEjE,IAAI,QAAQ,CAAC,QAAQ,CAAC,qCAAqC,EAAE,CAAC,EAAE,CAAC;QAC7D,gDAAgD;QAChD,OAAO,EAAE,CAAC;IACd,CAAC;SAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC/C,OAAO,kBAAkB,CAAC;IAC9B,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,mBAAmB,GAAG,8CAA8C,CACtE,kBAAkB,EAClB,WAAW,CACd,CAAC;IAEF,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAC1C,MAAM,EAAE,kBAAkB,EAAE,GAAG,UAAU,CAAC;QAE1C,MAAM,oBAAoB,GACtB,kBAAkB;YAClB,kBAAkB,CAAC,IAAI,CACnB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACT,IAAI;gBACJ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,GAAG,qCAAqC,EAAE,KAAK,CAClD,CACR,CAAC;QAEN,OAAO,oBAAoB;YACvB,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE;YAClD,CAAC,CAAC,UAAU,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,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,oDAAoD,CACvD,mBAAmB,CACtB,CAAC,MAAM,CACJ,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,oDAAoD,CACzD,WAA0D;IAE1D,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;QAChD,MAAM,SAAS,GACX,OAAO,WAAW,IAAI,QAAQ;YAC1B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC;QAElC,4HAA4H;QAC5H,OAAO,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACP,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,mGAAgG;AAChG,+EAA4E;AAC5E,iFAA6E;AAC7E,+EAA2E;AAC3E,+EAI+C;AAC/C,+DAA0E;AAE1E,SAAS,IAAI,CAAC,QAEb;IACG,MAAM,aAAa,GAAG,IAAI,yCAAmB,EAAE,CAAC;IAEhD,SAAS,MAAM,CAAC,IAAgC;QAC5C,IAAA,mEAAgC,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAEtD,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,IAAA,0CAAmB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,IAAA,iDAA2B,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,IAAA,oCAAc,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5B,IAAA,sDAAgC,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAA,yCAAmB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,IAAA,wCAAkB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEhC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,sBAAsB,CAAC,MAAyC;QACrE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,OAAO;QACH,MAAM;QACN,sBAAsB;KACzB,CAAC;AACN,CAAC;AAED,iBAAS,IAAI,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.overrideCodeChanges = overrideCodeChanges;
4
+ const codeChanges_1 = require("../codeChanges/codeChanges");
5
+ // Some code fixes and refactorings insert code outside of code blocks (e.g. an import at the top of the file),
6
+ // which would corrupt the content of '.bru' and '.yml' files.
7
+ function overrideCodeChanges(info, proxy) {
8
+ proxy.getCodeFixesAtPosition = (fileName, start, end, errorCodes, formatOptions, preferences) => {
9
+ const areAllChangesWithinCodeBlocks = (0, codeChanges_1.createCheckForChangesWithinCodeBlocks)(info);
10
+ return info.languageService
11
+ .getCodeFixesAtPosition(fileName, start, end, errorCodes, (0, codeChanges_1.getFormatOptionsForFile)(info, fileName, formatOptions, {
12
+ start,
13
+ end,
14
+ }), preferences)
15
+ .filter(({ changes }) => areAllChangesWithinCodeBlocks(changes));
16
+ };
17
+ proxy.getCombinedCodeFix = (scope, fixId, formatOptions, preferences) => {
18
+ const combinedFix = info.languageService.getCombinedCodeFix(scope, fixId, (0, codeChanges_1.getFormatOptionsForFile)(info, scope.fileName, formatOptions, {
19
+ start: 0,
20
+ end: Number.MAX_SAFE_INTEGER,
21
+ }), preferences);
22
+ // Only applying some of the changes could result in invalid code.
23
+ return (0, codeChanges_1.createCheckForChangesWithinCodeBlocks)(info)(combinedFix.changes)
24
+ ? combinedFix
25
+ : { changes: [] };
26
+ };
27
+ proxy.getEditsForRefactor = (fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, interactiveRefactorArguments) => {
28
+ const refactorEdits = info.languageService.getEditsForRefactor(fileName, (0, codeChanges_1.getFormatOptionsForFile)(info, fileName, formatOptions, typeof positionOrRange == "number"
29
+ ? { start: positionOrRange, end: positionOrRange }
30
+ : {
31
+ start: positionOrRange.pos,
32
+ end: positionOrRange.end,
33
+ }), positionOrRange, refactorName, actionName, preferences, interactiveRefactorArguments);
34
+ return refactorEdits &&
35
+ (0, codeChanges_1.createCheckForChangesWithinCodeBlocks)(info)(refactorEdits.edits)
36
+ ? refactorEdits
37
+ : undefined;
38
+ };
39
+ }
40
+ //# sourceMappingURL=codeChangeOverrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeChangeOverrides.js","sourceRoot":"","sources":["../../src/languageService/codeChangeOverrides.ts"],"names":[],"mappings":";;AAQA,kDAiFC;AAxFD,4DAGoC;AAEpC,+GAA+G;AAC/G,8DAA8D;AAC9D,SAAgB,mBAAmB,CAC/B,IAAgC,EAChC,KAAyB;IAEzB,KAAK,CAAC,sBAAsB,GAAG,CAC3B,QAAQ,EACR,KAAK,EACL,GAAG,EACH,UAAU,EACV,aAAa,EACb,WAAW,EACb,EAAE;QACA,MAAM,6BAA6B,GAC/B,IAAA,mDAAqC,EAAC,IAAI,CAAC,CAAC;QAEhD,OAAO,IAAI,CAAC,eAAe;aACtB,sBAAsB,CACnB,QAAQ,EACR,KAAK,EACL,GAAG,EACH,UAAU,EACV,IAAA,qCAAuB,EAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE;YACnD,KAAK;YACL,GAAG;SACN,CAAC,EACF,WAAW,CACd;aACA,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC;IAEF,KAAK,CAAC,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CACvD,KAAK,EACL,KAAK,EACL,IAAA,qCAAuB,EAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE;YACzD,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,MAAM,CAAC,gBAAgB;SAC/B,CAAC,EACF,WAAW,CACd,CAAC;QAEF,kEAAkE;QAClE,OAAO,IAAA,mDAAqC,EAAC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;YACnE,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,KAAK,CAAC,mBAAmB,GAAG,CACxB,QAAQ,EACR,aAAa,EACb,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EACX,4BAA4B,EAC9B,EAAE;QACA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAC1D,QAAQ,EACR,IAAA,qCAAuB,EACnB,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,OAAO,eAAe,IAAI,QAAQ;YAC9B,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE;YAClD,CAAC,CAAC;gBACI,KAAK,EAAE,eAAe,CAAC,GAAG;gBAC1B,GAAG,EAAE,eAAe,CAAC,GAAG;aAC3B,CACV,EACD,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EACX,4BAA4B,CAC/B,CAAC;QAEF,OAAO,aAAa;YAChB,IAAA,mDAAqC,EAAC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;YAChE,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,SAAS,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.overrideDiagnostics = overrideDiagnostics;
4
+ const collectionFormat_1 = require("../collection/collectionFormat");
5
+ const filterDefaultDiagnostics_1 = require("../diagnostics/filterDefaultDiagnostics");
6
+ const fileTypes_1 = require("../fileTypes");
7
+ function overrideDiagnostics(info, proxy) {
8
+ proxy.getSyntacticDiagnostics = (fileName) => {
9
+ return (0, filterDefaultDiagnostics_1.filterDefaultDiagnostics)(info, fileName, info.languageService.getSyntacticDiagnostics(fileName));
10
+ };
11
+ proxy.getSemanticDiagnostics = (fileName) => {
12
+ const hasCodeBlocks = (0, fileTypes_1.hasEmbeddedCodeBlocks)(fileName);
13
+ const allDiagnostics = (0, filterDefaultDiagnostics_1.filterDefaultDiagnostics)(info, fileName, info.languageService.getSemanticDiagnostics(fileName));
14
+ // The ts server always reports errors when importing a Javascript function in a .bru or .yml file.
15
+ return hasCodeBlocks
16
+ ? allDiagnostics.filter(
17
+ // Do not show diagnostics that only make sense for Typescript files.
18
+ // Code blocks should be treated like Javascript functions instead.
19
+ // A list of diagnostics can be found here: https://github.com/microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json
20
+ ({ code }) => ![7_006, 7_031, 18_046].includes(code))
21
+ : allDiagnostics;
22
+ };
23
+ proxy.getSuggestionDiagnostics = (fileName) => {
24
+ const defaultDiagnostics = info.languageService.getSuggestionDiagnostics(fileName);
25
+ const hasCodeBlocks = (0, fileTypes_1.hasEmbeddedCodeBlocks)(fileName);
26
+ const allDiagnostics = (0, filterDefaultDiagnostics_1.filterDefaultDiagnostics)(info, fileName, defaultDiagnostics);
27
+ // The ts server always reports errors when importing a Javascript function in a .bru or .yml file.
28
+ return hasCodeBlocks
29
+ ? allDiagnostics.filter(
30
+ // Do not show diagnostics that only make sense for Typescript files.
31
+ // Code blocks should be treated like Javascript functions instead.
32
+ // A list of diagnostics can be found here: https://github.com/microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json
33
+ ({ code }) => (code < 7_043 || code > 7_050) &&
34
+ code != 80_001 &&
35
+ code != 80_004)
36
+ : (0, collectionFormat_1.isInABrunoCollection)(info, fileName)
37
+ ? allDiagnostics.filter(({ code }) => code != 80_001)
38
+ : allDiagnostics; // Bruno currently only supports CommonJS modules.)
39
+ };
40
+ }
41
+ //# sourceMappingURL=diagnosticsOverrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticsOverrides.js","sourceRoot":"","sources":["../../src/languageService/diagnosticsOverrides.ts"],"names":[],"mappings":";;AAKA,kDA2DC;AA/DD,qEAAsE;AACtE,sFAAmF;AACnF,4CAAqD;AAErD,SAAgB,mBAAmB,CAC/B,IAAgC,EAChC,KAAyB;IAEzB,KAAK,CAAC,uBAAuB,GAAG,CAAC,QAAQ,EAAE,EAAE;QACzC,OAAO,IAAA,mDAAwB,EAC3B,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAC1B,CAAC;IACrC,CAAC,CAAC;IAEF,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE;QACxC,MAAM,aAAa,GAAG,IAAA,iCAAqB,EAAC,QAAQ,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,IAAA,mDAAwB,EAC3C,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CACxD,CAAC;QAEF,mGAAmG;QACnG,OAAO,aAAa;YAChB,CAAC,CAAC,cAAc,CAAC,MAAM;YACjB,qEAAqE;YACrE,mEAAmE;YACnE,kIAAkI;YAClI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CACvD;YACH,CAAC,CAAC,cAAc,CAAC;IACzB,CAAC,CAAC;IAEF,KAAK,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC1C,MAAM,kBAAkB,GACpB,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAE5D,MAAM,aAAa,GAAG,IAAA,iCAAqB,EAAC,QAAQ,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,IAAA,mDAAwB,EAC3C,IAAI,EACJ,QAAQ,EACR,kBAAkB,CACU,CAAC;QAEjC,mGAAmG;QACnG,OAAO,aAAa;YAChB,CAAC,CAAC,cAAc,CAAC,MAAM;YACjB,qEAAqE;YACrE,mEAAmE;YACnE,kIAAkI;YAClI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACT,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC;gBAC9B,IAAI,IAAI,MAAM;gBACd,IAAI,IAAI,MAAM,CACrB;YACH,CAAC,CAAC,IAAA,uCAAoB,EAAC,IAAI,EAAE,QAAQ,CAAC;gBACpC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC;gBACrD,CAAC,CAAC,cAAc,CAAC,CAAC,mDAAmD;IAC/E,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.overrideFormatting = overrideFormatting;
4
+ const fileTypes_1 = require("../fileTypes");
5
+ // The Typescript server only sees the masked content of Yaml files (see `maskYamlFilesForTypescriptServer`).
6
+ // Formatting edits are computed for the masked content and would therefore remove the Yaml content outside of scripts.
7
+ function overrideFormatting(info, proxy) {
8
+ proxy.getFormattingEditsForDocument = (fileName, options) => (0, fileTypes_1.isYamlFile)(fileName)
9
+ ? []
10
+ : info.languageService.getFormattingEditsForDocument(fileName, options);
11
+ proxy.getFormattingEditsForRange = (fileName, start, end, options) => (0, fileTypes_1.isYamlFile)(fileName)
12
+ ? []
13
+ : info.languageService.getFormattingEditsForRange(fileName, start, end, options);
14
+ proxy.getFormattingEditsAfterKeystroke = (fileName, position, key, options) => (0, fileTypes_1.isYamlFile)(fileName)
15
+ ? []
16
+ : info.languageService.getFormattingEditsAfterKeystroke(fileName, position, key, options);
17
+ }
18
+ //# sourceMappingURL=formattingOverrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formattingOverrides.js","sourceRoot":"","sources":["../../src/languageService/formattingOverrides.ts"],"names":[],"mappings":";;AAKA,gDAoCC;AAxCD,4CAA0C;AAE1C,6GAA6G;AAC7G,uHAAuH;AACvH,SAAgB,kBAAkB,CAC9B,IAAgC,EAChC,KAAyB;IAEzB,KAAK,CAAC,6BAA6B,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CACxD,IAAA,sBAAU,EAAC,QAAQ,CAAC;QAChB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAC9C,QAAQ,EACR,OAAO,CACV,CAAC;IAEZ,KAAK,CAAC,0BAA0B,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CACjE,IAAA,sBAAU,EAAC,QAAQ,CAAC;QAChB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAC3C,QAAQ,EACR,KAAK,EACL,GAAG,EACH,OAAO,CACV,CAAC;IAEZ,KAAK,CAAC,gCAAgC,GAAG,CACrC,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACT,EAAE,CACA,IAAA,sBAAU,EAAC,QAAQ,CAAC;QAChB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gCAAgC,CACjD,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,CACV,CAAC;AAChB,CAAC"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.overrideHoverAndCompletions = overrideHoverAndCompletions;
4
+ exports.overrideRename = overrideRename;
5
+ exports.overrideReferencesAndDefinitions = overrideReferencesAndDefinitions;
6
+ const path_1 = require("path");
7
+ const collectionFormat_1 = require("../collection/collectionFormat");
8
+ const constants_1 = require("../constants");
9
+ const fileTypes_1 = require("../fileTypes");
10
+ function overrideHoverAndCompletions(info, proxy) {
11
+ // All hovers are provided by the extension implementation for '.bru' and '.yml' files.
12
+ proxy.getQuickInfoAtPosition = (fileName, position) => {
13
+ if ((0, fileTypes_1.hasEmbeddedCodeBlocks)(fileName)) {
14
+ return undefined;
15
+ }
16
+ return info.languageService.getQuickInfoAtPosition(fileName, position);
17
+ };
18
+ proxy.getCompletionsAtPosition = (fileName, position, options) => {
19
+ // All completions are provided by the extension implementation for '.bru' and '.yml' files.
20
+ if ((0, fileTypes_1.hasEmbeddedCodeBlocks)(fileName)) {
21
+ return undefined;
22
+ }
23
+ const defaultCompletions = info.languageService.getCompletionsAtPosition(fileName, position, options);
24
+ return defaultCompletions && (0, collectionFormat_1.isInABrunoCollection)(info, fileName)
25
+ ? {
26
+ ...defaultCompletions,
27
+ entries: defaultCompletions.entries.filter(({ data }) => !data ||
28
+ !data.fileName ||
29
+ !data.fileName.includes((0, constants_1.getTempJsFileBaseNameWithoutExtension)())),
30
+ }
31
+ : defaultCompletions;
32
+ };
33
+ }
34
+ function overrideRename(info, proxy) {
35
+ proxy.getRenameInfo = (fileName, position, preferences) => {
36
+ const defaultRenameInfo = info.languageService.getRenameInfo(fileName, position, preferences);
37
+ if ((0, path_1.extname)(fileName) != ".js" ||
38
+ !(0, collectionFormat_1.isInABrunoCollection)(info, fileName)) {
39
+ return defaultRenameInfo;
40
+ }
41
+ const definitionForPosition = info.languageService.getDefinitionAtPosition(fileName, position);
42
+ const isForInbuiltRuntimeFunction = definitionForPosition &&
43
+ definitionForPosition.some(({ fileName }) => fileName.includes((0, constants_1.getTempJsFileBaseNameWithoutExtension)()));
44
+ return isForInbuiltRuntimeFunction
45
+ ? {
46
+ canRename: false,
47
+ localizedErrorMessage: "You cannot rename elements that are provided by Bruno at runtime.",
48
+ }
49
+ : defaultRenameInfo;
50
+ };
51
+ proxy.findRenameLocations = (fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename) => {
52
+ const defaultRenameLocations = info.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename &&
53
+ typeof providePrefixAndSuffixTextForRename != "boolean"
54
+ ? providePrefixAndSuffixTextForRename
55
+ : {});
56
+ return defaultRenameLocations && (0, collectionFormat_1.isInABrunoCollection)(info, fileName)
57
+ ? defaultRenameLocations.filter(({ fileName: fileForRenameLocation }) => !fileForRenameLocation.includes((0, constants_1.getTempJsFileBaseNameWithoutExtension)()))
58
+ : defaultRenameLocations;
59
+ };
60
+ }
61
+ function overrideReferencesAndDefinitions(info, proxy) {
62
+ proxy.findReferences = (fileName, position) => {
63
+ const defaultReferences = info.languageService.findReferences(fileName, position);
64
+ return defaultReferences && (0, collectionFormat_1.isInABrunoCollection)(info, fileName)
65
+ ? defaultReferences.filter(({ definition: { fileName: fileForDefinition } }) => !fileForDefinition.includes((0, constants_1.getTempJsFileBaseNameWithoutExtension)()))
66
+ : defaultReferences;
67
+ };
68
+ proxy.getDefinitionAtPosition = (fileName, position) => {
69
+ const defaultDefinitions = info.languageService.getDefinitionAtPosition(fileName, position);
70
+ return defaultDefinitions && (0, collectionFormat_1.isInABrunoCollection)(info, fileName)
71
+ ? defaultDefinitions.filter(({ fileName: fileForDefinition }) => !fileForDefinition.includes((0, constants_1.getTempJsFileBaseNameWithoutExtension)()))
72
+ : defaultDefinitions;
73
+ };
74
+ proxy.getDefinitionAndBoundSpan = (fileName, position) => {
75
+ const defaultDefinition = info.languageService.getDefinitionAndBoundSpan(fileName, position);
76
+ return defaultDefinition &&
77
+ (0, collectionFormat_1.isInABrunoCollection)(info, fileName) &&
78
+ defaultDefinition.definitions
79
+ ? {
80
+ ...defaultDefinition,
81
+ definitions: defaultDefinition.definitions.filter(({ fileName: fileForDefinition }) => !fileForDefinition.includes((0, constants_1.getTempJsFileBaseNameWithoutExtension)())),
82
+ }
83
+ : defaultDefinition;
84
+ };
85
+ proxy.getTypeDefinitionAtPosition = (fileName, position) => {
86
+ const defaultDefinitions = info.languageService.getDefinitionAtPosition(fileName, position);
87
+ return defaultDefinitions && (0, collectionFormat_1.isInABrunoCollection)(info, fileName)
88
+ ? defaultDefinitions.filter(({ fileName: fileForDefinition }) => !fileForDefinition.includes((0, constants_1.getTempJsFileBaseNameWithoutExtension)()))
89
+ : defaultDefinitions;
90
+ };
91
+ proxy.getImplementationAtPosition = (fileName, position) => {
92
+ const defaultImplementations = info.languageService.getImplementationAtPosition(fileName, position);
93
+ return defaultImplementations && (0, collectionFormat_1.isInABrunoCollection)(info, fileName)
94
+ ? defaultImplementations.filter(({ fileName: fileForImplementation }) => !fileForImplementation.includes((0, constants_1.getTempJsFileBaseNameWithoutExtension)()))
95
+ : defaultImplementations;
96
+ };
97
+ }
98
+ //# sourceMappingURL=navigationOverrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationOverrides.js","sourceRoot":"","sources":["../../src/languageService/navigationOverrides.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PluginConfiguration = void 0;
4
+ /**
5
+ * The configuration is passed to the plugin by the VS Code extension (see `configureTsServerPlugin` in the client).
6
+ * As long as no configuration is passed, Yaml collections are not supported.
7
+ */
8
+ class PluginConfiguration {
9
+ config = { yamlCollectionSupport: false };
10
+ changeListeners = [];
11
+ isYamlCollectionSupportEnabled() {
12
+ return this.config.yamlCollectionSupport;
13
+ }
14
+ onDidChange(listener) {
15
+ this.changeListeners.push(listener);
16
+ }
17
+ update(config) {
18
+ const yamlCollectionSupport = config?.yamlCollectionSupport == true;
19
+ if (yamlCollectionSupport == this.config.yamlCollectionSupport) {
20
+ return;
21
+ }
22
+ this.config = { yamlCollectionSupport };
23
+ for (const listener of this.changeListeners) {
24
+ listener();
25
+ }
26
+ }
27
+ }
28
+ exports.PluginConfiguration = PluginConfiguration;
29
+ //# sourceMappingURL=pluginConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginConfiguration.js","sourceRoot":"","sources":["../src/pluginConfiguration.ts"],"names":[],"mappings":";;;AAIA;;;GAGG;AACH,MAAa,mBAAmB;IACpB,MAAM,GAAiB,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;IAC/C,eAAe,GAAmB,EAAE,CAAC;IAEtD,8BAA8B;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,QAAoB;QAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,MAAyC;QAC5C,MAAM,qBAAqB,GAAG,MAAM,EAAE,qBAAqB,IAAI,IAAI,CAAC;QAEpE,IAAI,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC7D,OAAO;QACX,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,EAAE,qBAAqB,EAAE,CAAC;QAExC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1C,QAAQ,EAAE,CAAC;QACf,CAAC;IACL,CAAC;CACJ;AAzBD,kDAyBC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIndentationOfScripts = getIndentationOfScripts;
4
+ const maskYamlFileContent_1 = require("./maskYamlFileContent");
5
+ /**
6
+ * Returns the indentation of the scripts that overlap with the given range, if all of them use the same indentation.
7
+ *
8
+ * The indentation of a literal block scalar is the minimal indentation of its non-empty lines.
9
+ * Lines with this indentation are always part of the block scalar, even if it uses an explicit indentation indicator (e.g. `code: |2-`).
10
+ */
11
+ function getIndentationOfScripts(fileName, fileContent, range) {
12
+ const indentations = new Set((0, maskYamlFileContent_1.getScriptContentRanges)(fileName, fileContent)
13
+ .filter(({ start, end }) => start <= range.end && range.start <= end)
14
+ .map(({ start, end }) => getMinimalIndentation(fileContent.substring(start, end))));
15
+ return indentations.size == 1 ? [...indentations][0] : undefined;
16
+ }
17
+ function getMinimalIndentation(scriptContent) {
18
+ const indentations = scriptContent
19
+ .split(/\r\n|\r|\n|\u2028|\u2029/)
20
+ .filter((line) => line.trim().length > 0)
21
+ .map((line) => /^ */.exec(line)[0].length);
22
+ return indentations.length > 0 ? Math.min(...indentations) : undefined;
23
+ }
24
+ //# sourceMappingURL=getIndentationOfScripts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIndentationOfScripts.js","sourceRoot":"","sources":["../../src/yamlFiles/getIndentationOfScripts.ts"],"names":[],"mappings":";;AAQA,0DAgBC;AAxBD,+DAA+D;AAE/D;;;;;GAKG;AACH,SAAgB,uBAAuB,CACnC,QAAgB,EAChB,WAAmB,EACnB,KAAqC;IAErC,MAAM,YAAY,GAAG,IAAI,GAAG,CACxB,IAAA,4CAAsB,EAAC,QAAQ,EAAE,WAAW,CAAC;SACxC,MAAM,CACH,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,CAC/D;SACA,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CACpB,qBAAqB,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAC3D,CACR,CAAC;IAEF,OAAO,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED,SAAS,qBAAqB,CAAC,aAAqB;IAChD,MAAM,YAAY,GAAG,aAAa;SAC7B,KAAK,CAAC,0BAA0B,CAAC;SACjC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAEhD,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC"}