简易代码编缉器的编写

2019-02-28  本文已影响0人  dc的梦呓

最近由于项目需要,需用 c# 写一个简易 python 代码编缉器,嵌入在 winform 程序中。需实现以下几个基本功能:

找了一圈,找到一个第三放开源控件 Scintilla ,可以满足需求,但此控件是 c++。幸运的是,有大神写了 c# 版本 ScintillaNet ,是对 SciLexer 进行的包装(wrapper)。因此,可基于 ScintillaNet 进行二次开发,记录如下。

1、行号显示

设置 scintilla 的 Margions 区域:
scintilla.Margins[0].Width = 16;

2、撤销重做

scintilla 已有自带,可调用其 Redo、Undo 方法。

3、代码高亮

已有相应语言的 Recipe ,如 python 的设置

4、代码缩进

参考1参考2

5、代码折叠

参考

6、Intellisense 功能

在 CharAdded 事件里判断,调用 AutoCShow 来显示提醒功能。但这只是最基本的提醒功能。要做的完整些,比较复杂,需能提前获取到所需提醒的所有信息,同时需考虑性能问题。正在研究中。

更多使用方法,请参考官方 wiki

上一篇下一篇

猜你喜欢

热点阅读