📄 cedtdoc.h
字号:
// cedtDoc.h : interface of the CCedtDoc class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_CEDTDOC_H__FFCA2B8C_F9C5_11D4_A6F1_0050CE184C9B__INCLUDED_)
#define AFX_CEDTDOC_H__FFCA2B8C_F9C5_11D4_A6F1_0050CE184C9B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CCedtDoc : public CDocument
{
protected: // create from serialization only
CCedtDoc();
DECLARE_DYNCREATE(CCedtDoc)
public: // Attributes
static BOOL m_bConvertTabsToSpacesBeforeSaving;
static BOOL m_bRemoveTrailingSpacesBeforeSaving;
static BOOL m_bSaveFilesInUnixFormat;
static BOOL m_bSaveRemoteFilesInUnixFormat;
static UINT m_nMakeBackupFile;
static UINT m_nBackupMethod;
static CString m_szBackupExtension;
static CString m_szBackupDirectory;
public: // syntax types
static CSyntaxType m_clsSyntaxTypes[MAX_SYNTAX_TYPE];
protected: // dictionary
static CDictionary m_clsDictionary;
static BOOL m_bDictionaryLoaded;
public: // file contents & status
CAnalyzedText m_clsAnalyzedText;
INT m_nEncodingType; // ASCII/Unicode/UTF-8
INT m_nFileFormat; // DOS/UNIX/MAC
CFileStatus m_clsFileStatus;
DWORD m_dwFileAttribute;
BOOL m_bDocumentSaved;
INT m_nSavedUndoCount;
public: // shared remote path name
static INT m_nCurrentFtpAccount;
static CString m_szCurrentRemotePathName;
protected: // remote path name
INT m_nFtpAccount;
CString m_szRemotePathName;
public: // syntax type
BOOL m_bAutomaticSyntaxType;
CString m_szLangSpecFile;
CString m_szKeywordsFile;
protected: // language specification
CLangSpec m_clsLangSpec;
CKeywords m_clsKeywords;
protected: // saved composition string
CString m_szSavedCompositionString;
BOOL m_bCompositionStringSaved;
protected: // undo & redo buffer
CUndoBuffer m_clsUndoBuffer;
CUndoBuffer m_clsRedoBuffer;
BOOL m_bRecordingUndo;
INT m_nRecordingCount;
public: // *** cedtDoc.cpp ***
BOOL IsModifiedOutside();
void GoToLineNumber(INT nLineNumber);
BOOL IsReadOnlyFile() const { return (m_dwFileAttribute & FILE_ATTRIBUTE_READONLY) ? TRUE : FALSE; }
BOOL IsHiddenFile() const { return (m_dwFileAttribute & FILE_ATTRIBUTE_HIDDEN) ? TRUE : FALSE; }
BOOL IsSystemFile() const { return (m_dwFileAttribute & FILE_ATTRIBUTE_SYSTEM) ? TRUE : FALSE; }
BOOL IsRemoteFile() const { return (m_nFtpAccount >= 0) ? TRUE : FALSE; }
BOOL IsNewFileNotSaved() const { return GetPathName().IsEmpty(); }
BOOL HaveAnyOverflowLine() { return m_clsAnalyzedText.HaveAnyOverflowLine(); }
BOOL MultiLineStringConstant() const { return m_clsLangSpec.m_bMultiLineStringConstant; }
BOOL VariableHighlightInString() const { return m_clsLangSpec.m_bVariableHighlightInString; }
BOOL HasLineCommentDelimiter() const { return m_clsLangSpec.m_szLineComment1.GetLength(); }
BOOL HasBlockCommentDelimiter() const { return (m_clsLangSpec.m_szBlockComment1On.GetLength() && m_clsLangSpec.m_szBlockComment1Off.GetLength()); }
INT GetFtpAccountNumber() const { return m_nFtpAccount; }
CString GetRemotePathName() const { return m_szRemotePathName; }
CString GetFullRemotePathName() const;
LONG GetFileSize() const { return m_clsFileStatus.m_size; }
protected:
// BOOL OnNewDocument();
BOOL OnReloadDocument(LPCTSTR lpszPathName, INT nEncodingType);
// BOOL OnOpenDocument(LPCTSTR lpszPathName);
// BOOL OnSaveDocument(LPCTSTR lpszPathName);
public: // *** cedtDocView.cpp ***
CView * GetFirstView();
INT GetViewCount();
void ReinitializeAllViews();
void UpdateMDIFileTab();
void FormatScreenText();
void FormatScreenText(INT nIndex, INT nCount);
void RemoveScreenText(INT nIndex, INT nCount);
void InsertScreenText(INT nIndex, INT nCount);
public: // *** cedtDocFile.cpp ***
BOOL FileSave();
BOOL FileSaveAs();
BOOL FileSaveAsRemote();
BOOL FileReload(INT nEncodingType);
BOOL SaveDocumentFile(LPCTSTR lpszPathName);
BOOL SaveRemoteDocumentFile(INT nFtpAccount, LPCTSTR lpszPathName);
BOOL ReloadDocumentFile(LPCTSTR lpszPathName, INT nLineNum, INT nEncodingType);
BOOL ReloadRemoteDocumentFile(INT nFtpAccount, LPCTSTR lpszPathName, DWORD dwFileSize, INT nLineNum, INT nEncodingType);
BOOL UpdateFileStatus();
BOOL BackupDocument(LPCTSTR lpszPathName);
public: // *** cedtDocSyntax.cpp ***
BOOL DetectSyntaxType(LPCTSTR lpszPathName, LPCTSTR lpszFirstLine);
BOOL SearchLinkFileWithFirstLine(LPCTSTR lpszFirstLine, CString & szLinkFilePath);
BOOL SearchLinkFileWithPathName(LPCTSTR lpszPathName, CString & szLinkFilePath);
BOOL GetContainsPartOfLinkFile(LPCTSTR lpszLinkFilePath, CString & szContains);
BOOL ReadExtensionLinkFile(LPCTSTR lpszLinkFilePath);
BOOL LoadSyntaxInformation();
public: // *** cedtDocDictionary.cpp ***
static BOOL IsDictionaryLoaded() { return m_bDictionaryLoaded; }
static BOOL LoadDictionary();
static BOOL LoadingProgress(UINT nTotalRead);
public: // *** cedtDocAnal.cpp ***
INT GetCharType(TCHAR nChar);
void AnalyzeText() { AnalyzeText(0, GetLineCount()); }
void AnalyzeText(INT nIndex, INT nCount);
public: // *** cedtDocHndr.cpp ***
void OnUpdateDocuSyntaxType(CCmdUI * pCmdUI, INT nSyntaxType);
void OnDocuSyntaxType(INT nSyntaxType);
void OnDocuFileFormat(INT nFileFormat);
void OnDocuEncodingType(INT nEncodingType);
public: // *** cedtDocMap.cpp ***
INT GetLineCount() { return m_clsAnalyzedText.GetCount(); }
INT GetLastIdxY() { return m_clsAnalyzedText.GetCount()-1; }
INT GetWordCount();
INT GetByteCount();
INT GetFirstIdxX(CAnalyzedString & rLine);
INT GetLastIdxX(CAnalyzedString & rLine);
INT GetFirstNonBlankIdxX(CAnalyzedString & rLine);
INT GetTrailingBlankIdxX(CAnalyzedString & rLine);
CAnalyzedString & GetLineFromIdxY(INT nIdxY);
ANALYZEDWORDINFO & GetWordFromIdxX(CAnalyzedString & rLine, INT nIdxX);
BOOL IsBlankLine(CAnalyzedString & rLine);
BOOL IsBlankLineFromIdxY(INT nIdxY);
public: // *** cedtDocEdit.cpp ***
BOOL IsCompositionStringSaved() { return m_bCompositionStringSaved; }
void EmptySavedCompositionString();
void SaveCurrentCompositionString(INT nIdxY);
void RestoreCurrentCompositionString(INT nIdxY);
void InsertCompositionString(INT nIdxX, INT nIdxY, LPCTSTR lpszString);
void DeleteCompositionString(INT nIdxX, INT nIdxY, INT nLength);
void InsertChar(INT nIdxX, INT nIdxY, UINT nChar);
void DeleteChar(INT nIdxX, INT nIdxY);
void InsertString(INT nIdxX, INT nIdxY, LPCTSTR lpszString);
void DeleteString(INT nIdxX, INT nIdxY, INT nLength);
void InsertBlock(INT nBegX, INT nBegY, INT & nEndX, INT & nEndY, CMemText & rBlock);
void DeleteBlock(INT nBegX, INT nBegY, INT nEndX, INT nEndY);
void SplitLine(INT nIdxX, INT nIdxY);
void JoinLines(INT nIdxX, INT nIdxY);
void CopyToString(CString & rString, INT nBegX, INT nBegY, INT nLength);
void CopyToBlock(CMemText & rBlock, INT nBegX, INT nBegY, INT nEndX, INT nEndY);
protected:
void FastInsertChar(CAnalyzedString & rLine, INT nIdxX, INT nIdxY, UINT nChar);
void FastDeleteChar(CAnalyzedString & rLine, INT nIdxX, INT nIdxY);
void FastInsertString(CAnalyzedString & rLine, INT nIdxX, INT nIdxY, LPCTSTR lpszString);
void FastDeleteString(CAnalyzedString & rLine, INT nIdxX, INT nIdxY, INT nLength);
public: // *** cedtDocEditAdv.cpp
// return number of characters inserted or deleted
INT IndentLine(INT nIdxY, INT nTabSize, BOOL bUseSpaces);
INT UnindentLine(INT nIdxY, INT nTabSize);
INT MakeCommentLine(INT nIdxY); INT ReleaseCommentLine(INT nIdxY);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -