Замечания и предложения

Спасибо, я читал, что делает эта директива. Но это не ответ на мои вопросы: зачем, когда и как часто нужно?

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

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

Зато подобная практика помогает находить баги среды.

Ну это у Вас уже сродни бородатейшему советскому анекдоту:

  • А почему у вас в СССР в магазинах мяса нет?
  • Зато у Вас в Америке негров линчуют!
1 лайк

Предлагаю запретить создавать проекты Windows Forms, поскольку:

  1. Они уже не поддерживаются разработчиками.
  2. Содержат много багов, связанных, например, с переименованием и анализатором кода.

Переименование не относится к Windows Forms. Переименование относится к переименованию.

Анализатор кода не относится к Windows Forms. Он относится к средствам Intellisense. Особых багов я там не знаю - может, Sun Serega их напишет.

Переименование там ломается часто. Я об этом.

Да, я понял. Дизайнер форм в этом не виноват. Виновато переименование.

Был бы дизайнер для WPF-приложений… :slight_smile:

Да, я б с удовольствием поручил его кому-то интегрировать.

3 лайка

Директива {$description ‘’}
Короче, всё, что нужно сделать:
в TreeConverter\TreeConversion\compiler_string_consts.cs в 340-ую строку добавить

        public static string description_string = "description";

в Compiler\Compiler.cs в строку 1922 добавить:

                if (compilerDirectives.TryGetValue(TreeConverter.compiler_string_consts.description_string, out cds))
                {
                    cdo.Description = cds[0].directive;
                }

в 1986-ую:

                    if (!string.IsNullOrEmpty(project.description))
                        cdo.Description = project.description;

в 2012-ой надо заменить sw.WriteLine("VALUE \"FileDescription\"," + "\"" + "" + "\""); на sw.WriteLine("VALUE \"FileDescription\"," + "\"" + cdo.Description + "\""); В Compiler\ProjectInfo.cs в 33-ю строку:

        private string _description;

в 194-ой организовать свойство по тому полю:

        public string description
        {
            get
            {
                return _description;
            }
            set
            {
                _description = value;
            }
        }

в 483-ю добавить:

            writer.WriteAttributeString("Description", description);

и в 549-ую:

            description = reader.GetAttribute("Description");
            if (description == null) description = "";

в NETGenerator\NETGenerator.cs в 89-ую:

        private string _Description = "";

        public string Description
        {
            get { return _Description; }
            set { _Description = value; NeedDefineVersionInfo = true; }
        }

и последнее – необходимо как-то записать описание в сборку, с этим я не разобрался.
Вроде это всё, что требуется.

А почему не пулл реквестом?

Потому что гитхаб “хорошо” показывает изменения в файлах:

Да и я так и не разобрался как впилить описание в итоговую сборку.

Да-да. А потом что-то где-то вылезет в другом месте и разработчики будут еще полгода выковыривать баги на основе полсотни issure, которые им радостно нарисуют добрые люди. Зато будет удовлетворена сомнительная хотелка.

1 лайк

@RAlex, я бывал часто с Вами не согласен в чём-либо, но сейчас поддерживаю Вашу позицию.

Потому что не против твоей хотелки сейчас высказывания летят.

Я всё готов протестировать. Вряд ли добавление описания процессу может повлечь за собой какие-то критические ошибки.

Это хорошо, что готовы. Тогда тестируйте. Только, разберитесь с тем, с чем ещё не разобрались.

Пока это все - “сотрясания воздуха”. Разработчики по Вашему предложению не отписались, а тут главное - это их мнение.

1 лайк