在 VS Code 中尝试

2018 年 4 月 (版本 1.23)

更新 1.23.1:此更新解决了这些问题

下载:Windows:x64 | Mac:Intel | Linux 64 位:deb rpm tarball | 32 位:deb rpm tarball


欢迎使用 Visual Studio Code 2018 年 4 月版。在这个里程碑中,VS Code 团队一直专注于支持扩展作者的 API 工作,但此版本中仍有许多您可能会喜欢的更新。一些主要亮点包括

如果您想在线阅读这些发布说明,请访问 code.visualstudio.com 上的更新
您还可以观看云开发者倡导者 Brian Clark 制作的这个 1.23 版本亮点视频

发布说明按与 VS Code 关注领域相关的以下章节排列。以下是一些进一步的更新

  • 编辑器 - 更好的 Unicode 文件支持,更稳定的编辑器定位。
  • 工作台 - 复制搜索结果,改进的 Git 克隆工作流程,VS Code 进程资源管理器。
  • 调试 - 日志点表达式支持智能补全和显示结构化对象。
  • 语言 - JavaScript/TypeScript 组织导入操作,持久化 Markdown 预览。
  • 扩展开发 - 新的 webview 和 FileSystem Provider API,'Source' 文件级别操作。

Insiders:想尽快体验新功能?您可以下载每日构建的 Insiders 版本,并在最新更新可用时立即尝试。

编辑器

高亮缩进参考线

当您在各种源代码块之间移动光标时,VS Code 现在可以高亮显示活动缩进参考线。

Highlighted indent guides

高亮颜色名称是 editorIndentGuide.activeBackground,您可以在 workbench.colorCustomizations 设置中修改它

"workbench.colorCustomizations": {
    "editorIndentGuide.activeBackground": "#ff0000"
}

保存时运行代码操作

新的 editor.codeActionsOnSave 设置允许您配置在保存文件时运行的一组代码操作。例如,对于贡献了组织导入代码操作的 JavaScript、TypeScript 和其他扩展,您可以设置以在保存时启用组织导入

"editor.codeActionsOnSave": {
     "source.organizeImports": true
}

您还可以使用语言特定的设置来按语言启用或禁用在保存时运行哪些代码操作。以下设置仅为 TypeScript 文件启用保存时组织导入

"[typescript]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
},
"[typescriptreact]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
}

使用鼠标中键进行列选择

在 VS Code 中,可以通过按住 ShiftAlt 然后使用鼠标左键来添加列(框)选择。现在也可以使用鼠标中键来创建列选择

Editor column selection

注意:将 editor.multiCursorModifier 设置为 ctrlCmd 时,在 Windows 上修饰键是 ShiftCtrl,在 macOS 上是 ShiftCmd

改进了 UTF-16 编码文件的处理

VS Code 始终支持 UTF-16 文件编码,但需要 BOM(字节顺序标记)才能正确检测此编码。如果 VS Code 没有找到 BOM,则文件不会被打开,用户会看到一条信息消息。

在此版本中,我们在该消息中添加了一个新操作,可以在编辑器中将文件作为文本打开

Open binary file message

打开后,您可以更改编码以尝试解码文本。

此外,VS Code 现在使用一种启发式方法,尝试自动检测没有 BOM 的 UTF-16。这种启发式方法应该适用于所有仅包含 ASCII 字符的 UTF-16 文件。

改进的编辑器定位

在某些情况下,当改变编辑器滚动高度时(例如调整自动换行的编辑器大小、使用鼠标滚轮缩放或修改 CodeLens),编辑器会尝试保持视口中的居中行。现在,VS Code 保持视口中的第一行,提供了更稳定的外观。

Improved editor stability

工作台

问题视图筛选

您现在可以使用筛选器在“问题”视图中包含或排除文件。

  • 在筛选输入框中使用 glob 模式来包含/排除文件。排除模式必须以 ! 为前缀。例如,!*.js 将移除所有 .js 扩展名的文件。
  • 有一个使用文件排除设置筛选按钮,可以移除所有符合您的 files.exclude 设置的文件。

