📄 cedtviewedit.cpp
字号:
INT nLstX = GetLastIdxX( rString );
if( nIdxX < nLstX ) {
INT nEndX = GetNextWordIdxX(rLine, nIdxX);
DeleteString(nIdxX, nIdxY, nEndX-nIdxX);
} else if( nIdxY < GetLastIdxY() ) {
if( nIdxX > nLstX ) {
CString szInsert(' ', nIdxX - nLstX);
InsertString(nLstX, nIdxY, szInsert);
}
JoinLines(nIdxX, nIdxY);
}
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
void CCedtView::ActionDeletePrevWord()
{
INT nIdxY = GetIdxYFromPosY( m_nCaretPosY );
CFormatedString & rLine = GetLineFromPosY( m_nCaretPosY );
INT nIdxX = GetIdxXFromPosX( rLine, m_nCaretPosX, ! m_bColumnMode );
CAnalyzedString & rString = GetLineFromIdxY( nIdxY );
INT nLstX = GetLastIdxX( rString );
if( nIdxX > nLstX ) {
nIdxX = GetTrailingBlankIdxX( rString );
if( nIdxX < nLstX ) DeleteString(nIdxX, nIdxY, nLstX-nIdxX);
} else if( nIdxX > 0 ) {
INT nBegX = GetPrevWordIdxX(rLine, nIdxX-1);
DeleteString(nBegX, nIdxY, nIdxX-nBegX); nIdxX = nBegX;
} else if( nIdxY > 0 ) {
CAnalyzedString & rStrn2 = GetLineFromIdxY( nIdxY-1 );
nIdxY = nIdxY - 1; nIdxX = GetLastIdxX( rStrn2 );
JoinLines(nIdxX, nIdxY);
}
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
void CCedtView::ActionDeleteToEndOfLine()
{
INT nIdxY = GetIdxYFromPosY( m_nCaretPosY );
CFormatedString & rLine = GetLineFromPosY( m_nCaretPosY );
INT nIdxX = GetIdxXFromPosX( rLine, m_nCaretPosX, ! m_bColumnMode );
CAnalyzedString & rString = GetLineFromIdxY( nIdxY );
INT nLstX = GetLastIdxX( rString );
if( nIdxX < nLstX ) {
DeleteString(nIdxX, nIdxY, nLstX-nIdxX);
} else if( nIdxY < GetLastIdxY() ) {
if( nIdxX > nLstX ) {
CString szInsert(' ', nIdxX - nLstX);
InsertString(nLstX, nIdxY, szInsert);
}
JoinLines(nIdxX, nIdxY);
}
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
void CCedtView::ActionDeleteToBeginOfLine()
{
INT nIdxY = GetIdxYFromPosY( m_nCaretPosY );
CFormatedString & rLine = GetLineFromPosY( m_nCaretPosY );
INT nIdxX = GetIdxXFromPosX( rLine, m_nCaretPosX, ! m_bColumnMode );
CAnalyzedString & rString = GetLineFromIdxY( nIdxY );
INT nLstX = GetLastIdxX( rString );
if( nIdxX > nLstX ) {
if( nLstX > 0 ) DeleteString(0, nIdxY, nLstX);
nIdxX = 0;
} else if( nIdxX > 0 ) {
DeleteString(0, nIdxY, nIdxX);
nIdxX = 0;
} else if( nIdxY > 0 ) {
CAnalyzedString & rStrn2 = GetLineFromIdxY( nIdxY-1 );
nIdxY = nIdxY - 1; nIdxX = GetLastIdxX( rStrn2 );
JoinLines(nIdxX, nIdxY);
}
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
void CCedtView::ActionDeleteLine()
{
INT nIdxY = GetIdxYFromPosY( m_nCaretPosY );
CFormatedString & rLine = GetLineFromPosY( m_nCaretPosY );
INT nIdxX = GetIdxXFromPosX( rLine, m_nCaretPosX, ! m_bColumnMode );
CAnalyzedString & rString = GetLineFromIdxY( nIdxY );
INT nLstX = GetLastIdxX( rString );
if( nIdxY < GetLastIdxY() )
DeleteLineSelection(0, nIdxY, 0, nIdxY+1);
else
DeleteString(0, nIdxY, nLstX);
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
void CCedtView::ActionDuplicateLine()
{
INT nIdxY = GetIdxYFromPosY( m_nCaretPosY );
CFormatedString & rLine = GetLineFromPosY( m_nCaretPosY );
INT nIdxX = GetIdxXFromPosX( rLine, m_nCaretPosX, ! m_bColumnMode );
CAnalyzedString & rString = GetLineFromIdxY( nIdxY );
INT nLstX = GetLastIdxX( rString );
SplitLine(nLstX, nIdxY);
InsertString(0, nIdxY+1, rString);
nIdxY = nIdxY + 1;
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
void CCedtView::ActionIndentLine()
{
INT nIdxY = GetIdxYFromPosY( m_nCaretPosY );
CFormatedString & rLine = GetLineFromPosY( m_nCaretPosY );
INT nIdxX = GetIdxXFromPosX( rLine, m_nCaretPosX, ! m_bColumnMode );
nIdxX = nIdxX + IndentLine(nIdxY);
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
void CCedtView::ActionUnindentLine()
{
INT nIdxY = GetIdxYFromPosY( m_nCaretPosY );
CFormatedString & rLine = GetLineFromPosY( m_nCaretPosY );
INT nIdxX = GetIdxXFromPosX( rLine, m_nCaretPosX, ! m_bColumnMode );
nIdxX = nIdxX - UnindentLine(nIdxY);
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
void CCedtView::ActionMakeCommentLine()
{
INT nIdxY = GetIdxYFromPosY( m_nCaretPosY );
CFormatedString & rLine = GetLineFromPosY( m_nCaretPosY );
INT nIdxX = GetIdxXFromPosX( rLine, m_nCaretPosX, ! m_bColumnMode );
nIdxX = nIdxX + MakeCommentLine(nIdxY);
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
void CCedtView::ActionReleaseCommentLine()
{
INT nIdxY = GetIdxYFromPosY( m_nCaretPosY );
CFormatedString & rLine = GetLineFromPosY( m_nCaretPosY );
INT nIdxX = GetIdxXFromPosX( rLine, m_nCaretPosX, ! m_bColumnMode );
nIdxX = nIdxX - ReleaseCommentLine(nIdxY);
SetCaretPosY( GetPosYFromIdxY( nIdxX, nIdxY, ! m_bColumnMode ) );
CFormatedString & rLne2 = GetLineFromPosY( m_nCaretPosY );
SetCaretPosX( GetPosXFromIdxX( rLne2, nIdxX, ! m_bColumnMode ) );
}
////////////////////////////////////////////////
// BASIC EDITING FUNCTIONS
void CCedtView::InsertChar(INT nIdxX, INT nIdxY, UINT nChar)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
pDoc->InsertChar(nIdxX, nIdxY, nChar);
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
}
void CCedtView::DeleteChar(INT nIdxX, INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
pDoc->DeleteChar(nIdxX, nIdxY);
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
}
void CCedtView::CopyToString(CString & rString, INT nIdxX, INT nIdxY, INT nLength)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
pDoc->CopyToString(rString, nIdxX, nIdxY, nLength);
}
void CCedtView::InsertString(INT nIdxX, INT nIdxY, LPCTSTR lpszString)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
pDoc->InsertString(nIdxX, nIdxY, lpszString);
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
}
void CCedtView::DeleteString(INT nIdxX, INT nIdxY, INT nLength)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
pDoc->DeleteString(nIdxX, nIdxY, nLength);
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
}
void CCedtView::SplitLine(INT nIdxX, INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
pDoc->SplitLine(nIdxX, nIdxY); pDoc->InsertScreenText(nIdxY, 1);
pDoc->AnalyzeText(nIdxY, 2);
pDoc->FormatScreenText(nIdxY, 2);
}
void CCedtView::JoinLines(INT nIdxX, INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
pDoc->JoinLines(nIdxX, nIdxY); pDoc->RemoveScreenText(nIdxY+1, 1);
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
}
INT CCedtView::IndentLine(INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
INT nLen = pDoc->IndentLine(nIdxY, m_nTabSize, m_bUseSpacesInPlaceOfTab);
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
return nLen;
}
INT CCedtView::UnindentLine(INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
INT nLen = pDoc->UnindentLine(nIdxY, m_nTabSize);
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
return nLen;
}
INT CCedtView::MakeCommentLine(INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
INT nLen = pDoc->MakeCommentLine(nIdxY); if( ! nLen ) return 0;
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
return nLen;
}
INT CCedtView::ReleaseCommentLine(INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
INT nLen = pDoc->ReleaseCommentLine(nIdxY); if( ! nLen ) return 0;
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
return nLen;
}
INT CCedtView::ConvertTabsToSpaces(INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
INT nTab = pDoc->ConvertTabsToSpaces(nIdxY); if( ! nTab ) return 0;
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
return nTab;
}
INT CCedtView::ConvertSpacesToTabs(INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
INT nTab = pDoc->ConvertSpacesToTabs(nIdxY); if( ! nTab ) return 0;
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
return nTab;
}
INT CCedtView::LeadingSpacesToTabs(INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
INT nTab = pDoc->LeadingSpacesToTabs(nIdxY); if( ! nTab ) return 0;
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
return nTab;
}
INT CCedtView::DeleteLeadingSpaces(INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
INT nLen = pDoc->DeleteLeadingSpaces(nIdxY); if( ! nLen ) return 0;
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
return nLen;
}
INT CCedtView::DeleteTrailingSpaces(INT nIdxY)
{
CCedtDoc * pDoc = (CCedtDoc *)GetDocument();
INT nLen = pDoc->DeleteTrailingSpaces(nIdxY); if( ! nLen ) return 0;
pDoc->AnalyzeText(nIdxY, 1);
pDoc->FormatScreenText(nIdxY, 1);
return nLen;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -