Project1

标题: IDE:Webstorm无法正确解析RMMV脚本继承关系的修复方式 [打印本页]

作者: 怠惰な騎士    时间: 2017-6-29 06:57
标题: IDE:Webstorm无法正确解析RMMV脚本继承关系的修复方式
本帖最后由 怠惰な騎士 于 2017-7-8 16:24 编辑

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

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

如下:
JAVASCRIPT 代码复制
  1. /**
  2.  * @class Scene_Map
  3.  * @extends Scene_Base
  4.  * @constructor
  5.  */
  6. function Scene_Map() { /* code here */ }


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

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的项目的代码开发。

实际代码与效果:






作者: fux2    时间: 2017-6-29 09:53
有点意思,就是字体有点玄幻
作者: shitake    时间: 2017-6-29 11:03
这哪里是jb的bug 你们不按规范写,有问题还要怪ide咯
js 无论是 es6/es5 都没这种面向对象写法
rmmv的代码在webstorm上还有个蛋疼的问题就是类初始化函数的jsdoc作用不能
作者: 铅笔描绘的思念    时间: 2017-6-29 16:50
有点意思,就是字体有点玄幻





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1