Руководство для контрибьюторов
Этот раздел предназначен для тех, кто хочет внести свой вклад в код far2l.
Полезные ресурсы
- Описание API и отличий от Windows: HACKING.md
- Стиль кода: CODESTYLE.md (кратко:
CamelCaseдля функций,snake_caseдля переменных в новом коде). - Энциклопедия FAR 2: Незаменимый ресурс по языку макросов и формату файлов помощи (ссылка на CHM).
Отладка
Отладочные логи (printf-style)
Самый простой способ отследить выполнение кода — добавить вывод в stderr.
- Включите вывод логов, запустив far2l с переменной окружения:
# Вывод в консоль export FAR2L_STD=- far2l # Вывод в файл export FAR2L_STD=/path/to/log.txt far2l - Добавьте вывод в коде:
#include <stdio.h> // ... fprintf(stderr, "My debug message: value = %d\n", my_variable);
Шпаргалка по выводу разных типов строк:
FARString sample;
fprintf(stderr, "%ls\n", sample.CPtr()); // как wchar_t*
fprintf(stderr, "%s\n", sample.GetMB().c_str()); // как char*
std::wstring w_sample;
fprintf(stderr, "%ls\n", w_sample.c_str());
std::string s_sample;
fprintf(stderr, "%s\n", s_sample.c_str());
Использование GDB
При падении или зависании программы, информация из GDB бесценна.
- Запустите far2l под отладчиком:
gdb far2l - Внутри GDB введите
run. - Воспроизведите проблему (падение или зависание).
- Если программа упала, GDB остановится сам. Введите
bt(backtrace) и скопируйте вывод. - Если программа зависла, переключитесь в терминал с GDB, нажмите
Ctrl+C, а затем введитеthread apply all btи скопируйте вывод.
Локализация (добавление строк и справки)
- Языковые строки:
- Все строки интерфейса находятся в файле
far2l/bootstrap/scripts/farlang.templ.m4. - При добавлении новой строки обязательно добавьте ее для всех 9 языков.
- Если перевод для какого-то языка неизвестен, используйте префикс
upd:, например:upd:"English stub".
- Все строки интерфейса находятся в файле
- Файлы помощи:
- Исходники лежат в
far2l/bootstrap/scripts/*.hlf.m4.
- Исходники лежат в