scintilla嵌入MFC中,编写一个代码编辑器,现在要求没有括号和大括号,根据行首关键字是否为if、else、while来判断缩进。
现在已得到当前行(行首为if关键字)缩进量,计算出下一行缩进量,设置缩进量以后应该要将插入符放到行缩进的后面,怎么处理呢?
代码如下:
if ((0 == strArray.GetAt(0).Compare(_T("if"))) || (0 == strArray.GetAt(0).Compare(_T("else")) || (0 == strArray.GetAt(0).Compare(_T("while")))))
{
nNextIndent = nIndent + 2;//计算下一行缩进量
}
else
{
nNextIndent = nIndent;//计算下一行缩进量
}
m_wndScintilla.SendMessage(SCI_SETLINEINDENTATION, nLine + 1, nNextIndent);//设置下一行缩进
int nPos2 = m_wndScintilla.SendMessage(SCI_GETLINEINDENTPOSITION, nLine + 1, 0);//下一行缩进结束位置
//TODO:设置光标位置在下一行缩进结束位置