Здравствуйте.
Есть ли возможность автоматически вставить квалификаторы модулей для всех типов/процедур/функций/переменных, внешних для данного модуля?
[Форматирование кода] Квалификатор модуля
Модератор: Модераторы
Под квалификаторами вы имеете ввиду конструкции вида SysUtils.IntToStr(...) вместо IntToStr(...)?
(если да):
Лично я не знаю, но интересуюсь - зачем это? Если одноименная функция находится в разных модулях, то ее принципиально невозможно квалифицировать автоматически, а если она находится только в одном модуле, то и квалификатор не нужен - компилятор делает все автоматически.
(если да):
Лично я не знаю, но интересуюсь - зачем это? Если одноименная функция находится в разных модулях, то ее принципиально невозможно квалифицировать автоматически, а если она находится только в одном модуле, то и квалификатор не нужен - компилятор делает все автоматически.
-
Kemet
- постоялец
- Сообщения: 241
- Зарегистрирован: 10.02.2010 18:28:32
- Откуда: Временно оккупированная территория
- Контактная информация:
absdjfh писал(а):Под квалификаторами вы имеете ввиду конструкции вида SysUtils.IntToStr(...) вместо IntToStr(...)?
Совершенно верно.
absdjfh писал(а):Лично я не знаю, но интересуюсь - зачем это?
Причин несколько:
1) корпоративный кодестайлинг - у нас принято указывать имя модуля для импортированных элементов.
2) наличие в текущий момент большого стороннего проекта в котором нужно разбираться, код там довольно ужасен, сами разработчики уже в нем запутались, - куча перегруженных процедур в разных модулях, одноименные методы в классах, инклюды и т.п.
При рефакторинге это учитывается, т.е. даже в рамках существующих механизмов это возможно, другое дело, что мне нужно конкретное действие. Возможно это реально сделать не правя имеющийся инструментарий.absdjfh писал(а):Если одноименная функция находится в разных модулях, то ее принципиально невозможно квалифицировать автоматически
absdjfh писал(а):компилятор делает все автоматически.
Есть большая ошибка в восприятии - программы пишутся не только для компиляторов, но и для людей.
К тому же часто изза пресловутого человеческого фактора компиляторы тоже ошибаются, вернее следуют ошибочной логике программиста, - например, если есть две процедуры с одинаковой сигнатурой, но в разных модулях, и эти модули одновременно импортируются ...
Добавлено спустя 2 часа 20 минут 38 секунд:
Раз с квалификаторами никак, может есть возможность, чтобы внешние идентификаторы подсвечивать другим цветом? В настройках не нашел, а фича нужная
