Если вы хотите автоматически генерировать эти методы, а не писать их явно (даже с помощью шаблона IntelliJ), вы можете сделать это с помощью макроса аннотации, который будет выполняться во время компиляции.
В частности, вы можете проверить информацию об этом проекте scalameta . Однако обратите внимание, что макросы являются экспериментальной функцией, которая, вероятно, изменится тривиальным образом, когда выйдет Scala 3. По моему мнению, вам следует задуматься о том, стоит ли писать withName(name)
вместо copy(name=name)
, чтобы определить все эти методы (будь то вручную, с помощью фрагментов IntelliJ или с помощью макросов), и использовать макросы только в том случае, если избавить вас от множества неприятностей.