Most editors’ find & replace features are still very close to the original design intended for text documents, so they become unwieldy when you need to match across newlines and indentation for example, or when a parse of the code is necessary to capture a particular expression. Codex is an attempt to rethink what find & replace should look like in a modern code editor. It defines a simple but powerful syntax for describing code modifications, combining plain text, regular expressions and Tree-sitter queries, along with sensible handling of newlines and indentation*. It can be used just like regular plain text find & replace, but allows freely mixing in regexes and Tree-sitter queries as more flexibility is needed. It introduces “line quantifiers” for matching a bunch of lines at the same nesting level, so basic structural changes can be achieved without even using a query (see the JavaScript function example in the link). I designed Codex with a specific use-case in mind (the one I show in the video), so any suggestions for other things it should support would be much appreciated, as well as general feedback. *Indentation is relative and space/tab agnostic.
Story Published at: January 18, 2023 at 08:56AM
Story Published at: January 18, 2023 at 08:56AM