Scintilla! 一个超棒的免费源代码编辑控件收藏

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

 Scintilla! 一个超棒的免费源代码编辑控件收藏

新一篇: 免费开源的编辑器 - SciTE  | 旧一篇: CEdit & CRichEdit 使用技巧

Scintilla是一个免费的源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。


我是在做毕业课题的时候发现的这个编辑控件,使用后发现它实在是强大和稳定,作为源代码编辑控件,我们能在 普通的的文本编辑控件中能看到的功能,Scintilla都完全能够实现,而且,它还能够提供很多编辑和调试源代码时有用的特殊功能。包括语法高亮显示, 错误指示,代码自动完成以及代码提示等。而且在左边的空白处(margin),可以显示调试代码中非常有用的显示断点以及显示当前运行行等功能。而且,自 定义风格的功能比其他大部分编辑器控件都开放,它允许用户自定义不同类型下的字体,是否粗体,是否斜体,前景色和背景色,支持大量的字体。举个例子,在设 置C/C++编辑模式后,你可以定义注释语句类型的颜色,字体,大小等等,同样,可以自定义关键字类型的颜色,字体,大小……诸如此类,这样给用户极大的 配置的自由。


据Scintilla的网站上发布的消息,Scitilla将在以后的开发中,更加灵活,健壮,更好地表现在.Net和java虚拟机中运行,就这一点,可以看出Scitilla项目就是一个非常有活力的项目,其开发团队对它非常有激情,这也使我们——这些用户从中受益。


据作者介绍,开发Scintilla的动机是来自他对Richedit的失望,在Richedit中,样式 的改变被看作是文档的一种改变,从而会被记录到undo的堆栈中,并且设置的文档对象的修改标记。这对源代码编辑是非常不合适的,改变关键字类型的颜色或 是运算符的颜色,这不应该看作是文档的修改,也不应该能够通过undo/redo来返回/前进。我对此深有感触,如果是Richedit来做源代码编辑的 控件,那将有太多的东西需要自己编写代码实现了,选择Scintilla,将是一个明智的选择,省时,省力,安全,可靠。


Scintilla目前提供了Win32版本和Linux版本。在Linux中使用的是GTK+,已经在 Windows95,nt4.0, Windows2000, windows XP以及RedHat Linux8和9中的GTK+1.2和2.0中测试运行正常。这是一个跨平台的控件,也是我对其非常欣赏的原因之一。下面我的主要论述的还是在 windows + VC下如何使用这个控件,但是其他平台/编译工具下也大同小异,触类旁通吧。

 

简介:

 

Scintilla的windows版本就是一个窗体控件。它的主要编程接口是通过窗体 消息来传送的。你要实现什么功能,向控件发送一个消息就可以了,当需要从控件得到什么信息,接受WM_NOTIFY消息即可,可以从它带的参数中获得大量 当前控件的信息,比如是否已经修改文字了,是否正在点击左边的边框等等。但是,实际上在MFC编程中,通过消息的方式来控制控件还是非常麻烦的,因为这些 消息的大部分都是自定义消息,不便于记忆。所以一般的做法就是将这些消息的调用封装成一个窗体类,这样调用方便多了。除了能实现一般编辑控件能实现的功能 外,scintilla还能实现语法高亮,代码折叠,书签,自动完成,语句提示等等功能。你完全可以不用学习标准编辑控件CEDIT或者是 RichEdit,scintilla提供了协调一致的API口,这些都是它的优点之处。

事实上,scintilla开发组同时也用这个控件开发了一个编辑软件SciTE,它百分百的实现了 scintilla的全部功能,如果你对scintilla非常感兴趣,但又不知它到底能做到那些功能的活,当一个SciTE,使用一下就完全明白了。同 时,SciTE也是开源软件,学习它的代码,就是学习scintilla的使用方法。在scintilla的文档中,就说明了,这个文档只是独立地讲解各 个消息的使用方法,功能和参数,并不能讲解如何把它们连接起来组成一个实用的编辑器,要想知道如何实现某些特定功能,还是看看SciTE是如何实现的。我 也看过SciTE的代码,可读性还是不错的,可惜我是没有耐心的人,也就读了几个函数,大体了解了一下,如果你想用好这个控件,多读读SciTE的源码还 是不错的。

scintilla的消息就用SendMessage函数发送,它提供两个头文件:Scintilla.h和 SciLexer.h,消息号的宏定义都在这里,而且还有很多要用到的结构体,类型等等的定义。消息带的两个参数wParam和lParam是要经常用到 的,也许会用到一个,两个,或者无需参数。但建议你最好在使用的时候把不用的参数都赋予0值,因为如果以后扩充消息功能,用到了某个参数,赋值能防止程序 的崩溃。

通常参数的类型如下:
bool int const char* char* colour <unused>

其他的类型不用多说,至于color类型,是用于描述颜色的,它实际上就是一个整数,计算方法是:red| (green << 8)|(blue << 16), red,green,blue是8位2进制数,也就是2位16进制数。很容易就能实现256色的调配。至于<unused> ,就是说这个参数在这个消息中不用,可以赋为0值。

