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控件支持中文相关推荐

  1. ActiveReports 报表控件官方中文新手教程 (1)-安装、激活以及产品资源

     本系列文章主要是面向初次接触 ActiveReports 产品的用户,能够帮助您在三天之内轻松的掌握ActiveReports控件的基本用法,包含安装.激活.创建报表.绑定数据源以及公布等内容. ...

  2. 在 Wi ndows,MSComm控件在中文Wi的ndows下的通信问题与处理方法.doc

    MSComm控件在中文Wi的ndows下的通信问题与处理方法 MSComm控件在中文Windows下的通信问题与处理方法 摘 要VB 5.0/6.0的MSComm通信控件提供了一系列标准通信命令的接口 ...

  3. ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布

    ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 原文:ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 本篇文章将阐述 ...

  4. QRowTable表格控件-支持hover整行、checked整行、指定列排序等

    文章目录 一.开心一刻 二.嘴一嘴 三.效果展示 四.浅谈实现 五.自定义数据源 1.data函数 2.flags函数 六.自定义视图 1.目的 2.问题分析 七.测试 八.相关文章 原文链接: QR ...

  5. 【新版发布】ComponentOne 新增 .NET 6 和 Blazor 平台控件支持

    ComponentOne Enterprise是葡萄城推出的一款内置 300 多种开发控件的 .NET控件集,可满足 WinForm.WPF.Blazor.ASP.NET MVC 等平台下的系统开发需 ...

  6. ASP.NET Calendar 控件在中文服务器上显示为英文星期的处理

    同样的一个软件,部署在十几台服务器上,不同的客户来使用,其中一个使用了Calendar控件的页面,在大多数客户的计算机上都显示为中文,但是有个别服务器输出到客户端显示为英文.检查并修改了IE浏览器的语 ...

  7. 自定义控件的子控件支持设计模式

    http://www.codeproject.com/Articles/37830/Designing-Nested-Controls 假如一个复合控件由一个ToolStript和一个TextBox组 ...

  8. CalendarExtender控件的中文显示问题

    在Ajax Control Toolkit控件包中,发现CalendarExtender日历控件,只要把控件拖入就能够使TextBox弹出日期选择. 可显示的都是英文. 解决方案: 在<asp: ...

  9. iOS- 非整星的评分控件(支持小数)

    概述 订单评论里实现星级评分控件: 简单整星评价与非整星的精评价. 详细 代码下载:http://www.demodashi.com/demo/10711.html 现在很多应用都有评分功能. 有了订 ...

  10. 一个非常好用的JS日历控件(支持.NET)

    今天把一个非常好用的日历控件和大家分享一下,在平时输入日期的时候,往往我们需要达到一个更好的用户体验效果,使用日历控件是一个最佳的选择,这个日历控件非常的美观,是基于js方式的日历控件,而且调用非常的 ...

最新文章

  1. java fx配置_JavaFX系列-配置开发环境
  2. 重建控制文件具体解释
  3. git的团队协作开发
  4. HTML-参考手册: HTTP 方法:GET 对比 POST
  5. 开发Java系统程序员要注意的基本知识
  6. 【c++版数据结构】之循环单链表的实现(带头结点以及尾节点)
  7. 使用sphinx为python注释生成docAPI文档
  8. 小程序动态设置style,使用内部数据
  9. pytorch:Logistic回归
  10. 用ModSecurity+PhantomJS进行服务器端XSS攻击检测
  11. [深度学习] 自然语言处理---Transformer实现(二)
  12. SaltStack源码分析之:master端执行salt模块大致流程
  13. ise的时钟ip核_Vivado CIC IP核滤波器详解(一)
  14. TensorFlow第五步:返回起点、深挖坑,解刨一个麻雀。
  15. Asp.NET Demo
  16. WebLogic—发布Web项目
  17. Atheros QCA8337交换芯片驱动开发
  18. cad计算机快捷键设置,2014年CAD计算机快捷键
  19. 计算机网络-域名与IP地址详解
  20. Android Studio修改主题设置主题背景图片

热门文章

  1. 国王游戏【贪心算法】
  2. 移动端旅游电商靠什么吸引了金主?
  3. 由word制作CHM文件
  4. 初识 jQuery与原生js的区别
  5. lzg_ad:FBWF技术概述
  6. 堪称神器的图片无损放大缩小工具
  7. WIFI模块AP和STA模式分别是什么意思
  8. 计算机网络为什么要分层,从形而上到形而下视角的理解
  9. 为什么社会上的Java程序员还没有饱和?
  10. 百宝云数组语法新手教程