.net 如何使用闪烁体启动项目?
我一直在尝试做一个基于闪烁编辑器的项目,因为我是一个新手,我不知道如何真正开始一个项目。我遵循自述文件上的步骤,能够在Windows上构建闪烁体,现在正试图找出下一步应该做什么.net 如何使用闪烁体启动项目?,.net,scintilla,.net,Scintilla,我一直在尝试做一个基于闪烁编辑器的项目,因为我是一个新手,我不知道如何真正开始一个项目。我遵循自述文件上的步骤,能够在Windows上构建闪烁体,现在正试图找出下一步应该做什么 非常感谢您的任何回答/建议/建议。谢谢。你可能会发现这给了你一个领先的开始…当我开始使用我的lexer时,我觉得有点令人畏惧,但一切归结起来都有几个重要的想法: 将lexer放入lexer文件夹 告诉斯金特拉你添加的雷克瑟 将您的常数添加到scanitlla.iface 告诉斯金特拉你自己的常数(如果你使用任何常数)
非常感谢您的任何回答/建议/建议。谢谢。你可能会发现这给了你一个领先的开始…当我开始使用我的lexer时,我觉得有点令人畏惧,但一切归结起来都有几个重要的想法:
- 将lexer放入lexer文件夹
- 告诉斯金特拉你添加的雷克瑟
- 将您的常数添加到scanitlla.iface
- 告诉斯金特拉你自己的常数(如果你使用任何常数)
- 编码/编译+重复,直到满意为止
- 将LexNew.cxx放入
文件夹/lexers
- 进入
并运行/src
,这会通过将新的lexer添加到闪烁体.h来告诉闪烁体有一个新的lexerLexGen.py
val-SCLEX\u-NEW=108
其中108
是一个未使用的id号,lex-NEW=SCLEX\u-NEW-SCE\u-NEW
其中NEW
是您的lexer的有效唯一短标识符
将它们放在与其他定义相同的部分(以避免以后混淆),如果有疑问,请使用其他定义之一作为模板
现在,在lex new=
行下面,您可以定义自己的常量值,如:
val SCE_NEW_DEFAULT=0
val SCE_NEW_COMMENTLINE=1
val SCE_NEW_COMMENTBLOCK=2
val SCE_NEW_ERROR=31
完成这一步后,您几乎准备好了
- 输入
并运行/include
,它将告诉斯金特拉有关新常数的信息Hface.py
HFace.py
脚本将这些值添加到SciLexer.h中,如果您不希望每次执行两个步骤,可以手动执行该操作
这就是我的朋友,编译完成后,确保你的程序将你的lexer设置为:sci.SetLexer(108)
,并为每个状态添加一些颜色,比如sci.StyleSetFore(010x008800)//SCE\u NEW\u COMMENTLINE
等等
最后一件事是您要使用SciLexer.dll
,它包含所有lexer,而不是scilla.dll
祝你好运 我正在从事基于闪烁体的项目,并与您分享我的一些经验。 要启动一个项目,首先下载SciLexer.dll、SciLexer.h和scinella.h 然后根据框架构建演示项目:
#include "Scintilla.h"
#include "SciLexer.h"
static HWND global_editor_win = NULL;
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
HMODULE hmod = ::LoadLibrary(_T("SciLexer.dll"));
//other winmain code.
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
RECT rc;
switch (message) {
case WM_CREATE:
GetClientRect(hWnd, &rc);
global_editor_win = ::CreateWindow(_T("Scintilla"), "Source",
WS_CHILD | WS_VSCROLL | WS_HSCROLL | WS_CLIPCHILDREN,
rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top,
hWnd, (HMENU)1001, hInst, 0);
::SendMessage(global_editor_win , SCI_SETTEXT, 0, (LPARAM)"hello, world");
ShowWindow(global_editor_win , SW_SHOW);
break;
}
}
享受吧