Repository: prettier/plugin-php
Pull request #544 (2018-08-17 11:28:21)

fix: alignment for inline nodes
:star: 


Patch:
diff --git a/src/util.js b/src/util.js
index 472f1f4..c940bd5 100644
--- a/src/util.js
+++ b/src/util.js
@@ -400,13 +400,7 @@ function getAlignment(text) {
   const lines = text.split("\n");
   const lastLine = lines.pop();
 
-  let alignment = lastLine.length + 1;
-
-  if (lastLine.trim().length !== 0) {
-    alignment = lastLine.replace(/\S/g, "").length;
-  }
-
-  return alignment;
+  return lastLine.length - lastLine.trimLeft().length + 1;
 }
 
 function getFirstNestedChildNode(node) {


Test patch:
diff --git a/tests/inline/__snapshots__/jsfmt.spec.js.snap b/tests/inline/__snapshots__/jsfmt.spec.js.snap
index 8a29b8d..2b7e79d 100644
--- a/tests/inline/__snapshots__/jsfmt.spec.js.snap
+++ b/tests/inline/__snapshots__/jsfmt.spec.js.snap
@@ -1476,6 +1476,152 @@ function testTwo()
 }
 
 
+`;
+
+exports[`mixed-36.php 1`] = `
+<div>
+    <div>
+        <div>
+            <div>
+                <input id="payment_method_<?php echo esc_attr($gateway->id); ?>"
+                    type="radio"
+                    class="input-radio"
+                    name="payment_method"
+                    value="<?php echo esc_attr($gateway->id); ?>"
+                    <?php checked($gateway->chosen, true); ?>
+                    data-text="<?php echo esc_attr($gateway->order_button_text); ?>"
+            </div>
+        </div>
+    </div>
+</div>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<div>
+    <div>
+        <div>
+            <div>
+                <input id="payment_method_<?php echo esc_attr($gateway->id); ?>"
+                    type="radio"
+                    class="input-radio"
+                    name="payment_method"
+                    value="<?php echo esc_attr($gateway->id); ?>"
+                    <?php checked($gateway->chosen, true); ?>
+                    data-text="<?php echo esc_attr(
+                        $gateway->order_button_text
+                    ); ?>"
+            </div>
+        </div>
+    </div>
+</div>
+
+`;
+
+exports[`mixed-37.php 1`] = `
+<div>
+<?php
+func('verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg');
+?>
+</div>
+
+<div>
+<?php func('verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg'); ?>
+</div>
+
+<div>
+<?php
+func(
+  'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+  'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+  'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+);
+?>
+</div>
+
+<div>
+  <?php
+  func(
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+  );
+  ?>
+</div>
+
+<div>
+    <?php func('verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg'); ?>
+</div>
+
+<div>
+    <?php
+    func('verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg');
+    ?>
+</div>
+
+<div>
+    <?php
+    func(
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+    );
+    ?>
+</div>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<div>
+<?php func(
+    'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+    'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+    'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+); ?>
+</div>
+
+<div>
+<?php func(
+    'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+    'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+    'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+); ?>
+</div>
+
+<div>
+<?php func(
+    'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+    'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+    'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+); ?>
+</div>
+
+<div>
+  <?php func(
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+  ); ?>
+</div>
+
+<div>
+    <?php func(
+        'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+        'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+        'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+    ); ?>
+</div>
+
+<div>
+    <?php func(
+        'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+        'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+        'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+    ); ?>
+</div>
+
+<div>
+    <?php func(
+        'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+        'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+        'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+    ); ?>
+</div>
+
 `;
 
 exports[`only-html.php 1`] = `
diff --git a/tests/inline/mixed-36.php b/tests/inline/mixed-36.php
new file mode 100644
index 0000000..c70eb7d
--- /dev/null
+++ b/tests/inline/mixed-36.php
@@ -0,0 +1,15 @@
+<div>
+    <div>
+        <div>
+            <div>
+                <input id="payment_method_<?php echo esc_attr($gateway->id); ?>"
+                    type="radio"
+                    class="input-radio"
+                    name="payment_method"
+                    value="<?php echo esc_attr($gateway->id); ?>"
+                    <?php checked($gateway->chosen, true); ?>
+                    data-text="<?php echo esc_attr($gateway->order_button_text); ?>"
+            </div>
+        </div>
+    </div>
+</div>
diff --git a/tests/inline/mixed-37.php b/tests/inline/mixed-37.php
new file mode 100644
index 0000000..b7e813d
--- /dev/null
+++ b/tests/inline/mixed-37.php
@@ -0,0 +1,49 @@
+<div>
+<?php
+func('verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg');
+?>
+</div>
+
+<div>
+<?php func('verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg'); ?>
+</div>
+
+<div>
+<?php
+func(
+  'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+  'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+  'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+);
+?>
+</div>
+
+<div>
+  <?php
+  func(
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+  );
+  ?>
+</div>
+
+<div>
+    <?php func('verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg'); ?>
+</div>
+
+<div>
+    <?php
+    func('verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg', 'verVeryVeryVeryVeryVeryVeryVeryLongArg');
+    ?>
+</div>
+
+<div>
+    <?php
+    func(
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg',
+      'verVeryVeryVeryVeryVeryVeryVeryLongArg'
+    );
+    ?>
+</div>