OberonCore https://forum.oberoncore.ru/ |
|
DevSelectors https://forum.oberoncore.ru/viewtopic.php?f=1&t=435 |
Страница 1 из 1 |
Автор: | Илья Ермаков [ Вторник, 17 Апрель, 2007 14:06 ] |
Заголовок сообщения: | DevSelectors |
На форуме Королевства Дельфи Trurl упомянул про такую штуку, как "селекторы", которые предназначены для управления версиями кода. Они расположены в недокументированном модуле DevSelectors. С чем их едят, непонятно ![]() Надеюсь, Trurl сейчас нам объяснит... |
Автор: | Trurl [ Вторник, 17 Апрель, 2007 15:27 ] |
Заголовок сообщения: | |
Объясняю. ![]() Добавляем в меню что-то вроде. Код: "Insert Left" "*F5" "DevSelectors.DepositLeft; StdCmds.PasteView" "StdCmds.PasteViewGuard" "Insert Middle" "*F6" "DevSelectors.DepositMiddle; StdCmds.PasteView" "StdCmds.PasteViewGuard" "Insert Right" "*F7" "DevSelectors.DepositRight; StdCmds.PasteView" "StdCmds.PasteViewGuard" Теперь можно вставлять в текст такие штучки, назовем их селекторами. [имя|вариант1|вариант2|вариант3|... ] Когда щелкаем на одном из вариантов, остальные прячутся, причем сразу во всех селекторах с тем же именем. Удобно где-нибудь в начале модуля сделать комментарии вида Код: (* [feature|On|Off] *) Тогда легко переключать варианты. Кроме того компилятор понимает команды вида Код: DevCompiler.CompileThis MyModule(feature:On)
|
Автор: | Илья Ермаков [ Вторник, 17 Апрель, 2007 15:31 ] |
Заголовок сообщения: | |
Круть! А мы тут колдыбаемся с фолдами ![]() Надо в следующем сервис-паке добавить пункты меню и документацию на модуль... |
Автор: | Борис Рюмшин [ Вторник, 17 Апрель, 2007 15:52 ] |
Заголовок сообщения: | |
Сие похоже из классического Оберона идет... |
Автор: | Vlad [ Среда, 18 Апрель, 2007 08:59 ] |
Заголовок сообщения: | |
Борис Рюмшин писал(а): Сие похоже из классического Оберона идет...
Это, типа, вместо препроцессора? ![]() |
Автор: | Илья Ермаков [ Среда, 18 Апрель, 2007 10:04 ] |
Заголовок сообщения: | |
Типа, да ![]() ![]() |
Автор: | Евгений Темиргалеев [ Среда, 18 Апрель, 2007 14:16 ] |
Заголовок сообщения: | |
Это не всместо препроцессора, а вместо условной компиляции, которая иногда бывает нужна. Целиком препроцессор в оберонах не был и не будет нужен. Кстати, если касается только кода, вполне можно обойтись следующим: Код: CONST
someOption = TRUE (*FALSE*); ... PROCEDURE Proc; BEGIN ... IF someOption THEN ... END END Proc; |
Автор: | batyrmastyr [ Среда, 18 Апрель, 2007 16:28 ] |
Заголовок сообщения: | |
Евгений Темиргалеев писал(а): ...Кстати, если касается только кода, вполне можно обойтись следующим:
Код: CONST someOption = TRUE (*FALSE*); ... PROCEDURE Proc; BEGIN ... IF someOption THEN ... END END Proc; Не скажи, бывает требуется менять много где и сразу, например тестируешь какую-нить структуру из сложных объектов на работе с числами/строками, а потом на работе с нужным типом данных, который неудобно смотреть в отладчике или логе ![]() |
Автор: | Trurl [ Четверг, 19 Апрель, 2007 09:31 ] |
Заголовок сообщения: | |
Евгений Темиргалеев писал(а): Это не всместо препроцессора, а вместо условной компиляции, которая иногда бывает нужна.
Обычно она нужна на промежуточных стадиях, когда есть желание поэксперементировать с разными вариантами. Кстати, еще одно возможное применение: Код: (*[comment|en|ru|fr] *)
|
Автор: | Александр Ильин [ Четверг, 19 Апрель, 2007 10:00 ] |
Заголовок сообщения: | |
Условная компиляция позволяет задавать директивы, которые будут применены к нескольким файлам сразу, это главное отличие от селекторов. Зато селекторы не увеличивают время компиляции, в отличие, например, от препроцессоров. |
Автор: | Trurl [ Четверг, 19 Апрель, 2007 10:45 ] |
Заголовок сообщения: | |
Александр Ильин писал(а): Условная компиляция позволяет задавать директивы, которые будут применены к нескольким файлам сразу, это главное отличие от селекторов.
А что мешает слелать то же с селекторами? DevCompiler.CompileThis Module1(dir:val) Module2(dir:val) |
Автор: | Александр Ильин [ Четверг, 19 Апрель, 2007 11:41 ] |
Заголовок сообщения: | |
Trurl писал(а): А что мешает слелать то же с селекторами?
DevCompiler.CompileThis Module1(dir:val) Module2(dir:val) Ничто не мешает, это правда. Сделаем тогда и следующий шаг: в команде CompileThis каждое значение val заменим на значение селектора, а перед этой командой разместим селекторы для каждой из директив компиляции. А что, получается довольно наглядная панель управления компиляцией... Все-таки, Обероны - потрясающий по возможностям конструктор. |
Автор: | Info21 [ Пятница, 20 Апрель, 2007 01:14 ] |
Заголовок сообщения: | |
Четто мне боязно: куда ж мы так заедем. Классический случай "... и все бросились играть в новую комбинаторную игру". |
Автор: | Евгений Темиргалеев [ Пятница, 20 Апрель, 2007 14:35 ] |
Заголовок сообщения: | |
Игра не игра ![]() |
Автор: | Info21 [ Пятница, 20 Апрель, 2007 17:27 ] |
Заголовок сообщения: | |
Евгений Темиргалеев писал(а): .. но условная компиляция нужна в отлаточных целях ..
Дак отлаживали, понимаем... Но что-то тут напоминает, идейно, пошаговый дежукер... |
Автор: | Евгений Темиргалеев [ Вторник, 04 Март, 2008 16:07 ] |
Заголовок сообщения: | Re: DevSelectors |
Илья Ермаков писал(а): Надеюсь, Trurl сейчас нам объяснит... Вот понадобилось в одном месте варианты навести. Думаю, дай прилеплю selectors. Ан не удалось - при сохранении документа трэпы идут. Вроде когда вбиваешь с нуля - нормально, а когда копируешь селекторы с вариантами - трэп при сохранении. (модератор, 03.04.2014) см. viewtopic.php?t=3972 |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |