ReSharper 2025.2 Help

EditorConfig 属性用于 JavaScript:换行

空行

代码中的最大空行数

属性名称:

[resharper_]js_keep_blank_lines_in_code[resharper_]keep_blank_lines_in_code

可能的值:

一个整数

示例:

格式化前

格式化后,值:0

function foo() { bar(); bas(); }
function foo() { bar(); bas(); }

格式化前

格式化后,值:1

function foo() { bar(); bas(); }
function foo() { bar(); bas(); }

格式化前

格式化后,值:2

function foo() { bar(); bas(); }
function foo() { bar(); bas(); }

声明之间的最大空行数

属性名称:

[resharper_]js_keep_blank_lines_between_declarations[resharper_]keep_blank_lines_between_declarations

可能的值:

一个整数

示例:

格式化前

格式化后,值:0

class Foo { constructor() { // constructor code } Method() { // method code } }
class Foo { constructor() { // constructor code } Method() { // method code } }

格式化前

格式化后,值:1

class Foo { constructor() { // constructor code } Method() { // method code } }
class Foo { constructor() { // constructor code } Method() { // method code } }

格式化前

格式化后,值:2

class Foo { constructor() { // constructor code } Method() { // method code } }
class Foo { constructor() { // constructor code } Method() { // method code } }

import 后的最少空行数

属性名称:

[resharper_]js_min_blank_lines_after_imports[resharper_]min_blank_lines_after_imports

可能的值:

一个整数

示例:

格式化前

格式化后,值:0

import foo from 'foo'; foo();
import foo from 'foo'; foo();

格式化前

格式化后,值:1

import foo from 'foo'; foo();
import foo from 'foo'; foo();

格式化前

格式化后,值:2

import foo from 'foo'; foo();
import foo from 'foo'; foo();

函数周围的最少空行数

属性名称:

[resharper_]js_min_blank_lines_around_functions[resharper_]min_blank_lines_around_functions

可能的值:

一个整数

示例:

格式化前

格式化后,值:0

function foo() { } function bar() { }
function foo() { } function bar() { }

格式化前

格式化后,值:1

function foo() { } function bar() { }
function foo() { } function bar() { }

格式化前

格式化后,值:2

function foo() { } function bar() { }
function foo() { } function bar() { }

换行

简单嵌入式语句

属性名称:

[resharper_]js_simple_embedded_statement_style[resharper_]simple_embedded_statement_style

可能的值:

  • 不更改: 不更改

  • on_single_line: 强制放在单行

  • line_break: 强制换行

示例:

格式化前

格式化后,do_not_change

if (condition) DoSomething(); if (condition) DoSomething();
if (condition) DoSomething(); if (condition) DoSomething();

格式化前

格式化后,on_single_line

if (condition) DoSomething(); if (condition) DoSomething();
if (condition) DoSomething(); if (condition) DoSomething();

格式化前

格式化后,line_break

if (condition) DoSomething(); if (condition) DoSomething();
if (condition) DoSomething(); if (condition) DoSomething();

单语句函数

属性名称:

[resharper_]js_single_statement_function_style[resharper_]single_statement_function_style

可能的值:

  • 不更改: 不更改

  • on_single_line: 强制放在单行

  • line_break: 强制换行

示例:

格式化前

格式化后,do_not_change

foo(function(){document.writeln();}); foo(function(){ document.writeln(); }); foo(function(){document.writeln(); });
foo(function() { document.writeln(); }); foo(function() { document.writeln(); }); foo(function() { document.writeln(); });

格式化前

格式化后,on_single_line

foo(function(){document.writeln();}); foo(function(){ document.writeln(); }); foo(function(){document.writeln(); });
foo(function() { document.writeln(); }); foo(function() { document.writeln(); }); foo(function() { document.writeln(); });

格式化前

格式化后,line_break

foo(function(){document.writeln();}); foo(function(){ document.writeln(); }); foo(function(){document.writeln(); });
foo(function() { document.writeln(); }); foo(function() { document.writeln(); }); foo(function() { document.writeln(); });

特殊的 'else if' 处理

属性名称:

[resharper_]js_special_else_if_treatment[resharper_]special_else_if_treatment

可能的值:

true | false

示例:

true

if (condition) { foo(); } else if (condition) { }

false

if (condition) { foo(); } else if (condition) { }

换行与拆分

硬换行于

属性名称:

max_line_length[resharper_]js_max_line_length

可能的值:

一个整数

首选在逗号前换行

属性名称:

[resharper_]js_wrap_before_comma[resharper_]wrap_before_comma

可能的值:

true | false

示例:

格式化前

格式化后,true

method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);
method(par1 , par2 , par3 , par4 , par5 , par6 , par7 , par8 , par9 , par10);

格式化前

格式化后,false

method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);
method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);

将链式方法调用换行

属性名称:

[resharper_]js_wrap_chained_method_calls[resharper_]wrap_chained_method_calls

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

