让Fireball CodeEditor控件支持中文
Fireball.CodeEditor是个很强大的编辑器。实话说,就一个编辑器,附加那么多DLL,有些不合算,呵呵。
语法文件内置,编译的时候已经提供了大量的语法文件,是全部编辑器里面内置最多的一个编辑器。可以使用DLL文件对语法进行扩充。提供设置界面对语法高亮进行设置,只是界面不咋滴,呵呵,过于简单了一些。提供传说中的无限级别的redo功能,这个功能的确是编辑器不可或缺的。提供find和 replace功能。中文支持不是差劲的问题,是非常非常差劲。一旦输入中文就会出现光标位置不对,@_@.
代码折叠存在问题,没有办法折叠注释块。正常的代码折叠,我测试了一下C#和Java没有问题,但是XML折叠存在问题,只能折叠CDATA,有点不可思议。
折叠的方式比较漂亮,和VS的风格一致
有意思的是,这个编辑器组件对在注释中的东东也进行了语法高亮、括号匹配,不知道是错误还是就是如此,哈哈。
致命伤:输入中文的时候出现错误,例如你输入"测试",在编辑器里面会出现"测试测试",任何中文字符都是如此,如果使用Copy则不会出现这样的问题。在输入中文的时候redo也存在问题,原本输入两个汉字变成4个汉字,但是redo的时候却需要redo 4次。打开中文文件时大多会出现乱码。:)。
//解决重复输入问题: //CodeEditor\Editors\EditView\EditViewControl.cs protected override void OnKeyPress(KeyPressEventArgs e) {base.OnKeyPress(e);if (!e.Handled && !_KeyDownHandled && e.KeyChar != (char)127){if (((int)e.KeyChar) < 32)return;if (!this.ReadOnly){switch ((Keys)(int)e.KeyChar){default:{InsertText(e.KeyChar.ToString());if (this.Indent == IndentStyle.Scope || this.Indent == IndentStyle.Smart){if (Caret.CurrentRow.ShouldOutdent){OutdentEndRow();}}//增加本行,如果不增加则输入中文的时候会重复输入一次,寒 e.Handled = true;break;}}}}if (AutoListVisible && !e.Handled && _CodeEditor.AutoListAutoSelect){string s = Caret.CurrentRow.Text;//try //{ if (Caret.Position.X - AutoListStartPos.X >= 0){s = s.Substring(AutoListStartPos.X, Caret.Position.X - AutoListStartPos.X);AutoList.SelectItem(s);}//} //catch //{ //} } } /************************************************************/ //解决打开文件出现乱码的问题: //CodeEditor\Editors\CodeEditorControl.cs public void Open(string filename) {if (this.Document == null)throw new NullReferenceException("CodeEditorControl.Document");//添加System.Text.Encoding.Default,否则中文显示为乱码StreamReader swr = new StreamReader(filename, System.Text.Encoding.Default);this.Document.Text = swr.ReadToEnd();swr.Close();SetFileName(filename);this.Saved = true; }
转载于:https://www.cnblogs.com/flying19880517/archive/2009/05/29/MakeFireballCodeEditorSupportChinese.html
让Fireball CodeEditor控件支持中文相关推荐
- ActiveReports 报表控件官方中文新手教程 (1)-安装、激活以及产品资源
本系列文章主要是面向初次接触 ActiveReports 产品的用户,能够帮助您在三天之内轻松的掌握ActiveReports控件的基本用法,包含安装.激活.创建报表.绑定数据源以及公布等内容. ...
- 在 Wi ndows,MSComm控件在中文Wi的ndows下的通信问题与处理方法.doc
MSComm控件在中文Wi的ndows下的通信问题与处理方法 MSComm控件在中文Windows下的通信问题与处理方法 摘 要VB 5.0/6.0的MSComm通信控件提供了一系列标准通信命令的接口 ...
- ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布
ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 原文:ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 本篇文章将阐述 ...
- QRowTable表格控件-支持hover整行、checked整行、指定列排序等
文章目录 一.开心一刻 二.嘴一嘴 三.效果展示 四.浅谈实现 五.自定义数据源 1.data函数 2.flags函数 六.自定义视图 1.目的 2.问题分析 七.测试 八.相关文章 原文链接: QR ...
- 【新版发布】ComponentOne 新增 .NET 6 和 Blazor 平台控件支持
ComponentOne Enterprise是葡萄城推出的一款内置 300 多种开发控件的 .NET控件集,可满足 WinForm.WPF.Blazor.ASP.NET MVC 等平台下的系统开发需 ...
- ASP.NET Calendar 控件在中文服务器上显示为英文星期的处理
同样的一个软件,部署在十几台服务器上,不同的客户来使用,其中一个使用了Calendar控件的页面,在大多数客户的计算机上都显示为中文,但是有个别服务器输出到客户端显示为英文.检查并修改了IE浏览器的语 ...
- 自定义控件的子控件支持设计模式
http://www.codeproject.com/Articles/37830/Designing-Nested-Controls 假如一个复合控件由一个ToolStript和一个TextBox组 ...
- CalendarExtender控件的中文显示问题
在Ajax Control Toolkit控件包中,发现CalendarExtender日历控件,只要把控件拖入就能够使TextBox弹出日期选择. 可显示的都是英文. 解决方案: 在<asp: ...
- iOS- 非整星的评分控件(支持小数)
概述 订单评论里实现星级评分控件: 简单整星评价与非整星的精评价. 详细 代码下载:http://www.demodashi.com/demo/10711.html 现在很多应用都有评分功能. 有了订 ...
- 一个非常好用的JS日历控件(支持.NET)
今天把一个非常好用的日历控件和大家分享一下,在平时输入日期的时候,往往我们需要达到一个更好的用户体验效果,使用日历控件是一个最佳的选择,这个日历控件非常的美观,是基于js方式的日历控件,而且调用非常的 ...
最新文章
- java fx配置_JavaFX系列-配置开发环境
- 重建控制文件具体解释
- git的团队协作开发
- HTML-参考手册: HTTP 方法:GET 对比 POST
- 开发Java系统程序员要注意的基本知识
- 【c++版数据结构】之循环单链表的实现(带头结点以及尾节点)
- 使用sphinx为python注释生成docAPI文档
- 小程序动态设置style,使用内部数据
- pytorch:Logistic回归
- 用ModSecurity+PhantomJS进行服务器端XSS攻击检测
- [深度学习] 自然语言处理---Transformer实现(二)
- SaltStack源码分析之:master端执行salt模块大致流程
- ise的时钟ip核_Vivado CIC IP核滤波器详解(一)
- TensorFlow第五步:返回起点、深挖坑,解刨一个麻雀。
- Asp.NET Demo
- WebLogic—发布Web项目
- Atheros QCA8337交换芯片驱动开发
- cad计算机快捷键设置,2014年CAD计算机快捷键
- 计算机网络-域名与IP地址详解
- Android Studio修改主题设置主题背景图片