@altopelago/aeon-annotation-stream 0.9.4 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/stream.d.ts CHANGED
@@ -3,7 +3,7 @@ import { type Span, type Token } from '@altopelago/aeon-lexer';
3
3
  export type AnnotationKind = 'doc' | 'annotation' | 'hint' | 'reserved';
4
4
  export type AnnotationForm = 'line' | 'block';
5
5
  export type AnnotationReservedSubtype = 'structure' | 'profile' | 'instructions';
6
- export type AnnotationPlacementPart = 'key' | 'attributes' | 'datatype-colon' | 'datatype' | 'equals' | 'value';
6
+ export type AnnotationPlacementPart = 'key' | 'attributes' | 'attribute-marker' | 'attribute-open' | 'attribute-key' | 'attribute-datatype-colon' | 'attribute-datatype' | 'attribute-equals' | 'attribute-value' | 'attribute-separator' | 'attribute-close' | 'datatype-colon' | 'datatype' | 'equals' | 'value' | 'node-open' | 'node-tag' | 'node-datatype-colon' | 'node-datatype' | 'node-children-open' | 'node-child-value' | 'node-child-separator' | 'node-children-close' | 'node-close';
7
7
  export interface AnnotationPlacement {
8
8
  readonly after?: AnnotationPlacementPart;
9
9
  readonly before?: AnnotationPlacementPart;
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAY,KAAK,IAAI,EAAE,KAAK,KAAK,EAAa,MAAM,wBAAwB,CAAC;AAEpF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAC9C,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,SAAS,GAAG,cAAc,CAAC;AACjF,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,YAAY,GAAG,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,aAAa,CAAC;CAC1C;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAErG,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CAC5C;AAED,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;CACpC;AA4HD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,gBAAgB,EAAE,CAyCpG;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,gBAAgB,EAAE,CAE/H;AAED,wBAAgB,uCAAuC,CACnD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,KAAK,EAAE,SAAS,IAAI,EAAE,GACvB,SAAS,gBAAgB,EAAE,CAM7B"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAkC,KAAK,IAAI,EAAE,KAAK,KAAK,EAAa,MAAM,wBAAwB,CAAC;AAE1G,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAC9C,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,SAAS,GAAG,cAAc,CAAC;AACjF,MAAM,MAAM,uBAAuB,GAC7B,KAAK,GACL,YAAY,GACZ,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,0BAA0B,GAC1B,oBAAoB,GACpB,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,GACrB,iBAAiB,GACjB,gBAAgB,GAChB,UAAU,GACV,QAAQ,GACR,OAAO,GACP,WAAW,GACX,UAAU,GACV,qBAAqB,GACrB,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,sBAAsB,GACtB,qBAAqB,GACrB,YAAY,CAAC;AAEnB,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,aAAa,CAAC;CAC1C;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAErG,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CAC5C;AAED,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;CACpC;AAwID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,gBAAgB,EAAE,CAgCpG;AA4BD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,gBAAgB,EAAE,CAE/H;AAED,wBAAgB,uCAAuC,CACnD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,KAAK,EAAE,SAAS,IAAI,EAAE,GACvB,SAAS,gBAAgB,EAAE,CAM7B"}
package/dist/stream.js CHANGED
@@ -44,7 +44,7 @@ class AnnotationResolver {
44
44
  this.pathCursor += countNewlyActive(commentSpan, this.pathByStart, this.pathCursor);
45
45
  const container = smallestContaining(commentSpan, this.pathActive);
46
46
  if (container) {
47
- const nearestChild = nearestDescendant(commentSpan, this.descendantsByPath.get(container.path));
47
+ const nearestChild = nearestDescendant(commentSpan, container, this.descendantsByPath.get(container.path));
48
48
  if (nearestChild) {
49
49
  return { kind: 'path', path: nearestChild.path };
50
50
  }
@@ -79,25 +79,16 @@ class AnnotationResolver {
79
79
  }
80
80
  }
81
81
  export function buildAnnotationStream(input) {
82
- const bindables = input.events.map((event, order) => ({
83
- span: event.span,
84
- path: formatPath(event.path),
85
- order,
86
- }));
87
- const eventByPath = new Map(input.events.map((event) => [formatPath(event.path), event]));
82
+ const commentTokens = input.tokens.filter(isStructuredCommentToken);
83
+ if (commentTokens.length === 0) {
84
+ return [];
85
+ }
86
+ const bindables = buildPathBindables(input.events, input.tokens);
87
+ const bindableByPath = new Map(bindables.map((bindable) => [bindable.path, bindable]));
88
88
  const spanBindables = (input.spans ?? []).map((span, order) => ({ span, order }));
89
89
  const resolver = new AnnotationResolver(bindables, spanBindables);
90
90
  const records = [];
91
- for (const token of input.tokens) {
92
- if (token.type !== TokenType.LineComment && token.type !== TokenType.BlockComment) {
93
- continue;
94
- }
95
- if (!token.comment) {
96
- continue;
97
- }
98
- if (token.comment.channel === 'plain' || token.comment.channel === 'host') {
99
- continue;
100
- }
91
+ for (const token of commentTokens) {
101
92
  const target = resolver.resolveTarget(token.span);
102
93
  const record = {
103
94
  kind: token.comment.channel,
@@ -106,7 +97,7 @@ export function buildAnnotationStream(input) {
106
97
  span: token.span,
107
98
  target,
108
99
  };
109
- const placement = resolvePlacement(token, target, eventByPath, input.tokens);
100
+ const placement = resolvePlacement(token, target, bindableByPath);
110
101
  if (placement) {
111
102
  record.placement = placement;
112
103
  }
@@ -117,6 +108,30 @@ export function buildAnnotationStream(input) {
117
108
  }
118
109
  return records;
119
110
  }
111
+ function isStructuredCommentToken(token) {
112
+ return (token.type === TokenType.LineComment || token.type === TokenType.BlockComment)
113
+ && token.comment !== undefined
114
+ && token.comment.channel !== 'plain'
115
+ && token.comment.channel !== 'host';
116
+ }
117
+ function buildPathBindables(events, tokens) {
118
+ const bindables = [];
119
+ for (const [eventIndex, event] of events.entries()) {
120
+ const path = formatPath(event.path);
121
+ const landmarks = bindingLandmarks(event, tokens);
122
+ bindables.push({
123
+ span: event.span,
124
+ valueSpan: event.value.span,
125
+ valueType: event.value.type,
126
+ path,
127
+ order: eventIndex * 1000,
128
+ kind: 'binding',
129
+ landmarks,
130
+ });
131
+ bindables.push(...attributeBindables(event, path, tokens, eventIndex * 1000 + 1));
132
+ }
133
+ return bindables;
134
+ }
120
135
  export function buildAnnotationStreamFromSource(source, events) {
121
136
  return buildAnnotationStreamFromSourceAndSpans(source, events, []);
122
137
  }
@@ -154,7 +169,7 @@ function smallestContaining(commentSpan, bindables) {
154
169
  }
155
170
  return best;
156
171
  }
157
- function nearestDescendant(commentSpan, index) {
172
+ function nearestDescendant(commentSpan, container, index) {
158
173
  if (!index) {
159
174
  return null;
160
175
  }
@@ -162,6 +177,16 @@ function nearestDescendant(commentSpan, index) {
162
177
  const forwardIndex = lowerBound(index.starts, commentSpan.end.offset);
163
178
  const trailingHit = trailingIndex >= 0 ? index.byEnd[trailingIndex] ?? null : null;
164
179
  const forwardHit = forwardIndex < index.byStart.length ? index.byStart[forwardIndex] ?? null : null;
180
+ if (container.kind === 'binding'
181
+ && ((trailingHit?.kind === 'attribute') || (forwardHit?.kind === 'attribute'))
182
+ && !index.byStart.some((candidate) => candidate.kind === 'attribute' && spanContains(candidate.span, commentSpan))) {
183
+ return null;
184
+ }
185
+ if (forwardHit
186
+ && !trailingHit
187
+ && shouldKeepCommentOnContainerBeforeDescendant(commentSpan, container, forwardHit)) {
188
+ return null;
189
+ }
165
190
  if (trailingHit && forwardHit) {
166
191
  const trailingDistance = commentSpan.start.offset - trailingHit.span.end.offset;
167
192
  const forwardDistance = forwardHit.span.start.offset - commentSpan.end.offset;
@@ -169,15 +194,23 @@ function nearestDescendant(commentSpan, index) {
169
194
  }
170
195
  return forwardHit ?? trailingHit;
171
196
  }
172
- function resolvePlacement(comment, target, eventByPath, tokens) {
197
+ function shouldKeepCommentOnContainerBeforeDescendant(commentSpan, container, forwardHit) {
198
+ if (commentSpan.end.offset <= container.valueSpan.start.offset) {
199
+ return true;
200
+ }
201
+ return container.valueType === 'NodeLiteral'
202
+ && commentSpan.start.offset >= container.valueSpan.start.offset
203
+ && commentSpan.end.offset <= forwardHit.span.start.offset;
204
+ }
205
+ function resolvePlacement(comment, target, bindableByPath) {
173
206
  if (target.kind !== 'path') {
174
207
  return undefined;
175
208
  }
176
- const event = eventByPath.get(target.path);
177
- if (!event) {
209
+ const bindable = bindableByPath.get(target.path);
210
+ if (!bindable) {
178
211
  return undefined;
179
212
  }
180
- const landmarks = bindingLandmarks(event, tokens);
213
+ const landmarks = bindable.landmarks;
181
214
  if (landmarks.length === 0) {
182
215
  return undefined;
183
216
  }
@@ -199,6 +232,7 @@ function resolvePlacement(comment, target, eventByPath, tokens) {
199
232
  function bindingLandmarks(event, tokens) {
200
233
  const eventTokens = tokens
201
234
  .filter((token) => token.type !== TokenType.EOF)
235
+ .filter((token) => token.type !== TokenType.Newline)
202
236
  .filter((token) => !isCommentToken(token))
203
237
  .filter((token) => token.span.start.offset >= event.span.start.offset && token.span.end.offset <= event.span.end.offset);
204
238
  const topLevel = topLevelTokens(eventTokens);
@@ -211,19 +245,211 @@ function bindingLandmarks(event, tokens) {
211
245
  .filter((token) => token.type === TokenType.Equals && token.span.end.offset <= valueSpan.start.offset)
212
246
  .at(-1);
213
247
  const headEnd = equals?.span.start.offset ?? valueSpan.start.offset;
214
- const attributes = findAttributesLandmark(eventTokens, topLevel, key.span.end.offset, headEnd);
248
+ const attributes = findAttributesLandmarks(eventTokens, key.span.end.offset, headEnd);
249
+ const attributeEnd = attributes.at(-1)?.span.end.offset ?? key.span.end.offset;
215
250
  const datatypeColon = topLevel.find((token) => token.type === TokenType.Colon
216
- && token.span.start.offset >= (attributes?.span.end.offset ?? key.span.end.offset)
251
+ && token.span.start.offset >= attributeEnd
217
252
  && token.span.end.offset <= headEnd);
218
253
  const datatype = datatypeColon ? findDatatypeLandmark(eventTokens, datatypeColon.span.end.offset, headEnd) : undefined;
254
+ const valueLandmarks = event.value.type === 'NodeLiteral'
255
+ ? findNodeValueLandmarks(eventTokens, valueSpan)
256
+ : [{ part: 'value', span: valueSpan }];
219
257
  return [
220
258
  { part: 'key', span: key.span },
221
- ...(attributes ? [attributes] : []),
259
+ ...attributes,
222
260
  ...(datatypeColon ? [{ part: 'datatype-colon', span: datatypeColon.span }] : []),
223
261
  ...(datatype ? [datatype] : []),
224
262
  ...(equals ? [{ part: 'equals', span: equals.span }] : []),
225
- { part: 'value', span: valueSpan },
226
- ].sort((left, right) => left.span.start.offset - right.span.start.offset);
263
+ ...valueLandmarks,
264
+ ].sort(compareLandmarks);
265
+ }
266
+ function attributeBindables(event, ownerPath, tokens, orderStart) {
267
+ const eventTokens = semanticEventTokens(event, tokens);
268
+ const topLevel = topLevelTokens(eventTokens);
269
+ const key = topLevel[0];
270
+ if (!key) {
271
+ return [];
272
+ }
273
+ const valueSpan = event.value.span;
274
+ const equals = topLevel
275
+ .filter((token) => token.type === TokenType.Equals && token.span.end.offset <= valueSpan.start.offset)
276
+ .at(-1);
277
+ const headEnd = equals?.span.start.offset ?? valueSpan.start.offset;
278
+ const entries = [];
279
+ entries.push(...findAttributeEntryBindables(eventTokens, ownerPath, key.span.end.offset, headEnd));
280
+ if (event.value.type === 'NodeLiteral') {
281
+ entries.push(...findNodeHeadAttributeEntryBindables(eventTokens, ownerPath, valueSpan));
282
+ }
283
+ return entries.map((entry, index) => ({
284
+ span: entry.span,
285
+ valueSpan: entry.valueSpan,
286
+ valueType: 'StringLiteral',
287
+ path: entry.path,
288
+ order: orderStart + index,
289
+ kind: 'attribute',
290
+ landmarks: entry.landmarks,
291
+ }));
292
+ }
293
+ function semanticEventTokens(event, tokens) {
294
+ return tokens
295
+ .filter((token) => token.type !== TokenType.EOF)
296
+ .filter((token) => token.type !== TokenType.Newline)
297
+ .filter((token) => !isCommentToken(token))
298
+ .filter((token) => token.span.start.offset >= event.span.start.offset && token.span.end.offset <= event.span.end.offset);
299
+ }
300
+ function findAttributeEntryBindables(tokens, ownerPath, afterOffset, beforeOffset) {
301
+ const entries = [];
302
+ let index = 0;
303
+ while (index < tokens.length) {
304
+ const token = tokens[index];
305
+ if (token.type !== TokenType.At
306
+ || token.span.start.offset < afterOffset
307
+ || token.span.end.offset > beforeOffset) {
308
+ index += 1;
309
+ continue;
310
+ }
311
+ const scanned = scanAttributeEntryBindables(tokens, index, beforeOffset, ownerPath);
312
+ entries.push(...scanned.entries);
313
+ index = Math.max(index + 1, scanned.nextIndex);
314
+ }
315
+ return entries;
316
+ }
317
+ function findNodeHeadAttributeEntryBindables(tokens, ownerPath, valueSpan) {
318
+ const valueTokens = tokens.filter((token) => token.span.start.offset >= valueSpan.start.offset
319
+ && token.span.end.offset <= valueSpan.end.offset);
320
+ let angleDepth = 0;
321
+ let parenDepth = 0;
322
+ let tagSeen = false;
323
+ const entries = [];
324
+ for (let index = 0; index < valueTokens.length; index += 1) {
325
+ const token = valueTokens[index];
326
+ if (token.type === TokenType.LeftAngle && angleDepth === 0) {
327
+ angleDepth = 1;
328
+ continue;
329
+ }
330
+ if (angleDepth === 1 && !tagSeen && isSemanticToken(token)) {
331
+ tagSeen = true;
332
+ continue;
333
+ }
334
+ if (angleDepth === 1 && parenDepth === 0 && (token.type === TokenType.LeftParen || token.type === TokenType.RightAngle)) {
335
+ break;
336
+ }
337
+ if (angleDepth === 1 && token.type === TokenType.LeftParen) {
338
+ parenDepth += 1;
339
+ continue;
340
+ }
341
+ if (angleDepth === 1 && token.type === TokenType.RightParen) {
342
+ parenDepth = Math.max(0, parenDepth - 1);
343
+ continue;
344
+ }
345
+ if (angleDepth === 1 && parenDepth === 0 && token.type === TokenType.At) {
346
+ const scanned = scanAttributeEntryBindables(valueTokens, index, valueSpan.end.offset, ownerPath);
347
+ entries.push(...scanned.entries);
348
+ index = Math.max(index, scanned.nextIndex - 1);
349
+ }
350
+ }
351
+ return entries;
352
+ }
353
+ function scanAttributeEntryBindables(tokens, atIndex, beforeOffset, ownerPath) {
354
+ const entries = [];
355
+ let index = atIndex + 1;
356
+ let depth = 0;
357
+ let keyToken;
358
+ let entryLandmarks = [];
359
+ let valueStart;
360
+ let valueEnd;
361
+ const finishEntry = (end) => {
362
+ if (!keyToken) {
363
+ return;
364
+ }
365
+ entries.push({
366
+ path: formatAttributePath(ownerPath, keyToken.value),
367
+ span: { start: keyToken.span.start, end },
368
+ valueSpan: {
369
+ start: valueStart ?? keyToken.span.start,
370
+ end: valueEnd ?? keyToken.span.end,
371
+ },
372
+ landmarks: entryLandmarks,
373
+ });
374
+ keyToken = undefined;
375
+ entryLandmarks = [];
376
+ valueStart = undefined;
377
+ valueEnd = undefined;
378
+ };
379
+ while (index < tokens.length) {
380
+ const token = tokens[index];
381
+ if (token.span.start.offset > beforeOffset) {
382
+ break;
383
+ }
384
+ if (token.type === TokenType.LeftBrace) {
385
+ depth += 1;
386
+ index += 1;
387
+ continue;
388
+ }
389
+ if (token.type === TokenType.RightBrace) {
390
+ if (depth <= 1) {
391
+ finishEntry(token.span.start);
392
+ return { entries, nextIndex: index + 1 };
393
+ }
394
+ depth -= 1;
395
+ if (keyToken) {
396
+ valueEnd = token.span.end;
397
+ }
398
+ index += 1;
399
+ continue;
400
+ }
401
+ if (depth === 1) {
402
+ if (token.type === TokenType.Comma) {
403
+ finishEntry(token.span.start);
404
+ index += 1;
405
+ continue;
406
+ }
407
+ if (!keyToken && isSemanticToken(token)) {
408
+ keyToken = token;
409
+ entryLandmarks.push({ part: 'attribute-key', span: token.span });
410
+ index += 1;
411
+ continue;
412
+ }
413
+ if (keyToken) {
414
+ switch (token.type) {
415
+ case TokenType.Colon:
416
+ entryLandmarks.push({ part: 'attribute-datatype-colon', span: token.span });
417
+ break;
418
+ case TokenType.Equals:
419
+ entryLandmarks.push({ part: 'attribute-equals', span: token.span });
420
+ valueStart = undefined;
421
+ break;
422
+ default:
423
+ if (isSemanticToken(token)) {
424
+ const previous = entryLandmarks.at(-1)?.part;
425
+ const part = previous === 'attribute-datatype-colon' ? 'attribute-datatype' : previous === 'attribute-equals' || valueStart ? 'attribute-value' : 'attribute-key';
426
+ entryLandmarks.push({ part, span: token.span });
427
+ if (part === 'attribute-value') {
428
+ valueStart ??= token.span.start;
429
+ valueEnd = token.span.end;
430
+ }
431
+ }
432
+ break;
433
+ }
434
+ }
435
+ }
436
+ else if (depth > 1 && keyToken && isSemanticToken(token)) {
437
+ valueStart ??= token.span.start;
438
+ valueEnd = token.span.end;
439
+ entryLandmarks.push({ part: 'attribute-value', span: token.span });
440
+ }
441
+ index += 1;
442
+ }
443
+ if (keyToken) {
444
+ const end = tokens[Math.max(atIndex, index - 1)]?.span.end ?? keyToken.span.end;
445
+ finishEntry(end);
446
+ }
447
+ return { entries, nextIndex: index };
448
+ }
449
+ function formatAttributePath(ownerPath, key) {
450
+ return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(key)
451
+ ? `${ownerPath}@${key}`
452
+ : `${ownerPath}@[${JSON.stringify(key)}]`;
227
453
  }
228
454
  function isCommentToken(token) {
229
455
  return token.type === TokenType.LineComment || token.type === TokenType.BlockComment;
@@ -258,25 +484,144 @@ function depthDelta(token) {
258
484
  return 0;
259
485
  }
260
486
  }
261
- function findAttributesLandmark(tokens, topLevel, afterOffset, beforeOffset) {
262
- const at = topLevel.find((token) => token.type === TokenType.At
263
- && token.span.start.offset >= afterOffset
264
- && token.span.end.offset <= beforeOffset);
265
- if (!at) {
266
- return undefined;
487
+ function findAttributesLandmarks(tokens, afterOffset, beforeOffset) {
488
+ const landmarks = [];
489
+ let index = 0;
490
+ while (index < tokens.length) {
491
+ const token = tokens[index];
492
+ if (token.type !== TokenType.At
493
+ || token.span.start.offset < afterOffset
494
+ || token.span.end.offset > beforeOffset) {
495
+ index += 1;
496
+ continue;
497
+ }
498
+ const attrLandmarks = scanAttributeLandmarks(tokens, index, beforeOffset);
499
+ landmarks.push(...attrLandmarks.landmarks);
500
+ index = Math.max(index + 1, attrLandmarks.nextIndex);
267
501
  }
268
- const nextHeadPart = topLevel.find((token) => token.span.start.offset > at.span.start.offset
269
- && token.span.start.offset <= beforeOffset
270
- && (token.type === TokenType.Colon || token.type === TokenType.Equals));
271
- const end = nextHeadPart
272
- ? tokens
273
- .filter((token) => token.span.end.offset <= nextHeadPart.span.start.offset)
274
- .at(-1)?.span.end ?? at.span.end
275
- : at.span.end;
276
- return {
277
- part: 'attributes',
278
- span: { start: at.span.start, end },
279
- };
502
+ return landmarks;
503
+ }
504
+ function scanAttributeLandmarks(tokens, atIndex, beforeOffset) {
505
+ const at = tokens[atIndex];
506
+ const landmarks = [{ part: 'attribute-marker', span: at.span }];
507
+ let index = atIndex + 1;
508
+ let depth = 0;
509
+ let entryPart = 'key';
510
+ let opened = false;
511
+ while (index < tokens.length) {
512
+ const token = tokens[index];
513
+ if (token.span.start.offset > beforeOffset) {
514
+ break;
515
+ }
516
+ if (token.type === TokenType.LeftBrace) {
517
+ depth += 1;
518
+ landmarks.push({ part: opened ? 'attribute-value' : 'attribute-open', span: token.span });
519
+ opened = true;
520
+ index += 1;
521
+ continue;
522
+ }
523
+ if (token.type === TokenType.RightBrace) {
524
+ if (depth <= 1) {
525
+ landmarks.push({ part: 'attribute-close', span: token.span });
526
+ return { landmarks, nextIndex: index + 1 };
527
+ }
528
+ depth -= 1;
529
+ landmarks.push({ part: 'attribute-value', span: token.span });
530
+ index += 1;
531
+ continue;
532
+ }
533
+ if (depth === 1) {
534
+ switch (token.type) {
535
+ case TokenType.Colon:
536
+ landmarks.push({ part: 'attribute-datatype-colon', span: token.span });
537
+ entryPart = 'datatype';
538
+ break;
539
+ case TokenType.Equals:
540
+ landmarks.push({ part: 'attribute-equals', span: token.span });
541
+ entryPart = 'value';
542
+ break;
543
+ case TokenType.Comma:
544
+ landmarks.push({ part: 'attribute-separator', span: token.span });
545
+ entryPart = 'key';
546
+ break;
547
+ default:
548
+ if (isSemanticToken(token)) {
549
+ landmarks.push({ part: attributeEntryPart(entryPart), span: token.span });
550
+ }
551
+ break;
552
+ }
553
+ }
554
+ else if (depth > 1 && isSemanticToken(token)) {
555
+ landmarks.push({ part: 'attribute-value', span: token.span });
556
+ }
557
+ index += 1;
558
+ }
559
+ return { landmarks, nextIndex: index };
560
+ }
561
+ function attributeEntryPart(part) {
562
+ if (part === 'key') {
563
+ return 'attribute-key';
564
+ }
565
+ if (part === 'datatype') {
566
+ return 'attribute-datatype';
567
+ }
568
+ return 'attribute-value';
569
+ }
570
+ function findNodeValueLandmarks(tokens, valueSpan) {
571
+ const valueTokens = tokens.filter((token) => token.span.start.offset >= valueSpan.start.offset
572
+ && token.span.end.offset <= valueSpan.end.offset);
573
+ const landmarks = [];
574
+ let angleDepth = 0;
575
+ let parenDepth = 0;
576
+ let state = 'open';
577
+ for (const token of valueTokens) {
578
+ if (token.type === TokenType.LeftAngle && angleDepth === 0) {
579
+ landmarks.push({ part: 'node-open', span: token.span });
580
+ angleDepth = 1;
581
+ state = 'tag';
582
+ continue;
583
+ }
584
+ if (token.type === TokenType.RightAngle && angleDepth === 1 && parenDepth === 0) {
585
+ landmarks.push({ part: 'node-close', span: token.span });
586
+ state = 'done';
587
+ continue;
588
+ }
589
+ if (state === 'tag' && isSemanticToken(token)) {
590
+ landmarks.push({ part: 'node-tag', span: token.span });
591
+ state = 'open';
592
+ continue;
593
+ }
594
+ if (angleDepth === 1 && parenDepth === 0 && token.type === TokenType.Colon) {
595
+ landmarks.push({ part: 'node-datatype-colon', span: token.span });
596
+ state = 'datatype';
597
+ continue;
598
+ }
599
+ if (state === 'datatype' && isSemanticToken(token)) {
600
+ landmarks.push({ part: 'node-datatype', span: token.span });
601
+ continue;
602
+ }
603
+ if (angleDepth === 1 && token.type === TokenType.LeftParen) {
604
+ parenDepth += 1;
605
+ landmarks.push({ part: parenDepth === 1 ? 'node-children-open' : 'value', span: token.span });
606
+ state = 'children';
607
+ continue;
608
+ }
609
+ if (angleDepth === 1 && token.type === TokenType.RightParen) {
610
+ if (parenDepth === 1) {
611
+ landmarks.push({ part: 'node-children-close', span: token.span });
612
+ }
613
+ parenDepth = Math.max(0, parenDepth - 1);
614
+ continue;
615
+ }
616
+ if (angleDepth === 1 && parenDepth === 1 && token.type === TokenType.Comma) {
617
+ landmarks.push({ part: 'node-child-separator', span: token.span });
618
+ continue;
619
+ }
620
+ if (angleDepth === 1 && parenDepth === 1 && isSemanticToken(token)) {
621
+ landmarks.push({ part: 'node-child-value', span: token.span });
622
+ }
623
+ }
624
+ return landmarks.length > 0 ? landmarks : [{ part: 'value', span: valueSpan }];
280
625
  }
281
626
  function findDatatypeLandmark(tokens, afterOffset, beforeOffset) {
282
627
  const datatypeTokens = tokens.filter((token) => token.span.start.offset >= afterOffset
@@ -295,6 +640,21 @@ function findDatatypeLandmark(tokens, afterOffset, beforeOffset) {
295
640
  function spansOverlapInterior(left, right) {
296
641
  return left.start.offset < right.end.offset && right.start.offset < left.end.offset;
297
642
  }
643
+ function compareLandmarks(left, right) {
644
+ const start = left.span.start.offset - right.span.start.offset;
645
+ if (start !== 0) {
646
+ return start;
647
+ }
648
+ return landmarkSpecificity(left.part) - landmarkSpecificity(right.part);
649
+ }
650
+ function landmarkSpecificity(part) {
651
+ return part === 'value' || part === 'attributes' ? 1 : 0;
652
+ }
653
+ function isSemanticToken(token) {
654
+ return token.type !== TokenType.Newline
655
+ && token.type !== TokenType.EOF
656
+ && !isCommentToken(token);
657
+ }
298
658
  function buildDescendantIndex(bindables) {
299
659
  const grouped = new Map();
300
660
  for (const bindable of bindables) {
@@ -347,6 +707,25 @@ function ancestorPaths(path) {
347
707
  result.push(path.slice(0, index));
348
708
  continue;
349
709
  }
710
+ if (marker === '@') {
711
+ index += 1;
712
+ if (path[index] === '[') {
713
+ index += 1;
714
+ while (index < path.length && path[index] !== ']') {
715
+ index += 1;
716
+ }
717
+ if (index < path.length) {
718
+ index += 1;
719
+ }
720
+ }
721
+ else {
722
+ while (index < path.length && path[index] !== '@' && path[index] !== '.' && path[index] !== '[') {
723
+ index += 1;
724
+ }
725
+ }
726
+ result.push(path.slice(0, index));
727
+ continue;
728
+ }
350
729
  index += 1;
351
730
  }
352
731
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@altopelago/aeon-annotation-stream",
3
- "version": "0.9.4",
3
+ "version": "0.9.6",
4
4
  "description": "Build AEON annotation streams from comments, attributes, and source metadata.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -45,8 +45,8 @@
45
45
  "access": "public"
46
46
  },
47
47
  "dependencies": {
48
- "@altopelago/aeon-aes": "0.9.4",
49
- "@altopelago/aeon-lexer": "0.9.4"
48
+ "@altopelago/aeon-aes": "0.9.6",
49
+ "@altopelago/aeon-lexer": "0.9.6"
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsc -p tsconfig.json",