Skip to content

Commit 7d68f6f

Browse files
cursoragent4ian
andcommitted
Fix eslint/FlowFixMe ordering to use block comments, restore src for re-run
Co-authored-by: Florian Rival <[email protected]>
1 parent 0737362 commit 7d68f6f

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

newIDE/app/scripts/fix-flow-errors.sh

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,8 @@ echo "--- Step 10: Fixing eslint/FlowFixMe comment ordering ---"
652652

653653
# When $FlowFixMe is inserted between eslint-disable-next-line and the code,
654654
# eslint-disable no longer applies (it targets the FlowFixMe comment instead).
655-
# Fix: convert eslint-disable-next-line to eslint-disable-line on the code line.
655+
# Fix: wrap the code with eslint-disable/eslint-enable block comments, so that
656+
# both the FlowFixMe suppression and the eslint suppression work correctly.
656657
python3 << 'PYEOF'
657658
import os, re
658659
@@ -678,12 +679,17 @@ for root, dirs, files in os.walk(src_dir):
678679
m = re.search(r'eslint-disable-next-line\s+(.+)', lines[i + 1])
679680
if m:
680681
rule = m.group(1).strip()
682+
indent = ''
683+
for ch in lines[i + 2]:
684+
if ch in (' ', '\t'):
685+
indent += ch
686+
else:
687+
break
688+
# Use eslint-disable/enable block instead
689+
new_lines.append(f'{indent}/* eslint-disable {rule} */\n')
681690
new_lines.append(lines[i]) # Keep $FlowFixMe
682-
# Skip eslint-disable-next-line, add as inline on code line
683-
code_line = lines[i + 2].rstrip()
684-
if 'eslint-disable-line' not in code_line:
685-
code_line = code_line + f' // eslint-disable-line {rule}'
686-
new_lines.append(code_line + '\n')
691+
new_lines.append(lines[i + 2]) # Keep code
692+
new_lines.append(f'{indent}/* eslint-enable {rule} */\n')
687693
i += 3
688694
modified = True
689695
fixed += 1
@@ -695,12 +701,17 @@ for root, dirs, files in os.walk(src_dir):
695701
m = re.search(r'eslint-disable-next-line\s+(.+)', lines[i])
696702
if m:
697703
rule = m.group(1).strip()
704+
indent = ''
705+
for ch in lines[i + 2]:
706+
if ch in (' ', '\t'):
707+
indent += ch
708+
else:
709+
break
710+
# Use eslint-disable/enable block instead
711+
new_lines.append(f'{indent}/* eslint-disable {rule} */\n')
698712
new_lines.append(lines[i + 1]) # Keep $FlowFixMe
699-
# Skip eslint-disable-next-line, add as inline on code line
700-
code_line = lines[i + 2].rstrip()
701-
if 'eslint-disable-line' not in code_line:
702-
code_line = code_line + f' // eslint-disable-line {rule}'
703-
new_lines.append(code_line + '\n')
713+
new_lines.append(lines[i + 2]) # Keep code
714+
new_lines.append(f'{indent}/* eslint-enable {rule} */\n')
704715
i += 3
705716
modified = True
706717
fixed += 1

0 commit comments

Comments
 (0)