2016-12-25 22 views
1

我使用Android Studio 2.2.2。我有这样的代码:在Android Studio中砍下链式方法调用

new StringBuilder ().append ("<script type='text/x-mathjax-config'>").append ("MathJax.Hub.Config({ ").append ("showMathMenu: false, ").append ("jax: ['input/TeX','output/HTML-CSS'], ").append ("extensions: ['tex2jax.js','toMathML.js'], ").append ("TeX: { extensions: ['AMSmath.js','AMSsymbols.js',").append ("'noErrors.js','noUndefined.js'] }, ").append ("});</script>").append ("<script type='text/javascript' ").append ("src='file:///android_asset/MathJax/MathJax.js'").append ("></script>").append ("<span id='math'></span><pre><span id='mmlout'></span></pre>").toString () 

正如你所看到的,它很长,并代表一行。有没有办法将其转换为这样的:

new StringBuilder () 
.append ("<script type='text/x-mathjax-config'>") 
.append ("MathJax.Hub.Config({ ") 
.append ("showMathMenu: false, ") 
.append ("jax: ['input/TeX','output/HTML-CSS'], ") 
.append ("extensions: ['tex2jax.js','toMathML.js'], ") 
.append ("TeX: { extensions: ['AMSmath.js','AMSsymbols.js',") 
.append ("'noErrors.js','noUndefined.js'] }, ") 
.append ("});</script>") 
.append ("<script type='text/javascript' ") 
.append ("src='file:///android_asset/MathJax/MathJax.js'") 
.append ("></script>") 
.append ("<span id='math'></span><pre><span id='mmlout'></span></pre>") 
.toString () 

在每一行上面开始与.append(),并只包括其中之一。这更可读。

注:

  1. 上面的代码是一个例子,这样的表现是不是在这里importatnt。
  2. 我知道我可以去Settings > Editor > General并选择Use soft wrap in editorUse original line's indent for wrapped parts,但导致一些这样的事,这是不可读:

enter image description here

+0

你不能使用StringBuilder,而是使用Freemarker或HTML模板 –

+0

@ cricket_007看起来你建议使用'template engines'。但我想在'Android Studio'中找到一种方法(例如'code reformatting')来为我做这件事。 – hasanghaforian

+1

编辑器 - 代码样式 - Java - 链式方法调用。选择“如果长时间砍倒”和“多行对齐”。或者使用kotlin和它的多行字符串:-)但是你不应该在这里首先使用StringBuilder。只需使用'+'连接字符串的各个部分即可。奖励:连接将发生在编译时而不是运行时。 –

回答

1

编辑器 - 代码样式 - 爪哇 - 链式方法调用。选择“如果长时间砍倒”和“多行对齐”。或者使用kotlin和它的多行字符串:-)

但是你不应该在这里首先使用StringBuilder。只需使用+来连接字符串的各个部分。奖励:连接将发生在编译时而不是运行时。

相关问题