4 ms·
Can you explain it? For instance in IntelliJ I can refactor and have it automatically replace only instances of the word "call" that are actually invocations of
by lazyasciiart 9y ago
Can you explain it? For instance in IntelliJ I can refactor and have it automatically replace only instances of the word "call" that are actually invocations of the function call(). That's structured editing, not text-based.
- didibus 9y agoYea, that's true, but your editor pane is a text editor non the less. The refactoring in this case is structured, even more so, its semantically accurate to a specific language. But your editor isn't. A structural editor does not allow you to make edits that would go against the syntax rules of your language.
- dmitriid 9y ago> your editor pane is a text editor non the less And the editor pane with paredit somehow becomes a magical structural editing machine? Paredit knows exactly zero things about your code. The only thing it can do is match brackets/parentheses and move code between them. That's it. In an actual code editing tool that actually understands code structure and semantics, I can: - select and move semantically and structurally valid blocks of code - extract parts of code into a separate variable - extract parts of code into a separate function - extract parts of code into a separate module - safely rename variables and functions across multiple files - simplify/split/extract/generify code - ... many more ...
- jyounker 9y agoI'd argue that IntelliJ is a structured editor. If you look under the hood the entire system is build around a tree-representation of the code. The "text editor" is a thin varnish on top of that syntactic representation.
- lazyasciiart 9y agoIt sounds like you're saying a tool can only be a structural editor if it doesn't do anything else. I want an editor that can operate structurally AND as a text editor - I don't write new code as syntactically complete units in one keystroke.