AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
定义生成器或运行程序
本主题说明如何定义生成器或运行程序。定义生成器或运行程序之前,请确保已创建生成器或运行程序。
在显示的生成器或运行程序选项卡上,使用 JSON 定义运行程序或生成器。使用以下代码开头的模板。
对于生成器,使用以下代码开头。
{ "cmd": [], "info": "", "env": {}, "selector": "" }
对于运行程序,使用以下代码开头。
{ "cmd": [], "script": "", "working_dir": "", "info": "", "env": {}, "selector": "", "debugger": "", "debugport": "" }
在以上代码中:
-
cmd
:表示要作为单个命令运行的 AWS Cloud9 以逗号分隔的字符串列表。AWS Cloud9 运行此命令时,列表中的每个字符串将用一个空格分隔。例如, AWS Cloud9 将
$file
以 a"cmd": [ "ls", "$file", "$args"]
s 运行ls $file $args
, AWS Cloud9 where 将替换为当前文件的完整路径以及在$args
文件名后输入的任何参数。有关更多信息,请参阅本节后面所支持变量的列表。 -
script
:代表运行程序在终端执行的 bash 脚本 (也可以根据需要,将其指定为行阵列以保证可读性)。 -
working_dir
:代表运行程序将从中运行的目录。 -
info
:代表在开始运行时,要向用户显示的任何文本字符串。此字符串可以包含变量Running $project_path$file_name...
,例如,其中 AWS Cloud9 将$project_path
替换为当前文件的目录路径和$file_name
当前文件的名称部分。请参阅本节后面所支持变量的列表。 -
env
: 表示 AWS Cloud9 要使用的任何命令行参数数组,例如:"env": { "LANG": "en_US.UTF-8", "SHLVL": "1" }
-
selector
: 表示您 AWS Cloud9 要用来标识适用于此运行器的文件名的任何正则表达式。例如,您可以为 Python 文件指定source.py
。 -
debugger
: 表示您 AWS Cloud9 要使用的与该运行器兼容的任何可用调试器的名称。例如,您可以为 V8 调试程序指定v8
。 -
debugport
:表示调试期间 AWS Cloud9 要使用的端口号。例如,您可以指定15454
作为要使用的端口号。
下表给出您可以使用的变量。
变量 | 描述 |
---|---|
|
当前文件的目录,例如, |
|
当前文件的完整路径,例如, |
|
在文件名之后输入的任何参数,例如, |
|
当前文件的名称部分,例如, |
|
当前文件的扩展名,例如, |
|
当前文件的名称(不带扩展名),例如, |
|
程序包文件夹的完整路径。 |
|
当前项目文件夹的完整路径。 |
|
当前项目文件的目录,例如, |
|
当前项目文件的名称(不带扩展名),例如, |
|
当前项目文件的扩展名。 |
|
当前项目文件的名称(不带扩展名)。 |
|
环境的主机名,例如, |
|
环境的主机名,包含指向项目文件的相对路径,例如, |
|
用于访问环境的完整 URL,例如, |
|
分配给环境的端口,例如, |
|
为环境运行进程的 IP 地址,例如, |
举例来说,名为 G++.build
的以下生成器文件为 GCC 定义一个生成器,它运行 g++
命令以及 -o
选项以将当前文件(例如 hello.cpp
)编译到对象模块中。然后,它将对象模块链接到与当前文件使用相同名称(例如,hello
)的程序中。以下命令具有等效作用:g++
-o hello hello.cpp
。
{ "cmd": [ "g++", "-o", "$file_base_name", "$file_name" ], "info": "Compiling $file_name and linking to $file_base_name...", "selector": "source.cpp" }
再举一个例子,名为 Python.run
的以下运行程序文件定义一个运行程序,它使用 Python 以及提供的所有参数运行当前文件。例如,如果当前文件名为 hello.py
且提供了 5
和 9
参数,则等效命令是 python hello.py 5 9
。
{ "cmd": [ "python", "$file_name", "$args" ], "info": "Running $file_name...", "selector": "source.py" }
最后,名为 Print Run Variables.run
的以下运行程序定义一个运行程序,它只是输出每个可用变量的值,然后就停止。
{ "info": "file_path = $file_path, file = $file, args = $args, file_name = $file_name, file_extension = $file_extension, file_base_name = $file_base_name, packages = $packages, project = $project, project_path = $project_path, project_name = $project_name, project_extension = $project_extension, project_base_name = $project_base_name, hostname = $hostname, hostname_path = $hostname_path, url = $url, port = $port, ip = $ip" }