下面的讲解的重点是放在VC+MFC的环境中,因为我一直在这个环境下开发东西,要是用SDK编程也一样的,只是用 到了更多的API,至于编译器,VC也好,GCC也好,我觉得没什么大问题,我就曾经用GDB调试SciTE的源码,来了解scintilla如何使用 的,Linux平台下的GTK+编程我没尝试过,从文档上看,也是用消息的方式来控制控件,用接受消息的方式来获得控件的信息。


下面我就如何封装scintilla成为一个窗体类,如何在程序中使用它的功能一一讲解,水平有限,而且现在还在上学中,可能写得比较慢,呵呵,谅解。

Scintilla教程(1): 入门介绍 Scintilla一个富文本编辑控件,支持**GTK**、**QT**、**Cocoa**等多种UI框架。 阅读详情

相关推荐

(转)用Scintilla让程序支持语法高亮

Scintilla让程序支持语法高亮 来自http://www.cppprog.com/2009/1030/171.html   Scintilla一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点...

yntcsb的专栏 1437

Scintilla中文文档+带标签

Scintilla中文文档+带标签

Scintilla教程(7): 多选以及滚动

Scintilla的多选以及滚动功能

突破编程 1619

最好开源源代码编辑控件 - scintilla

最好开源源代码编辑控件,notepad plus, sciTe的基础

Scintilla开源库使用指南

Scintilla一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。 Scintilla一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码编辑和调试,包括语法高亮、错误指示、代

痞子龙3D编程 1万+

Scintilla一个免费源代码编辑控件

Scintilla一个免费源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。我是在做毕业课题的时候发现的这个编辑控件,使用后发现它实在是强大和稳定,作为源代码编辑控件,我们能在普通的的文本编辑控件中能看到的功能,Scintilla都完全能够实现,而且,它还能够提供很多编辑和调试源代码时有用的特殊功能。包括语法高亮显示,错误指示,代码自

answer的专栏 5582

Scintilla使用指南(一)

  Scintilla一个免费源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。我是在做毕业课题的时候发现的这个编辑控件,使用后发现它实在是强大和稳定,作为源代码编辑控件,我们能在普通的的文本编辑控件中能看到的功能,Scintilla都完全能够实现,而且,它还能够提供很多编辑和调试源代码时有用的特殊功能。包括语法高亮显示,错误指示

sky的技术天空 1万+

使用Scintilla编写语法高亮文本编辑

使用Scintilla控件,在MFC的对话框中添加一个语法高亮的文本编辑器,

robinfoxnan的专栏 1541

Scintilla一个免费源代码编辑控件

导读:      Scintilla一个免费源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。   我是在做毕业课题的时候发现的这个编辑控件,使用后发现它实在是强大和稳定,作为源代码编辑控件,我们能在普通的的文本编辑控件中能看到的功能,Scintilla都完全能够实现,而且,它还能够提供很多编辑和调试源代码时有用的特殊功能。包括语

xu的blog 2703

基于Scintilla开发的MFC文档源代码编辑器CodeEditor(一)

基于Scintilla开发的MFC文档源代码编辑器CodeEditor(一)

wDebug 的专栏 6117

Scintilla使用指南(一)收藏

 Scintilla使用指南(一)收藏 新一篇: Scintilla使用指南(二) |  function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():)

skyremember的专栏 1601

Qt之QScintilla源代码编辑器)

简述 QScintillaScintilla 在 Qt 上的移植,Scintilla一个免费源代码编辑控件。它完全开放源代码,功能强大,包括:代码高亮、代码补全、代码折叠、自动缩进、代码提示等。支持非常多的语言,可以轻松实现显示断点,显示运行行等,定义各种样式都很轻松方便。著名的开源编辑器 SciTE 就是 Scintil...

weixin_33725515的博客 2478

免费下载】 ScintillaNET:打造高效源代码编辑体验

**ScintillaNET** 是一个基于 Windows Forms 的控件,它是对多功能源代码编辑组件 [Scintilla](http://www.scintilla.org/) 的封装和绑定。ScintillaNET 不仅继承了 Scintilla 在标准文本编辑组件中的功能,还特别强化了源代码编辑和调试所需的功能,如语法样式支持、错误指示器、代码完成和调用提示等。此外,Scintill...

gitblog_01123的博客 940

Scintilla的使用c++ build

Scintilla一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。 Scintilla一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码编辑和调试,包括语法高亮、错误指示

flyear_cn 2142

Scintilla 开源库使用-如何设置页边背景色和前景色

Scintilla一个免费的、跨平台、支持语法高亮的编辑控件。它完整支持源代码编辑和调试,包括语法高亮、错误指示、代码自动完成 (code completion)和调用提示(call tips)。它包含页边(margin)和标记(marker)功能,可用于显示行号、标记断点、折叠和高亮当前行。 VC++中快速开发,可下载CScintillaCtrl控件(下载地址:http://www.naughter.com/download/scintillawrappers.zip)。CScint...

老狼的专栏 1913

Scintilla

1. Scintilla简介 官方网站 A free source code editing component for Win32, GTK, and OS X Scintilla一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码编辑和调试,包括语法高亮、错误指示、代码完成 (code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。它完全开放源代码...

永远的魔术1号 525
上一篇: firebird321的专栏 LUA
下一篇: 开源的优秀编辑器SCITE收藏
skyremember
博客等级 码龄20年 203粉丝 484原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值