下面的短视频展示了如何根据 files.exclude 设置筛选项目 out 目录,以及通过在筛选输入框中输入 !**/node_modules/** 来忽略所有 node_modules

Filter problems

NPM 脚本运行

通过设置 npm.enableScriptExplorer,您可以启用一个资源管理器,显示工作区中定义的脚本。

NPM script explorer

资源管理器支持

  • 在选择 package.json 文件时,在 package.json 文件中或 scripts 部分内打开脚本。这是选择脚本时的默认操作。
  • 将脚本作为任务运行,输出显示在集成终端中。
  • 调试脚本。要启动 node 调试器,脚本需要定义一个 node 调试选项,例如 --inspect-brk另请参阅)。

使用 npm.exclude 设置来排除特定文件夹中包含的 package.json 文件中的脚本。

Git 克隆改进

Git 克隆工作流程有多项改进。运行Git: 克隆命令时

  • 使用原生对话框选择仓库位置。
  • 使用了新的通知进度 API,改进了操作状态报告。
  • VS Code 将提示您是否要将克隆的仓库添加到工作区或直接打开它。

Git 扩展还采用了新的建议 API 来处理系统范围的 URI,并在特定的 URI 上调用 Git 克隆。以下是一个克隆 https://github.com/microsoft/vscode-vsce.git 的示例 URI

vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git

如果您想试用此功能

  • Windows:在命令提示符中输入:explorer "vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git"
  • macOS:在 shell 中输入:open vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git

从搜索上下文菜单复制结果

搜索结果树上下文菜单包括三个新选项:复制复制路径全部复制。这是一个受到高度赞扬👍的功能请求,它将使共享或导出搜索结果变得更加容易。

Copy search

恢复独立的搜索包含和排除输入框

上个月,我们合并了搜索视图中的包含和排除输入框,试图简化并优化它,同时节省一些垂直空间。但是,我们收到许多用户的反馈,认为这不符合他们使用搜索视图的方式。最终,我们决定直接恢复更改,因此在此版本中,我们回到了 1.22 版本之前独立的包含/排除输入框。请注意,在排除输入框中的模式上不需要使用 !

include exclude

自定义活动栏视图

扩展作者现在可以向活动栏添加自己的视图容器。根据您安装的扩展,更新后您可能会看到一些 UI,例如自定义资源管理器从文件资源管理器移动到一个新的自定义视图容器。例如,您可以在下方看到 Azure App ServiceAzure Databases 扩展的资源管理器已移至专用的 Azure 视图。

Azure view in the Activity Bar

查看正在运行的 Visual Studio Code 进程

使用开发者:打开进程资源管理器命令或帮助 > 打开进程资源管理器菜单项来打开一个新窗口,该窗口包含有关正在运行的 VS Code 进程的持续更新信息。进程会列出其 CPU 和内存使用情况、PID 和友好名称,并且可以通过右键单击出现的上下文菜单来终止进程。

Process Explorer

集成终端

终端分割的多根工作区支持

现在,在多根工作区中,您将能够选择要分割终端的文件夹。可以通过绑定 workbench.action.terminal.splitInActiveWorkspace 命令来重新启用旧行为。

语言

CSS 区域折叠

现在您可以使用 /* #region *//* #endregion */ 在 CSS/SCSS/Less 中标记可折叠区域。在 SCSS/Less 中,您还可以使用 // #region// #endregion 作为折叠标记。

Improved CSS Folding

改进的 CSS 新属性支持

以前,VS Code 对一些实验性 CSS 属性(例如 backdrop-filter)会显示“未知属性”错误

CSS Unknown Property

您要么必须完全关闭 CSS linting,要么忍受此错误,即使您使用 PostCSS 等允许使用实验性 CSS 属性的 CSS 框架。

在此版本中,借助于从 Mozilla Developer Network 获取的数据,VS Code 现在可以识别 87 个新的 CSS 属性。如果您能在 MDN 上找到某个 CSS 属性,VS Code 应该能识别它。

此外,借助于 MDN 的数据,VS Code 现在在 CSS/SCSS/Less 中提供了增强的补全功能,显示每个 CSS 属性的语法和状态值。

CSS Support powered by MDN data

尽管目前还没有内置支持验证 CSS 属性值,但 CSSTree validator 扩展也使用了 MDN 的数据,并根据其值定义语法为每个属性值提供 linting。

CSSTree

Markdown 现在支持工作区符号搜索。首次打开 Markdown 文件后,您可以使用 (⌘T (Windows, Linux Ctrl+T)) 搜索当前工作区中所有 Markdown 文件的标题。

Markdown workspace symbol in the VS Code docs repo

持久化 Markdown 预览

当您重新打开 VS Code 时,Markdown 预览现在会自动恢复

A Markdown preview automatically being reopened when VS Code restarts

以前,每次重启 VS Code 都必须重新打开预览。

TypeScript 2.8.3

VS Code 现在附带 TypeScript 2.8.3。此版本修复了许多重要 bug

JavaScript 和 TypeScript 组织导入

JavaScript 和 TypeScript 的组织导入功能现已结束预览。运行组织导入 (⇧⌥O (Windows, Linux Shift+Alt+O)) 可快速移除未使用的导入并排序 JavaScript 和 TypeScript 源代码中剩余的导入。

您现在还可以使用新的editor.codeActionsOnSave 设置配置在保存时运行组织导入。以下是为 TypeScript 文件启用保存时组织导入的设置

"[typescript]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
},
"[typescriptreact]": {
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
}

调试

日志点改进

日志点在上一版本中引入,我们改进了它们的易用性和实用性

  • 已为嵌入在日志消息和条件断点中的表达式添加了 IntelliSense(智能补全)。

  • 在 Node.js 调试中使用日志点时,嵌入在日志消息中的结构化对象会在调试控制台中显示为可展开对象

    IntelliSense for Logpoint expressions

  • Node.js 调试中的日志点现在会在调试控制台中显示其源位置

    Logpoint location

  • 由于可以通过点击编辑器 gutter 中的图标轻松删除日志点和断点,因此您可能会意外丢失日志消息或断点条件。为防止这种情况发生,当通过点击 gutter 删除带有条件或日志消息的断点时,VS Code 现在会进行提示。该提示允许您选择禁用断点而不是删除它。

  • 最后但同样重要的是,我们在调试菜单中添加了新建断点 > 日志点... 操作。

扩展开发

对活动栏的贡献

随着越来越多的扩展创建自定义视图,并且其中大部分都贡献给了文件资源管理器,我们注意到资源管理器变得越来越拥挤。为了更好地扩展,VS Code 现在提供了一种向活动栏贡献的方式。例如,现在活动栏中有一个测试贡献。扩展现在可以进行自己的贡献。

测试视图容器

活动栏中现在提供了一个新的“测试”贡献,供扩展贡献与测试相关的视图。默认情况下,此“测试”贡献是空的且隐藏的,并在有视图贡献给它时显示。该示例显示了如何将 mocha 自定义视图贡献给活动栏中的测试活动。

"contributes": {
    "views": {
        "test": [
            {
                "id": "mocha",
                "name": "mocha"
            }
        ]
    }
}

Test views container

自定义视图容器

扩展现在可以使用贡献点 viewsContainers 在活动栏中定义额外的活动。

"contributes": {
        "viewsContainers": {
            "activitybar": [
                {
                    "id": "package-explorer",
                    "title": "Package Explorer",
                    "icon": "resources/package-explorer.svg"
                }
            ]
        },
        "views": {
            "package-explorer": [
                {
                    "id": "package-dependencies",
                    "name": "Dependencies"
                },
                {
                    "id": "package-outline",
                    "name": "Outline"
                }
            ]
        }
}

Custom views container

图标规范

  • 大小:图标大小为 24x24,居中放置在 50x40 的方形区域内。

  • 颜色:图标应使用单色。

  • 格式:建议使用 SVG 格式的图标,但也接受任何图片文件类型。

  • 状态:所有图标都继承以下状态样式

    状态 不透明度
    默认 60%
    悬停 100%
    活动 100%

会注册一个命令来显示每个已注册的视图容器。在上面的 Package Explorer 示例中,命令将是视图:显示 Package Explorer。当您运行命令视图:打开视图...时,您也可以找到所有列出的视图容器。

Open View

注意:建议将相关视图分组到单个视图容器中,而不是为每个视图创建一个视图容器。

源代码管理中的自定义视图

您现在可以将与源代码管理 (SCM) 相关的自定义视图贡献到活动栏的源代码管理视图容器中。您可以像在文件资源管理器中一样显示、隐藏和重新排序这些视图。

"contributes": {
    "views": {
        "scm": [
            {
                "id": "git-compare",
                "name": "Compare"
            }
        ]
    }
}

SCM Custom views

FileSystem Provider

扩展现在可以从任意来源(如 ftp 服务器)提供文件和文件夹,并且 VS Code 会像处理常规文件一样处理它们。为此,可以使用 FileSystemProvider 接口,扩展将其与 URI scheme(例如 ftp)关联。通过该接口,编辑器可以发现和管理文件和文件夹(创建、删除、读取和写入)。

Files and Folders from a filesystem provider

VS Code 还可以读取和修改由 FileSystem Provider 提供的配置文件(settings.jsontasks.jsonlaunch.json)。

语言标识符和文档选择器

FileSystem Provider 的添加意味着并非所有文件都位于磁盘上,扩展程序应该意识到这一点。简短但重要的消息是,并非所有文档都位于磁盘上,如果您的扩展依赖于磁盘访问,则必须首先检查scheme

为了提高意识,我们添加了一条信息消息,当您仅使用语言标识符而不是文档筛选器注册语言功能时会显示。有关更多详细信息,请访问文档选择器主题。

最后,有一个示例扩展,您可以用于测试。它实现了一个文件系统,将所有内容保存在内存中,不存储在磁盘上,您可以针对此测试您的语言功能。在此获取该扩展

注意:TextDocument.isUntitled

由于添加了 FileSystem Provider,我们调整了 TextDocument.isUntitled 的语义,使其仅对新创建的文档(使用 untitled scheme)为 true。以前,所有非磁盘文档都被视为未命名。此更改可能会改变您的扩展的行为,特别是如果它假设非未命名文档存储在磁盘上。

读取诊断信息

有新的 API 可以读取诊断信息并在诊断信息更改时收到通知,请参阅 languages.getDiagnosticslanguages.onDidChangeDiagnostics。例如,SCM 扩展现在可以在与团队共享更改之前检查是否存在错误。

改进的 RenameProvider

我们改进了 RenameProvider API,现在它可以选择实现一个名为 prepareRename 的新函数。通过该函数,provider 可以帮助 VS Code 解析和验证要重命名的符号。

在文档更改事件中包含基于偏移量的信息

TextDocumentContentChangeEvent 有一个新属性 rangeOffset,它与 rangeLength 一起允许扩展使用 (offset,length) 坐标来跟踪文本文档更改。

Source Code Action 类型

CodeActionKind.Source 标识应用于整个文件的代码操作。组织导入是一个很好的 Source 代码操作示例,因为它可以在文件中的任何位置触发。

Source 代码操作不会显示在常规的快速修复灯泡菜单中。它们必须使用 editor.action.sourceAction 命令显式请求。Source 代码操作也会显示在新的源代码操作上下文菜单中。

组织导入代码操作

基于 Source 代码操作,新添加的 CodeActionKind.SourceOrganizeImports 标识一个组织导入代码操作。这些操作可以使用 editor.action.organizeImports 触发,并具有标准键盘快捷键:⇧⌥O (Windows, Linux Shift+Alt+O)

如果您的扩展已经实现了组织导入功能,我们强烈建议您将其迁移到使用 CodeActionKind.SourceOrganizeImports,以便用户在不同语言中获得更一致的体验。

CodeActionProviderMetadata

registerCodeActionsProvider 现在接受一个可选的 CodeActionProviderMetadata 参数,允许扩展告诉 VS Code CodeActionProvider 将提供哪种类型的代码操作。VS Code 使用此信息来启用新的重构源代码操作上下文菜单。例如,只有当注册的 CodeActionProviderCodeActionProviderMetadata 表明它将返回 refactor.* 代码操作时,重构上下文菜单才会启用。

Webview API

webview API 允许扩展在 VS Code 中创建完全可自定义的视图。例如,内置的 Markdown 扩展使用 webviews 渲染 Markdown 预览。webview 也可以用于构建超出 VS Code 原生 API 支持的复杂用户界面。

A webview showing a cat gif

一个新的扩展开发页面介绍了 webview API。您还可以在此处找到 webview API 示例扩展。我们期待看到扩展作者如何利用这个强大的新 API。

应用范围设置

如果您希望您的设置应用于应用程序级别,而不被窗口或资源级别覆盖,现在可以使用 application 范围来实现。

"configuration": {
    "properties": {
        "git.path": {
            "type": "string",
            "description": "Path to the git executable",
            "scope": "application"
        }
    }
}

注意:已弃用 isExecutable 属性,建议使用 application 范围,因为它们的目的相同。

建议的扩展 API

在这个里程碑中,我们添加了几个新的建议扩展 API。我们计划在未来的里程碑中,当我们对这些 API 足够自信时,将它们添加到稳定版本。我们欢迎您就它们在您的扩展中的工作情况提供任何反馈。

