Превосходная система сборки текста с использованием каталогов ~ и /home/username
У меня есть своя собственная система сборки для тестовых файлов Perl, и она отлично работает, за исключением записи ввода. Если у меня есть открытый файл с именем, например, ~/projects/something.pm
по ошибке вывод системы сборки будет что-то вроде Failed test at /home/username/projects/something.pm line 66
,
Регулярное выражение для захвата работает отлично, проблема в том, что Sublime считает, что два файла находятся в разных путях, поэтому он открывает новую вкладку, и я просто хочу, чтобы открытый файл был выведен на передний план.
Есть ли какие-либо настройки, чтобы сделать этот "матч"?
РЕДАКТИРОВАТЬ: мой файл.sublime-build создается каждый раз, когда я запускаю сборку, чтобы поддержать тот факт, что я могу захотеть запустить один тест вместо всего файла. У меня есть свой собственный плагин, который определяет, какой тест я использую положение курсора, и добавляет его в командную строку. Это не имеет значения, так как поведение всегда одинаково, даже при "стандартной" сборке. Содержимое файла.sublime-build выглядит так:
{
"shell_cmd" : "prove $file_path/$file_name" ,
"working_dir" : "/home/username/projects/",
"file_regex": " at (.*.pm) line ([0-9]*)",
}
Я пытался заменить /home/username
с ~
персонажа, но по какой-то причине это нарушает систему сборки, и при сборке я просто получаю черную панель вывода со строкой состояния с надписью "Сборка...".
В любом случае я нашел реальную проблему с обходным решением, опубликовал это как ответ.
1 ответ
Проблема в этом случае заключалась в том, что я не заметил, что основной каталог проекта (который создается заранее) на самом деле является ссылкой на каталог другого пользователя.
Это означает, что если вы добавляете папку в свой проект, и эта папка является ссылкой, в выводе вы получите "реальный" каталог, а не ссылку.
Решено путем удаления папки символической ссылки из проекта и добавления места назначения ссылки как папки в проект, и теперь она работает нормально.