  • chop_always :始终分割

示例:

格式化前

格式化后,wrap_if_long

obj.m().m().m(); obj.method().method().method().method().method().method().method();
obj.m().m().m(); obj.method().method().method() .method().method() .method().method();

格式化前

格式化后,chop_if_long

obj.m().m().m(); obj.method().method().method().method().method().method().method();
obj.m().m().m(); obj.method() .method() .method() .method() .method() .method() .method();

格式化前

格式化后,chop_always

obj.m().m().m(); obj.method().method().method().method().method().method().method();
obj.m() .m() .m(); obj.method() .method() .method() .method() .method() .method() .method();

首选在 '.' 前换行

属性名称:

[resharper_]js_wrap_before_dot[resharper_]wrap_before_dot

可能的值:

true | false

示例:

格式化前

格式化后,true

obj.method().method().method().method().method().method().method();
obj.method().method().method() .method().method() .method().method();

格式化前

格式化后,false

obj.method().method().method().method().method().method().method();
obj.method().method(). method().method(). method().method(). method();

将链式二元表达式换行

属性名称:

[resharper_]js_wrap_chained_binary_expressions[resharper_]wrap_chained_binary_expressions

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

示例:

格式化前

格式化后,wrap_if_long

var y = a1 + a2 + a3 + a4; var x = arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8;
var y = a1 + a2 + a3 + a4; var x = arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8;

格式化前

格式化后,chop_if_long

var y = a1 + a2 + a3 + a4; var x = arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8;
var y = a1 + a2 + a3 + a4; var x = arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8;

首选在二元表达式中的运算符前换行

属性名称:

[resharper_]js_wrap_before_binary_opsign[resharper_]wrap_before_binary_opsign

可能的值:

true | false

示例:

格式化前

格式化后,true

var x = arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8;
var x = arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8;

格式化前

格式化后,false

var x = arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8;
var x = arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8;

将调用实参换行

属性名称:

[resharper_]js_wrap_arguments_style[resharper_]wrap_arguments_style

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

  • chop_always :始终分割

示例:

格式化前

格式化后,wrap_if_long

m(a,b,c,d); method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);
m(a, b, c, d); method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);

格式化前

格式化后,chop_if_long

m(a,b,c,d); method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);
m(a, b, c, d); method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);

格式化前

格式化后,chop_always

m(a,b,c,d); method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);
m(a, b, c, d); method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);

首选在调用中的 '(' 前换行

属性名称:

[resharper_]js_wrap_before_invocation_lpar[resharper_]wrap_before_invocation_lpar

可能的值:

true | false

示例:

格式化前

格式化后,true

method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);
method (par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);

格式化前

格式化后,false

method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);
method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);

首选在调用中的 '(' 后换行

属性名称:

[resharper_]js_wrap_after_invocation_lpar[resharper_]wrap_after_invocation_lpar

可能的值:

true | false

示例:

格式化前

格式化后,true

method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);
method( par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);

格式化前

格式化后,false

method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);
method(par1, par2, par3, par4, par5, par6, par7, par8, par9, par10);

将形参换行

属性名称:

[resharper_]js_wrap_parameters_style[resharper_]wrap_parameters_style

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

  • chop_always :始终分割

示例:

格式化前

格式化后,wrap_if_long

function f(a,b,c) {} function meth(par1, par2, par3, par4, par5, par6, par7, par8) {}
function f(a, b, c) {} function meth(par1, par2, par3, par4, par5, par6, par7, par8) { }

格式化前

格式化后,chop_if_long

function f(a,b,c) {} function meth(par1, par2, par3, par4, par5, par6, par7, par8) {}
function f(a, b, c) {} function meth(par1, par2, par3, par4, par5, par6, par7, par8) { }

格式化前

格式化后,chop_always

function f(a,b,c) {} function meth(par1, par2, par3, par4, par5, par6, par7, par8) {}
function f(a, b, c) { } function meth(par1, par2, par3, par4, par5, par6, par7, par8) { }

首选在声明中的 '(' 前换行

属性名称:

[resharper_]js_wrap_before_declaration_lpar[resharper_]wrap_before_declaration_lpar

可能的值:

true | false

示例:

格式化前

格式化后,true

function meth(par1, par2, par3, par4, par5, par6, par7, par8) {}
function meth (par1, par2, par3, par4, par5, par6, par7, par8) { }

格式化前

格式化后,false

function meth(par1, par2, par3, par4, par5, par6, par7, par8) {}
function meth(par1, par2, par3, par4, par5, par6, par7, par8) { }

首选在声明中的 '(' 后换行

属性名称:

[resharper_]js_wrap_after_declaration_lpar[resharper_]wrap_after_declaration_lpar

可能的值:

true | false

示例:

格式化前

格式化后,true

function meth(par1, par2, par3, par4, par5, par6, par7, par8) {}
function meth( par1, par2, par3, par4, par5, par6, par7, par8) { }

格式化前

格式化后,false

function meth(par1, par2, par3, par4, par5, par6, par7, par8) {}
function meth(par1, par2, par3, par4, par5, par6, par7, par8) { }

将对象字面量换行

属性名称:

[resharper_]js_wrap_object_literals[resharper_]wrap_object_literals

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

  • chop_always :始终分割

示例:

格式化前

格式化后,wrap_if_long

var x = { a: 1, b: 1}; var y = { field1: null, field2: null, field3: null, field4: null };
var x = { a: 1, b: 1 }; var y = { field1: null, field2: null, field3: null, field4: null };

格式化前

格式化后,chop_if_long

var x = { a: 1, b: 1}; var y = { field1: null, field2: null, field3: null, field4: null };
var x = { a: 1, b: 1 }; var y = { field1: null, field2: null, field3: null, field4: null };

格式化前

格式化后,chop_always

var x = { a: 1, b: 1}; var y = { field1: null, field2: null, field3: null, field4: null };
var x = { a: 1, b: 1 }; var y = { field1: null, field2: null, field3: null, field4: null };

将数组字面量换行

属性名称:

[resharper_]js_wrap_array_literals[resharper_]wrap_array_literals

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

  • chop_always :始终分割

示例:

格式化前

格式化后,wrap_if_long

var x = [1,2,3,4]; var y = [elem1, elem2, elem3, elem4, elem5, elem6, elem7, elem8, elem9];
var x = [1, 2, 3, 4]; var y = [elem1, elem2, elem3, elem4, elem5, elem6, elem7, elem8, elem9];

格式化前

格式化后,chop_if_long

var x = [1,2,3,4]; var y = [elem1, elem2, elem3, elem4, elem5, elem6, elem7, elem8, elem9];
var x = [1, 2, 3, 4]; var y = [ elem1, elem2, elem3, elem4, elem5, elem6, elem7, elem8, elem9 ];

格式化前

格式化后,chop_always

var x = [1,2,3,4]; var y = [elem1, elem2, elem3, elem4, elem5, elem6, elem7, elem8, elem9];
var x = [ 1, 2, 3, 4 ]; var y = [ elem1, elem2, elem3, elem4, elem5, elem6, elem7, elem8, elem9 ];

将 import 声明换行

属性名称:

[resharper_]js_wrap_imports[resharper_]wrap_imports

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

  • chop_always :始终分割

示例:

格式化前

格式化后,wrap_if_long

import { Component, EventEmitter, OnInit, Output, Input } from '@angular/core'; import { OnInit, Input } from '@angular/core';
import { Component, EventEmitter, OnInit, Output, Input } from '@angular/core'; import { OnInit, Input } from '@angular/core';

格式化前

格式化后,chop_if_long

import { Component, EventEmitter, OnInit, Output, Input } from '@angular/core'; import { OnInit, Input } from '@angular/core';
import { Component, EventEmitter, OnInit, Output, Input } from '@angular/core'; import { OnInit, Input } from '@angular/core';

格式化前

格式化后,chop_always

import { Component, EventEmitter, OnInit, Output, Input } from '@angular/core'; import { OnInit, Input } from '@angular/core';
import { Component, EventEmitter, OnInit, Output, Input } from '@angular/core'; import { OnInit, Input } from '@angular/core';

换行 'for' 语句头

属性名称:

[resharper_]js_wrap_for_stmt_header_style[resharper_]wrap_for_stmt_header_style

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

  • chop_always :始终分割

示例:

格式化前

格式化后,wrap_if_long

for (a = 1; a < 5; a ++); for (myVar = 0; myVar < 5; myVar ++);
for (a = 1; a < 5; a ++); for (myVar = 0; myVar < 5; myVar ++);

格式化前

格式化后,chop_if_long

for (a = 1; a < 5; a ++); for (myVar = 0; myVar < 5; myVar ++);
for (a = 1; a < 5; a ++); for (myVar = 0; myVar < 5; myVar ++);

格式化前

格式化后,chop_always

for (a = 1; a < 5; a ++); for (myVar = 0; myVar < 5; myVar ++);
for (a = 1; a < 5; a ++); for (myVar = 0; myVar < 5; myVar ++);

将三元表达式换行

属性名称:

[resharper_]js_wrap_ternary_expr_style[resharper_]wrap_ternary_expr_style

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

  • chop_always :始终分割

示例:

格式化前

格式化后,wrap_if_long

var x = a ? b : c; var y = myObj === null ? myObj.getValue() : null;
var x = a ? b : c; var y = myObj === null ? myObj.getValue() : null;

格式化前

格式化后,chop_if_long

var x = a ? b : c; var y = myObj === null ? myObj.getValue() : null;
var x = a ? b : c; var y = myObj === null ? myObj.getValue() : null;

格式化前

格式化后,chop_always

var x = a ? b : c; var y = myObj === null ? myObj.getValue() : null;
var x = a ? b : c; var y = myObj === null ? myObj.getValue() : null;

首选在三元表达式中的 '?' 和 ':' 前换行

属性名称:

[resharper_]js_wrap_before_ternary_opsigns[resharper_]wrap_before_ternary_opsigns

可能的值:

true | false

示例:

格式化前

格式化后,true

var y = myObj === null ? myObj.getValue() : null;
var y = myObj === null ? myObj.getValue() : null;

格式化前

格式化后,false

var y = myObj === null ? myObj.getValue() : null;
var y = myObj === null ? myObj.getValue() : null;

将多个声明换行

属性名称:

[resharper_]js_wrap_multiple_declaration_style[resharper_]wrap_multiple_declaration_style

可能的值:

  • wrap_if_long :简单换行

  • chop_if_long :如果过长或多行则分割

  • chop_always :始终分割

示例:

格式化前

格式化后,wrap_if_long

var a, b, c; var left = 100, top = 100, width = calcWidth(), height = calcHeight();
var a, b, c; var left = 100, top = 100, width = calcWidth(), height = calcHeight();

格式化前

格式化后,chop_if_long

var a, b, c; var left = 100, top = 100, width = calcWidth(), height = calcHeight();
var a, b, c; var left = 100, top = 100, width = calcWidth(), height = calcHeight();

格式化前

格式化后,chop_always

var a, b, c; var left = 100, top = 100, width = calcWidth(), height = calcHeight();
var a, b, c; var left = 100, top = 100, width = calcWidth(), height = calcHeight();

放置在新行上

将 'else' 置于新行中

属性名称:

[resharper_]js_new_line_before_else[resharper_]new_line_before_else

可能的值:

true | false

示例:

true

if (condition) { foo(); } else { foo(); }

false

if (condition) { foo(); } else { foo(); }

将 'while' 置于新行中

属性名称:

[resharper_]js_new_line_before_while[resharper_]new_line_before_while

可能的值:

true | false

示例:

true

do { foo(); } while (condition);

false

do { foo(); } while (condition);

将 'catch' 置于新行中

属性名称:

[resharper_]js_new_line_before_catch[resharper_]new_line_before_catch

可能的值:

true | false

示例:

true

try { foo(); } catch (e) { foo(); } finally { }

false

try { foo(); } catch (e) { foo(); } finally { }

将 'finally' 置于新行中

属性名称:

[resharper_]js_new_line_before_finally[resharper_]new_line_before_finally

可能的值:

true | false

示例:

true

try { foo(); } catch (e) { foo(); } finally { }

false

try { foo(); } catch (e) { foo(); } finally { }

将模板字面量实参置于新行中

属性名称:

[resharper_]js_place_template_args_on_new_line[resharper_]place_template_args_on_new_line

可能的值:

true | false

示例:

true

var q = `a: ${ a + b }, b: ${ b + a }`;

false

var q = `a: ${a + b}, b: ${b + a}`;
最后修改日期: 2025年 9月 27日