phpstan-mcp-mx 0.22.0 → 0.24.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 (87) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +142 -19
  3. package/dist/baseline.d.ts +10 -0
  4. package/dist/baseline.js +36 -14
  5. package/dist/baseline.js.map +1 -1
  6. package/dist/changed.d.ts +17 -0
  7. package/dist/changed.js +56 -29
  8. package/dist/changed.js.map +1 -1
  9. package/dist/compare.js +12 -6
  10. package/dist/compare.js.map +1 -1
  11. package/dist/composer.js +43 -21
  12. package/dist/composer.js.map +1 -1
  13. package/dist/config.js +12 -6
  14. package/dist/config.js.map +1 -1
  15. package/dist/defaults.js +2 -1
  16. package/dist/defaults.js.map +1 -1
  17. package/dist/dumptype.js +16 -8
  18. package/dist/dumptype.js.map +1 -1
  19. package/dist/failure.d.ts +1 -1
  20. package/dist/failure.js.map +1 -1
  21. package/dist/history.d.ts +61 -0
  22. package/dist/history.js +275 -0
  23. package/dist/history.js.map +1 -0
  24. package/dist/index.js +6 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/php.js +10 -5
  27. package/dist/php.js.map +1 -1
  28. package/dist/phpstan/error.js.map +1 -1
  29. package/dist/phpstan/output.js +12 -6
  30. package/dist/phpstan/output.js.map +1 -1
  31. package/dist/phpstan/parameters.js.map +1 -1
  32. package/dist/phpstan/process.d.ts +10 -0
  33. package/dist/phpstan/process.js +35 -9
  34. package/dist/phpstan/process.js.map +1 -1
  35. package/dist/phpstan/queue.js +4 -2
  36. package/dist/phpstan/queue.js.map +1 -1
  37. package/dist/phpstan.d.ts +14 -0
  38. package/dist/phpstan.js +94 -25
  39. package/dist/phpstan.js.map +1 -1
  40. package/dist/project.d.ts +6 -2
  41. package/dist/project.js +57 -18
  42. package/dist/project.js.map +1 -1
  43. package/dist/prune.d.ts +92 -0
  44. package/dist/prune.js +387 -0
  45. package/dist/prune.js.map +1 -0
  46. package/dist/report.js +38 -19
  47. package/dist/report.js.map +1 -1
  48. package/dist/root-source.d.ts +43 -0
  49. package/dist/root-source.js +124 -0
  50. package/dist/root-source.js.map +1 -0
  51. package/dist/roots.d.ts +12 -0
  52. package/dist/roots.js +23 -6
  53. package/dist/roots.js.map +1 -1
  54. package/dist/runner.js +14 -7
  55. package/dist/runner.js.map +1 -1
  56. package/dist/runs.js +6 -3
  57. package/dist/runs.js.map +1 -1
  58. package/dist/schema-dialect.js +6 -3
  59. package/dist/schema-dialect.js.map +1 -1
  60. package/dist/server.d.ts +3 -2
  61. package/dist/server.js +9 -5
  62. package/dist/server.js.map +1 -1
  63. package/dist/tmpdir.js +6 -3
  64. package/dist/tmpdir.js.map +1 -1
  65. package/dist/tools/analysis.d.ts +4 -4
  66. package/dist/tools/analysis.js +4 -2
  67. package/dist/tools/analysis.js.map +1 -1
  68. package/dist/tools/inspect.d.ts +9 -7
  69. package/dist/tools/inspect.js +158 -37
  70. package/dist/tools/inspect.js.map +1 -1
  71. package/dist/tools/prompts.d.ts +3 -3
  72. package/dist/tools/prompts.js +16 -8
  73. package/dist/tools/prompts.js.map +1 -1
  74. package/dist/tools/shared.d.ts +2 -2
  75. package/dist/tools/shared.js +7 -5
  76. package/dist/tools/shared.js.map +1 -1
  77. package/dist/tools/writes.d.ts +8 -3
  78. package/dist/tools/writes.js +73 -3
  79. package/dist/tools/writes.js.map +1 -1
  80. package/dist/tools.d.ts +2 -2
  81. package/dist/tools.js +6 -3
  82. package/dist/tools.js.map +1 -1
  83. package/dist/unmatched.d.ts +66 -0
  84. package/dist/unmatched.js +194 -44
  85. package/dist/unmatched.js.map +1 -1
  86. package/dist/version.js.map +1 -1
  87. package/package.json +1 -1
