[NEW_FEATURE] (Author : Christian Cuvier) Add the escape character capacity for the delimiter in User Defined Language System.

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@531 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
Don Ho 2009-09-10 00:44:36 +00:00
parent c75618ad6c
commit 9627abcd69
11 changed files with 145 additions and 3210 deletions

View File

@ -347,6 +347,7 @@
<Item id = "24311" name = "Boundary open :"/>
<Item id = "24314" name = "Boundary close :"/>
</Operator>
<Item id = "24001" name = "Enable escape character :"/>
</UserDefine>
<Preference title = "Preferences">
<Item id = "6001" name = "Close"/>

View File

@ -2175,6 +2175,8 @@ void NppParameters::feedUserSettings(TiXmlNode *settingsRoot)
boolStr = (globalSettingNode->ToElement())->Attribute(TEXT("caseIgnored"));
if (boolStr)
_userLangArray[_nbUserLang - 1]->_isCaseIgnored = !lstrcmp(TEXT("yes"), boolStr);
boolStr = (globalSettingNode->ToElement())->Attribute(TEXT("escapeChar"));
_userLangArray[_nbUserLang - 1]->_escapeChar[0] = (boolStr) ? boolStr[0] : 0;
}
TiXmlNode *treatAsSymbolNode = settingsRoot->FirstChildElement(TEXT("TreatAsSymbol"));
if (treatAsSymbolNode)
@ -4669,6 +4671,8 @@ void NppParameters::insertUserLang2Tree(TiXmlNode *node, UserLangContainer *user
{
TiXmlElement *globalElement = (settingsElement->InsertEndChild(TiXmlElement(TEXT("Global"))))->ToElement();
globalElement->SetAttribute(TEXT("caseIgnored"), userLang->_isCaseIgnored?TEXT("yes"):TEXT("no"));
if (userLang->_escapeChar[0])
globalElement->SetAttribute(TEXT("escapeChar"), userLang->_escapeChar);
TiXmlElement *treatAsSymbolElement = (settingsElement->InsertEndChild(TiXmlElement(TEXT("TreatAsSymbol"))))->ToElement();
treatAsSymbolElement->SetAttribute(TEXT("comment"), userLang->_isCommentSymbol?TEXT("yes"):TEXT("no"));

View File

@ -868,6 +868,8 @@ public :
UserLangContainer(){
_name = TEXT("new user define");
_ext = TEXT("");
_escapeChar[0] = '\0';
_escapeChar[1] = '\0';
// Keywords list of Delimiters (index 0)
lstrcpy(_keywordLists[0], TEXT("000000"));
@ -877,6 +879,8 @@ public :
UserLangContainer(const TCHAR *name, const TCHAR *ext) : _name(name), _ext(ext) {
// Keywords list of Delimiters (index 0)
lstrcpy(_keywordLists[0], TEXT("000000"));
_escapeChar[0] = '\0';
_escapeChar[1] = '\0';
for (int j = 1 ; j < nbKeywodList ; j++)
*_keywordLists[j] = '\0';
};
@ -886,6 +890,8 @@ public :
{
this->_name = ulc._name;
this->_ext = ulc._ext;
this->_escapeChar[0] = ulc._escapeChar[0];
this->_escapeChar[1] = '\0';
this->_isCaseIgnored = ulc._isCaseIgnored;
this->_styleArray = ulc._styleArray;
int nbStyler = this->_styleArray.getNbStyler();
@ -918,6 +924,7 @@ private:
bool _isCommentLineSymbol;
bool _isCommentSymbol;
bool _isPrefix[nbPrefixListAllowed];
TCHAR _escapeChar[2];
};
#define MAX_EXTERNAL_LEXER_NAME_LEN 16

View File

@ -591,6 +591,8 @@ void ScintillaEditView::setUserLexer(const TCHAR *userLangName)
execute(SCI_SETPROPERTY, (WPARAM)"userDefine.ignoreCase", (LPARAM)(userLangContainer->_isCaseIgnored?"1":"0"));
execute(SCI_SETPROPERTY, (WPARAM)"userDefine.commentLineSymbol", (LPARAM)(userLangContainer->_isCommentLineSymbol?"1":"0"));
execute(SCI_SETPROPERTY, (WPARAM)"userDefine.commentSymbol", (LPARAM)(userLangContainer->_isCommentSymbol?"1":"0"));
char buf[4];
execute(SCI_SETPROPERTY, (WPARAM)"userDefine.escapeChar", reinterpret_cast<LPARAM>((userLangContainer->_escapeChar[0]) ? itoa(userLangContainer->_escapeChar[0],buf,10) : "0"));
const char strArray[4][20] = {"userDefine.g1Prefix", "userDefine.g2Prefix", "userDefine.g3Prefix", "userDefine.g4Prefix"};
for (int i = 0 ; i < 4 ; i++)

View File

@ -1012,7 +1012,10 @@ void SymbolsStyleDialog::updateDlg()
}
}
}
bool hasEscape = (_pUserLang->_escapeChar[0] != 0);
::SendDlgItemMessage(_hSelf, IDC_HAS_ESCAPE, BM_SETCHECK, (hasEscape) ? BST_CHECKED : BST_UNCHECKED,0);
::EnableWindow(::GetDlgItem(_hSelf, IDC_ESCAPE_CHAR), (hasEscape) ? TRUE : FALSE);
::SendDlgItemMessage(_hSelf, IDC_ESCAPE_CHAR, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(&_pUserLang->_escapeChar));
const TCHAR *delims = _pUserLang->_keywordLists[KWL_DELIM_INDEX];
// ICI LE TRAITEMENT POUR REMPLIR LES 4 COMBO BOX
TCHAR dOpen1[2], dClose1[2], dOpen2[2], dClose2[2], dOpen3[2], dClose3[2];
@ -1121,6 +1124,7 @@ BOOL CALLBACK SymbolsStyleDialog::run_dlgProc(UINT Message, WPARAM wParam, LPARA
::SendDlgItemMessage(_hSelf, IDC_AVAILABLE_SYMBOLS_LIST, LB_SETCURSEL, 0, 0);
::EnableWindow(::GetDlgItem(_hSelf, IDC_REMOVE_BUTTON), FALSE);
::SendDlgItemMessage(_hSelf,IDC_ESCAPE_CHAR, EM_LIMITTEXT,1,0);
return SharedParametersDialog::run_dlgProc(Message, wParam, lParam);
}
@ -1135,6 +1139,45 @@ BOOL CALLBACK SymbolsStyleDialog::run_dlgProc(UINT Message, WPARAM wParam, LPARA
_pScintilla->styleChange();
return TRUE;
}
else if (wParam == IDC_HAS_ESCAPE)
{
int newState = ::SendDlgItemMessage(_hSelf,IDC_HAS_ESCAPE, BM_GETCHECK, 0, 0);
::EnableWindow(::GetDlgItem(_hSelf, IDC_ESCAPE_CHAR), (newState == BST_CHECKED) ? TRUE : FALSE);
if ((newState == BST_CHECKED) && !::SendDlgItemMessage(_hSelf, IDC_ESCAPE_CHAR, WM_GETTEXTLENGTH, 0, 0) && (_lastEscapeChar != 0))
//restore previous char
{
_pUserLang->_escapeChar[0] = _lastEscapeChar;
::SendDlgItemMessage(_hSelf, IDC_ESCAPE_CHAR, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(&_pUserLang->_escapeChar[0]));
}
else
{
_lastEscapeChar = _pUserLang->_escapeChar[0];
::SendDlgItemMessage(_hSelf,IDC_ESCAPE_CHAR,WM_SETTEXT,0,reinterpret_cast<LPARAM>(""));
_pUserLang->_escapeChar[0]='\0';
}
if (_pScintilla->getCurrentBuffer()->getLangType() == L_USER)
{
_pScintilla->execute(SCI_SETPROPERTY, (WPARAM)"userDefine.escapeChar", reinterpret_cast<LPARAM>(_pUserLang->_escapeChar));
_pScintilla->styleChange();
}
}
else if (LOWORD(wParam) == IDC_ESCAPE_CHAR)
{
if (HIWORD(wParam) == EN_CHANGE)
{
if (::SendDlgItemMessage(_hSelf, IDC_ESCAPE_CHAR, WM_GETTEXTLENGTH, 0, 0))
{
::SendDlgItemMessage(_hSelf, IDC_ESCAPE_CHAR, WM_GETTEXT, sizeof(_pUserLang->_escapeChar), reinterpret_cast<LPARAM>(&_pUserLang->_escapeChar));
_lastEscapeChar = _pUserLang->_escapeChar[0];
}
if (_pScintilla->getCurrentBuffer()->getLangType() == L_USER)
{
_pScintilla->execute(SCI_SETPROPERTY, (WPARAM)"userDefine.escapeChar", reinterpret_cast<LPARAM>(_pUserLang->_escapeChar));
_pScintilla->styleChange();
}
}
}
// car LBN_SELCHANGE == CBN_SELCHANGE == 1
else if ((HIWORD(wParam) == LBN_SELCHANGE) ||(HIWORD(wParam) == CBN_SELCHANGE))
{
@ -1197,6 +1240,18 @@ BOOL CALLBACK SymbolsStyleDialog::run_dlgProc(UINT Message, WPARAM wParam, LPARA
}
}
void SymbolsStyleDialog::undeleteChar()
{
if ((::SendDlgItemMessage(_hSelf, IDC_HAS_ESCAPE, BM_GETCHECK,0,0) == BST_CHECKED) &&
(!::SendDlgItemMessage(_hSelf, IDC_ESCAPE_CHAR, WM_GETTEXTLENGTH, 0, 0)))
{
if (_pUserLang->_escapeChar[0])
::SendDlgItemMessage(_hSelf, IDC_ESCAPE_CHAR, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(&_pUserLang->_escapeChar[0]));
else
::SendDlgItemMessage(_hSelf, IDC_HAS_ESCAPE, BM_SETCHECK, BST_UNCHECKED, 0);
}
}
int SymbolsStyleDialog::getGroupeIndexFromCheck(int ctrlID, int & fontStyleMask) const
{
switch (ctrlID)

View File

@ -182,6 +182,8 @@ public :
static const bool REMOVE;
SymbolsStyleDialog();
void updateDlg();
void undeleteChar();
protected :
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam);
void setKeywords2List(int) {};
@ -193,6 +195,7 @@ private :
// 2 static const TCHAR * to have the compatibility with the old xml
static const TCHAR *_delimTag1;
static const TCHAR *_delimTag2;
TCHAR _lastEscapeChar;
void symbolAction(bool action);
void listboxsRemoveAll();

