Open xuxinle opened 1 year ago
走 newfiles 命令试试,不行就直接 xmake create test
命令行创建后打开。
走 newfiles 命令试试,不行就直接
xmake create test
命令行创建后打开。
这个我知道是为什么:
插件在激活的时候需要执行 extension.ts
中的 activate
函数,activate
函数直接调用了初始化函数 xmake.start
,而在 xmake.start
函数中会检查 xmake.lua
文件是否存在,就在这一步报的错;
现在的问题就是一般新建一个工程,都会去使用命令去创建,而创建工程的命令往往是插件执行的第一个命令,就会触发激活函数,然后就会报错;
至于我自己为什么不提PR,主要是我现在对ts、js不熟悉,fork了仓库,clone下来结果连调试断点都绑定不了(新建一个插件项目一点问题都没有),并且npm install后一堆错误Orz,只能寄希望于开发者解决了QAQ
而且我查了半天资料都不知道怎么在 activate
函数中获取是那条命令激活的插件,所以自己改然后交PR就更不了了之了Orz
跟激活没关系,我这试了下 可以的么,没啥问题。。
XMake: CreateProject
, 会提示也就是上图贴的,都提示很明显了,继续点下下面提示的按钮 Create a new xmake project
选 c++
选 console
这个时候,插件才会完整 activate
跟激活没关系,我这试了下 可以的么,没啥问题。。
- 创建个空目录,打开文件夹
- 命令面板点
XMake: CreateProject
, 会提示![]()
也就是上图贴的,都提示很明显了,继续点下下面提示的按钮
Create a new xmake project
- 就会弹出 开发语言 选择列表
![]()
选 c++
- 然后弹出选择项目类型列表
![]()
选 console
- 然后项目创建完成。
![]()
这个时候,插件才会完整 activate
你点弹出框的CreateProject与你点命令的CreateProject不是一个动作。
你创建完成后还会弹出一次创建选择框。
你点弹出框的CreateProject与你点命令的CreateProject不是一个动作。 你创建完成后还会弹出一次创建选择框。
先点命令 CreateProject,然后点弹出框的 CreateProject。。原本就是两个动作。。
先点命令 CreateProject,然后点弹出框的 CreateProject。。原本就是两个动作。。
不不不,你没理解我意思,我说的是在这种情况下,插件内xmake.createProject会被执行两遍,这个显然是个BUG Orz
也不算 bug,目前就是这样的逻辑,避免不了。。
点任意 command 面板命令,在执行 xmake action 之前,vscode 都要先去激活 xmake 插件才能执行。。
为了避免大部分 xmake command 无效执行,在当前打开的工程目录下,xmake 插件激活启动阶段,都会去先检测 xmake.lua 是否存在,如果不存在,先提示用户 点击 CreateProject 创建它。。
当然,理论上,如果用户正好选择的是 xmake.createProject 这个命令,按理是可以跳过 xmake.lua 检测,直接去走 CreateProject创建逻辑的。。
但是现在的问题的,用户点完 xmake.createProject 命令, activate 是最先执行的,这个时候,插件是不知道用户到底点了什么命令,实际的 xmake.lua 检测逻辑,在 CreateProject 逻辑被调用之前。没法针对这个命令,特殊处理过滤检测。
目前是没办法避免的,所以你只能点两次,第一次点 CreateProject 命令,然后根据提示再点一次 CreateProject 按钮才行。
Xmake 版本
2.7.6
操作系统版本和架构
windows 10
描述问题
期待的结果
正常创建项目
工程配置
No response
附加信息和错误日志
No response