注意:这些 API 仍处于建议阶段,因此要使用它们,您必须在 package.json 中添加 "enableProposedApi": true 来选择加入,并且必须将 vscode.proposed.d.ts 复制到您的扩展项目中。另请注意,您无法将使用 enableProposedApi 属性的扩展发布到 Marketplace。

集成终端 API

集成终端 API 有几个建议的功能,可以帮助扩展作者访问所有终端,并且还支持跨不同机器的终端复用。现在可以通过 API 访问所有终端,而不像以前那样,扩展只能访问它自己创建的终端

console.log(window.terminals);

有一个与之匹配的事件

window.onDidOpenTerminal(terminal => {
  console.log('New terminal: ' + terminal.name);
});

您还可以接入来自终端进程的原始数据流,包括 ANSI 转义序列

const terminal = window.createTerminal();
terminal.onData(data => {
  console.log('Terminal data: ' + data);
});

任务 API

任务 API 在扩展的任务查询和执行方面得到了进一步完善。新支持的 API 包括

  • fetchTasks 接受一个过滤器,用于只查询部分任务。
  • taskExecutions 支持获取所有正在运行任务的执行对象。
  • 通过 executeTasktaskExecutions 或其中一个事件提供的 TaskExecution 对象可以使用 === 进行比较。

该 API 仍处于建议阶段。

协议处理程序 API

协议处理程序 API 允许扩展处理系统范围的 URI。此功能对于跨应用程序集成很有用,因为它允许其他应用程序将 URI 发送给特定的扩展。

export interface ProtocolHandler {
  handleUri(uri: Uri): void;
}

export namespace window {
  /**
   * Registers a protocol handler capable of handling system-wide URIs.
   */
  export function registerProtocolHandler(handler: ProtocolHandler): Disposable;
}

以下是一个协议处理程序注册示例

function activate() {
  registerProtocolHandler({
    handleUri(uri: Uri) {
      console.log('Received URI', uri.toString());
    }
  });
}

对于此 API,URI authority 与处理它们的扩展之间存在严格关系:URI authority 必须是扩展的 ID (publisher.name)。例如,考虑以下 URI

 vscode://vscode.git/clone?url=foobar
 \____/   \________/ \___/ \_________/
   |           |        |       |
scheme    authority    path   query

此 URI 的 authority 是 vscode.git,因此只要 vscode.git 扩展正确注册了协议处理程序,VS Code 就会将其转发给该扩展。

由于 URI 可能在扩展注册之前就被打开,因此还引入了一个新的 onUri 激活事件。这使得只要打开指向您的扩展的 URI,您的扩展就会被激活。

注意:URI 处理在 Linux 中尚不受支持

折叠 Provider API

在 1.22 版本中提出的折叠范围 provider 已更新,现在是一个官方 API。语言扩展现在可以提供语法感知的折叠范围。

/**
 * Register a folding range provider.
 *
 * Multiple providers can be registered for a language. In that case providers are asked in
 * parallel and the results are merged.
 * If multiple folding ranges start at the same position, only the range of the first registered provider is used.
 * If a folding range overlaps with an other range that has a smaller position, it is also ignored.
 *
 * A failing provider (rejected promise or exception) will
 * not cause a failure of the whole operation.
 *
 * @param selector A selector that defines the documents this provider is applicable to.
 * @param provider A folding range provider.
 * @return A [disposable](#_Disposable) that unregisters this provider when being disposed.
 */
export function registerFoldingRangeProvider(
  selector: DocumentSelector,
  provider: FoldingRangeProvider
): Disposable;

对扩展的贡献

我们的团队维护或贡献了许多 VS Code 扩展。本月最值得一提的是

Sublime Text 键盘映射扩展

Sublime Text 键盘映射扩展现在能够从 Sublime 导入设置。

首次启动扩展时,会显示一个提示,列出所有可导入的 Sublime 设置。如果您想稍后导入设置,请使用命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中的Sublime Text Keymap: 导入 Sublime Text 设置命令。

Sublime Settings Importer

工程改进

改进了烟雾测试的稳定性

VS Code 一直有烟雾测试,用于严格控制质量。我们已将烟雾测试自动化,但未能使其稳定。在这个里程碑中,我们致力于提高烟雾测试的稳定性和性能。更多详细信息可以在pull request #47471 中找到。

新增文档

使用 Azure Storage 的网站部署教程

我们有一个新的将静态网站部署到 Azure 教程,介绍如何使用 Azure Storage 创建和部署静态网站。

VS Code 博客文章

VS Code 博客最近有两篇文章