View File

@ -199,38 +199,40 @@ BEGIN
LTEXT "Font size :",IDC_SYMBOL_FONTSIZE_STATIC,211,185,34,8,0,WS_EX_RIGHT
GROUPBOX "Operator",IDC_SYMBOL_DESCGROUP_STATIC,3,5,300,216,BS_CENTER
CONTROL "Underline",IDC_SYMBOL_UNDERLINE_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,199,59,10
LTEXT "Foreground color",IDC_SYMBOL_FG2_STATIC,26,268,56,8,0,WS_EX_RIGHT
LTEXT "Background color",IDC_SYMBOL_BG2_STATIC,26,289,56,8,0,WS_EX_RIGHT
COMBOBOX IDC_SYMBOL_FONT2_COMBO,184,266,104,78,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_SYMBOL_BO2_COMBO,85,237,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Bold",IDC_SYMBOL_BOLD2_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,284,45,10
CONTROL "Italic",IDC_SYMBOL_ITALIC2_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,299,41,10
GROUPBOX "Font style",IDC_SYMBOL_FONTSTYLEGROUP2_STATIC,132,253,164,60
GROUPBOX "Colour style",IDC_SYMBOL_COLORSTYLEGROUP2_STATIC,14,253,111,60
LTEXT "Font Name :",IDC_SYMBOL_FONTNAME2_STATIC,136,267,44,8,0,WS_EX_RIGHT
LTEXT "Boundary open :",IDC_SYMBOL_BO2_STATIC,9,239,74,8,0,WS_EX_RIGHT
CONTROL "Underline",IDC_SYMBOL_UNDERLINE2_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,299,59,10
COMBOBOX IDC_SYMBOL_BC2_COMBO,256,237,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Boundary close :",IDC_SYMBOL_BC2_STATIC,168,239,86,8,0,WS_EX_RIGHT
GROUPBOX "Delimiter 1",IDC_SYMBOL_DELIMGROUP1_STATIC,3,227,300,93,BS_CENTER | BS_FLAT
LTEXT "Foreground colour",IDC_SYMBOL_FG3_STATIC,26,369,56,8,0,WS_EX_RIGHT
LTEXT "Background colour",IDC_SYMBOL_BG3_STATIC,26,390,56,8,0,WS_EX_RIGHT
COMBOBOX IDC_SYMBOL_FONT3_COMBO,184,367,104,78,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_SYMBOL_BO3_COMBO,85,339,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Bold",IDC_SYMBOL_BOLD3_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,385,45,10
CONTROL "Italic",IDC_SYMBOL_ITALIC3_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,400,41,10
GROUPBOX "Font Style",IDC_SYMBOL_FONTSTYLEGROUP3_STATIC,132,355,164,60
GROUPBOX "Colour Style",IDC_SYMBOL_COLORSTYLEGROUP3_STATIC,14,355,111,60
LTEXT "Font name :",IDC_SYMBOL_FONTNAME3_STATIC,136,368,44,8,0,WS_EX_RIGHT
LTEXT "Boundary open :",IDC_SYMBOL_BO3_STATIC,9,340,74,8,0,WS_EX_RIGHT
CONTROL "Underline",IDC_SYMBOL_UNDERLINE3_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,400,59,10
COMBOBOX IDC_SYMBOL_BC3_COMBO,256,339,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Boundary close :",IDC_SYMBOL_BC3_STATIC,168,340,86,8,0,WS_EX_RIGHT
GROUPBOX "Delimiter 2",IDC_SYMBOL_DELIMGROUP2_STATIC,3,328,300,93,BS_CENTER | BS_FLAT
COMBOBOX IDC_SYMBOL_FONTSIZE2_COMBO,248,283,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Font size :",IDC_SYMBOL_FONTSIZE2_STATIC,212,285,34,8,0,WS_EX_RIGHT
COMBOBOX IDC_SYMBOL_FONTSIZE3_COMBO,248,384,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Font size :",IDC_SYMBOL_FONTSIZE3_STATIC,212,386,34,8,0,WS_EX_RIGHT
LTEXT "Foreground color",IDC_SYMBOL_FG2_STATIC,26,288,56,8,0,WS_EX_RIGHT
LTEXT "Background color",IDC_SYMBOL_BG2_STATIC,26,309,56,8,0,WS_EX_RIGHT
COMBOBOX IDC_SYMBOL_FONT2_COMBO,184,286,104,78,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_SYMBOL_BO2_COMBO,85,257,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Bold",IDC_SYMBOL_BOLD2_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,304,45,10
CONTROL "Italic",IDC_SYMBOL_ITALIC2_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,319,41,10
GROUPBOX "Font style",IDC_SYMBOL_FONTSTYLEGROUP2_STATIC,132,273,164,60
GROUPBOX "Colour style",IDC_SYMBOL_COLORSTYLEGROUP2_STATIC,14,273,111,60
LTEXT "Font Name :",IDC_SYMBOL_FONTNAME2_STATIC,136,287,44,8,0,WS_EX_RIGHT
LTEXT "Boundary open :",IDC_SYMBOL_BO2_STATIC,9,259,74,8,0,WS_EX_RIGHT
CONTROL "Underline",IDC_SYMBOL_UNDERLINE2_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,319,59,10
COMBOBOX IDC_SYMBOL_BC2_COMBO,256,257,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Boundary close :",IDC_SYMBOL_BC2_STATIC,168,259,86,8,0,WS_EX_RIGHT
GROUPBOX "Delimiter 1",IDC_SYMBOL_DELIMGROUP1_STATIC,3,247,300,93,BS_CENTER | BS_FLAT
LTEXT "Foreground colour",IDC_SYMBOL_FG3_STATIC,26,389,56,8,0,WS_EX_RIGHT
LTEXT "Background colour",IDC_SYMBOL_BG3_STATIC,26,410,56,8,0,WS_EX_RIGHT
COMBOBOX IDC_SYMBOL_FONT3_COMBO,184,387,104,78,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_SYMBOL_BO3_COMBO,85,359,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Bold",IDC_SYMBOL_BOLD3_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,405,45,10
CONTROL "Italic",IDC_SYMBOL_ITALIC3_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,420,41,10
GROUPBOX "Font Style",IDC_SYMBOL_FONTSTYLEGROUP3_STATIC,132,375,164,60
GROUPBOX "Colour Style",IDC_SYMBOL_COLORSTYLEGROUP3_STATIC,14,375,111,60
LTEXT "Font name :",IDC_SYMBOL_FONTNAME3_STATIC,136,388,44,8,0,WS_EX_RIGHT
LTEXT "Boundary open :",IDC_SYMBOL_BO3_STATIC,9,360,74,8,0,WS_EX_RIGHT
CONTROL "Underline",IDC_SYMBOL_UNDERLINE3_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,420,59,10
COMBOBOX IDC_SYMBOL_BC3_COMBO,256,359,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Boundary close :",IDC_SYMBOL_BC3_STATIC,168,360,86,8,0,WS_EX_RIGHT
GROUPBOX "Delimiter 2",IDC_SYMBOL_DELIMGROUP2_STATIC,3,348,300,93,BS_CENTER | BS_FLAT
COMBOBOX IDC_SYMBOL_FONTSIZE2_COMBO,248,303,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Font size :",IDC_SYMBOL_FONTSIZE2_STATIC,212,305,34,8,0,WS_EX_RIGHT
COMBOBOX IDC_SYMBOL_FONTSIZE3_COMBO,248,404,40,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Font size :",IDC_SYMBOL_FONTSIZE3_STATIC,212,406,34,8,0,WS_EX_RIGHT
CONTROL "Enable escape character :", IDC_HAS_ESCAPE, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,227,110,10
EDITTEXT IDC_ESCAPE_CHAR,130,227,20,10,WS_TABSTOP
END
IDD_GLOBAL_USERDEFINE_DLG DIALOGEX 36, 44, 340, 550

