В каком порядке Class Completion ставит свои результаты? - PullRequest
4 голосов
/ 09 февраля 2009

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

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

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

Ответы [ 4 ]

12 голосов
/ 09 февраля 2009

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

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

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

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

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

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

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

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

3 голосов
/ 09 февраля 2009

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

0 голосов
/ 09 февраля 2009

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

0 голосов
/ 09 февраля 2009

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

...