Компилирайте и стартирайте freepascal от редактора Atom

Бих искал да използвам редактора Atom, за да науча Pascal. Кой е правилният начин за компилиране и стартиране на прост Pascal файл от редактора? Аз съм на Windows и използвам компилатора FreePascal.

РЕДАКТИРАНЕ: Получих го с помощта на пакета build както следва (благодаря @Wosi):

  1. Създайте папка, която да съдържа моето Pascal устройство HelloWorld.pas
  2. В същата папка поставих следния .atom-build.json файл:

    {
        "cmd": "CompileAndRun.bat",
        "args": ["{FILE_ACTIVE}"],
        "sh": false,
        "cwd": "{FILE_ACTIVE_PATH}"
    }
    
  3. И съдържанието на CompileAndRun.bat:

    @echo off
    set FileName=%1
    fpc %FileName%
    set ProgName=%FileName:~0,-5%
    start "" %ProgName%.exe
    

person Anton Ganev    schedule 24.08.2015    source източник
comment
Имайте предвид, че опциите в изходния файл могат да променят генерираното име на exe. Много настройки на компилатора могат да бъдат зададени от източника с помощта на директиви. Не всички паскал файлове доставят exe.   -  person Marco van de Voort    schedule 27.08.2015


Отговори (1)


Използвайте lazbuild, за да компилирате вашите проекти. Това е най-лесният начин.

Пример:

C:\development\lazarus\lazbuild.exe MyProject.lpi 
MyProject.exe

Щракнете тук, за да научите как да дефинирате команда за изграждане в Atom: https://atom.io/packages/build#custom-build-command

РЕДАКТИРАНЕ: Искате да компилирате и стартирате текущо отворения .pas файл. Силно не препоръчвам да правите това, тъй като паскал програмата обикновено е част от много различни .pas файлове, започващи с думата unit. Обикновено работите с проекти вместо с единични .pas файлове.

Независимо от това, полученият exe файл (предполагам, че сте на Windows) се създава в същата папка като компилирания .pas файл по подразбиране. Така че просто трябва да извикате програмата, след като я компилирате. За съжаление не можете да зададете fpc като стойност за cmd във вашия .atom-build.json файл. Трябва да създадете партиден скрипт, който се извиква при всяка компилация, за да изпълните и двете стъпки.

Създайте файл с име CompileAndRun.bat с това съдържание

@echo off 
set FileName=%1%
fpc %FileName%
set ProgName=%FileName:~0,-4%
%ProgName%.exe

и променете стойността cmd във вашия .atom-build.json файл на

"cmd": "CompileAndRun.bat",
person Wosi    schedule 24.08.2015
comment
Вече опитах пакета за изграждане, но без успех. Създадох директория за съхранение на моите изходни файлове на Pascal и поставих следния .atom-build.json файл в нея: { "cmd": "fpc", "sh": true, "args": ["{FILE_ACTIVE}"], }. Когато издам командата за изграждане, нищо не се случва. - person Anton Ganev; 24.08.2015
comment
{FILE_ACTIVE} е текущият отворен файл в редактора. Трябва да посочите .lpi файла на проекта. - person Wosi; 24.08.2015
comment
Текущо отвореният файл е файлът, който искам да компилирам и стартирам. Създавам изходния файл на ръка (т.е. HelloWorld.pas). fpc HelloWorld.pas работи от командния ред, но не и в Atom. - person Anton Ganev; 24.08.2015
comment
Не можете да компилирате и стартирате един .pas файл. Можете да стартирате само проект. - person Wosi; 24.08.2015
comment
Тогава въпросът би бил как мога да стартирам fpc HelloWorld.pas и след това да отворя съответния .exe файл от Atom? - person Anton Ganev; 24.08.2015
comment
Не, въпросът е: Какво очаквате да се случи, когато изпълните паскал единица? Pascal е базиран на проекти. Една единица може да бъде част от много различни проекти. Дефинирайте проект и го посочете във вашата команда за изграждане. - person Wosi; 24.08.2015
comment
Сега имам частично решение. Редактирах въпроса си, за да го включа. - person Anton Ganev; 25.08.2015
comment
Благодаря ви много за усилията! За съжаление вашето решение отваря изпълнимия файл в конзолата за изграждане в atom и това е проблем, когато се очаква въвеждане от потребителя. Възможно ли е да отворите изпълнимия файл във външна конзола, където е възможно въвеждане от потребителя? - person Anton Ganev; 25.08.2015
comment
Променете последния ред от CompileAndRun.bat на call start %ProgName%.exe. Обичайният начин да кажете „благодаря“ на StackOverflow е да гласувате за и/или да приемете отговор ;-) - person Wosi; 25.08.2015
comment
За съжаление това само отваря прозореца на конзолата, но не изпълнява програмата. Също така трябваше да променя предпоследния ред на set ProgName=%FileName:~0,-5% - person Anton Ganev; 26.08.2015
comment
Разбрах: последният ред трябва да гласи start "" %ProgramName%.exe - person Anton Ganev; 26.08.2015