View File

@ -202,6 +202,9 @@
#define IDC_COMMENTLINE_UNDERLINE_CHECK (IDC_COMMENTLINE + 13)
#define IDD_SYMBOL_STYLE_DLG 24000 //IDD_GLOBAL_USERDEFINE_DLG + 4000
#define IDC_HAS_ESCAPE (IDD_SYMBOL_STYLE_DLG + 1)
#define IDC_ESCAPE_CHAR (IDD_SYMBOL_STYLE_DLG + 2)
#define IDC_SYMBOL (IDD_SYMBOL_STYLE_DLG + 100)
#define IDC_ACTIVATED_SYMBOL_STATIC (IDC_SYMBOL + 1)
#define IDC_ACTIVATED_SYMBOL_LIST (IDC_SYMBOL + 2)

View File

@ -240,6 +240,8 @@ static void ColouriseUserDoc(unsigned int startPos, int length, int initStyle, W
char delimOpen[3];
char delimClose[3];
bool escaped = false;
char escapeChar = static_cast<char>(styler.GetPropertyInt("userDefine.escapeChar", 0));
for (int i = 0 ; i < 3 ; i++)
{
@ -264,22 +266,40 @@ static void ColouriseUserDoc(unsigned int startPos, int length, int initStyle, W
case SCE_USER_DELIMITER1 :
{
if (delimClose[0] && (sc.ch == delimClose[0]))
sc.ForwardSetState(SCE_USER_DEFAULT);
if (sc.ch == escapeChar)
escaped = !escaped;
else
{
if (delimClose[0] && (sc.ch == delimClose[0]) && !escaped)
sc.ForwardSetState(SCE_USER_DEFAULT);
escaped = false;
}
break;
}
case SCE_USER_DELIMITER2 :
{
if (delimClose[0] && (sc.ch == delimClose[1]))
sc.ForwardSetState(SCE_USER_DEFAULT);
if (sc.ch == escapeChar)
escaped = !escaped;
else
{
if (delimClose[0] && (sc.ch == delimClose[1]) && !escaped)
sc.ForwardSetState(SCE_USER_DEFAULT);
escaped = false;
}
break;
}
case SCE_USER_DELIMITER3 :
{
if (delimClose[0] && (sc.ch == delimClose[2]))
sc.ForwardSetState(SCE_USER_DEFAULT);
if (sc.ch == escapeChar)
escaped = !escaped;
else
{
if (delimClose[0] && (sc.ch == delimClose[2]) && !escaped)
sc.ForwardSetState(SCE_USER_DEFAULT);
escaped = false;
}
break;
}
@ -395,11 +415,20 @@ static void ColouriseUserDoc(unsigned int startPos, int length, int initStyle, W
sc.SetState(SCE_USER_NUMBER);
//else if (symbols.InList(aSymbol))
else if (delimOpen[0] && (sc.ch == delimOpen[0]))
{
escaped = false;
sc.SetState(SCE_USER_DELIMITER1);
}
else if (delimOpen[0] && (sc.ch == delimOpen[1]))
{
escaped = false;
sc.SetState(SCE_USER_DELIMITER2);
}
else if (delimOpen[0] && (sc.ch == delimOpen[2]))
{
escaped = false;
sc.SetState(SCE_USER_DELIMITER3);
}
else if (isInOpList(symbols, sc.ch))
sc.SetState(SCE_USER_OPERATOR);
else if (isAWordStart(sc.ch))

View File

@ -1,582 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="SciLexer.7"
ProjectGUID="{55121E73-EAE3-438B-A537-BABBCA29B084}"
Keyword="Win32Proj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="Debug"
ConfigurationType="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\include;..\src"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SCILEXER7_EXPORTS;SCI_LEXER"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Imm32.lib"
OutputFile="$(OutDir)/SciLexer.dll"
LinkIncremental="2"
ModuleDefinitionFile="..\win32\Scintilla.def"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="$(OutDir)/SciLexer.7.pdb"
SubSystem="2"
ImportLibrary="$(OutDir)/SciLexer.7.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="Release"
ConfigurationType="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\include;..\src"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCILEXER7_EXPORTS;SCI_LEXER"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Imm32.lib"
OutputFile="$(OutDir)/SciLexer.dll"
LinkIncremental="1"
ModuleDefinitionFile="..\win32\Scintilla.def"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/SciLexer.7.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<File
RelativePath="..\src\AutoComplete.cxx">
</File>
<File
RelativePath="..\src\CallTip.cxx">
</File>
<File
RelativePath="..\src\CellBuffer.cxx">
</File>
<File
RelativePath="..\src\CharClassify.cxx">
</File>
<File
RelativePath="..\src\ContractionState.cxx">
</File>
<File
RelativePath="..\src\Decoration.cxx">
</File>
<File
RelativePath="..\src\Document.cxx">
</File>
<File
RelativePath="..\src\DocumentAccessor.cxx">
</File>
<File
RelativePath="..\src\Editor.cxx">
</File>
<File
RelativePath="..\src\ExternalLexer.cxx">
</File>
<File
RelativePath="..\src\Indicator.cxx">
</File>
<File
RelativePath="..\src\KeyMap.cxx">
</File>
<File
RelativePath="..\src\KeyWords.cxx">
</File>
<File
RelativePath="..\src\LineMarker.cxx">
</File>
<File
RelativePath="..\src\PositionCache.cxx">
</File>
<File
RelativePath="..\src\PropSet.cxx">
</File>
<File
RelativePath="..\src\RESearch.cxx">
</File>
<File
RelativePath="..\src\RunStyles.cxx">
</File>
<File
RelativePath="..\src\ScintillaBase.cxx">
</File>
<File
RelativePath="..\src\Style.cxx">
</File>
<File
RelativePath="..\src\StyleContext.cxx">
</File>
<File
RelativePath="..\src\UniConversion.cxx">
</File>
<File
RelativePath="..\src\ViewStyle.cxx">
</File>
<File
RelativePath="..\src\WindowAccessor.cxx">
</File>
<File
RelativePath="..\src\XPM.cxx">
</File>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\win32\PlatWin.cxx">
</File>
<File
RelativePath="..\win32\ScintillaWin.cxx">
</File>
</Filter>
<Filter
Name="Lexer"
Filter="">
<File
RelativePath="..\src\LexAbaqus.cxx">
</File>
<File
RelativePath="..\src\LexAda.cxx">
</File>
<File
RelativePath="..\src\LexAPDL.cxx">
</File>
<File
RelativePath="..\src\LexAsm.cxx">
</File>
<File
RelativePath="..\src\LexAsn1.cxx">
</File>
<File
RelativePath="..\src\LexASY.cxx">
</File>
<File
RelativePath="..\src\LexAU3.cxx">
</File>
<File
RelativePath="..\src\LexAVE.cxx">
</File>
<File
RelativePath="..\src\LexBaan.cxx">
</File>
<File
RelativePath="..\src\LexBash.cxx">
</File>
<File
RelativePath="..\src\LexBasic.cxx">
</File>
<File
RelativePath="..\src\LexBullant.cxx">
</File>
<File
RelativePath="..\src\LexCaml.cxx">
</File>
<File
RelativePath="..\src\LexCLW.cxx">
</File>
<File
RelativePath="..\src\LexCmake.cxx">
</File>
<File
RelativePath="..\src\LexConf.cxx">
</File>
<File
RelativePath="..\src\LexCPP.cxx">
</File>
<File
RelativePath="..\src\LexCrontab.cxx">
</File>
<File
RelativePath="..\src\LexCsound.cxx">
</File>
<File
RelativePath="..\src\LexCSS.cxx">
</File>
<File
RelativePath="..\src\LexD.cxx">
</File>
<File
RelativePath="..\src\LexEiffel.cxx">
</File>
<File
RelativePath="..\src\LexErlang.cxx">
</File>
<File
RelativePath="..\src\LexEScript.cxx">
</File>
<File
RelativePath="..\src\LexFlagship.cxx">
</File>
<File
RelativePath="..\src\LexForth.cxx">
</File>
<File
RelativePath="..\src\LexFortran.cxx">
</File>
<File
RelativePath="..\src\LexGAP.cxx">
</File>
<File
RelativePath="..\src\LexGui4Cli.cxx">
</File>
<File
RelativePath="..\src\LexHaskell.cxx">
</File>
<File
RelativePath="..\src\LexHTML.cxx">
</File>
<File
RelativePath="..\src\LexInno.cxx">
</File>
<File
RelativePath="..\src\LexKix.cxx">
</File>
<File
RelativePath="..\src\LexLisp.cxx">
</File>
<File
RelativePath="..\src\LexLout.cxx">
</File>
<File
RelativePath="..\src\LexLua.cxx">
</File>
<File
RelativePath="..\src\LexMagik.cxx">
</File>
<File
RelativePath="..\src\LexMatlab.cxx">
</File>
<File
RelativePath="..\src\LexMetapost.cxx">
</File>
<File
RelativePath="..\src\LexMMIXAL.cxx">
</File>
<File
RelativePath="..\src\LexMPT.cxx">
</File>
<File
RelativePath="..\src\LexMSSQL.cxx">
</File>
<File
RelativePath="..\src\LexNsis.cxx">
</File>
<File
RelativePath="..\src\LexObjC.cxx">
</File>
<File
RelativePath="..\src\LexOpal.cxx">
</File>
<File
RelativePath="..\src\LexOthers.cxx">
</File>
<File
RelativePath="..\src\LexPascal.cxx">
</File>
<File
RelativePath="..\src\LexPB.cxx">
</File>
<File
RelativePath="..\src\LexPerl.cxx">
</File>
<File
RelativePath="..\src\LexPLM.cxx">
</File>
<File
RelativePath="..\src\LexPOV.cxx">
</File>
<File
RelativePath="..\src\LexPowerShell.cxx">
</File>
<File
RelativePath="..\src\LexProgress.cxx">
</File>
<File
RelativePath="..\src\LexPS.cxx">
</File>
<File
RelativePath="..\src\LexPython.cxx">
</File>
<File
RelativePath="..\src\LexR.cxx">
</File>
<File
RelativePath="..\src\LexRebol.cxx">
</File>
<File
RelativePath="..\src\LexRuby.cxx">
</File>
<File
RelativePath="..\src\LexScriptol.cxx">
</File>
<File
RelativePath="..\src\LexSearchResult.cxx">
</File>
<File
RelativePath="..\src\LexSmalltalk.cxx">
</File>
<File
RelativePath="..\src\LexSpecman.cxx">
</File>
<File
RelativePath="..\src\LexSpice.cxx">
</File>
<File
RelativePath="..\src\LexSQL.cxx">
</File>
<File
RelativePath="..\src\LexTADS3.cxx">
</File>
<File
RelativePath="..\src\LexTCL.cxx">
</File>
<File
RelativePath="..\src\LexTeX.cxx">
</File>
<File
RelativePath="..\src\LexUser.cxx">
</File>
<File
RelativePath="..\src\LexVB.cxx">
</File>
<File
RelativePath="..\src\LexVerilog.cxx">
</File>
<File
RelativePath="..\src\LexVHDL.cxx">
</File>
<File
RelativePath="..\src\LexYAML.cxx">
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<File
RelativePath="..\src\AutoComplete.h">
</File>
<File
RelativePath="..\src\CallTip.h">
</File>
<File
RelativePath="..\src\CellBuffer.h">
</File>
<File
RelativePath="..\src\CharacterSet.h">
</File>
<File
RelativePath="..\src\CharClassify.h">
</File>
<File
RelativePath="..\src\ContractionState.h">
</File>
<File
RelativePath="..\src\Decoration.h">
</File>
<File
RelativePath="..\src\Document.h">
</File>
<File
RelativePath="..\src\DocumentAccessor.h">
</File>
<File
RelativePath="..\src\Editor.h">
</File>
<File
RelativePath="..\src\ExternalLexer.h">
</File>
<File
RelativePath="..\src\Indicator.h">
</File>
<File
RelativePath="..\src\KeyMap.h">
</File>
<File
RelativePath="..\src\LineMarker.h">
</File>
<File
RelativePath="..\src\Partitioning.h">
</File>
<File
RelativePath="..\src\PositionCache.h">
</File>
<File
RelativePath="..\src\RESearch.h">
</File>
<File
RelativePath="..\src\RunStyles.h">
</File>
<File
RelativePath="..\src\ScintillaBase.h">
</File>
<File
RelativePath="..\src\SplitVector.h">
</File>
<File
RelativePath="..\src\Style.h">
</File>
<File
RelativePath="..\src\StyleContext.h">
</File>
<File
RelativePath="..\src\SVector.h">
</File>
<File
RelativePath="..\src\UniConversion.h">
</File>
<File
RelativePath="..\src\ViewStyle.h">
</File>
<File
RelativePath="..\src\XPM.h">
</File>
<Filter
Name="Include"
Filter="">
<File
RelativePath="..\include\Accessor.h">
</File>
<File
RelativePath="..\include\KeyWords.h">
</File>
<File
RelativePath="..\include\Platform.h">
</File>
<File
RelativePath="..\include\PropSet.h">
</File>
<File
RelativePath="..\include\SciLexer.h">
</File>
<File
RelativePath="..\include\Scintilla.h">
</File>
<File
RelativePath="..\include\ScintillaWidget.h">
</File>
<File
RelativePath="..\include\SString.h">
</File>
<File
RelativePath="..\include\WindowAccessor.h">
</File>
</Filter>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\win32\PlatformRes.h">
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath="..\include\Face.py">
</File>
<File
RelativePath="..\include\HFacer.py">
</File>
<File
RelativePath="..\src\LexGen.py">
</File>
<File
RelativePath="..\win32\Margin.cur">
</File>
<File
RelativePath="..\win32\Scintilla.def">
</File>
<File
RelativePath="..\include\Scintilla.iface">
</File>
<File
RelativePath="..\win32\ScintRes.rc">
</File>
<File
RelativePath="..\src\SciTE.properties">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

File diff suppressed because it is too large Load Diff