我使用Brackets Beautify扩展程序,并在美化我的代码时遇到问题。
我们说我有这段代码:
function test(arg1, arg2)
{
var a = arg1 + arg2;
return a;
}
var object =
{
"some" : 123,
"some2" : 13123
}
当我点击Ctrl + Alt + B以美化我的代码时,上面的函数将如下所示:
function test(arg1, arg2) {
var a = arg1 + arg2;
return a;
}
var object = {
"some": 123,
"some2": 13123
}
但我希望它看起来像第一个(花括号在新行中),因为它对我来说更具可读性。
我尝试寻找解决方案,但没有成功。
BTW,我正在谈论JavaScript。 PHP代码没问题。
有什么想法吗?
对于任何英语错误,我很抱歉,我不是母语人士。
编辑:找到了部分解决方案。我改变了#strong; brace_style "到" 展开" in" default.jsbeautifyrc "文件(在" .jsbeautifyrc "文件中执行此操作时,它无法正常工作。)
无论如何,它仍然不适用于数组和对象。
编辑2:注意到它也发生在CSS代码中。
答案 0 :(得分:1)
我一直在遇到同样的情况。
我在本地调整了我的css美化代码以解决它。
它位于扩展程序安装目录的第三方文件夹中的 beautify-css.js 文件。
在我的小学操作系统上,它在这里:
~/.config/Brackets/extensions/user/brackets-beautify-2.4.0/thirdparty/beautify-css.js
更改代码行,重新加载Brackets,并完成。
以下是我的调整(基于括号 - 美化-2.4.0):
前两个是印刷[" {"]方法。该功能变为:
print["{"] = function(ch) {
print.newLine(); //instead of print.singleSpace();
indent();//since indent removed at 383
output.push(ch);
print.newLine();
};
此更改包括:
l 255 print.singleSpace();
变为print.newLine();
l 256成为新行并包含indent();
然后转到第383行并对其进行评论。
indent();
已删除为CSS添加一个真正的大括号样式选项将是一个更优雅的解决方案。
这旨在帮助任何寻求快速解决方案的人使其在本地运作。
答案 1 :(得分:0)
使用具有以下内容的.jsbeautifyrc
可以获得JS所需的大括号位置:
{
"js": {
"brace_style": "expand"
}
}
对于CSS,底层库(尚未)支持此选项。
配置文件应位于项目的根文件夹中(在Brackets中打开的文件夹)。这样你就可以将它检查到版本控制中,这样每个贡献者都有相同的格式设置。
如果您想全局使用相同的设置,可以更改扩展程序文件夹中的default.jsbeautifyrc
文件,但会在更新时恢复。
答案 2 :(得分:0)
在阅读@redpanda的答案后,我尝试自己更改代码。
我更改了beautify-css.js
文件中的一些行,该文件位于C:\Users\userName\AppData\Roaming\Brackets\extensions\user\brackets-beautify\thirdparty
目录中的窗口中。
这是我的解决方案:
转到463
文件中的第beautify-css.js
行,然后将其更改为:
indent();
output.space_before_token = true;
print_string(ch);
if (!eatWhitespace(true)) {
output.add_new_line();
}
对此:
//indent(); // removed, we will indent later
output.space_before_token = true;
output.add_new_line(); // added, in order to add new line before '{'
print_string(ch);
if (!eatWhitespace(true))
{
output.add_new_line();
}
indent(); //added, in order to indent, since we removed it before
当然这是一个临时解决方案,我希望能添加真正的大括号选项。
答案 3 :(得分:0)
找到了CSS的解决方案(美化版本2.10.0)
文件beautify-css.js(路径:〜\ AppData \ Roaming \ Brackets \ extensions \ user \ brackets-beautify \ thirdparty)
第〜1411行
找到“否则,如果(this._ch ==='#'&& this._input.peek()==='{')”
示例代码
} else if (this._ch === '#' && this._input.peek() === '{') {
this.preserveSingleSpace(isAfterSpace);
this.print_string(this._ch + this.eatString('}'));
} else if (this._ch === '{') {
if (insidePropertyValue) {
//this._output.add_new_line();
insidePropertyValue = false;
this.outdent();
}
this.indent();
this.__add_space_before_token();
//this._output.space_before_token = true;
this.print_string(this._ch);
更改为
} else if (this._ch === '#' && this._input.peek() === '{') {
this.preserveSingleSpace(isAfterSpace);
this.print_string(this._ch + this.eatString('}'));
} else if (this._ch === '{') {
if (insidePropertyValue) {
insidePropertyValue = false;
this.outdent();
}
this.print_string('\n'); // this line has been changed
this.outdent(); // this line has been changed
this.print_string(this._ch);
this.indent(); // this line has been changed