Это можно исправить, добавив команду с подходящим сообщением, которая выполняется только в случае завершения компиляции без ошибок. Для Windows решение примерно такое:
Code: Select all
File name: g++.exe
Shell command: checked
Parameters: -Wall -o {FileNameNoExt}.exe {FileName} && echo Compilation successful.
Code: Select all
File name: sh
Shell command: unchecked
Parameters: -c "g++ -Wall -o {FileNameNoExt} {FileNameOnly} && echo 'Compilation successful.'"
Однако мне кажется, что, скорее всего, не пользователю следует изобретать подобные решения, а нужное поведение должно обеспечиваться самим редактором (через plugin). Тем более, что имеется явная асимметрия между решениями для Windows и POSIX. Даже Shell command в одном случае true, а в другом false. Почему должно быть так?
Справедливости ради нужно сказать, что большее единообразие решений можно постичь, переделав решение для Windows в духе POSIX, вызывая command или cmd вместо sh. Однако получим не то же самое. В POSIX оболочка sh выполняется в данном случае без помощи терминала, тогда как оболочка command/cmd выполняется всегда в консоли. Поэтому черное окно консоли будет появляться и тут же исчезать без никакой в нем нужды, что, разумеется, причиняет пользователю дискомфорт. К тому же, решение все равно закодировано на ненужно низком уровне, и оно все равно не одинаково (как текст) для двух о.с.
В идеале, пользователю должно быть достаточно задавать только параметры запуска компилятора (что не имеет отношения к операционной системе), а перевод в вышеуказанные два варианта сделает за него редактор (или plugin). Таким образом, для компиляции пользователю будет достаточен только один, независящий от о.с., инструмент.