[Форматирование кода] Квалификатор модуля

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

[Форматирование кода] Квалификатор модуля

Сообщение Kemet » 04.05.2013 22:00:34

Здравствуйте.
Есть ли возможность автоматически вставить квалификаторы модулей для всех типов/процедур/функций/переменных, внешних для данного модуля?
Kemet
постоялец
 
Сообщения: 241
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория

Re: [Форматирование кода] Квалификатор модуля

Сообщение absdjfh » 05.05.2013 14:29:35

Под квалификаторами вы имеете ввиду конструкции вида SysUtils.IntToStr(...) вместо IntToStr(...)?
(если да):
Лично я не знаю, но интересуюсь - зачем это? Если одноименная функция находится в разных модулях, то ее принципиально невозможно квалифицировать автоматически, а если она находится только в одном модуле, то и квалификатор не нужен - компилятор делает все автоматически.
absdjfh
новенький
 
Сообщения: 60
Зарегистрирован: 21.01.2012 13:59:00

Re: [Форматирование кода] Квалификатор модуля

Сообщение Kemet » 05.05.2013 16:46:56

absdjfh писал(а):Под квалификаторами вы имеете ввиду конструкции вида SysUtils.IntToStr(...) вместо IntToStr(...)?

Совершенно верно.
absdjfh писал(а):Лично я не знаю, но интересуюсь - зачем это?

Причин несколько:
1) корпоративный кодестайлинг - у нас принято указывать имя модуля для импортированных элементов.
2) наличие в текущий момент большого стороннего проекта в котором нужно разбираться, код там довольно ужасен, сами разработчики уже в нем запутались, - куча перегруженных процедур в разных модулях, одноименные методы в классах, инклюды и т.п.
absdjfh писал(а):Если одноименная функция находится в разных модулях, то ее принципиально невозможно квалифицировать автоматически
При рефакторинге это учитывается, т.е. даже в рамках существующих механизмов это возможно, другое дело, что мне нужно конкретное действие. Возможно это реально сделать не правя имеющийся инструментарий.
absdjfh писал(а):компилятор делает все автоматически.

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

Добавлено спустя 2 часа 20 минут 38 секунд:
Раз с квалификаторами никак, может есть возможность, чтобы внешние идентификаторы подсвечивать другим цветом? В настройках не нашел, а фича нужная
Kemet
постоялец
 
Сообщения: 241
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 243

Рейтинг@Mail.ru