В каком порядке Class Completion ставит свои результаты?

Пример: я создаю новый модуль, объявляю класс с несколькими методами, такими как конструктор, деструктор, метод1, метод2, метод3 в этом порядке, а затем нажимаю Ctrl-Shift-C. Среда IDE создает все тела методов автоматически, но порядок перепутан, а не так, как было объявлено в разделе интерфейса.

Теперь это не проблема, но есть ли причина для этого. Кажется, что это сложнее смешать, чем просто сделать это в порядке объявления.

Или есть какое-то правило, которое имеет смысл, которого я не вижу?

4 ответа

Решение

Это немного сложно ответить, так как это зависит от того, как ваши методы уже расположены.

Если они уже реализованы в алфавитном порядке, он попытается сохранить это. Если IDE не может вывести какой-либо порядок, она прибегает к удалению их в конце файла.

Есть еще одна проблема, когда, по соглашению, если вы включаете комментарий в форме: {} перед первым блоком реализованного метода, а затем используете этот комментарий для разграничения всех последующих реализаций класса, он будет пытаться сохранить методы сгруппированными. все вместе.

Алфавитный порядок следует тем же правилам, что и выше, за исключением того, что он может вводить новые методы в этот логический блок, обозначенный указанным комментарием.

Если вы используете завершение класса с новым классом, вы заметите, что IDE автоматически сгенерирует этот заметный комментарий.

Если вы разрешите автоклассификации классов автоматически упорядочивать методы и используете только клавиши Ctrl + Shift + UpAr для перехода между реализацией метода и объявлением, порядок должен быть менее важным.

Как правило, я перехожу к классу decl, используя приведенную выше последовательность клавиш, затем использую клавиши со стрелками, чтобы перейти к методу в decl, который я хочу, и затем снова использую эту последовательность клавиш, чтобы быстро добраться до нее.

Другая приятная последовательность клавиш - это Ctrl + Alt + UpAr или Ctrl + Alt + DnAr, которые быстро переключаются с метода impl на метод impl в порядке файлов.

По умолчанию я почти уверен, что он пытается создать их в алфавитном порядке по имени метода, а затем пытается придерживаться этого, когда впоследствии добавляются другие методы, используя тот же метод. Конечный результат может быть немного случайным смешением при заказе.

По своему опыту я обнаружил, что в некоторых случаях среда IDE создает методы в алфавитном порядке, а иногда просто добавляет новые методы в конец файла.

IDE пытается создать все в алфавитном порядке. Но если методы становятся непоследовательными (например, вы переименовываете метод), это приводит к путанице. Точное поведение, кажется, зависит от версии. Старые версии просто добавляли новый метод в конец файла в любом порядке. Более новые версии кажутся немного более умными, но я точно не выяснил, как именно.

Другие вопросы по тегам