Введение

Продолжая развитие проекта, описанного в предыдущих статьях, я сосредоточился на кардинальном улучшении пользовательского опыта и точности инструментов внутри IDE. Основной акцент сделан на редакторе кода и системе подсветки синтаксиса . Теперь IDE представляет собой полноценную оболочку поверх GnuCOBOL , созданную специально для обучения и экспериментов с языком COBOL под Windows как для новичков, так и для энтузиастов.

Что нового

? Полностью переработанный редактор кода

  • Отслеживание изменений: Редактор теперь отслеживает, был ли файл изменен ([Modified] в заголовке), и запрашивает подтверждение при закрытии или открытии нового файла без сохранения.

  • Панель инструментов: Добавлена TToolBar с кнопками для быстрого доступа к основным функциям: Новый, Открыть, Сохранить, Компиляция, Запуск, Отладка, Поиск.

  • Контекстное меню: Для редактора добавлено контекстное меню с опциями Вырезать, Копировать, Вставить, Выделить всё, а также быстрый доступ к компиляции и запуску.

  • Улучшенное автодополнение:

    • Словарь автодополнения значительно расширен, включая почти все ключевые слова, уровни, контекстные слова и препроцессорные директивы из TCobolHighlighter.

    • Логика срабатывания улучшена: подсказки появляются при вводе букв, цифр и даже после удаления символов.

    • Исправлены ошибки в определении границ текущего вводимого слова.

  • Поддержка «Последних файлов»: Меню «Файл» теперь содержит подменю с недавно открытыми документами для быстрого доступа.

  • Функция «Сохранить как...» : Реализована возможность сохранения файла под новым именем.

  • Печать: Добавлена базовая поддержка печати содержимого редактора.

  • Горячие клавиши: Назначены стандартные горячие клавиши для всех основных действий (например, Ctrl+N, Ctrl+O, Ctrl+S, F7, F5, F9, Ctrl+F).

  • Улучшенная вставка из буфера: Обработка Ctrl+V переписана для корректной работы с большими объемами текста и переподсветки всего содержимого.

? Полная и точная подсветка синтаксиса TCobolHighlighter

Система подсветки претерпела масштабные изменения, став одной из самых точных для COBOL в доступных средах разработки под Windows:

  • Позиционная чувствительность COBOL:

    • Реализована логика определения столбцовой позиции символов (учитывая табуляцию).

    • Добавлена проверка размещения ключевых элементов в зонах A (1-7) и B (8-72).

    • Уровни 01 и 77 теперь подсвечиваются только при правильном размещении в зоне A.

  • Расширенная подсветка уровней переменных:

    • Поддержка всех уровней от 01 до 49, а также специальных 66, 77, 88.

    • Отдельная цветовая схема для уровня 88 (условные имена) и FILLER.

  • Подсветка форматов PIC:

    • Корректное распознавание PIC и PICTURE.

    • Поддержка сложных форматов (9(n), X(n), S9(n)V99, COMP-1 и т.д.).

    • Выделение самого формата отдельным цветом.

  • Специальные секции и контекстные ключевые слова:

    • LINKAGE SECTION, SPECIAL-NAMES, LOCAL-STORAGE SECTION подсвечиваются отдельно и проверяются на размещение в зоне B.

    • Широкий спектр контекстных слов (USAGE, COMP-x, OCCURS, VALUE, RENAMES и др.) получил собственную подсветку.

  • Расширенный словарь и стили:

    • Добавлены десятки новых ключевых слов и инструкций (EVALUATE, STRING, INSPECT, SET и т.д.).

    • Для каждого типа элементов синтаксиса определены уникальные цвета (оранжевый для уровней, магента для 88-уровней, фиолетовый для специальных секций и т.д.).

  • Улучшенная обработка строк и препроцессора:

    • Поддержка строк в одинарных и двойных кавычках.

    • Расширена поддержка препроцессорных директив (EXEC SQL, COPY и др.).

  • Производительность и структура:

    • Оптимизированы алгоритмы обработки строк.

    • Код модуля подсветки стал более модульным и читаемым.

    • Добавлены проверки для повышения стабильности.

Улучшенная компиляция и запуск

  • Настройка путей: Пути к cobc, gdb, а также к каталогам include и lib (например, для libgmp) вынесены в конфигурационный файл (INI), что делает IDE более гибкой.

  • Обработка ошибок компиляции: Вывод cobc теперь перехватывается и анализируется. Сообщения об ошибках и предупреждения отображаются в логе компиляции.

  • Кликабельные ошибки: Сообщения об ошибках в логе стали кликабельными – двойной клик по строке вида [имя_файла:номер_строки] Ошибка: ... перемещает курсор редактора к соответствующей строке.

  • Улучшенный запуск: Исполняемый файл теперь запускается в отдельном окне консоли, что улучшает пользовательский опыт.

  • Улучшенная отладка: Команда компиляции для отладки (-g) и запуск gdb в режиме tui через cmd /K стали более надежными.

Цель проекта

Эта IDE задумана как дружелюбная и функциональная оболочка поверх GnuCOBOL . Она предоставляет начинающим и тем, кто хочет освежить знания COBOL, удобную среду для написания, компиляции, запуска и отладки программ на этом языке программирования под операционной системой Windows. Упор на точную подсветку синтаксиса и стандарт COBOL-85 делает её отличным инструментом для изучения языка.

Итоги

Третья итерация COBOL IDE на Delphi превратила её из простого прототипа в мощный и удобный инструмент:

  • Мощный редактор с современными удобствами.

  • Высокоточная подсветка с учетом всех нюансов синтаксиса и позиционной чувствительности COBOL.

  • Улучшенный процесс разработки с компиляцией, запуском и отладкой.

  • Отличный выбор для изучения COBOL под Windows.

Где скачать

Все исходники и последние обновления доступны на GitHub:

? https://github.com/VohminV/COBOL_IDE

Комментарии (4)


  1. diakin
    24.07.2025 04:53

    Я в своей среде для RapidQ Basic часто пользуюсь закладками. Но не слепыми, как в Дельфи, с номерами, а "именованными", которые включают в себя саму строку с закладкой. Это один из основных инструментов навигации по тексту.

    Второй инструмент - Поиск с выводом списка найденных вхождений. В Дельфи такое есть, вернее в дополнениях.


    1. HemulGM
      24.07.2025 04:53

      Бесплатный плагин решает проблему с закладками. https://blogs.embarcadero.com/boost-productivity-with-useful-bookmarks-ide-plugin-to-bookmark-and-navigate-code-in-delphi-and-cbuilder/

      А поиск и список найденого есть из коробки. И не только в файле или файлах проекта, но и группы проектов, папке с вложенными папками и т.д.

      От создателя плагина с вкладками, есть ещё плагин, который позволяет видеть стек всех потоков сразу в отладке


      1. diakin
        24.07.2025 04:53

        Да, есть еще Bookmark Browser в cnpack. Но он глючноватый, окно постоянно пропадает.


  1. LeshaRB
    24.07.2025 04:53

    А там три части не хватило бы на одну статью?