Scintilla笔记(3)
来源:互联网 发布:淘宝咖啡猫游戏代购 编辑:程序博客网 时间:2024/05/28 15:09
Scintilla笔记(3)
Scintilla支持代码折叠
目前,基本上所有的IDE都提供了代码折叠功能,Scintilla为我们也提供了设置代码折叠的功能,用户可以根据当前语言特点完成代码折叠。
实现代码折叠功能主要分为四步:
一、显示折叠的边距
m_ScintillaEdit.SetMarginWidthN(2, margin_width); //
二、显示折叠属性
m_ScintillaEdit.SetMarginSensitiveN(1, TRUE);
m_ScintillaEdit.SetMarginSensitiveN(2, TRUE);
m_ScintillaEdit.SetMarginTypeN(2, SC_MARGIN_SYMBOL);
m_ScintillaEdit.SetMarginMaskN(2, SC_MASK_FOLDERS);
m_ScintillaEdit.SetFoldLevel(2, SC_MASK_FOLDERS);
三、设置是否显示折叠
#define SETSCINTILLAPROPERTY(KEY, VALUE) m_ScintillaEdit.SetProperty(KEY, VALUE)
// 设置折叠
SETSCINTILLAPROPERTY(L"fold", L"1");
SETSCINTILLAPROPERTY(L"fold.compact", L"1");
SETSCINTILLAPROPERTY(L"fold.comment", L"1");
SETSCINTILLAPROPERTY(L"fold.preprocessor", L"1");
四、设置折叠的样式
//折叠标记
struct FoldMarker
{
int Marker;
int MarkType;
};
//Setup fold markers
FoldMarker FoldMarks[] =
{
{ SC_MARKNUM_FOLDEROPEN, SC_MARK_BOXMINUS, },
{ SC_MARKNUM_FOLDER, SC_MARK_BOXPLUS, },
{ SC_MARKNUM_FOLDERSUB, SC_MARK_VLINE, },
{ SC_MARKNUM_FOLDERTAIL, SC_MARK_LCORNER, },
{ SC_MARKNUM_FOLDEREND, SC_MARK_BOXPLUSCONNECTED, },
{ SC_MARKNUM_FOLDEROPENMID, SC_MARK_BOXMINUSCONNECTED, },
{ SC_MARKNUM_FOLDERMIDTAIL, SC_MARK_TCORNER, },
};
for (int i = 0; i < sizeof(FoldMarks) / sizeof(FoldMarks[0]); i++)
{
m_ScintillaEdit.MarkerDefine(FoldMarks[i].Marker, FoldMarks[i].MarkType);
m_ScintillaEdit.MarkerSetFore(FoldMarks[i].Marker, RGB(255, 255, 255));
m_ScintillaEdit.MarkerSetBack(FoldMarks[i].Marker, RGB(128, 128, 128));
}
0 0
- Scintilla笔记(3)
- Scintilla笔记(1)
- Scintilla笔记(2)
- Scintilla笔记(4)
- Scintilla
- scintilla笔记(一)编译
- Scintilla使用指南(3) - 搜索和替换
- Scintilla使用(编辑器篇)(3) - 搜索和替换
- Scintilla/SciTE
- Scintilla Documentation
- Scintilla使用指南(一)
- Scintilla使用指南(二)
- Scintilla使用指南(1) - 简介
- Scintilla使用指南(二)收藏
- Scintilla使用指南(一)收藏
- Scintilla and SciTE
- Scintilla源码剖析1
- Scintilla源码剖析2
- JDBC的学习
- OpenCV人脸检测(C++代码)—— By wepon
- POJ-1273 Drainage Ditches(最大流)
- Android 对话框弹出底部背景透明度调节
- java xml解析
- Scintilla笔记(3)
- request.getRequestURI()、getRequestURL()、getContextPath()、getServletPath()区别
- 备忘录模式(Memento Pattern)
- ubuntu 终端命令
- POJ1502(暴力floyd)
- Scintilla笔记(4)
- 前台通过JS请求后台的几种方法
- 通过串口给ESP8266发送AT指令连接wifi的注意事项
- Hadoop-2.6.0分布式单机环境搭建HDFS讲解Mapreduce示例