美文网首页
简易代码编缉器的编写

简易代码编缉器的编写

作者: dc的梦呓 | 来源:发表于2019-02-28 21:12 被阅读0次

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

  • 行号显示;
  • 撤销重做;
  • 代码高亮;
  • 代码缩进;
  • 代码折叠;
  • 代码提示、补全,即 Intellisense 功能。

找了一圈,找到一个第三放开源控件 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

相关文章

  • 简易代码编缉器的编写

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

  • Mac更改vim配色,使代码高亮显示

    第一次在Mac上使用vim,感觉还不错,但是代码都是黑压压的一片,用惯了编缉器的代码高亮,所以感觉很不爽。网上搜了...

  • 小朋友学C++:教你200行代码实现简易计算器

    一、需求 编写一个简易计算器,能实现最基本的加减乘除四则运算。 下面是小编整理好的一套C/C++资料,加小编C/C...

  • vim操作技巧:操作+文本选择

    在编写代码的过程中,选择代码是一项非常常见的操作,其他文本编辑器都是使用鼠标进行选择,我在使用其他编辑器的时候,编...

  • 小朋友学C++(24):实现简易计算器

    一、需求 编写一个简易计算器,能实现最基本的加减乘除四则运算。 二、代码实现 运行结果: 少儿编程QQ群:5813...

  • Python3字符编码

    通常情况下,我们在编写Python代码时在文件的前几行中添加下面一行代码用于向Python解释器标记该文件使用的编...

  • 《简书》,我想对您说

    对使用手机的作者来说,《简书》的编缉器是最好的!编辑器功能全,易学,易用。 对喜欢创作的作者来说,《简书》里的作者...

  • 3.6 嵌入式

    今天结合lcd显示屏和触摸屏进行练习编写简易计算器。 上午练习在触摸屏画线,下午编写触摸屏实现计算器功能,可以实现...

  • 音乐播放

    rxswiftPlayer 这是一个音乐播放器,基于swift与rxswift双向绑定架构编写,git地址 简易播...

  • 正宁县周家镇大璋村薛氏起源及传说

    文/薛鸿乾(已故) 编缉/薛凯少 ...

网友评论

      本文标题:简易代码编缉器的编写

      本文链接:https://www.haomeiwen.com/subject/nsokuqtx.html