查看: 3513|回复: 5

[原创发布] IDE:Webstorm无法正确解析RMMV脚本继承关系的修复方式

[复制链接]
梦石
0
星屑
1324
在线时间
127 小时
注册时间
2017-1-14
回帖
76

开拓者

发表于 2017-6-29 06:57:26 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 怠惰な騎士 于 2017-7-8 16:24 编辑

2017-7-8 16:13:07 更新:

今天在1.5的rmmv js源码中发现,使用jsdoc的@extends来标记构造函数同样可以标记继承关系。

如下:
[pre lang="javascript"]/**
* @class Scene_Map
* @extends Scene_Base
* @constructor
*/
function Scene_Map() { /* code here */ }[/pre]

------------------------------------------------------------------------------------------------------------------------------------------

WebStorm(10.0)直接解析RPG Maker MV的源代码(rpg_xxxx.js)时,无法正确解析这些类的继承关系。
即WebStorm无法检测使用如下写法撰写的类继承规则:

  Window_Child.prototype = Object.create(Window_Parent.prototype)

因为这种写法不符合js编写规范。(由 shi ta ke 补充)(参见3楼,shi ta ke用户名全称会被过滤无法直接@ )

在一次巧合中发现直接通过创建一个名字中含有extend的“不做任何动作”的函数来触发WebStorm的类继承检测机制。

函数声明:

  function __intellijHelper_extend(child, parent) {}

应用方式:

  __intellijHelper_extend(Window_Child, Window_Parent);

完成此步骤后,便可以正常使用WebStorm的类导航功能,并在开发中准确知道当前子类是否重写了父类的某个方法。
通过建立完善的类继承关系并配合使用jsdoc,可以使得IDE对项目代码的解析更精准,从而更准确协助基于RMMV的项目的代码开发。

实际代码与效果:

eg2.jpg

eg.jpg

eg3.jpg

老黄鸡

梦石
4
星屑
45707
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2017-6-29 09:53:35 | 显示全部楼层
有点意思,就是字体有点玄幻
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
4623
在线时间
1207 小时
注册时间
2016-4-7
回帖
944

开拓者

发表于 2017-6-29 11:03:59 来自手机 | 显示全部楼层
这哪里是jb的bug 你们不按规范写,有问题还要怪ide咯
js 无论是 es6/es5 都没这种面向对象写法
rmmv的代码在webstorm上还有个蛋疼的问题就是类初始化函数的jsdoc作用不能

点评

顺带都提了“规范”了,不考虑撸个帖子科普一下吗  发表于 2017-6-29 11:22
不是“你们”,是“RMMV”,233  发表于 2017-6-29 11:21
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复

使用道具 举报

梦石
0
星屑
2306
在线时间
1010 小时
注册时间
2012-4-30
回帖
1455

开拓者

发表于 2017-6-29 16:50:40 | 显示全部楼层
有点意思,就是字体有点玄幻
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部