gpt4 book ai didi

javascript - ACE 编辑器 - CSS 美化

转载 作者:行者123 更新时间:2023-11-28 05:54:18 27 4
gpt4 key购买 nike

我目前正在实现 ace作为多种编程语言的编辑器。我真的很想实现一个美化功能,目前我使用这种方法:

var beautify = ace.require("ace/ext/beautify"); // get reference to extension
var editor = ace.edit("editor"); // get reference to editor
beautify.beautify(editor.session);

More info

遗憾的是,这并不能正确格式化 CSS。示例:

.class1 .subClass { color: red; }

通过所描述的代码进行美化,将其更改为

.class1.subClass{
color:red;
}

如您所见,选择器中的所有空格均已删除,这会更改规则的目标。

我的代码有问题吗? ace 中是否有替代的 CSS 美化器?

作为后备措施,我会删除不是理想解决方案的功能。

TL;DR

ace有没有可以正确美化CSS的插件/扩展?难道我做错了什么?

最佳答案

好吧,我找到了一个不错的css beautifier我将其添加到我的解决方案中。

这就是魔法:

container.querySelector('.editor_beautify').addEventListener('click', function () {
var currentMode = editor.session.$modeId.substr(editor.session.$modeId.lastIndexOf('/') + 1);
switch (currentMode) {
case modes.css:
util.formatCss(editor, configuration.scriptBase);
break;
default:
util.ensureScript(configuration.scriptBase + 'ext-beautify.js', function () {
var beautify = ace.require("ace/ext/beautify").beautify(editor.session);
});
}
});
<小时/>
formatCss: function (editorAce, scriptBase) {
var unformatted = editorAce.getValue();
if (unformatted.trim().length > 0) {
util.ensureScript(scriptBase + 'cssbeautify.js', function () {
editorAce.getSession().setUseWrapMode(false);
var formatted = cssbeautify(unformatted, {
indent: ' ',
openbrace: 'end-of-line',
autosemicolon: true
});

editorAce.setValue(formatted);
editorAce.getSession().setUseWrapMode(true);
});
}
}

关于javascript - ACE 编辑器 - CSS 美化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37831801/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com