Просмотр исходного кода

[visual] Only use the first document environment when calculating the preamble (#14343)

GitOrigin-RevId: fc7cb26f2e71bd1142f0269b7b95cacad3cf10a5
Alf Eaton 3 лет назад
Родитель
Сommit
c90f4bee62

+ 8 - 2
services/web/frontend/js/features/source-editor/extensions/visual/atomic-decorations.ts

@@ -188,13 +188,19 @@ export const atomicDecorations = (options: Options) => {
       currentOrdinal = ordinalStack.pop() ?? 0
     }
 
+    let seenDocumentEnvironment = false
+
     tree.iterate({
       enter(nodeRef) {
         if (nodeRef.node.type.is('Maketitle')) {
           preamble.to = nodeRef.node.from
         } else if (nodeRef.node.type.is('DocumentEnvironment')) {
-          preamble.to =
-            nodeRef.node.getChild('Content')?.from ?? nodeRef.node.from
+          // only count the first instance of DocumentEnvironment
+          if (!seenDocumentEnvironment) {
+            preamble.to =
+              nodeRef.node.getChild('Content')?.from ?? nodeRef.node.from
+            seenDocumentEnvironment = true
+          }
         } else if (nodeRef.node.type.is('Title')) {
           const node = nodeRef.node.getChild('TextArgument')
           if (node) {