Something I didn't think of earlier is function trains, which annoyingly won't make much sense without knowing some APL - they're a pattern which takes more effort to explain than they take to start using. But still, simple APL expressions run right to left so the example below pushes 3 into ⊢ which echoes it unchanged, that goes into + which is a no-op here on a positive integer, and then the 3 goes into ⍳ which makes the first 3 numbers:
⍳+⊢ 3 ⍝ the first 3 numbers
1 2 3
it behaves differently from the same thing in parens shown below, which triggers a function train pattern and slightly breaks the right-to-left execution by making the data able to feed into two functions, not just one. In the below code the 3 is pushed into ⊢ on the right which echoes it unchanged but it also jumps over and is pushed into ⍳ on the left to make the first three numbers 1 2 3, and these two results become (1 2 3 + 3) and the whole thing makes 4 5 6: (⍳+⊢) 3 ⍝ 3 plus the first 3 numbers
4 5 6
It's not the parens which make the difference, assigning it to a variable to make a named function also does it: f ← ⍳+⊢
f 3
4 5 6
Point being, there's something semantically meaningful happening but it has no symbol to turn into words. It's not the proximity of the functions being bunched together even, it's roughly an odd number of functions separated from their argument(s) but with some edge cases. The text editor would have to be parsing APL to detect it, and I don't know how it would describe what's happening in useful words. "iota plus self_right" might still let you recognise three things together, but does "enclose bind grade_up index self_right" look like a function train? Does "It's easier to spot the pattern with symbols, it's easier to have the pattern exist at all in a symbols based language.When the Dyalog IDE can show you:
+,-,×,÷
┌─┼───┐
+ , ┌─┼───┐
- , ┌─┼─┐
× , ÷
to explain how the train is being interpreted, what does the text version of that say?