package/dist/unmatched.js CHANGED
@@ -5,7 +5,7 @@ import { readIncludedBaselines } from './baseline.js';
5
5
  import { PhpstanError, analyse, writeInRunner } from './phpstan.js';
6
6
  import { resolveWithin } from './project.js';
7
7
  import { DEFAULT_LIMIT, MAX_LIMIT, displayPath, limitMessages } from './report.js';
8
- import { naarOmgeving, runnerFor } from './runner.js';
8
+ import { naarHost, naarOmgeving, runnerFor } from './runner.js';
9
9
  import { TmpDirError, projectTmpDir } from './tmpdir.js';
10
10
  /** Naam van de tijdelijke config, in de tijdelijke map van het project. */
11
11
  const CONFIG_NAME = 'unmatched-ignores.neon';
@@ -13,6 +13,11 @@ const CONFIG_NAME = 'unmatched-ignores.neon';
13
13
  const SUMMARY_ROWS = 15;
14
14
  /** Hoe lang een patroon mag zijn in het antwoord; een baseline-regex kan lang uitvallen. */
15
15
  const MAX_PATTERN_CHARS = 300;
16
+ /**
17
+ * Hoeveel verouderde inline ignores het antwoord hoogstens noemt. Geen paginering zoals bij de
18
+ * baseline: het zijn er hoogstens zoveel als er in de code staan, en elk is maar een regel.
19
+ */
20
+ const MAX_INLINE = 100;
16
21
  /**
17
22
  * Draait een volledige analyse met `reportUnmatchedIgnoredErrors` aan en levert de
18
23
  * negeerregels die niets meer doen.
@@ -34,16 +39,24 @@ export async function findUnmatchedIgnores(project, options = {}, window = {}) {
34
39
  `${project.path} has no phpstan.neon(.dist); without a config there are no ignore rules to check.`,
35
40
  ]);
36
41
  }
42
+ const result = await analyseUnmatched(project, project.config, options);
43
+ return buildUnmatchedReport(project.path, result, baselines, window);
44
+ }
45
+ /**
46
+ * De analyse zelf, met `reportUnmatchedIgnoredErrors` aan: de ruwe uitslag, zonder rapport.
47
+ * Apart omdat `prune_baseline` dezelfde run nodig heeft, met de volledige patronen in
48
+ * plaats van de ingekorte uit het rapport.
49
+ */
50
+ export async function analyseUnmatched(project, configName, options = {}) {
37
51
  // Met een runner draait PHPStan in een omgeving die de tijdelijke map van de host niet
38
52
  // ziet; dan komt de config in de tijdelijke map van díe omgeving, met het include-pad
39
53
  // zoals het daar heet. Ín het project zetten zou ook werken, maar dan schrijft een
40
54
  // read-only tool in de repository.
41
55
  const runner = runnerFor(project.path);
42
56
  const config = runner === null
43
- ? writeUnmatchedConfig(project, project.config)
44
- : await writeInRunner(project, `${CONFIG_PREFIX}-${projectHash(project.path)}.neon`, unmatchedConfig(naarOmgeving(runner, project.path, resolveWithin(project, project.config))), options);
45
- const result = await analyse(project, { ...options, config });
46
- return buildUnmatchedReport(project.path, result, baselines, window);
57
+ ? writeUnmatchedConfig(project, configName)
58
+ : await writeInRunner(project, `${CONFIG_PREFIX}-${projectHash(project.path)}.neon`, unmatchedConfig(naarOmgeving(runner, project.path, resolveWithin(project, configName))), options);
59
+ return analyse(project, { ...options, config });
47
60
  }
48
61
  /** Begin van de naam van de tijdelijke config in de omgeving van een runner. */
49
62
  const CONFIG_PREFIX = 'phpstan-mcp-unmatched';
