让DSM的“文本编辑器”支持更多文件扩展名
DSM的套件“文本编辑器”TextEditor虽然简单,也算是在DSM上编辑文件的多面手了,TextEditor实际上是第三方产品ACE的包装,支持非常多的文本文件格式,大部分的源码和配置文件都能支持,还通过模式及主题支持这些文件的高亮显示和编辑,虽然比不上专业的IDE,但是在DSM上简单编辑几个文件也没必要打开本地的IDE或者切换到Shell中使用vim。安装“文本编辑器”套件后,除了可以在TextEditor中直接打开文件,还支持在File Station的上下文菜单中使用文本编辑器直接打开个编辑文件,还是比较方便的。
但是Synology并没有提供TextEditor对文件扩展名的配置功能,导致有些特殊的文本文件在File Station中无法直接打开,即便是TextEditor中也必须在选择文件时切换到“所有文件”选项才能打开,例如mysql配置文件的扩展名cnf,而且这种打开方式默认的是普通文本模式,不支持代码格式,必须手工切换到ini模式。另外Synology配置也有些问题,常用的conf文件配置为普通文本模式,体验不好。
在google和synology的论坛上搜索了一圈没有找到这些问题的解决方案,于是自己动手,经过一番摸索,找到TextEditor可以打开的文件的扩展名在/volume1/@appstore/TextEditor/ui/TextEditor.js中定义,可以修改TextEditor.js以使TextEditor能够打开特定的扩展文件,或修改已支持的文件扩展名的打开模式。修改后,“用文本编辑器打开”项将显示在具有此扩展名的File Station的上下文菜单中。 此扩展名的文件也无需切换到“所有文件”选项即可直接显示在TextEditor的打开文件选择器中。
所有支持的文件扩展名和模式之间的映射关系存储在TextFileExtensions的json对象中。通过Shell下使用vim打开TextEditor.js,搜索“TextFileExtensions”,然后添加 cnf:"ini" 成员或修改 conf:"plain_text"为 conf:"ini" 就能解决我上面那些问题了。
说明:
1.摸索时发现ACE官方的/volume1/@appstore/TextEditor/ui/js/third-party/ace/ext_modelist.js文件中,将常用的conf文件配置为ini模式,但是TextEditor没使用这些配置,而是在TextEditor.js中重新定义了这些配置;
2.Shell中的操作及vim的编辑不在本文中讲解,请自行学习;
3.如果套件没有安装在volume1,请自行找到具体的位置;
4.如果浏览器已经打开DSM,那么TextEditor.js不会重载,必须关闭浏览器页签重新访问DSM才能生效;
5.如有升级套件,可能须重新修改TextEditor.js;
6.习惯性分享不加锁,需要的请自取。
感谢分享! 非常实用!{:7_204:}
感谢分享! 感谢分享! 感谢分享!
页:
[1]