Часть первая. Описательная
Часть вторая. Изобразительная
Часть третья. Настройки Kate
Часть четвертая. Как работать
Часть пятая. Продвинутые возможности
Часть шестая. Ответы на вопросы
Приложение. Инструкция
В качестве введение. В соседних ветках я уже показывал, как с помощью утилиты Юрия можно "русифицировать" язык С/С++ и как будет выглядеть программа. В качестве среды разработки в Windows
я использовал редактор AkelPad. В связи с переездом на Linux жизнь заставила искать новые возможности.
Соберем среду разработки в составе: Русский язык + компилятор С + IDE
При этом хотелось бы получить максимально удобный в использовании инструмент разработки.
Вот какие критерии удобства я определяю для себя первоочередными:
1. Возможность писать код на кириллице с минимальным переключением между раскладками. К сожалению эту проблему победить полностью не получится,
так как часть символов есть только на английской раскладке. Однако способы есть
2. Синтаксическая подсветка кода.
3. Сборка программы нажатием одной кнопочки без лишних телодвижений.
4. Возможность прочитать сообщение компилятора об ошибке не покидая нашей среды разработки и быстро перейти к месту ошибки.
5. Возможность запустить программу на исполнение из среды разработки.
7. Возможность быстрой вставки готовых фрагментов кода (сниппеты)
8. Автозавершение слов.
10. Дополнительные приятности, плюшки и фенечки (автоматическое форматирование кода, контроль версий, проверка правописания и т.п.)
11. Отдельным пунктом стоит возможность отладки в отладчике. Пока этот пункт не первостепенный.
Три элемента языках С/С++ требуют перевода. Это идентификаторы, ключевые слова и директивы препроцессора. Проще всего с идентификаторами.
В последних версиях gcc поддерживает использование символов Unicode. Поэтому переводить идентификаторы, перед тем как "скормить" их компилятору не будем.
Это резко упрощает последующую задачу разбора сообщения компилятора об ошибке.
Второй элемент это ключевые слова, а вместе с ними и имена часто употребимых библиотечных функций. Их мы заменим с помощью макросов. Пример: #define иначе else.
Теперь вместо оператора else можно использовать оператор иначе. Есть один неприятный момент при такой замене, а именно: в сообщения компилятора об ошибке
он будет ссылаться на макрос. С этой мелкой неприятностью придется смириться. Файлы с такими заменами поместим в папку include. Файл с заменами ключевых
слов будет называться keywords.h. Файлы библиотетек назовем по их стандартному имени с префиксом ru_ (ru_stdio.h)и будем подключать обычным образом.
А вот выполнить такую замену для директив препроцессора не получится. Поэтому мы воспользуемся программой sed. Кроме перевода директив препроцессора заставим sed
добавлять в начало каждого файла одну строку.
#line " имя_исходного_файла.r" 1
С помощью этой строчки мы заставим компилятор в сообщениях ссылаться не на С-шный файл, а на наш исходный с расширением .r/.rh
Дополнено Есть четвертый элемент кода, в котором бы хотелось избавиться от латиницы. Это числовые константы. Пока решения этого вопроса нет.
Теперь компилятор. Тут рассуждать долго не будем и возьмем gcc с поддержкой локализации. В моем случае gcc версия 10.3. Одиннадцатая версия у меня русский язык не поддерживает.
Если вопрос перевода сообщений компилятора на русский язык не стоит, то можно использовать и другие версии gcc или clang.
Сборка проекта осуществляется с помощью make. Именно в Makefile прописана вся кухня преобразования "русского" Си к стандартному и последующая сборка.
Осталось выбрать основу нашей маленькой IDE. После нескольких экспериментов я остановил свой выбор на редакторе Kate. Это не идеальный вариант, но вполне достойный.
Таким образом конфигурация нашей среды следующая: Kate + gcc + make + sed + konsole + git
Отредактировано Евгений (2023-03-14 20:28:46)