There's no reason they have to work one symbol at a time - that's just a missing feature in your language server implementation.
Some language servers support modifying the symbols in contexts like docstrings as well.
Some language servers support modifying the symbols in contexts like docstrings as well.
Do you have an example?
It does usually make that kind of DogModel -> WolfModel refactoring.
But I don't see why LSP servers shouldn't support this, still. I'm not sure if the LSP specification allows for this as of current, though.
Something that lets me say that I want to replace “Dog\(.*\)” with “Wolf\1”, but where each substitution is performed only within single “symbols” as identified by TS or LSP.
[1] https://ast-grep.github.io/guide/rule-config/atomic-rule.htm... [2] https://ast-grep.github.io/guide/rule-config/atomic-rule.htm...