Javascript 如何使Webstorm在重新格式化期间保持多行字符串文本的缩进

Javascript 如何使Webstorm在重新格式化期间保持多行字符串文本的缩进,javascript,webstorm,Javascript,Webstorm,在为angularjs创建指令时,我经常将模板作为字符串文本保存。有时模板跨越几行,因此我会像缩进html文件那样缩进它们,以提高可读性 下面是一个非常简单的例子 template: '<div>' + '<div>' + '<input ngModel="myText" type"text">' + '</div>' + '&l

在为angularjs创建指令时,我经常将模板作为字符串文本保存。有时模板跨越几行,因此我会像缩进html文件那样缩进它们,以提高可读性

下面是一个非常简单的例子

template: '<div>' +
              '<div>' +
                  '<input ngModel="myText" type"text">' +
              '</div>' +
              '<div>' +
                  '<button ng-click="ok()">OK</button>' +
               '</div>' +
           '</div>',
模板:“”+
'' +
'' +
'' +
'' +
“好的”+
'' +
'',
不幸的是,每当我重新格式化代码时,Webstorm都会删除所有手工制作的缩进,因此模板将如下所示:

template: '<div>' +
'<div>' +
'<input ngModel="myText" type"text">' +
'</div>' +
'<div>' +
'<button ng-click="ok()">OK</button>' +
'</div>' +
'</div>',
模板:“”+
'' +
'' +
'' +
'' +
“好的”+
'' +
'',

是否有某种设置或其他技巧使Webstorm在重新格式化期间保持多行字符串文字的相对缩进?谢谢。

您可以在首选项|编辑器|代码样式中启用特殊的格式化程序控件注释,然后在代码中使用它们来防止WebStorm对其重新格式化:

// @formatter:off
    template: '<div>' +
              '<div>' +
                  '<input ngModel="myText" type"text">' +
              '</div>' +
              '<div>' +
                  '<button ng-click="ok()">OK</button>' +
               '</div>' +
           '</div>',
// @formatter:on
/@格式化程序:关闭
模板:“”+
'' +
'' +
'' +
'' +
“好的”+
'' +
'',
//@formatter:on

为什么不在字符串中添加空格?您有一个语法错误:
'',+
@iso谢谢,修复了它。@jornshape在字符串中添加缩进将是实现这一点的一种方法,但这会不必要地使代码膨胀(我不认为缩进器可以处理此问题)。所以这恐怕不是我的选择。只是想知道,为什么不放在HTML文件中呢?谢谢,非常有用的答案。