在本文中,我们将带你了解Xmakev2.7.1发布,更好的C++Modules支持在这篇文章中,我们将为您详细介绍Xmakev2.7.1发布,更好的C++Modules支持的方方面面,并解答xmake
在本文中,我们将带你了解Xmake v2.7.1 发布,更好的 C++ Modules 支持在这篇文章中,我们将为您详细介绍Xmake v2.7.1 发布,更好的 C++ Modules 支持的方方面面,并解答xmake github常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的Apache Commons BCEL 6.2 发布,更好的支持 Java 9、GNOME 42.3 发布,更好的 Flatpak 支持、Node.js 6.13.1 (LTS) 发布,更好的支持 IPv6、VS Code 1.45发布,更好的Debug,更好的编码体验,更好的Github集成,JS调试器,终端改进,滚动切换选项卡。
本文目录一览:- Xmake v2.7.1 发布,更好的 C++ Modules 支持(xmake github)
- Apache Commons BCEL 6.2 发布,更好的支持 Java 9
- GNOME 42.3 发布,更好的 Flatpak 支持
- Node.js 6.13.1 (LTS) 发布,更好的支持 IPv6
- VS Code 1.45发布,更好的Debug,更好的编码体验,更好的Github集成,JS调试器,终端改进,滚动切换选项卡
Xmake v2.7.1 发布,更好的 C++ Modules 支持(xmake github)
Xmake 是一个基于 Lua 的轻量级跨平台构建工具。
它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。
它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。
目前,Xmake 主要用于 C/C++ 项目的构建,但是同时也支持其他 native 语言的构建,可以实现跟 C/C++ 进行混合编译,同时编译速度也是非常的快,可以跟 Ninja 持平。
Xmake = Build backend + Project Generator + Package Manager + [Remote|Distributed] Build + Cache
尽管不是很准确,但我们还是可以把 Xmake 按下面的方式来理解:
Xmake ~= Make/Ninja + CMake/Meson + Vcpkg/Conan + distcc + ccache/sccache
项目源码
官方文档
入门课程
新特性介绍
这个版本我们对 C++20 Modules 的实现进行了重构和改进,改进了模块文件的依赖图解析,新增了对 STL 和 User HeaderUnits 的支持,同时让 CMakelists/compile_commands 生成器也支持了 C++ Modules。
另外,我们新增了一个 xmake watch
插件,可以实时监控当前工程文件更新,自动触发增量构建,或者运行一些自定义的命令。
C++ Modules 改进
Xmake 很早就已经支持 C++ Modules 的构建支持,并且能够自动分析模块间的依赖关系,实现最大化的并行编译。
另外,Xmake 采用 .mpp
作为默认的模块扩展名,但是也同时支持 .ixx
, .cppm
, .mxx
等扩展名。
例如:
set_languages("c++20")
target("class")
set_kind("binary")
add_files("src/*.cpp", "src/*.mpp")
更多例子见:C++ Modules
但是之前的实现还存在很多不足之处:
不支持 HeaderUnits,因此也无法使用 stl 等模块
自己扫描源码实现模块依赖图解析,不支持编译器提供的依赖扫描,因此不完全可靠
不支持 CMakelists 生成
不支持 compile_commands.json 生成
而在新版中,我们对 C++20 模块的实现进行了重构和升级,上面提到的几点,我们都做了支持,新增了对 Headerunits 的支持,因此我们可以在模块中引入 STL 和 用户头文件模块。
同时,由于 msvc 和 gcc 高版本 都已经内置对模块依赖图的扫描分析,Xmake 会优先借助编译器实现模块依赖图分析,如果编译器不支持(clang),那么 Xmake 也会退化到自己的源码扫描实现上去。
相关的补丁见:#2641,非常感谢 @Arthapz 的贡献。
下面是一个使用了 STL HeaderUnits 的模块例子,例如:
stl_headerunit$ xmake
[ 0%]: generating.cxx.module.deps src/main.cpp
[ 0%]: generating.cxx.module.deps src/hello.mpp
[ 20%]: generating.cxx.headerunit.bmi iostream
[ 60%]: generating.cxx.module.bmi hello
[ 70%]: cache compiling.release src/main.cpp
[ 80%]: linking.release stl_headerunit
[100%]: build ok!
对于首次编译,我们会扫描模块代码之间的依赖关系,然后预编译 iostream 等 stl 库作为 headerunit。
之后的重新编译,都会直接复用它们,实现编译加速。
注:通常我们至少需要添加一个 .mpp
文件,才能开启 C++20 modules 编译,如果只有 cpp 文件,默认是不会开启模块编译的。
但是,如果我们仅仅只是想在 cpp 文件中使用模块的 Headerunits 特性,比如引入一些 STL Headerunits 在 cpp 中使用,
那么我们也可以通过设置 set_policy("build.c++.modules", true)
来强行开启 C++ Modules 编译,例如:
add_rules("mode.debug", "mode.release")
target("test")
set_kind("binary")
add_files("src/*.cpp")
set_languages("c++20")
set_policy("build.c++.modules", true)
工程文件监视和自动构建
这个版本中,我们新增了 xmake watch
插件命令,可以自动监视项目文件更新,然后触发自动构建,或者运行一些自定义命令。
这通常用于个人开发时候,实现快速的实时增量编译,而不需要每次手动执行编译命令,提高开发效率。
项目更新后自动构建
默认行为就是监视整个项目根目录,任何文件改动都会触发项目的增量编译。
$ xmake watch
watching /private/tmp/test/src/** ..
watching /private/tmp/test/* ..
/private/tmp/test/src/main.cpp modified
[ 25%]: ccache compiling.release src/main.cpp
[ 50%]: linking.release test
[100%]: build ok!
监视指定目录
我们也可以监视指定的代码目录,缩小监视范围,提升监视性能。
$ xmake watch -d src
$ xmake watch -d "src;tests/*"
上面的命令,会去递归监视所有子目录,如果想要仅仅监视当前目录下的文件,不进行递归监视,可以使用下面的命令。
$ xmake watch -p src
$ xmake watch -p "src;tests/*"
监视并运行指定命令
如果想在自动构建后,还想自动运行构建的程序,我们可以使用自定义的命令集。
$ xmake watch -c "xmake; xmake run"
上面的命令列表是作为字符串传递,这对于复杂命令参数,需要转义比较繁琐不够灵活,那么我们可以使用下面的方式进行任意命令的设置。
$ xmake watch -- echo hello xmake!
$ xmake watch -- xmake run --help
监视并运行目标程序
尽管我们可以通过自定义命令来实现目标程序的自动运行,但是我们也提供了更加方便的参数来实现这个行为。
$ xmake watch -r
$ xmake watch --run
[100%]: build ok!
hello world!
效果如下:
监视并运行 lua 脚本
我们还可以监视文件更新后,运行指定的 lua 脚本,实现更加灵活复杂的命令定制。
$ xmake watch -s /tmp/test.lua
我们还可以再脚本中获取所有更新的文件路径列表和事件。
function main(events)
-- TODO handle events
end
Mac Catalyst 支持
MAc Catalyst 是苹果后来新推的一项让 iPad App 带入 Mac 的方案,通过 Mac Catalyst 构建的 Mac App 与您的 iPad App 共享代码,而且您可以单独为 Mac 添加更多功能。
新版本中,我们新增了 Mac Catalyst 目标的构建支持,在 macOS 平台上,我们只需要添加 --appledev=catalyst
配置选项,就可以支持编译现有的 iOS 代码,并让它在 macOS 上运行起来,而无需做任何改动。
$ xmake f --appledev=catalyst
$ xmake
我们可以在 iosapp_with_framework 这个测试项目中体验 Mac Catalyst 程序的编译运行。
$ xmake
[ 36%]: processing.xcode.release src/framework/Info.plist
[ 40%]: cache compiling.release src/framework/test.m
[ 44%]: linking.release test
[ 48%]: generating.xcode.release test.framework
[ 56%]: compiling.xcode.release src/app/Assets.xcassets
[ 56%]: processing.xcode.release src/app/Info.plist
[ 60%]: cache compiling.release src/app/ViewController.m
[ 60%]: cache compiling.release src/app/SceneDelegate.m
[ 60%]: cache compiling.release src/app/main.m
[ 60%]: cache compiling.release src/app/AppDelegate.m
[ 60%]: compiling.xcode.release src/app/Base.lproj/LaunchScreen.storyboard
[ 60%]: compiling.xcode.release src/app/Base.lproj/Main.storyboard
[ 88%]: linking.release demo
[ 92%]: generating.xcode.release demo.app
[100%]: build ok!
$ xmake run
2022-08-26 15:11:03.581 demo[86248:9087199] add(1, 2): 3
2022-08-26 15:11:03.581 demo[86248:9087199] hello xmake!
运行效果如下:
改进远程编译
拉取远程构建文件
对于远程编译,我们新增加了一个拉取远程文件的命令,通常可用于远程编译完成后,下载远程的目标生成文件,库文件到本地。
$ xmake service --pull ''build/**'' outputdir
我们可以通过 --pull ''build/**''
模式匹配需要下载的文件,可以是构建文件,也可以是其他文件。
注:文件是按项目隔离的,只能指定下载当前项目下的文件,并不会让用户下载服务器上其他目录下的文件,避免一些安全隐患。
实时回显输出
先前的版本在使用远程编译的时候,客户端是无法实时输出服务端的编译信息的,由于缓存的存在,本地看到的编译进度信息都是一块一块刷新出来,体验不是很好。
因此我们加上了行缓冲刷新支持,提高了输出回显的实时性,使得用户在远程编译时,更接近本地编译的体验。
改进分布式编译调度算法
我们对 xmake 的分布式编译的服务器节点调度也做了进一步改进,加上了 cpu 负载和内存资源的权重,而不仅仅通过 cpu core 数量来分配任务。
因此,如果某些节点负载过高,我们会优先将编译任务调度到相当比较空闲的节点上去,充分利用所有编译资源。
更灵活的 cmake 包查找
指定链接
对于 cmake 包,我们新增了 link_libraries
配置选项,让用户在查找使用 cmake 包的时候,可以自定义配置包依赖的链接库,甚至对 target 链接的支持。
add_requires("cmake::xxx", {configs = {link_libraries = {"abc::lib1", "abc::lib2"}}})
xmake 在查找 cmake 包的时候,会自动追加下面的配置,改进对 links 库的提取。
target_link_libraries(test PRIVATE ABC::lib1 ABC::lib2)
指定搜索模式
另外,我们增加的搜索模式配置:
add_requires("cmake::xxx", {configs = {search_mode = "config"}})
add_requires("cmake::xxx", {configs = {search_mode = "module"}})
add_requires("cmake::xxx") -- both
比如指定 config 搜索模式,告诉 cmake 从 XXXConfig.cmake
中查找包。
xmake 在查找 cmake 包的时候,内部会自动追加下面的配置。
find_package(ABC CONFIG REQUIRED)
armcc/armclang/rc 增量编译支持
在新版本中,我们对 keil 的 armcc/armclang 编译器也进行头文件依赖分析,来支持增量编译。
另外,msvc 的 rc.exe 资源编译器本身是无法提供头文件依赖分析的,但是 cl.exe 的预处理器却是可以处理资源文件的。
因此我们可以通过 cl.exe /E test.rc
去预处理资源文件,从中提取依赖信息,来实现资源文件的增量编译支持。
目前测试下来,效果还不错,同时我们也对内部 ICON/BITMAP 的资源引用依赖也做了支持。
其他问题修复
我们对构建缓存也做了很多修复,它将比之前的版本更加的稳定。另外我们也精简了 CMakelists 的生成。
更多细节改进见下面的更新日志:
更新内容
新特性
#2555: 添加 fwatcher 模块和
xmake watch
插件命令添加
xmake service --pull ''build/**'' outputdir
命令去拉取远程构建服务器上的文件#2641: 改进 C++20 模块,支持 headerunits 和 project 生成
#2679: 支持 Mac Catalyst 构建
改进
#2576: 改进从 cmake 中查找包,提供更过灵活的可选配置
#2577: 改进 add_headerfiles (),增加
{install = false}
支持#2603: 为 ccache 默认禁用
-fdirectives-only
#2580: 设置 stdout 到 line 缓冲输出
#2571: 改进分布式编译的调度算法,增加 cpu/memory 状态权重
#2410: 改进 cmakelists 生成
#2690: 改机传递 toolchains 到包
#2686: 改进 armcc/armclang 支持增量编译
#2562: 改进 rc.exe 对引用文件依赖的解析和增量编译支持
改进默认的并行构建任务数
Bugs 修复
#2614: 为 msvc 修复构建 submodules2 测试工程
#2620: 修复构建缓存导致的增量编译问题
#2177: 修复 python.library 在 macOS 上段错误崩溃
#2708: 修复 mode.coverage 规则的链接错误
修复 ios/macOS framework 和 application 的 rpath 加载路径
关注公众号
TBOOX 开源工程
专注 C 跨平台开发解决方案
长按二维码关注
本文分享自微信公众号 - TBOOX 开源工程(tboox-os)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。
Apache Commons BCEL 6.2 发布,更好的支持 Java 9
Apache Commons BCEL 团队很高兴地宣布 Apache 的发布 Commons BCEL 6.2 更好的支持 Java 9。
字节代码工程库(BCEL)旨在为用户提供分析,创建和操作已编译的.class 文件的便捷方式。类由包含
给定类的所有符号信息的对象表示:方法,字段和字节代码指令。
bug 修复:
o BCEL-294: Incorrect comment in StackMap.java Thanks to Mark Roberts.
o BCEL-296: Incorrect comment in several classes. Thanks to Mark Roberts.
o BCEL-295: Fix local variable live range length; add test case. Thanks to
Mark Roberts.
o BCEL-300: org.apache.bcel.classfile.ClassFormatException: Invalid byte
tag in constant pool: 19.
o BCEL-301: org.apache.bcel.classfile.ClassFormatException: Invalid byte
tag in constant pool: 20.
完整内容请查看发布主页。
下载地址: http://commons.apache.org/bcel
GNOME 42.3 发布,更好的 Flatpak 支持
GNOME 42.3 近日正式发布,这是 GNOME 42 桌面环境系列的第三个 Point Release。GNOME 42.3 带来了更多的错误修复和维护性更新。
GNOME 42.3 的主要更新内容如下:
- 修复了 GNOME 42 中引入的新的截图 UI
- 修复当 XDG 目录被禁用时的截图
- 修复屏幕键盘
- 改进对高对比度样式表和比利时屏幕键盘布局
- 改进了对 Flatpak 应用程序的处理
- GNOME 软件在固件更新失败后不再显示重启通知
- GNOME 控制中心收到了对网络页面的改进,以防止在断开设备连接时出现崩溃
- 显示名称中带有 "&" 的 Wi-Fi 网络
- GNOME 42.3 修复了同步失败导致的内存损坏
- 修复在 Epiphany (GNOME Web) 网页浏览器中删除所有密码时发生的崩溃
- 改进了对窗口列表扩展的触摸支持
更多详情可查看:https://fr.rpmfind.net/linux/gnome.org/core/42/42.3/NEWS
Node.js 6.13.1 (LTS) 发布,更好的支持 IPv6
Node.js 6.13.1 (LTS) 已发布,Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。 Node.js 使用高效、轻量级的事件驱动、非阻塞 I/O 模型。
该版本主要的更新是带来了对 IPv6 更好的支持,详情请查看:https://github.com/nodejs/node/pull/14772
Node.js 6.13.x 这个系列的更新频率相对来说没有那么激进,上次的更新是大约 1 个月前。
下载地址和发布说明请查看:https://nodejs.org/en/blog/release/v6.13.1/
VS Code 1.45发布,更好的Debug,更好的编码体验,更好的Github集成,JS调试器,终端改进,滚动切换选项卡
此次发布的VS Code
版本为1.45
,主要更新如下:
- 可访问性改进:聚焦命令导航工作台,状态栏可访问性。
- 通过鼠标滚轮切换编辑器选项卡;
- 更快的语法高亮显示 :编程语言的着色速度提高了3倍;
- 用户可自定义语义颜色;
-
支持
GitHub
认证; - 为
GitHub Issue
和User
提供内联管理; - 远程开发,容器配置建议,支持
WSL 2
;
以下便是详细内容:
工作台
使用鼠标滚轮切换选项卡
在设置中新增了一项设置:workbench.editor.rollToSwitchTabs
,开启后,便可以通过鼠标滚轮切换编辑器中打开的选项卡;
当你把鼠标焦点移动到编辑器标签页所在的区域,并开始滚动鼠标滚轮时,打开的标签页便会切换到编辑器中打开的其他的选项卡,详情如下:
在鼠标滚轮滚动的同时,按下shift
键,选项卡就会向相反的方向切换。
自定义窗口标题分隔符
默认情况下,使用"-"作为窗口标题中使用的分隔符,现在,设置中的新设置项:window.titleSeparator,可用于修改窗口标题中使用的分隔符;
在图中,红线标注的便是窗口标题中使用的分隔符。
修改了侧栏标题的默认主题
为默认的深色和浅色主题更新了侧栏部分标题的样式,在使用透明背景时,并为每个标题显示一个边框:
在上图中,除了OPEN EDITORS栏目没有边框外,其余的几个栏目都有一个明显的边框。
编辑器
语法高亮显示
此版本便编写了一个专门的 Web Assembly
绑定,为TextMate
解释器的使用做了大量的优化,采用了几个月前刚刚添加到oniguruma
的新API
;在高亮显示常规编程文件方面的性能提高了3
倍。
自定义语义主题规则
在设置中的editor.semanticTokenColorCustomizations
属性可以在用户设置中自定义语义主题规则,语义着色适用于TypeScript
和JavaScript
,对Java
和C++
的支持正在开发中;它默认为内置主题启用,并被主题扩展所采用。
上面的设置更改了默认Dark +
主题;它为参数(斜体和新颜色)赋予了新的样式,并在默认库中为所有符号(例如Promise
,Map
及其属性)加了下划线:
Default Dark +主题中常量的新颜色
Default Dark+
和Default Light+
主题的颜色常量与可写变量的阴影不同,下面就是一个例子:
Default Dark+ theme
:
Default Light+ theme
:
禁用永久性撤消
设置项中的:files.restoreUndoStack
,用于禁用持久性撤消。在关闭文件并重新打开文件时持久保留的“撤消/重做”堆栈,可以通过files.restoreUndoStack
禁用该功能。
Integrated Terminal
删除了几个与提示符相关的命令:
workbench.action.terminal.deleteWordLeft
workbench.action.terminal.deleteWordRight
workbench.action.terminal.deleteToLineStart
workbench.action.terminal.moveToLineStart
workbench.action.terminal.moveToLineEnd
它们已经被替换成了workbench.action.terminal.sendSequence
命令的自定义键绑定,该命令以通用的方式做同样的事情。
支持在PowerShell中粘贴多行文字
在workbench.action.terminal.sendSequence
命令中有一个新的键绑定只适用于Windows
,这个新的键绑定支持将Ctrl+V
的文本直接发送到PowerShell
,并由PSReadLine
接收并正确处理:
使用这个新的键绑定之前和使用之后有着明显的差别:
定义双击分隔符
设置项中terminal.integrated.wordSeparators
设置可允许自定义在终端中双击时用于分隔单词的分隔符,默认情况下,该分隔符为:
Debugging
自动debug配置
上图便是新的JavaScript
调试器预览和Mock Debug
,该自动调试可以通过在快速打开(Ctrl+P
)中输入''debug''
(带空格)或触发Debug.Debug.Debug Quick Pick
命令打开,选择并开始调试命令。debug
的UI
界面将在下一版本中提供。
Task
禁用更快的快速选择
设置项中的task.quickOpen.showAll
可用于设置禁用快速选择器,用以换回之前版本的快速选择器UI
,因为在1.44
版本中,运行任务时显示的任务选择器被做了一些修改。
运行保存
设置项中的task.saveBeforeRun
可用于配置运行保存,用以避免在运行前保存编辑器。
Languages
TypeScript状态栏条目
VS Code
在状态栏中显示当前的TypeScript
版本:
单击TypeScript
版本会弹出适用于当前TypeScript
项目的命令:
提示用户切换到TypeScript的工作区版本
设置项:typescript.enablePromptUseWorkspaceTsdk
,设置为true
后会有一个提示,询问用户是否要切换到工作区版本的 TypeScript
;
Markdown链接到文件夹
Markdown
文件中的编辑器链接和Markdown
预览中的链接现在可以指向文件夹,点击这些链接中的一个,就可以在VS Code
的文件资源管理器中显示目标文件夹。
Source Control
针对GitHub仓库的GitHub认证
VS Code
现在可以自动对GitHub
仓库进行GitHub
认证,你现在可以克隆、拉取、推送代码到Github
仓库,而无需在系统中配置任何证书管理器。即使是在集成终端中调用的Git
命令,例如git push
,现在也会自动对GitHub
账户进行身份验证。
也可以通过设置项:git.githubAuthentication
来禁用 GitHub
认证,可以通过设置项:git.terminalAuthentication
来禁用集成终端验证。
隐藏Git提交输入框
设置项:git.showCommitInput
可以隐藏 Git
代码仓库的提交输入框。
内联差异可编辑
当预览文件中的发生更改时,可以在快速差异编辑器中进行编辑。
JavaScript调试器
可以从VS Code stable
中的Marketplace
安装这个新的JavaScript
调试器,然后通过设置项: debug.javascript.usePreview
来启用这个新的JavaScript
调试器。
自动附加集成
设置项:debug.javascript.usePreview
,用于打开自动附加集成,该功能将使用js-debug
提供的新方法,该方法允许所有终端的工作方式像Debug Terminal
一样。
对现有调试器的自动附加的改进如下:
- 立即连接调试器,使在程序的早期达到断点;
- 子进程将自动调试;
- 自动附加期间没有过程轮询开销;
从变量视图中复制混合值
在之前的版本中,会尝试从VS Code Variables
视图复制混合、复杂的值(如对象),这样通常会导致数据被截断或不完整,而VS Code
和js-debug
中的更改让我们能够复制完整的值:
图标主题
Visual Studio Code
包含一组内置图标,这些图标在视图和编辑器中使用,也可以在悬停器,状态栏和扩展名中使用。 这些图标包含在Codicon
图标字体中,用于默认的产品图标主题。
在所有打开的项目中搜索TypeScript/JavaScript符号
当使用TypeScript 3.9+
时,VS Code
的全局符号搜索默认搜索所有打开的JavaScript
和TypeScript
项目的,之前的版本默认搜索当前项目;因为此项功能为默认选项,所以如果想要恢复之前版本的操作,可通过设置项:"typescript.workspaceSymbols.scope": "currentProject"
来完成。
改进了终端中的链接显示
对终端中的链接支持做了一次大修改,终端中的链接功能更加强大:
- 能够更好的进行
web
和file://
链接检测; - 支持文件夹链接,可以在资源管理器中打开文件夹,也可以打开一个新的
VS Code
窗口; - 针对不同类型的链接类型有不同的链接操作,从链接回退到搜索工作空间的链接的“字符”可通过设置项:
terminal.integrated.wordSeparators
来设置; - 类似于编辑器中代码高亮的链接显示;
动态显示icon和标题
允许在工作台上移动视图时在活动栏或面板中的新选项卡上创建新图标,当创建一个自定义容器时,将会使用第一个可见的视图的标题和图标作为容器的标题和图标,并允许通过重新排列视图来改变它。下面的图中:当一个新的视图被放置在视图容器的顶部时,它的图标和标题会被更新。
然后可以移动自定义容器及其所有包含的视图,在下面的图中显示了将终端和输出视图组合后拖入活动栏中:
扩展贡献
远程开发
继续远程开发的扩展开发,以允许你使用容器、远程计算机或WSL
作为一个全功能的开发环境;在此版本中有不少亮点:
- 提供容器配置教程;
- 提供对
WSL2 Docker
和Podman
引擎的支持; - 为本地和容器文件夹提供新的
devcontainer.json
变量;
GitHub Pull Requests and Issues
在之前的版本中,可在VSCode
中执行GitHub Pull Request
,在此版本中,不仅支持Pull Request
,还支持Issues
;
Issue
的支持包括:
- 对
#-referenced issues
和@-mentioned users
(提及的用户)提供悬停支持; - 列出
issue
和用户的内联建议; - 自定义查询
issue
; - 可以从
issue
直接开始处理问题,并创建一个分支,然后自动填写commit message
;
此外,还提供了对代码仓库的支持:
- 从远程代码仓库克隆源代码;
- 提交一个新版本到
Github
;
下面的图中演示了在GitHub
上发布到一个新的私有仓库,上传成功后,就可以直接GitHub
上浏览代码仓库:
GitHub Issue Notebooks
提供了GitHub Issue Notebooks
扩展,用以管理issue
和pull request
搜索,并对管理进行内联渲染;
debug/callstack/context菜单内联组
支持对debug / callstack / context
菜单内联组的贡献,当用户将鼠标悬停在Debug Session
元素上时,将在调用堆栈中内嵌呈现给该组的命令。
自定义的编辑器二进制API
重新实现了二进制自定义编辑器的拟议API
,并自定义编辑器扩展到二进制文件格式,然后就可以在编辑器中打开二进制文件了,比如:图片、十六进制转储等:
辅助功能
- 引入了聚焦上一部分(
F6
)和聚焦下一部分(Shift + F6
)的快捷键操作,可以在编辑器工作台导航之间快速切换; - 当鼠标焦点移动到状态工具栏时,屏幕阅读器可以读取焦点对准的内容;
- 在编辑器的工作台中的的每个列表和树形工具中引入了
ARIA
标签,可以打开编辑器、面包屑、问题视图等;
此次发布的VSCode 1.45
亮点众多,也有不少的改进,VSCode
越来越好了,也越来越受更多开发者的青睐,如果有感兴趣的小伙伴,不妨可以下载尝试一番。
此外,VSCode
还提供了丰富的扩展API
和调用文档,开发者们除了可以作为VSCode
的使用者外,也还可以作为开发者,利用官方提供的扩展API
,开发出基于VSCode
运行的插件,拓展出自己想要的功能,除了给自己用,可以开源出来给更多的开发者使用。
完结,老夫虽不正经,但老夫一身的才华!
今天关于Xmake v2.7.1 发布,更好的 C++ Modules 支持和xmake github的分享就到这里,希望大家有所收获,若想了解更多关于Apache Commons BCEL 6.2 发布,更好的支持 Java 9、GNOME 42.3 发布,更好的 Flatpak 支持、Node.js 6.13.1 (LTS) 发布,更好的支持 IPv6、VS Code 1.45发布,更好的Debug,更好的编码体验,更好的Github集成,JS调试器,终端改进,滚动切换选项卡等相关知识,可以在本站进行查询。
本文标签: