我觉得代码编辑器实现的几个关键问题:
1 如何实现,我在输入时,匹配上的字如何自动显示为指定的颜色
2 匹配算法怎样才有效率
3 读入一段文字是怎样找到中间的关键词,并使其颜色改变。
基于行的关键字搜索,可以考虑不要用 TEdit 继承下来的控件,如 TMemo,RichEdit 可以考虑,关键是要知道 RTF 文件格式,但 RTF 是基于富文本的(非纯文本),如果处理了颜色的话,真正的ASCII 文本就要特别处理了,所以我觉得最好是从 TCustomControl 继承下来自己画,包括文本颜色的处理和显示。
关于算法效率,我觉得应该采用部分显示的技术,就是指仅仅对显示给用户的部分文本进行颜色处理,如果通篇事先处理的话会很慢。
可以看看 SynEdit 这个控件,免费的,带源码,看看他是怎么实现的最好的是用第三方控件了,如果你要自己做,最好是用TRichEdit,因为颜色字体可以改变,并且比较简单的文件就是RTF文件, Windows本身又支持,而RichEdit又支持RTF文件,所以最好的解决办法是采用RTF,只要搞定RTF的文件格式就可以了,并且兼容性也很好
希望对您有所启发。
这个一般统称代码高亮显示,和咋们一般使用的VS中代码高亮显示原理是一样的。针对TinyMCE编辑器,他支持Plugins,所以自己可以扩展代码高亮显示模块。
针对于代码高亮显示程序,现在用的比较多的是SyntaxHighlighter,这个也似开源的,可以把该组件作为TinyMCE的插件来使用,博客园也应该是类似这样子做的。
另外在TinyMCE3.x版本下,目前有一个syntaxhl,你可以下载来,然后按照说明加入相应的文件并在TinyMCE编辑器初始化项中加入相应的代码插入链接或者button即可。
这个可以参考:
http://space.cnblogs.com/question/9314/
博客园的代码插入是采用SyntaxHighlighter,这个是开源的TinyCME插件。
你需要作一些设置,可以参考这个页面
http://www.cnblogs.com/InsertCodeForCuteEditor.aspx?id=1
用该插件对应的代码,比如来返回插入的html代码到主页面。
类似于
<script language="javascript">
function InsertToEditor(codestr) {
window.opener.BlogInsertHtml(codestr);
window.close();
}
</script>
更多信息,请搜索
http://www.google.cn/search?hl=zh-CN&newwindow=1&domains=cnblogs.com&sitesearch=cnblogs.com&ie=GB2312&oe=GB2312&q=tinymce+%B4%FA%C2%EB%B8%DF%C1%C1&btnG=Google+%CB%D1%CB%F7
你好,能否帮我解释一下具体是如何在这个插件中添加ObjectC语言这一选项的?这个插件本身不支持这一语言
使用现有的相关代码插件是最方便的
如何做到在编辑器里面也显示高亮的样式还可以编辑,求详细加入高亮插件步骤
我建议是使用国产的ueditor,百度弄的,里面集成了代码高亮