JetBrains WebStorm是一款拥有超高人气的web前端开发工具。编程人员都在使用的JavaScript开发工具JetBrains WebStorm。它也是功能最强大的HTML5编辑器之一。整个应用程序系统使用现代JavaScript系统的所有功能来满足用户的需求。同时,它也为用户提供了强大的使用效率支持;程序系统还使用它只能补充功能,可以帮助用户在编辑代码的过程中实现自动代码填充。同时,它还为用户提供了代码检测功能。此功能可以有效地向用户提供错误的代码,也可以为功能强大的助手提供新手;新版本更新了重构功能,现在用户在使用此功能时会感觉非常强大;需要它的用户可以下载体验。
软件特色:
1,JavaScript和TypeScript
①完成弹出窗口的新用户界面
用新的,更精致的外观完成弹出窗口。
完成JavaScript和TypeScript中已完成建议的呈现更加清晰和一致。现在,更容易发现符号的定义位置以及它是否是标准语言API的一部分。对于具有多个定义的符号,还有一个新图标。
②明智的新意图
使用新的破坏意图的传播(Alt-Enter),如果可以进行另一次破坏,则可以替换其他变量。要完全删除该解构,请使用名为“用属性或索引访问替换解构”的意图操作。
现在,如果条件中的布尔表达式有一些不必要的部分,IDE会警告您,并建议对其进行简化。
③改进了重命名重构
时重命名JavaScript或TypeScript文件中的符号时,IDE现在将动态使用分组在一起,默认情况下将它们排除在重构之外。这样可以使重构更加准确,并使您可以更好地控制在重构预览工具窗口中应重命名的内容。
2,Vue.js
①更好地支持Vue.js组件库
在Vue.js应用程序中使用Vuetify,BootstrapVue或Quasar?这些组件和其他一些Vue组件库中的组件及其道具的代码完成现在更加准确。这是通过我们在IDE中使用这些库的新方法来实现的。
②语法精选超过20种语言
是否需要偶尔在WebStorm中查看一些PHP或Python文件?现在,这些语言和许多其他语言都可以使用语法高亮显示-由于IDE附带了TextMate语法文件,因此不需要其他配置。
③输入错误的关键字和名称
您输入过函数或函数不是函数错误吗?现在,代码完成可以理解此错误,并且仍然为您提供最相关的选项。这适用于所有受支持的语言以及所有符号-关键字,类,函数,组件等。
④支持shell脚本
WebStorm现在可以帮助您使用Shell脚本。代码完成工作在文件.sh和.bash文件中,您可以使用新的运行配置,并且IDE与ShellCheck集成在一起以进行lint和shfmt格式化代码。
⑤搜索重复的代码
通过新的重复代码片段检查,您现在可以在项目中找到重复的代码。它动态检查您的代码,并立即在编辑器中突出显示可能的重复项。它适用于JavaScript,TypeScript,CSS,Sass,SCSS和Less。
软件功能:
1.支持的主要框架
HpPhpStorm非常适合与Symfony,Drupal,WordPress,Zend Framework,Laravel,Magento,CakePHP,Yii和其他框架配合使用。
2,所有PHP工具
该编辑器实际上“获取”您的代码并深入了解其结构,支持现代项目和旧项目的所有PHP语言功能。它提供了最佳的代码完成,重构,即时错误预防等功能。
3,包括前端技术
充分利用HTML5,CSS,Sass,Less,Stylus,CoffeeScript,TypeScript,Emmet和JavaScript等尖端技术,并提供重构,调试和单元测试。使用Live Edit即时查看浏览器中的更改。
4.内置的开发人员工具
由于版本控制系统集成,对远程部署的支持,数据库/ SQL,命令行工具,Vagrant,Composer,REST客户端和许多其他工具,因此许多常规任务可以直接从IDE执行。
5. PhpStorm = WebStorm + PHP + DB / SQL
WebStorm的所有功能都包含在PhpStorm中,并且在顶部添加了对PHP和数据库/ SQL的完全支持。
6.智能编码协助
数百次检查负责在您键入代码时验证代码并分析整个项目。 PHPDoc支持,代码(重新)编排和格式化程序,快速修复以及其他功能可帮助您编写易于维护的简洁代码。
使用说明:
用户可以直接通过此网站下载相应的安装软件包,然后将其解压缩。双击该程序将其打开。
双击后,将弹出相应的用户界面,整个用户界面的功能模块分布非常清晰
领域特定语言是针对具有更高抽象级别的特定问题类别而优化的编程语言。 DSL使用来自领域或领域的概念和规则。
特定领域的语言与“真实”编程语言有何不同
领域特定的语言通常不像Java,C或Ruby这样的通用语言那么复杂。通常,DSL是与其设计领域的专家紧密合作开发的。在许多情况下,DSL不是由软件人员使用的,而是由精通DSL地址域的非程序员使用的。
特定领域语言的好处是什么
使用DSL可以带来很多好处。使用DSL的最明显的好处是,一旦有了语言和转换引擎,您在DSL涵盖的软件开发的特定方面的工作就会变得更加高效,这是因为您不必手动进行工作。如果要从DSL程序生成源代码(而不是对其进行解释),则可以使用特定于域的精美抽象,而无需支付任何运行时开销,因为生成器就像是编译器,可以删除抽象并生成有效代码。
如果您可以使用与领域紧密集成的语言来表达领域问题,则您的想法将变得更加清晰,因为您编写的代码不会被实现细节所混淆。换句话说,使用DSL可以使您将本质与偶然的复杂性区分开。
DSL域,抽象和符号与域专家(即非程序员)表达自己的方式紧密一致,从而允许技术人员和域人员之间实现良好的集成。
使用DSL和执行引擎可以使以DSL代码表示的应用程序逻辑独立于目标平台。使用DSL可以提高您创建的产品的质量:更少的错误,更好的体系结构一致性和增强的可维护性。这是消除(不必要的)自由度,避免代码重复以及自动执行重复任务的结果。
特定领域的语言和常规代码如何结合在一起
集成传统代码和DSL代码有两种根本不同的方法。第一个将DSL代码和常规代码保存在单独的文件中。然后,通过自动代码生成器将DSL代码转换为编程语言代码,或者该程序加载特定于域的代码并执行该代码。具有单独通用语言(GPL)和DSL代码的第一种方法称为外部DSL。将SQL视为外部DSL的示例。
另一种方法是将DSL代码和通用代码混合在同一程序文件中,以便它们之间的集成更紧密。 DSL重用了GPL的语法和解析器,并利用了主机语言的可用扩展选项。术语内部DSL用于描述这种情况。
值得一提的是,某些GPL比其他GPL更适合扩展。
根据具体情况,这两种方法都有意义,MPS支持这两种方法。
DSL的结构和语法是通过以嵌入DSL代码的语言编写代码来定义的。通常,IDE不理解DSL,因此不提供支持(代码完成,自定义错误检查等)。但是,通过MPS,您可以将MPS框架及其专用的DSL用于语言开发,以定义语言扩展。因此,IDE知道它们,因此系统可以为特定于域的嵌入式语言提供完整的IDE支持。
核心思想是在开发软件时,我们不仅使用一种语言,而且还使用最适合每个任务的那些语言。与表面上提倡类似方法的多语言编程相反,面向语言的编程明确鼓励开发人员构建自己的DSL或使用特定于域的概念来扩展现有语言作为方法的一部分。为了使其可行,诸如MPS之类的语言工作台是面向语言的方法的重要组成部分。
使用MPS,您可以为任何新语言定义一个自定义编辑器,以使使用DSL更容易。即使是不熟悉传统编程的领域专家,也可以使用根据自己的特定领域术语设计的特定领域语言轻松地在MPS中工作。
在下面的视频中,您可以看到有关如何将MPS用于交互式语音响应(IVR)的示例。该DSL面向非技术人员,因此用户体验可以适应他们。
快速定义动作
快速定义与其对应类似
在IntelliJ IDEA中。单击一个节点并按住Ctrl-Shift-I,您将弹出一个包含该节点定义的弹出窗口。在此弹出窗口中,您可以导航,选择其他节点并执行“查找”操作。这样,您无需每次想要快速浏览节点时都打开新选项卡。
在以前的版本中,MPS无法卸载模型。这意味着,如果您长期使用MPS并访问了许多模型,则所有模型都会加载到内存中。结果,内存消耗将随着时间增加,这也影响垃圾收集器的暂停。
现在,您可以通过单击内存指示符或通过在首选项中设置计划的清除操作来从内存中显式删除所有模型。此功能目前处于试验阶段,我们将在以后的版本中继续对其进行改进。
概念和界面转换
我们添加了一个新的意图,可以将概念转换为界面概念,反之亦然。创建语言结构时可以使用它,并且不会更改用法。
快速定义动作
快速定义类似于IntelliJ IDEA中的对应定义。单击一个节点并按住Ctrl-Shift-I,您将弹出一个包含该节点定义的弹出窗口。在此弹出窗口中,您可以导航,选择其他节点并执行“查找”操作。这样,您无需每次想要快速浏览节点时都打开新选项卡。
快速定义也可以在完成菜单中使用。如果您不知道节点指的是什么,可以按Ctrl-Shift-I并在完成菜单旁边查看其定义。当您浏览菜单时,弹出窗口的内容将相应更改。
独立的生成器模块,每种语言有多个生成器
现在,您可以为一种语言创建多个生成器,并以一种语言托管它们(与以前的版本一样),或者将它们添加到一种语言旁边,作为常规的顶级模块。使用生成器计划可以充分利用多个生成器。为了帮助过渡,只有一个语言生成器将继续参与模型,而没有明确的生成计划。可以从语言上下文菜单中创建一个新的生成器,并且下面的对话框具有一个新的复选框,可用于使其独立。
从用法创建
现在可以根据代码中的用法创建概念,方法和类。目的在新语句,表达式中的方法以及子级/引用级角色和扩展/实现的概念和接口上创建类。
从INamedConcepts生成有效的Java标识符
新的生成器语句允许您从任何INamedConcept生成有效的Java标识符。这将通过删除非法符号,大写并在需要时添加前缀来创建唯一名称。
查找用法:编写查找程序时用于报告任意搜索结果的新语句
以前在以前的MPS版本中,查找程序上的add result语句仅允许基于节点<>的搜索结果。通过添加原始结果,语言设计者现在可以显示“查找用法”视图可以可视化的任何结果。
IntelliJ平台的新插件
设置存储库-使您可以在IDE的不同实例之间共享设置。
任务管理-允许您从问题跟踪器管理任务。
更改提醒提交
历史记录可预测您可能忘记修改的文件。
已解决的问题
构建器:控制动态参考警告
很长时间以来,MPS生成器具有“重新排序静态引用”设置,可帮助解决性能问题。 MPS生成器在尝试解析动态引用时会发出警告,但是会失败,并且因为并非所有生成器都遵循使用标签映射的严格引用构造方法(也就是说,它们坚持使用纯字符串表示形式),所以会有很多警告。确定参考目标)。
因此,我们添加了新设置来控制是否显示警告。 (“警告静态引用不能替代动态”,默认情况下处于禁用状态)。这个问题是在Generator子系统中获得最多投票的问题之一。
“重新引用静态引用”的描述:
当引用宏使用字符串作为引用目标时,MPS将创建动态引用,由于通常涉及范围构造,而不是常规的“静态”引用,因此动态解析通常更难解析。此选项意味着MPS在获得动态引用时将尝试解析其目标,如果成功,则将其替换为静态引用,从而在下次访问该引用时保留范围解析。鉴于可能存在许多步骤/中间模型,因此可能需要花费大量时间来构造范围,在这种情况下,使用“静态”引用确实会有所帮助。
JavaStubs的加载性能得到了改善
加载存根模型时,我们的性能得到了显着改善,尤其是从大量jar和高度依赖的jar中加载时。现在,我们的目标项目的加载时间加快了2到3倍(从18秒到6秒),并且这一改进也已被移植到2019.1和2019.2版本中
构建语言:显式模型根
MPS过去仅将一组特定文件视为模型,即* .mps和* .mpsr。但是,文件名对于自定义模型持久性而言是不同的。为确保在构建模块时捆绑所有必需的模型文件,构建脚本中有一个模块的显式模型根声明,可帮助自定义文件名模式。
说明文件:
新建解决方案向导的自定义持久性示例和文档已更新。修复了Math示例中文档页面上的生成时错误和断开的链接。几个对话框和工具窗口也已得到纠正。
基本语言:
现在支持二进制和八进制文字,并且可以正确处理Javadocs中的类型参数。许多其他问题也已修复。
快速修复以更新模块/模型标识对象
一些SModel语言具有一些概念,可以识别模型/模块并将节点桥接到Java。这些概念保留了目标对象的名称以及重命名目标时可能过时的名称。 MPS检测过时的名称,并提供一种快速修复程序,以使它们从SModel语言更新对象。
模块构面更新
方面长期以来,“ Java”和“测试”模块方面一直是模块不可避免的属性。使用文件系统位置要求在实现中对它们进行硬编码。我们正在努力为语言设计人员提供对模块各个方面的更好控制。因此,我们对MPS进行了更改,以显式存储这些构面及其设置。通过“测试”模块方面,语言设计人员现在可以完全自由地使用它,并且MPS不再要求该语言模块具有该方面。为了确保平稳过渡,我们仍然强迫语言模块始终保持“ Java”构面。我们将在下一版本中删除此限制。
此更改还可以通过控制模块的部署平台来帮助模块部署。
环绕声...
如果选择了多节点操作,则此操作及其周围可用。以前,仅对包含单个节点的选择启用此功能。
在“根历史记录”对话框中显示“受影响的文件”操作
对于根历史记录中的修订,现在您可以查看在同一修订中已更改的其他文件。
每个持久性模型的根历史
它在2019.2中引入时,``显示根历史记录''操作仅适用于保存在单个文件中的模型的根目录。现在支持基于持久性的模型。
最喜欢的视图更新
旧的“收藏夹”视图已过时且存在问题。我们决定完全摆脱它,并在其位置集成稳定且维护良好的IntelliJ Platform收藏夹视图。当前,我们支持模块,模型,节点和属性作为可以添加到收藏夹的条目。我们计划扩展此集成,以使“收藏夹”视图中的元素更有效,改善用户对项目的控制,并为他们提供更多访问常用项目元素的方式。
元语言风格
现在所有元语言在键盘导航,t中的占位符单元格行为方面都提供相同的样式和编辑体验
他编辑,并以“新根”出现。
另外,您可以在此处查看完整列表。
总体而言,我们对专注于调试的结果感到满意,因此我们决定更频繁地进行调试。 我们的3个版本中的每一个我们都使用一个来提高产品的稳定性,而另外两个版本则专注于功能开发。 这意味着您仍然可以期望向MPS 2020.1添加更多功能。