在Ace编辑器中隐藏行



我想知道是否可以在Ace编辑器中隐藏行?

基本上,我想在编辑器中放一个预代码,但我不想让用户看到它

这是我的代码,我想在编辑器中隐藏前5行:

<!DOCTYPE html>
<html lang="en">
<head>
<title>ACE</title>
<style type="text/css" media="screen">
#editor {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
</style>
</head>
<body>
<div id="editor"></div>
<!-- load ace -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ace.js" type="text/javascript"
charset="utf-8"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/theme-dracula.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ext-language_tools.min.js" type="text/javascript"
charset="utf-8"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/keybinding-emacs.min.js" type="text/javascript"
charset="utf-8"></script>
<script>
ace.require("ace/ext/language_tools");
ace.require("ace/keyboard/emacs");
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
self.editor.setOptions({
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true,
fontSize: "11pt",
spellCheck: true,
wrap: false
})
editor.session.setMode("ace/mode/javascript");
let precode = `var myObject = {
field1:{
name:'field A'
}
}
console.log(myObject.field1.name);
`;
editor.setValue(precode)
</script>
</body>
</html>

我已经检查了这个解决方案,但它不起作用

不确定它是否仍然是实际的。我使用这个函数将<entryType>...</entryType>替换为空字符串,这个函数在编辑器创建后立即调用:

function highlightEntriesTypes() {
let editor = ace.edit("editor")
let needle = /(^s*<entryType>)(.*)(</entryType>s*)/
editor.$search.setOptions({
needle: needle,
caseSensitive: true,
wholeWord: false,
regExp: true,
});
let range = editor.$search.findAll(editor.session)


for (const rangeKey in range) {
editor.session.replace(range[rangeKey], "Custom content or empty string")
}
}

最新更新