如何将自定义片段保存到现有的ace片段文件中

时间:2019-07-17 04:50:33

标签: angular code-snippets ace-editor

我们开发了一个应用程序,用于编辑ace编辑器中每种模式下可用的代码片段。我们在Angular 6中使用ng2-ace-editor。每种语言模式的代码段文件都保存在ace库中。我们需要编辑每个代码段,并且用户必须能够将其代码段保存到同一文件中。我们已经完成了代码段的编辑并注册了新添加的代码段,因此用户可以在编辑器上实时添加新添加的代码段。但是,当页面重新加载时,它将丢失。我们需要将代码段保存到ace库中已经存在的文件中,因为它以不同的格式保存,并带有一些“ \ n tab”字符。使用SnippetManager对其进行解析后,便可以对其进行编辑。但是我们找不到任何文档,无法使用我们新添加的代码片段将其恢复为旧格式。

//snippet manager is included for managing snippets
var snippetManager =  ace.acequire('ace/snippets').snippetManager;
// getting existing snippet array (free from special characters, \n etc)
var m = snippetManager.files[this.editor._editor.session.$mode.$id];
m.snippetText = this.snippettext;
// unregister already esisting snippets
snippetManager.unregister(m.snippets);
m.snippets = snippetManager.parseSnippetFile(m.snippetText, m.scope);
// register newly added snippets along with old snippets
snippetManager.register(m.snippets,'tex');

此后,我需要将这些已注册的代码段以要求格式保存到现有文件中。

0 个答案:

没有答案