显著变化

  • 10663:在比较视图上切换选项卡时保留视图状态
  • 24634:macOS:添加一个设置以启用窗口的 acceptsFirstMouse
  • 29549:多线程调试应支持停止线程
  • 46785:当没有文件处于焦点时,“在 Finder 中显示”应打开工作区文件夹
  • 47274:Node 日志点在调试控制台中显示为 VM 源代码
  • 47478:检测未完全安装的扩展
  • 48733:引入选项 debug.enableAllHovers 以在调试时启用对悬停 provider 的调用
  • 46414:在终端中调试 Node.js 进程不再在调试控制台中显示输出

感谢

最后但并非最不重要的一点,向以下帮助改进 VS Code 的人员表示衷心的感谢!

vscode 的贡献

vscode-extension-samples 的贡献

language-server-protocol 的贡献

vscode-languageserver-node 的贡献

vscode-chrome-debug 的贡献

vscode-chrome-debug 的贡献

  • @digeff
    • 忽略针对未知脚本解析的 bp PR #325
    • 清理堆栈跟踪,使其不包含完整文件路径 PR #322
    • 更新通知到最新版本 PR #320

vscode-node-debug2 的贡献

localization 的贡献

Transifex VS Code 项目团队有超过 800 名成员,每月约有 100 名活跃贡献者。感谢您的贡献,无论是提供新翻译、对翻译进行投票还是提出流程改进建议。

以下是本次发布的贡献者快照。有关项目详细信息(包括贡献者姓名列表),请访问项目网站:https://aka.ms/vscodeloc

  • 法语: Antoine Griffard, Adrien Clerbois, Thierry DEMAN-BARCELO, Jean Cuteaux, Quentin BRETON。
  • 意大利语: Alessandro Alpi, Andrea Dottor, Aldo Donetti, Marco Dal Pino, Riccardo Cappello。
  • 德语: J.M., Levin Rickert。
  • 西班牙语: Andy Gonzalez, Alejandro Medina, Alberto Poblacion, Thierry DEMAN-BARCELO, Eickhel Mendoza。
  • 日语: Shunya Tajima, Yuichi Nukiyama, Yosuke Sano, Seiji Momoto, Satoshi Kajiura, Toshinori Sugita。
  • 中文 (简体): Joel Yang, YF, pluwen。
  • 中文 (繁体): Winnie Lin, Duran Hsieh, Ryan Tseng, Alan Tsai, alantea, Will 保哥。
  • 韩语: ChangJoon Lee, HANSEULMARO KIM。
  • 俄语: Michel Ace, Ivan。
  • 保加利亚语: Любомир Василев。
  • 匈牙利语: Tar Dániel。
  • 葡萄牙语 (巴西): Alessandro Fragnani, Roberto Fonseca, Marcelo Fernandes, Rodrigo Crespi, Matheus Palu, Bruno Sonnino, Douglas Eccker, douglas.martim。
  • 葡萄牙语 (葡萄牙): Hugo Martins, Daniel Correia, Isac Van Dunem, Tiago Costa, João Mata。
  • 土耳其语: Adem Coşkuner, Burak Karahan, Özgür Öktem, Ömer Büyükçelik。
  • 波斯尼亚语: Muharem Basanovic, Bahrudin Hrnjica, Ismar Bašanović, Almir Vuk。
  • 捷克语: Vít Staniček, Vojtěch Habarta, m_fr, Frantisek Veris, Jakub Skořepa, Michal Zobec, Ferdinand Prantl, Ľubomír Kováč, Jan Brudný。
  • 荷兰语: Marco van den Hout, Maarten van Stam, Gerald Versluis。
  • 芬兰语: Petri Niinimäki, Feetu Nyrhinen。
  • 印地语: Brahma Dev。
  • 印度尼西亚语: Febrian Setianto (Feber), Wildan Mubarok, Adrian M. R., G-RiNe Project, Joseph Aditya P G, Mulia Arifandi Nasution, Herman Prawiro。
  • 拉脱维亚语: kozete, Pēteris Kļaviņš, Edgars, Simone Chiaretta。
  • 波兰语: Joanna Skurzyńska, Mateusz Wyczawski。
  • 罗马尼亚语: Schiriac Robert。
  • 塞尔维亚语: Jean Cuteaux。
  • 泰语: ภูมิไผท จันทรศรีวงศ์。
  • 乌克兰语: Dmytro Kyrychuk, Borys Lebeda。
  • 世界语: Andy Hampton。