【问题标题】:How do I teach WebStorm 9 inspector to recognize Angular Material Design tags/attributes?如何教 WebStorm 9 检查员识别 Angular Material Design 标签/属性?
【发布时间】:2015-04-26 10:25:09
【问题描述】:

目前,我所有的角度材质 HTML 属性都以黄色突出显示,并带有 WebStorm 9 (Mac OS X Yosemite) 警告:“此处不允许使用属性 [名称]”。

如何教 WS 自动将这些属性识别为有效?我知道我可以将每个属性一个一个地添加到自定义属性列表中,但希望有更好的方法来做到这一点。

更新: 只是想澄清这个问题适用于Angular Material 项目,而不是AngularJS 本身。

【问题讨论】:

  • 如果能得到支持真是太好了

标签: webstorm


【解决方案1】:

您需要将angular-material.js 文件添加为WebStorm 中的库:

  1. 打开首选项(Mac:Cmd+,,Win/Linux:Ctrl+Alt+S
  2. 转到Languages & Frameworks > JavaScript > Libraries

  3. 点击Add,然后按+图标

  4. 在您的node_modules 文件夹中查找angular-material.js

  5. 添加名称和版本,然后按Ok

现在,您将完成在 angular-material 源代码中具有 @ngdoc 文档的所有元素和属性。

用法

  • 开始输入,你会看到补全:

  • 按下F1(在Win/Linux 上为Ctrl+Q)也会显示一些文档,如果在源代码中可用:

重要提示

并非所有功能都已正确记录,以下内容不会显示(除非您已经使用过它们),因为它们是在循环中动态定义的,没有@ngdoc 用于它们:

var API_WITH_VALUES = [ "layout", "flex", "flex-order", "flex-offset", "layout-align" ];
var API_NO_VALUES   = [ "show", "hide", "layout-padding", "layout-margin" ];

因此,对于这些,您必须将它们添加为自定义属性(Alt+Enter >“将 flex 添加到自定义 html 属性”)。

环境

在 Mac OS X 10.11.4 上使用 WebStorm 2016.1.1 进行测试,但这也适用于旧版本。

【讨论】:

  • 不幸的是,这仅适用于打字稿绑定,不适用于 HTML 标记元素和属性。
  • @MichaelTrouw 不明白你的意思,我不使用 TypeScript,而且我会自动完成 Angular Material 属性(那些暴露的属性)。
  • (我不能@你的用户名,顺便说一句,烦人..)随机复制一些角度材料示例 HTML 并检查你是否看到任何橙色下划线的属性(应该有)。也许那些是暴露的,也许它们不是,在任何情况下它们都被 angular-material 使用,我不希望它们显示为警告。例如:在我的 Webstorm 编辑器中,material.angularjs.org/latest/layout/introduction 的第一段 HTML 示例显示了对 show 指令的警告。它不应该。 编辑: 我现在看到 show 包含在重要说明中。但还有更多!
  • @MichaelTrouw 是的,你是对的,它们中的大多数都被标记了,正如我在重要说明中提到的(这包括像 flex-md 这样的变体)。除了要求 Angular Material 人员为这些东西添加 \@ngDoc 之外,我们真的无能为力,但他们忙于 Material 2,没有时间做任何事情。只需将它们添加为自定义属性(属性上的 Alt+Enter)。
  • 不错。这对我有用。
【解决方案2】:

我正在使用PHPStorm,它是WebStorm 的姊妹项目,但它应该以相同的方式工作。

您可能需要添加库:

  • 文件
  • 设置
  • 语言和框架
  • Javascript
  • 图书馆

在此处添加 AngularJS

如果这不起作用,您可以手动添加它们:

按照以下步骤操作:

  • 文件
  • 默认设置
  • 编辑器
  • 检查
  • HTML
  • 未知的 HTML 标记属性

在右侧,您将在“自定义 HTML 标记属性”选项中看到。在此处输入您要允许的属性。

【讨论】:

  • 谢谢。将每个 Angular Material HTML 属性添加为单独的标签并随着时间的推移对其进行维护是不可行的。必须有更好的方法来做到这一点。也许在未来。
【解决方案3】:

我强烈推荐你安装Angular.js plugin:

  1. 转到菜单文件 > 设置(或 ctrl + alt + S,如果您使用的是 Windows);
  2. 在打开的窗口中选择插件;
  3. 单击“浏览存储库”按钮;
  4. 在搜索字段中输入 AngularJS。选择插件;
  5. 点击安装插件。

该插件负责读取 ngMaterial 源中存在的 @ngdoc 注释并为其指令创建文档。

It seems to support WebStorm and other IDEs,但是在被其他 IDE 过滤时,我在插件注册表中找不到它。也许它会在 WebStorm 中工作......

无论如何,这就是你得到的:

【讨论】:

  • 我已经启用了 AngularJS 插件。我遇到了 WebStorm 9(在最新的 Mac OS X 上)无法识别 Angular Material html 属性而不是 AngularJS 本身的问题。 Angular Material 是一个独立于 AngularJS 的项目。
  • @demisx 我很清楚这些项目之间的差异。您需要该插件和 ngMaterial 源。该插件读取@ngdoc 注释并在您的HTML 中记录指令。我提供的屏幕截图中提供了一个示例。
  • 我明白了。我启用了 AngularJS 插件(版本 139.1112)并且 ngMaterial 源位于 bower_components 文件夹中。后者被标记为“图书馆之家”。看起来像在 ngMaterial JS 文件中定义为指令的属性被识别,但在 ngMaterial CSS 中定义的属性不是例如layout-fillhide-sm 等。我猜这是因为 CSS 没有文档。感谢您的帮助。
  • 这特别帮助我解决了未知标签问题(我禁用了插件以希望减少 CPU/内存使用),谢谢!
【解决方案4】:

您还有一个很有帮助的插件,请查看。很有帮助

Angular material v2, Teradata covalent v1, Angular flex layout v1 & Material icon live templates @Alex Ilyaev 提供的解决方案提供了很多帮助。

但它并不完美。

希望对你有帮助。

【讨论】:

    【解决方案5】:

    目前我认为这个想法的 AngularJS 插件不理解 angular-materials 属性扩展。

    它确实理解指令,即控制点击 ...> 并找到指令(自定义标签)。

    现在您必须在自定义属性中添加属性才能获得“绿色”页面。

    【讨论】:

      猜你喜欢
      • 2020-09-08
      • 2017-10-18
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      相关资源
      最近更新 更多