@@ -84,8 +97,9 @@ function writeUnmatchedConfig(project, configName) {
84
97
  // als absoluut pad, en de include moet dan nog steeds binnen het project blijven.
85
98
  const content = unmatchedConfig(resolveWithin(project, configName));
86
99
  try {
87
- if (readFileSync(file, 'utf8') === content)
100
+ if (readFileSync(file, 'utf8') === content) {
88
101
  return file;
102
+ }
89
103
  }
90
104
  catch {
91
105
  // Bestaat nog niet; hieronder aanmaken.
@@ -104,8 +118,12 @@ function writeUnmatchedConfig(project, configName) {
104
118
  }
105
119
  /** Eindigt de melding van een regel die niets meer matcht. */
106
120
  const UNMATCHED_SUFFIX = ' was not matched in reported errors.';
107
- /** Eindigt de melding van een regel die minder vaak voorkomt dan zijn `count`. */
108
- const COUNT_SUFFIX = / is expected to occur (\d+) times?, but occurred only (\d+) times?\.$/;
121
+ /**
122
+ * Eindigt de melding van een regel waarvan `count` niet klopt. Met "only" komt de fout minder
123
+ * vaak voor; zonder "only" vaker ("expected to occur 1 time, but occurred 2 times", nagemeten
124
+ * op `shared`), en dan is de extra keer gewoon een bevinding, geen verouderde regel.
125
+ */
126
+ const COUNT_SUFFIX = / is expected to occur (\d+) times?, but occurred (?:only )?(\d+) times?\.$/;
109
127
  /** Een algemeen patroon, zonder pad: dat komt als algemene fout en niet bij een bestand. */
110
128
  const GENERAL_UNMATCHED = /^Ignored error pattern (.+) was not matched in reported errors\.$/s;
111
129
  /**
@@ -115,28 +133,43 @@ const GENERAL_UNMATCHED = /^Ignored error pattern (.+) was not matched in report
115
133
  * met identifier `ignore.unmatched` of bij een te hoog `count` `ignore.count`.
116
134
  * Een patroon zonder pad komt als algemene fout. Of een regel uit de baseline komt,
117
135
  * zegt PHPStan niet; dat volgt uit identifier en pad tegen de baseline zelf.
136
+ *
137
+ * Een inline ignore die niets meer doet, komt ook als bevinding (zie `readStaleInline`) en
138
+ * telde eerst als gewone bevinding: dan meldde `otherFindings` wat een nieuwe baseline zou
139
+ * verstoppen, terwijl PHPStan die juist niet in een baseline zet.
118
140
  */
119
141
  export function buildUnmatchedReport(project, result, baselines, window = {}, notices = []) {
120
142
  const stale = [];
143
+ const inline = [];
121
144
  let otherFindings = 0;
122
145
  for (const finding of result.findings) {
146
+ const ignore = readStaleInline(finding);
147
+ if (ignore !== null) {
148
+ inline.push({ path: displayPath(project, ignore.file), line: ignore.line, identifier: ignore.identifier });
149
+ continue;
150
+ }
123
151
  const entry = toStale(project, finding, baselines);
124
- if (entry === null)
152
+ if (entry === null) {
125
153
  otherFindings++;
126
- else
154
+ }
155
+ else {
127
156
  stale.push(entry);
157
+ }
128
158
  }
159
+ inline.sort((a, b) => a.path.localeCompare(b.path) || (a.line ?? 0) - (b.line ?? 0) || (a.identifier ?? '').localeCompare(b.identifier ?? ''));
129
160
  stale.sort((a, b) => a.path.localeCompare(b.path) ||
130
161
  (a.identifier ?? '').localeCompare(b.identifier ?? '') ||
131
162
  a.pattern.localeCompare(b.pattern));
132
163
  const generalPatterns = [];
133
164
  const otherErrors = [];
134
165
  for (const error of result.generalErrors) {
135
- const match = GENERAL_UNMATCHED.exec(error);
136
- if (match?.[1] === undefined)
166
+ const pattern = unmatchedGeneralPattern(error);
167
+ if (pattern === null) {
137
168
  otherErrors.push(error);
138
- else
139
- generalPatterns.push(shorten(match[1]));
169
+ }
170
+ else {
171
+ generalPatterns.push(shorten(pattern));
172
+ }
140
173
  }
141
174
  const limit = clamp(window.limit ?? DEFAULT_LIMIT, 1, MAX_LIMIT);
142
175
  const offset = clamp(window.offset ?? 0, 0, stale.length);
@@ -158,15 +191,23 @@ export function buildUnmatchedReport(project, result, baselines, window = {}, no
158
191
  countTooHigh: stale.filter((entry) => entry.kind === 'countTooHigh').length,
159
192
  inBaseline: stale.filter((entry) => entry.inBaseline === true).length,
160
193
  general: generalPatterns.length,
194
+ inline: inline.length,
195
+ inlineWithoutIdentifier: inline.filter((ignore) => ignore.identifier === null).length,
161
196
  otherFindings,
162
197
  },
163
198
  byPath: tally(stale),
164
199
  entries,
165
200
  general: general.kept,
201
+ inline: inline.slice(0, MAX_INLINE),
166
202
  generalErrors: generalErrors.kept,
167
203
  warnings: warnings.kept,
168
204
  notices: allNotices,
169
- omitted: { general: general.omitted, generalErrors: generalErrors.omitted, warnings: warnings.omitted },
205
+ omitted: {
206
+ general: general.omitted,
207
+ inline: Math.max(inline.length - MAX_INLINE, 0),
208
+ generalErrors: generalErrors.omitted,
209
+ warnings: warnings.omitted,
210
+ },
170
211
  page: {
171
212
  offset,
172
213
  limit,
@@ -176,15 +217,55 @@ export function buildUnmatchedReport(project, result, baselines, window = {}, no
176
217
  },
177
218
  };
178
219
  }
220
+ /** De melding bij een inline ignore die een identifier noemt waarvoor op die regel niets gemeld wordt. */
221
+ const INLINE_IDENTIFIER = /^No error with identifier (\S+) is reported on line \d+\.$/;
222
+ /**
223
+ * Leest een bevinding als inline ignore die niets meer onderdrukt, of null.
224
+ *
225
+ * Nagemeten op PHPStan 2.2: `ignore.unmatchedLine` ("No error to ignore is reported on line N.")
226
+ * bij een ignore zonder identifier, en `ignore.unmatchedIdentifier` per identifier die op zijn
227
+ * regel niets vond, ook als de andere identifiers in hetzelfde commentaar nog wél iets doen. Beide
228
+ * alleen met `reportUnmatchedIgnoredErrors` aan (de standaard, maar veel projecten zetten hem uit),
229
+ * en met als regel die waar de ignore óp werkt. PHPStan zet ze niet in een gegenereerde baseline.
230
+ *
231
+ * `ignore.noComment`, `ignore.allLineErrors` en `ignore.parseError` horen hier niet bij: dat is
232
+ * een ignore die tegen de regels van de config ingaat of niet te lezen is, geen verouderde, en
233
+ * blijft dus een bevinding.
234
+ */
235
+ export function readStaleInline(finding) {
236
+ if (finding.identifier === 'ignore.unmatchedLine') {
237
+ return { file: finding.file, line: finding.line, identifier: null };
238
+ }
239
+ // Een melding die we niet kunnen lezen, blijft een bevinding: identifier null zou beweren dat
240
+ // het een ignore zonder identifier is, en dat is de breedste soort.
241
+ const named = finding.identifier === 'ignore.unmatchedIdentifier' ? INLINE_IDENTIFIER.exec(finding.message) : null;
242
+ return named?.[1] === undefined ? null : { file: finding.file, line: finding.line, identifier: named[1] };
243
+ }
244
+ /** Het patroon van een algemene fout over een regel zonder pad die niets meer matcht, of null. */
245
+ export function unmatchedGeneralPattern(error) {
246
+ return GENERAL_UNMATCHED.exec(error)?.[1] ?? null;
247
+ }
179
248
  /** Een bevinding als verouderde negeerregel, of null als het een gewone bevinding is. */
180
249
  function toStale(project, finding, baselines) {
181
- const kind = finding.identifier === 'ignore.unmatched'
182
- ? 'unmatched'
183
- : finding.identifier === 'ignore.count'
184
- ? 'countTooHigh'
185
- : null;
186
- if (kind === null)
250
+ const rule = readStaleRule(finding, project);
251
+ if (rule === null || rule.kind === 'countTooLow') {
187
252
  return null;
253
+ }
254
+ return {
255
+ path: displayPath(project, rule.file),
256
+ identifier: rule.identifier,
257
+ pattern: shorten(rule.pattern),
258
+ kind: rule.kind,
259
+ expected: rule.expected,
260
+ occurred: rule.occurred,
261
+ inBaseline: inBaseline(relative(project, rule.file), rule.identifier, baselines),
262
+ };
263
+ }
264
+ /** Leest één bevinding als verouderde negeerregel, of null als het een gewone bevinding is. */
265
+ export function readStaleRule(finding, project) {
266
+ if (finding.identifier !== 'ignore.unmatched' && finding.identifier !== 'ignore.count') {
267
+ return null;
268
+ }
188
269
  // Op de láátste " in path " knippen is betrouwbaarder dan de hele melding met één
189
270
  // regex lezen: het patroon zelf kan van alles bevatten. Niet op " in path " plus
190
271
  // finding.file: met een runner staat in de melding het pad in de container, terwijl
@@ -193,19 +274,37 @@ function toStale(project, finding, baselines) {
193
274
  const at = finding.message.lastIndexOf(marker);
194
275
  const head = at === -1 ? finding.message : finding.message.slice(0, at);
195
276
  const tail = at === -1 ? '' : finding.message.slice(at + marker.length);
196
- const counts = kind === 'countTooHigh' ? COUNT_SUFFIX.exec(tail) : null;
277
+ const counts = finding.identifier === 'ignore.count' ? COUNT_SUFFIX.exec(tail) : null;
278
+ const expected = counts?.[1] === undefined ? null : Number(counts[1]);
279
+ const occurred = finding.identifier === 'ignore.unmatched' ? 0 : counts?.[2] === undefined ? null : Number(counts[2]);
197
280
  const named = /^(?:Ignored error pattern )?(.*?)(?: \(([\w.-]+)\))?$/s.exec(at === -1 ? head.replace(UNMATCHED_SUFFIX, '') : head);
198
- const identifier = named?.[2] ?? null;
199
281
  return {
200
- path: displayPath(project, finding.file),
201
- identifier,
202
- pattern: shorten(named?.[1] ?? head),
203
- kind,
204
- expected: counts?.[1] === undefined ? null : Number(counts[1]),
205
- occurred: kind === 'unmatched' ? 0 : counts?.[2] === undefined ? null : Number(counts[2]),
206
- inBaseline: inBaseline(relative(project, finding.file), identifier, baselines),
282
+ file: ignoredPath(tail, finding.file, project),
283
+ identifier: named?.[2] ?? null,
284
+ pattern: named?.[1] ?? head,
285
+ kind: finding.identifier === 'ignore.unmatched'
286
+ ? 'unmatched'
287
+ : expected !== null && occurred !== null && occurred > expected
288
+ ? 'countTooLow'
289
+ : 'countTooHigh',
290
+ expected,
291
+ occurred,
207
292
  };
208
293
  }
294
+ /**
295
+ * Het pad van de negeerregel, uit de melding zelf. Niet `finding.file`: bij een fout in een
296
+ * trait is dat het trait-bestand met `(in context of class …)` erachter, terwijl de regel op
297
+ * het bestand van de klasse staat (nagemeten op `shared`, vier regels die zo onvindbaar waren).
298
+ * Met een runner is het pad in de melding dat in de container.
299
+ */
300
+ function ignoredPath(tail, fallback, project) {
301
+ const path = tail.replace(UNMATCHED_SUFFIX, '').replace(COUNT_SUFFIX, '');
302
+ if (tail === '' || path === tail) {
303
+ return fallback;
304
+ }
305
+ const runner = runnerFor(project);
306
+ return runner === null ? path : naarHost(runner, project, path);
307
+ }
209
308
  /**
210
309
  * Of een regel met dit pad en deze identifier in een geïncludeerde baseline staat.
211
310
  * Meerdere baseline-regels kunnen pad en identifier delen (met een ander patroon);
@@ -213,8 +312,9 @@ function toStale(project, finding, baselines) {
213
312
  */
214
313
  function inBaseline(path, identifier, baselines) {
215
314
  const found = baselines.entries.some((entry) => normalize(entry.path) === path && (identifier === null || entry.identifier === identifier));
216
- if (found)
315
+ if (found) {
217
316
  return true;
317
+ }
218
318
  return baselines.unreadable.length > 0 ? null : false;
219
319
  }
220
320
  /** Schrijft het antwoord uit als tekst voor het model. */
@@ -222,37 +322,49 @@ export function renderUnmatched(report) {
222
322
  const lines = [];
223
323
  if (report.warnings.length > 0) {
224
324
  lines.push('WARNING PHPStan reported this alongside the result:');
225
- for (const warning of report.warnings)
325
+ for (const warning of report.warnings) {
226
326
  lines.push(`- ${warning}`);
227
- if (report.omitted.warnings > 0)
327
+ }
328
+ if (report.omitted.warnings > 0) {
228
329
  lines.push(`- (${report.omitted.warnings} more message(s) not shown)`);
330
+ }
229
331
  lines.push('When the analysis is incomplete, PHPStan can miss stale rules; a short list below then proves nothing.', '');
230
332
  }
231
333
  if (report.notices.length > 0) {
232
334
  lines.push('Note:');
233
- for (const notice of report.notices)
335
+ for (const notice of report.notices) {
234
336
  lines.push(`- ${notice}`);
337
+ }
235
338
  lines.push('');
236
339
  }
237
340
  if (report.generalErrors.length > 0) {
238
341
  lines.push('Errors not tied to a file:');
239
- for (const error of report.generalErrors)
342
+ for (const error of report.generalErrors) {
240
343
  lines.push(`- ${error}`);
241
- if (report.omitted.generalErrors > 0)
344
+ }
345
+ if (report.omitted.generalErrors > 0) {
242
346
  lines.push(`- (${report.omitted.generalErrors} more error(s) not shown)`);
347
+ }
243
348
  lines.push('');
244
349
  }
245
350
  const { totals } = report;
246
- if (report.page.total === 0 && totals.general === 0) {
351
+ const rulesStale = report.page.total > 0 || totals.general > 0;
352
+ if (!rulesStale && totals.inline === 0) {
247
353
  lines.push(report.baselineFiles.length > 0
248
354
  ? `All ignore rules still match; nothing in ${report.baselineFiles.join(', ')} is stale.`
249
355
  : 'No stale ignore rules.');
250
356
  return lines.join('\n');
251
357
  }
358
+ if (!rulesStale) {
359
+ lines.push(report.baselineFiles.length > 0
360
+ ? `Nothing in ${report.baselineFiles.join(', ')} or in ignoreErrors of the config is stale.`
361
+ : 'Nothing in ignoreErrors of the config is stale.');
362
+ }
252
363
  if (report.page.total > 0) {
253
364
  const kop = [`${totals.unmatched} ignore rule(s) no longer match anything`];
254
- if (totals.countTooHigh > 0)
365
+ if (totals.countTooHigh > 0) {
255
366
  kop.push(`${totals.countTooHigh} have a count that is too high`);
367
+ }
256
368
  lines.push(`${kop.join(', ')}.`);
257
369
  if (report.baselineFiles.length > 0) {
258
370
  lines.push(`${totals.inBaseline} of them are in ${report.baselineFiles.join(', ')}.`);
@@ -281,24 +393,62 @@ export function renderUnmatched(report) {
281
393
  if (report.general.length > 0) {
282
394
  lines.push('', `${totals.general} pattern(s) without a path no longer match anything. They are not in the ` +
283
395
  'baseline but in ignoreErrors of the config, or of a config that a package ships:', ...report.general.map((pattern) => `- ${pattern}`));
284
- if (report.omitted.general > 0)
396
+ if (report.omitted.general > 0) {
285
397
  lines.push(`- (${report.omitted.general} more not shown)`);
398
+ }
399
+ }
400
+ if (totals.inline > 0) {
401
+ lines.push('', ...renderInline(report));
402
+ }
403
+ lines.push('', 'What you can do:');
404
+ if (rulesStale) {
405
+ lines.push('- A rule that no longer matches anything belongs to an error that has been fixed; it can go.', '- For a count that is too high, lower `count` to what still occurs.', '- prune_baseline does both for the baseline and adds nothing, if writing is enabled on this server.', totals.otherFindings > 0
406
+ ? `- generate_baseline cleans up as well, but also writes the ${totals.otherFindings} current ` +
407
+ 'finding(s) into it. Fix those first, or you hide them in the baseline.'
408
+ : '- generate_baseline cleans up as well; with no current findings it hides nothing new.');
409
+ }
410
+ if (totals.inline > 0) {
411
+ lines.push('- Remove a stale inline ignore from the code; when the comment names several identifiers, remove only the stale one.' +
412
+ (totals.inlineWithoutIdentifier > 0
413
+ ? ` Start with the ${totals.inlineWithoutIdentifier} without an identifier: they would hide every new error on their line.`
414
+ : ''), '- prune_baseline and generate_baseline leave inline ignores alone: they are in the code, not in a baseline.');
286
415
  }
287
- lines.push('', 'What you can do:', '- A rule that no longer matches anything belongs to an error that has been fixed; it can go.', '- For a count that is too high, lower `count` to what still occurs.', totals.otherFindings > 0
288
- ? `- generate_baseline does both in one go, but also writes the ${totals.otherFindings} current ` +
289
- 'finding(s) into it. Fix those first, or you hide them in the baseline.'
290
- : '- generate_baseline does both in one go, if writing is enabled on this server.');
291
416
  if (report.page.hasMore) {
292
417
  const to = report.page.offset + report.page.returned;
293
418
  lines.push('', `${report.page.total - to} more rule(s). Call the same tool again with offset=${to} for the rest.`);
294
419
  }
295
420
  return lines.join('\n');
296
421
  }
422
+ /** De verouderde inline ignores, per bestand de regels. */
423
+ function renderInline(report) {
424
+ const { totals } = report;
425
+ const lines = [
426
+ `${totals.inline} inline @phpstan-ignore comment(s) no longer suppress anything` +
427
+ (totals.inlineWithoutIdentifier > 0 ? ` (${totals.inlineWithoutIdentifier} without an identifier):` : ':'),
428
+ ];
429
+ let current = null;
430
+ for (const ignore of report.inline) {
431
+ if (ignore.path !== current) {
432
+ current = ignore.path;
433
+ lines.push('', current);
434
+ }
435
+ const wat = ignore.identifier === null ? 'no identifier: ignores every error on the line, and there is none' : `nothing reported as ${ignore.identifier}`;
436
+ lines.push(` line ${ignore.line === null ? '?' : String(ignore.line)} ${wat}`);
437
+ }
438
+ if (report.omitted.inline > 0) {
439
+ lines.push(` (${report.omitted.inline} more not shown)`);
440
+ }
441
+ // Nagemeten: `// @phpstan-ignore-next-line` op regel 43 meldt PHPStan als regel 44.
442
+ lines.push('', 'The line is the one the ignore applies to. For a comment on a line of its own (-next-line, or @phpstan-ignore ' +
443
+ 'above a statement), the comment is on the line above it.');
444
+ return lines;
445
+ }
297
446
  /** De bestanden met de meeste verouderde regels eerst, bij gelijk aantal alfabetisch. */
298
447
  function tally(entries) {
299
448
  const counts = new Map();
300
- for (const entry of entries)
449
+ for (const entry of entries) {
301
450
  counts.set(entry.path, (counts.get(entry.path) ?? 0) + 1);
451
+ }
302
452
  return [...counts.entries()]
303
453
  .sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
304
454
  .slice(0, SUMMARY_ROWS)
@@ -1 +1 @@
1
- {"version":3,"file":"unmatched.js","sourceRoot":"","sources":["../src/unmatched.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unmatched.js","sourceRoot":"","sources":["../src/unmatched.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,GAAQ;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAI,MAAuC,EAAE,OAAO,CAAC;QACjE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,GAAQ;IAElC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAI,MAAuC,EAAE,OAAO,CAAC;QACjE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phpstan-mcp-mx",
3
- "version": "0.22.0",
3
+ "version": "0.24.0",
4
4
  "description": "MCP server that exposes PHPStan as tools, for several PHP projects at once",
5
5
  "keywords": [
6
6
  "mcp",