mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-23 13:54:54 +02:00
Add smart highlighting extension to anothe view option
Add new option to enable smat highlighting extension to anothe view, while both views are visible side by side.
This commit is contained in:
parent
a82d9f9981
commit
3924190fb1
@ -717,6 +717,7 @@
|
|||||||
<Item id="6332" name="區別大小寫"/>
|
<Item id="6332" name="區別大小寫"/>
|
||||||
<Item id="6338" name="僅符合整個單字"/>
|
<Item id="6338" name="僅符合整個單字"/>
|
||||||
<Item id="6339" name="使用搜尋對話框的設定"/>
|
<Item id="6339" name="使用搜尋對話框的設定"/>
|
||||||
|
<Item id="6340" name="高亮度延伸至另一視窗"/>
|
||||||
<Item id="6329" name="高亮度顯示相契合的 xml/html 標示 (tag)"/>
|
<Item id="6329" name="高亮度顯示相契合的 xml/html 標示 (tag)"/>
|
||||||
<Item id="6327" name="啟動"/>
|
<Item id="6327" name="啟動"/>
|
||||||
<Item id="6328" name="高亮度顯示屬性 (tag attributes)"/>
|
<Item id="6328" name="高亮度顯示屬性 (tag attributes)"/>
|
||||||
|
@ -715,6 +715,7 @@
|
|||||||
<Item id="6332" name="Match case"/>
|
<Item id="6332" name="Match case"/>
|
||||||
<Item id="6338" name="Match whole word only"/>
|
<Item id="6338" name="Match whole word only"/>
|
||||||
<Item id="6339" name="Use Find dialog settings"/>
|
<Item id="6339" name="Use Find dialog settings"/>
|
||||||
|
<Item id="6340" name="Highlight another view"/>
|
||||||
<Item id="6329" name="Highlight Matching Tags"/>
|
<Item id="6329" name="Highlight Matching Tags"/>
|
||||||
<Item id="6327" name="Enable"/>
|
<Item id="6327" name="Enable"/>
|
||||||
<Item id="6328" name="Highlight tag attributes"/>
|
<Item id="6328" name="Highlight tag attributes"/>
|
||||||
|
@ -700,6 +700,7 @@
|
|||||||
<Item id="6332" name="Case sensible"/>
|
<Item id="6332" name="Case sensible"/>
|
||||||
<Item id="6338" name="Mot entier uniquement"/>
|
<Item id="6338" name="Mot entier uniquement"/>
|
||||||
<Item id="6339" name="Utiliser les paramètres de Recherche"/>
|
<Item id="6339" name="Utiliser les paramètres de Recherche"/>
|
||||||
|
<Item id="6340" name="Sur l'autre vue également"/>
|
||||||
<Item id="6329" name="Surligner les tags ouverture/fermeture"/>
|
<Item id="6329" name="Surligner les tags ouverture/fermeture"/>
|
||||||
<Item id="6327" name="Activer"/>
|
<Item id="6327" name="Activer"/>
|
||||||
<Item id="6328" name="Les attributs de tag"/>
|
<Item id="6328" name="Les attributs de tag"/>
|
||||||
|
@ -37,15 +37,21 @@
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
// Only for 2 main Scintilla editors
|
||||||
|
|
||||||
|
|
||||||
BOOL Notepad_plus::notify(SCNotification *notification)
|
BOOL Notepad_plus::notify(SCNotification *notification)
|
||||||
{
|
{
|
||||||
//Important, keep track of which element generated the message
|
//Important, keep track of which element generated the message
|
||||||
bool isFromPrimary = (_mainEditView.getHSelf() == notification->nmhdr.hwndFrom || _mainDocTab.getHSelf() == notification->nmhdr.hwndFrom);
|
bool isFromPrimary = (_mainEditView.getHSelf() == notification->nmhdr.hwndFrom || _mainDocTab.getHSelf() == notification->nmhdr.hwndFrom);
|
||||||
bool isFromSecondary = !isFromPrimary && (_subEditView.getHSelf() == notification->nmhdr.hwndFrom || _subDocTab.getHSelf() == notification->nmhdr.hwndFrom);
|
bool isFromSecondary = !isFromPrimary && (_subEditView.getHSelf() == notification->nmhdr.hwndFrom || _subDocTab.getHSelf() == notification->nmhdr.hwndFrom);
|
||||||
ScintillaEditView * notifyView = isFromPrimary?&_mainEditView:&_subEditView;
|
|
||||||
|
ScintillaEditView * notifyView = nullptr;
|
||||||
|
if (isFromPrimary)
|
||||||
|
notifyView = &_mainEditView;
|
||||||
|
else if (isFromSecondary)
|
||||||
|
notifyView = &_subEditView;
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
DocTabView *notifyDocTab = isFromPrimary?&_mainDocTab:&_subDocTab;
|
DocTabView *notifyDocTab = isFromPrimary?&_mainDocTab:&_subDocTab;
|
||||||
TBHDR * tabNotification = (TBHDR*) notification;
|
TBHDR * tabNotification = (TBHDR*) notification;
|
||||||
switch (notification->nmhdr.code)
|
switch (notification->nmhdr.code)
|
||||||
@ -485,7 +491,10 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
|||||||
_pEditView->marginClick(notification->position, notification->modifiers);
|
_pEditView->marginClick(notification->position, notification->modifiers);
|
||||||
if (_pDocMap)
|
if (_pDocMap)
|
||||||
_pDocMap->fold(lineClick, _pEditView->isFolded(lineClick));
|
_pDocMap->fold(lineClick, _pEditView->isFolded(lineClick));
|
||||||
_smartHighlighter.highlightView(_pEditView);
|
|
||||||
|
ScintillaEditView * unfocusView = isFromPrimary ? &_subEditView : &_mainEditView;
|
||||||
|
|
||||||
|
_smartHighlighter.highlightView(_pEditView, unfocusView);
|
||||||
}
|
}
|
||||||
else if ((notification->margin == ScintillaEditView::_SC_MARGE_SYBOLE) && !notification->modifiers)
|
else if ((notification->margin == ScintillaEditView::_SC_MARGE_SYBOLE) && !notification->modifiers)
|
||||||
{
|
{
|
||||||
@ -692,6 +701,7 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
|||||||
case SCN_UPDATEUI:
|
case SCN_UPDATEUI:
|
||||||
{
|
{
|
||||||
NppParameters *nppParam = NppParameters::getInstance();
|
NppParameters *nppParam = NppParameters::getInstance();
|
||||||
|
NppGUI & nppGui = const_cast<NppGUI &>(nppParam->getNppGUI());
|
||||||
|
|
||||||
// replacement for obsolete custom SCN_SCROLLED
|
// replacement for obsolete custom SCN_SCROLLED
|
||||||
if (notification->updated & SC_UPDATE_V_SCROLL)
|
if (notification->updated & SC_UPDATE_V_SCROLL)
|
||||||
@ -705,13 +715,21 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
|||||||
if (nppParam->_isFindReplacing)
|
if (nppParam->_isFindReplacing)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (notification->nmhdr.hwndFrom != _pEditView->getHSelf())
|
if (notification->nmhdr.hwndFrom != _pEditView->getHSelf()) // notification come from unfocus view - both views ae visible
|
||||||
|
{
|
||||||
|
//ScintillaEditView * unfocusView = isFromPrimary ? &_subEditView : &_mainEditView;
|
||||||
|
if (nppGui._smartHiliteOnAnotherView &&
|
||||||
|
_pEditView->getCurrentBufferID() != notifyView->getCurrentBufferID())
|
||||||
|
{
|
||||||
|
TCHAR selectedText[1024];
|
||||||
|
_pEditView->getGenericSelectedText(selectedText, sizeof(selectedText)/sizeof(TCHAR), false);
|
||||||
|
_smartHighlighter.highlightViewWithWord(notifyView, selectedText);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
braceMatch();
|
braceMatch();
|
||||||
|
|
||||||
NppGUI & nppGui = const_cast<NppGUI &>(nppParam->getNppGUI());
|
|
||||||
|
|
||||||
if (nppGui._enableTagsMatchHilite)
|
if (nppGui._enableTagsMatchHilite)
|
||||||
{
|
{
|
||||||
XmlMatchedTagsHighlighter xmlTagMatchHiliter(_pEditView);
|
XmlMatchedTagsHighlighter xmlTagMatchHiliter(_pEditView);
|
||||||
@ -723,7 +741,10 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
|||||||
if (nppGui._disableSmartHiliteTmp)
|
if (nppGui._disableSmartHiliteTmp)
|
||||||
nppGui._disableSmartHiliteTmp = false;
|
nppGui._disableSmartHiliteTmp = false;
|
||||||
else
|
else
|
||||||
_smartHighlighter.highlightView(notifyView);
|
{
|
||||||
|
ScintillaEditView * anbotherView = isFromPrimary ? &_subEditView : &_mainEditView;
|
||||||
|
_smartHighlighter.highlightView(notifyView, anbotherView);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateStatusBar();
|
updateStatusBar();
|
||||||
@ -799,7 +820,8 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
|||||||
|
|
||||||
case SCN_ZOOM:
|
case SCN_ZOOM:
|
||||||
{
|
{
|
||||||
_smartHighlighter.highlightView(notifyView);
|
ScintillaEditView * unfocusView = isFromPrimary ? &_subEditView : &_mainEditView;
|
||||||
|
_smartHighlighter.highlightView(notifyView, unfocusView);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4031,6 +4031,15 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
|
|||||||
else if (!lstrcmp(val, TEXT("no")))
|
else if (!lstrcmp(val, TEXT("no")))
|
||||||
_nppGUI._smartHiliteUseFindSettings = false;
|
_nppGUI._smartHiliteUseFindSettings = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val = element->Attribute(TEXT("onAnotherView"));
|
||||||
|
if (val)
|
||||||
|
{
|
||||||
|
if (!lstrcmp(val, TEXT("yes")))
|
||||||
|
_nppGUI._smartHiliteOnAnotherView = true;
|
||||||
|
else if (!lstrcmp(val, TEXT("no")))
|
||||||
|
_nppGUI._smartHiliteOnAnotherView = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5438,12 +5447,13 @@ void NppParameters::createXmlTreeFromGUIParams()
|
|||||||
GUIConfigElement->SetAttribute(TEXT("searchEngineCustom"), _nppGUI._searchEngineCustom);
|
GUIConfigElement->SetAttribute(TEXT("searchEngineCustom"), _nppGUI._searchEngineCustom);
|
||||||
}
|
}
|
||||||
|
|
||||||
// <GUIConfig name="SmartHighLight" matchCase="no" wholeWordOnly="yes" useFindSettings="no">yes</GUIConfig>
|
// <GUIConfig name="SmartHighLight" matchCase="no" wholeWordOnly="yes" useFindSettings="no" onAnotherView="no">yes</GUIConfig>
|
||||||
{
|
{
|
||||||
TiXmlElement *GUIConfigElement = insertGUIConfigBoolNode(newGUIRoot, TEXT("SmartHighLight"), _nppGUI._enableSmartHilite);
|
TiXmlElement *GUIConfigElement = insertGUIConfigBoolNode(newGUIRoot, TEXT("SmartHighLight"), _nppGUI._enableSmartHilite);
|
||||||
GUIConfigElement->SetAttribute(TEXT("matchCase"), _nppGUI._smartHiliteCaseSensitive ? TEXT("yes") : TEXT("no"));
|
GUIConfigElement->SetAttribute(TEXT("matchCase"), _nppGUI._smartHiliteCaseSensitive ? TEXT("yes") : TEXT("no"));
|
||||||
GUIConfigElement->SetAttribute(TEXT("wholeWordOnly"), _nppGUI._smartHiliteWordOnly ? TEXT("yes") : TEXT("no"));
|
GUIConfigElement->SetAttribute(TEXT("wholeWordOnly"), _nppGUI._smartHiliteWordOnly ? TEXT("yes") : TEXT("no"));
|
||||||
GUIConfigElement->SetAttribute(TEXT("useFindSettings"), _nppGUI._smartHiliteUseFindSettings ? TEXT("yes") : TEXT("no"));
|
GUIConfigElement->SetAttribute(TEXT("useFindSettings"), _nppGUI._smartHiliteUseFindSettings ? TEXT("yes") : TEXT("no"));
|
||||||
|
GUIConfigElement->SetAttribute(TEXT("onAnotherView"), _nppGUI._smartHiliteOnAnotherView ? TEXT("yes") : TEXT("no"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// <GUIConfig name="ScintillaPrimaryView" lineNumberMargin="show" bookMarkMargin="show" indentGuideLine="show" folderMarkStyle="box" lineWrapMethod="aligned" currentLineHilitingShow="show" scrollBeyondLastLine="no" disableAdvancedScrolling="no" wrapSymbolShow="hide" Wrap="no" borderEdge="yes" edge="no" edgeNbColumn="80" zoom="0" zoom2="0" whiteSpaceShow="hide" eolShow="hide" borderWidth="2" smoothFont="no" />
|
// <GUIConfig name="ScintillaPrimaryView" lineNumberMargin="show" bookMarkMargin="show" indentGuideLine="show" folderMarkStyle="box" lineWrapMethod="aligned" currentLineHilitingShow="show" scrollBeyondLastLine="no" disableAdvancedScrolling="no" wrapSymbolShow="hide" Wrap="no" borderEdge="yes" edge="no" edgeNbColumn="80" zoom="0" zoom2="0" whiteSpaceShow="hide" eolShow="hide" borderWidth="2" smoothFont="no" />
|
||||||
|
@ -750,6 +750,7 @@ struct NppGUI final
|
|||||||
bool _smartHiliteCaseSensitive = false;
|
bool _smartHiliteCaseSensitive = false;
|
||||||
bool _smartHiliteWordOnly = true;
|
bool _smartHiliteWordOnly = true;
|
||||||
bool _smartHiliteUseFindSettings = false;
|
bool _smartHiliteUseFindSettings = false;
|
||||||
|
bool _smartHiliteOnAnotherView = false;
|
||||||
|
|
||||||
bool _disableSmartHiliteTmp = false;
|
bool _disableSmartHiliteTmp = false;
|
||||||
bool _enableTagsMatchHilite = true;
|
bool _enableTagsMatchHilite = true;
|
||||||
|
@ -1631,14 +1631,18 @@ int FindReplaceDlg::processAll(ProcessOperation op, const FindOption *opt, bool
|
|||||||
return processRange(op, findReplaceInfo, pFindersInfo, pOptions, colourStyleID);
|
return processRange(op, findReplaceInfo, pFindersInfo, pOptions, colourStyleID);
|
||||||
}
|
}
|
||||||
|
|
||||||
int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findReplaceInfo, const FindersInfo * pFindersInfo, const FindOption *opt, int colourStyleID)
|
int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findReplaceInfo, const FindersInfo * pFindersInfo, const FindOption *opt, int colourStyleID, ScintillaEditView *view2Process)
|
||||||
{
|
{
|
||||||
int nbProcessed = 0;
|
int nbProcessed = 0;
|
||||||
|
|
||||||
if (!isCreated() && not findReplaceInfo._txt2find)
|
if (!isCreated() && not findReplaceInfo._txt2find)
|
||||||
return nbProcessed;
|
return nbProcessed;
|
||||||
|
|
||||||
if ((op == ProcessReplaceAll) && (*_ppEditView)->getCurrentBuffer()->isReadOnly())
|
ScintillaEditView *pEditView = *_ppEditView;
|
||||||
|
if (view2Process)
|
||||||
|
pEditView = view2Process;
|
||||||
|
|
||||||
|
if ((op == ProcessReplaceAll) && pEditView->getCurrentBuffer()->isReadOnly())
|
||||||
return nbProcessed;
|
return nbProcessed;
|
||||||
|
|
||||||
if (findReplaceInfo._startRange == findReplaceInfo._endRange)
|
if (findReplaceInfo._startRange == findReplaceInfo._endRange)
|
||||||
@ -1710,9 +1714,9 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
if (op == ProcessMarkAll && colourStyleID == -1) //if marking, check if purging is needed
|
if (op == ProcessMarkAll && colourStyleID == -1) //if marking, check if purging is needed
|
||||||
{
|
{
|
||||||
if (_env->_doPurge) {
|
if (_env->_doPurge) {
|
||||||
(*_ppEditView)->clearIndicator(SCE_UNIVERSAL_FOUND_STYLE);
|
pEditView->clearIndicator(SCE_UNIVERSAL_FOUND_STYLE);
|
||||||
if (_env->_doMarkLine)
|
if (_env->_doMarkLine)
|
||||||
(*_ppEditView)->execute(SCI_MARKERDELETEALL, MARK_BOOKMARK);
|
pEditView->execute(SCI_MARKERDELETEALL, MARK_BOOKMARK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1720,20 +1724,20 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
int targetEnd = 0;
|
int targetEnd = 0;
|
||||||
|
|
||||||
//Initial range for searching
|
//Initial range for searching
|
||||||
(*_ppEditView)->execute(SCI_SETSEARCHFLAGS, flags);
|
pEditView->execute(SCI_SETSEARCHFLAGS, flags);
|
||||||
|
|
||||||
|
|
||||||
bool findAllFileNameAdded = false;
|
bool findAllFileNameAdded = false;
|
||||||
|
|
||||||
while (targetStart != -1 && targetStart != -2)
|
while (targetStart != -1 && targetStart != -2)
|
||||||
{
|
{
|
||||||
targetStart = (*_ppEditView)->searchInTarget(pTextFind, stringSizeFind, findReplaceInfo._startRange, findReplaceInfo._endRange);
|
targetStart = pEditView->searchInTarget(pTextFind, stringSizeFind, findReplaceInfo._startRange, findReplaceInfo._endRange);
|
||||||
|
|
||||||
// If we've not found anything, just break out of the loop
|
// If we've not found anything, just break out of the loop
|
||||||
if (targetStart == -1 || targetStart == -2)
|
if (targetStart == -1 || targetStart == -2)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
targetEnd = int((*_ppEditView)->execute(SCI_GETTARGETEND));
|
targetEnd = int(pEditView->execute(SCI_GETTARGETEND));
|
||||||
|
|
||||||
if (targetEnd > findReplaceInfo._endRange) { //we found a result but outside our range, therefore do not process it
|
if (targetEnd > findReplaceInfo._endRange) { //we found a result but outside our range, therefore do not process it
|
||||||
break;
|
break;
|
||||||
@ -1757,9 +1761,9 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
findAllFileNameAdded = true;
|
findAllFileNameAdded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto lineNumber = (*_ppEditView)->execute(SCI_LINEFROMPOSITION, targetStart);
|
auto lineNumber = pEditView->execute(SCI_LINEFROMPOSITION, targetStart);
|
||||||
int lend = static_cast<int32_t>((*_ppEditView)->execute(SCI_GETLINEENDPOSITION, lineNumber));
|
int lend = static_cast<int32_t>(pEditView->execute(SCI_GETLINEENDPOSITION, lineNumber));
|
||||||
int lstart = static_cast<int32_t>((*_ppEditView)->execute(SCI_POSITIONFROMLINE, lineNumber));
|
int lstart = static_cast<int32_t>(pEditView->execute(SCI_POSITIONFROMLINE, lineNumber));
|
||||||
int nbChar = lend - lstart;
|
int nbChar = lend - lstart;
|
||||||
|
|
||||||
// use the static buffer
|
// use the static buffer
|
||||||
@ -1771,7 +1775,7 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
int start_mark = targetStart - lstart;
|
int start_mark = targetStart - lstart;
|
||||||
int end_mark = targetEnd - lstart;
|
int end_mark = targetEnd - lstart;
|
||||||
|
|
||||||
(*_ppEditView)->getGenericText(lineBuf, 1024, lstart, lend, &start_mark, &end_mark);
|
pEditView->getGenericText(lineBuf, 1024, lstart, lend, &start_mark, &end_mark);
|
||||||
|
|
||||||
generic_string line = lineBuf;
|
generic_string line = lineBuf;
|
||||||
line += TEXT("\r\n");
|
line += TEXT("\r\n");
|
||||||
@ -1796,9 +1800,9 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
findAllFileNameAdded = true;
|
findAllFileNameAdded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto lineNumber = (*_ppEditView)->execute(SCI_LINEFROMPOSITION, targetStart);
|
auto lineNumber = pEditView->execute(SCI_LINEFROMPOSITION, targetStart);
|
||||||
int lend = static_cast<int32_t>((*_ppEditView)->execute(SCI_GETLINEENDPOSITION, lineNumber));
|
int lend = static_cast<int32_t>(pEditView->execute(SCI_GETLINEENDPOSITION, lineNumber));
|
||||||
int lstart = static_cast<int32_t>((*_ppEditView)->execute(SCI_POSITIONFROMLINE, lineNumber));
|
int lstart = static_cast<int32_t>(pEditView->execute(SCI_POSITIONFROMLINE, lineNumber));
|
||||||
int nbChar = lend - lstart;
|
int nbChar = lend - lstart;
|
||||||
|
|
||||||
// use the static buffer
|
// use the static buffer
|
||||||
@ -1810,7 +1814,7 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
int start_mark = targetStart - lstart;
|
int start_mark = targetStart - lstart;
|
||||||
int end_mark = targetEnd - lstart;
|
int end_mark = targetEnd - lstart;
|
||||||
|
|
||||||
(*_ppEditView)->getGenericText(lineBuf, 1024, lstart, lend, &start_mark, &end_mark);
|
pEditView->getGenericText(lineBuf, 1024, lstart, lend, &start_mark, &end_mark);
|
||||||
|
|
||||||
generic_string line = lineBuf;
|
generic_string line = lineBuf;
|
||||||
line += TEXT("\r\n");
|
line += TEXT("\r\n");
|
||||||
@ -1834,9 +1838,9 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
{
|
{
|
||||||
int replacedLength;
|
int replacedLength;
|
||||||
if (isRegExp)
|
if (isRegExp)
|
||||||
replacedLength = (*_ppEditView)->replaceTargetRegExMode(pTextReplace);
|
replacedLength = pEditView->replaceTargetRegExMode(pTextReplace);
|
||||||
else
|
else
|
||||||
replacedLength = (*_ppEditView)->replaceTarget(pTextReplace);
|
replacedLength = pEditView->replaceTarget(pTextReplace);
|
||||||
|
|
||||||
replaceDelta = replacedLength - foundTextLen;
|
replaceDelta = replacedLength - foundTextLen;
|
||||||
break;
|
break;
|
||||||
@ -1850,17 +1854,17 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
// on the same line would simply not be shown. This may have been fixed in later version of Scintilla.
|
// on the same line would simply not be shown. This may have been fixed in later version of Scintilla.
|
||||||
if (foundTextLen > 0)
|
if (foundTextLen > 0)
|
||||||
{
|
{
|
||||||
(*_ppEditView)->execute(SCI_SETINDICATORCURRENT, SCE_UNIVERSAL_FOUND_STYLE);
|
pEditView->execute(SCI_SETINDICATORCURRENT, SCE_UNIVERSAL_FOUND_STYLE);
|
||||||
(*_ppEditView)->execute(SCI_INDICATORFILLRANGE, targetStart, foundTextLen);
|
pEditView->execute(SCI_INDICATORFILLRANGE, targetStart, foundTextLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_env->_doMarkLine)
|
if (_env->_doMarkLine)
|
||||||
{
|
{
|
||||||
auto lineNumber = (*_ppEditView)->execute(SCI_LINEFROMPOSITION, targetStart);
|
auto lineNumber = pEditView->execute(SCI_LINEFROMPOSITION, targetStart);
|
||||||
auto state = (*_ppEditView)->execute(SCI_MARKERGET, lineNumber);
|
auto state = pEditView->execute(SCI_MARKERGET, lineNumber);
|
||||||
|
|
||||||
if (!(state & (1 << MARK_BOOKMARK)))
|
if (!(state & (1 << MARK_BOOKMARK)))
|
||||||
(*_ppEditView)->execute(SCI_MARKERADD, lineNumber, MARK_BOOKMARK);
|
pEditView->execute(SCI_MARKERADD, lineNumber, MARK_BOOKMARK);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1870,8 +1874,8 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
// See comment by ProcessMarkAll
|
// See comment by ProcessMarkAll
|
||||||
if (foundTextLen > 0)
|
if (foundTextLen > 0)
|
||||||
{
|
{
|
||||||
(*_ppEditView)->execute(SCI_SETINDICATORCURRENT, colourStyleID);
|
pEditView->execute(SCI_SETINDICATORCURRENT, colourStyleID);
|
||||||
(*_ppEditView)->execute(SCI_INDICATORFILLRANGE, targetStart, foundTextLen);
|
pEditView->execute(SCI_INDICATORFILLRANGE, targetStart, foundTextLen);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1881,8 +1885,8 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
// See comment by ProcessMarkAll
|
// See comment by ProcessMarkAll
|
||||||
if (foundTextLen > 0)
|
if (foundTextLen > 0)
|
||||||
{
|
{
|
||||||
(*_ppEditView)->execute(SCI_SETINDICATORCURRENT, SCE_UNIVERSAL_FOUND_STYLE_SMART);
|
pEditView->execute(SCI_SETINDICATORCURRENT, SCE_UNIVERSAL_FOUND_STYLE_SMART);
|
||||||
(*_ppEditView)->execute(SCI_INDICATORFILLRANGE, targetStart, foundTextLen);
|
pEditView->execute(SCI_INDICATORFILLRANGE, targetStart, foundTextLen);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1892,8 +1896,8 @@ int FindReplaceDlg::processRange(ProcessOperation op, FindReplaceInfo & findRepl
|
|||||||
// See comment by ProcessMarkAll
|
// See comment by ProcessMarkAll
|
||||||
if (foundTextLen > 0)
|
if (foundTextLen > 0)
|
||||||
{
|
{
|
||||||
(*_ppEditView)->execute(SCI_SETINDICATORCURRENT, SCE_UNIVERSAL_FOUND_STYLE_INC);
|
pEditView->execute(SCI_SETINDICATORCURRENT, SCE_UNIVERSAL_FOUND_STYLE_INC);
|
||||||
(*_ppEditView)->execute(SCI_INDICATORFILLRANGE, targetStart, foundTextLen);
|
pEditView->execute(SCI_INDICATORFILLRANGE, targetStart, foundTextLen);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -255,7 +255,7 @@ public :
|
|||||||
|
|
||||||
|
|
||||||
int processAll(ProcessOperation op, const FindOption *opt, bool isEntire = false, const FindersInfo *pFindersInfo = nullptr, int colourStyleID = -1);
|
int processAll(ProcessOperation op, const FindOption *opt, bool isEntire = false, const FindersInfo *pFindersInfo = nullptr, int colourStyleID = -1);
|
||||||
int processRange(ProcessOperation op, FindReplaceInfo & findReplaceInfo, const FindersInfo *pFindersInfo, const FindOption *opt = NULL, int colourStyleID = -1);
|
int processRange(ProcessOperation op, FindReplaceInfo & findReplaceInfo, const FindersInfo *pFindersInfo, const FindOption *opt = nullptr, int colourStyleID = -1, ScintillaEditView *view2Process = nullptr);
|
||||||
|
|
||||||
void replaceAllInOpenedDocs();
|
void replaceAllInOpenedDocs();
|
||||||
void findAllIn(InWhat op);
|
void findAllIn(InWhat op);
|
||||||
|
@ -37,20 +37,97 @@ SmartHighlighter::SmartHighlighter(FindReplaceDlg * pFRDlg)
|
|||||||
//Nothing to do
|
//Nothing to do
|
||||||
}
|
}
|
||||||
|
|
||||||
void SmartHighlighter::highlightView(ScintillaEditView * pHighlightView)
|
void SmartHighlighter::highlightViewWithWord(ScintillaEditView * pHighlightView, const generic_string & word2Hilite)
|
||||||
|
{
|
||||||
|
// save target locations for other search functions
|
||||||
|
auto originalStartPos = pHighlightView->execute(SCI_GETTARGETSTART);
|
||||||
|
auto originalEndPos = pHighlightView->execute(SCI_GETTARGETEND);
|
||||||
|
|
||||||
|
// Get the range of text visible and highlight everything in it
|
||||||
|
auto firstLine = static_cast<int>(pHighlightView->execute(SCI_GETFIRSTVISIBLELINE));
|
||||||
|
auto nbLineOnScreen = pHighlightView->execute(SCI_LINESONSCREEN);
|
||||||
|
auto nrLines = min(nbLineOnScreen, MAXLINEHIGHLIGHT) + 1;
|
||||||
|
auto lastLine = firstLine + nrLines;
|
||||||
|
int startPos = 0;
|
||||||
|
int endPos = 0;
|
||||||
|
auto currentLine = firstLine;
|
||||||
|
int prevDocLineChecked = -1; //invalid start
|
||||||
|
|
||||||
|
// Determine mode for SmartHighlighting
|
||||||
|
bool isWordOnly = true;
|
||||||
|
bool isCaseSensentive = true;
|
||||||
|
|
||||||
|
const NppGUI & nppGUI = NppParameters::getInstance()->getNppGUI();
|
||||||
|
|
||||||
|
if (nppGUI._smartHiliteUseFindSettings)
|
||||||
|
{
|
||||||
|
// fetch find dialog's setting
|
||||||
|
NppParameters *nppParams = NppParameters::getInstance();
|
||||||
|
FindHistory &findHistory = nppParams->getFindHistory();
|
||||||
|
isWordOnly = findHistory._isMatchWord;
|
||||||
|
isCaseSensentive = findHistory._isMatchCase;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
isWordOnly = nppGUI._smartHiliteWordOnly;
|
||||||
|
isCaseSensentive = nppGUI._smartHiliteCaseSensitive;
|
||||||
|
}
|
||||||
|
|
||||||
|
FindOption fo;
|
||||||
|
fo._isMatchCase = isCaseSensentive;
|
||||||
|
fo._isWholeWord = isWordOnly;
|
||||||
|
|
||||||
|
FindReplaceInfo frInfo;
|
||||||
|
frInfo._txt2find = word2Hilite.c_str();
|
||||||
|
|
||||||
|
for (; currentLine < lastLine; ++currentLine)
|
||||||
|
{
|
||||||
|
int docLine = static_cast<int>(pHighlightView->execute(SCI_DOCLINEFROMVISIBLE, currentLine));
|
||||||
|
if (docLine == prevDocLineChecked)
|
||||||
|
continue; //still on same line (wordwrap)
|
||||||
|
prevDocLineChecked = docLine;
|
||||||
|
startPos = static_cast<int>(pHighlightView->execute(SCI_POSITIONFROMLINE, docLine));
|
||||||
|
endPos = static_cast<int>(pHighlightView->execute(SCI_POSITIONFROMLINE, docLine + 1));
|
||||||
|
|
||||||
|
frInfo._startRange = startPos;
|
||||||
|
frInfo._endRange = endPos;
|
||||||
|
if (endPos == -1)
|
||||||
|
{ //past EOF
|
||||||
|
frInfo._endRange = pHighlightView->getCurrentDocLen() - 1;
|
||||||
|
_pFRDlg->processRange(ProcessMarkAll_2, frInfo, NULL, &fo, -1, pHighlightView);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_pFRDlg->processRange(ProcessMarkAll_2, frInfo, NULL, &fo, -1, pHighlightView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// restore the original targets to avoid conflicts with the search/replace functions
|
||||||
|
pHighlightView->execute(SCI_SETTARGETRANGE, originalStartPos, originalEndPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SmartHighlighter::highlightView(ScintillaEditView * pHighlightView, ScintillaEditView * unfocusView)
|
||||||
{
|
{
|
||||||
// Clear marks
|
// Clear marks
|
||||||
pHighlightView->clearIndicator(SCE_UNIVERSAL_FOUND_STYLE_SMART);
|
pHighlightView->clearIndicator(SCE_UNIVERSAL_FOUND_STYLE_SMART);
|
||||||
|
|
||||||
|
const NppGUI & nppGUI = NppParameters::getInstance()->getNppGUI();
|
||||||
|
|
||||||
// If nothing selected, dont mark anything
|
// If nothing selected, dont mark anything
|
||||||
if (pHighlightView->execute(SCI_GETSELECTIONEMPTY) == 1)
|
if (pHighlightView->execute(SCI_GETSELECTIONEMPTY) == 1)
|
||||||
|
{
|
||||||
|
if (nppGUI._smartHiliteOnAnotherView && unfocusView && unfocusView->isVisible()
|
||||||
|
&& unfocusView->getCurrentBufferID() != pHighlightView->getCurrentBufferID())
|
||||||
|
{
|
||||||
|
unfocusView->clearIndicator(SCE_UNIVERSAL_FOUND_STYLE_SMART);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
auto curPos = pHighlightView->execute(SCI_GETCURRENTPOS);
|
auto curPos = pHighlightView->execute(SCI_GETCURRENTPOS);
|
||||||
auto range = pHighlightView->getSelection();
|
auto range = pHighlightView->getSelection();
|
||||||
|
|
||||||
const NppGUI & nppGUI = NppParameters::getInstance()->getNppGUI();
|
|
||||||
|
|
||||||
// Determine mode for SmartHighlighting
|
// Determine mode for SmartHighlighting
|
||||||
bool isWordOnly = true;
|
bool isWordOnly = true;
|
||||||
bool isCaseSensentive = true;
|
bool isCaseSensentive = true;
|
||||||
@ -84,57 +161,19 @@ void SmartHighlighter::highlightView(ScintillaEditView * pHighlightView)
|
|||||||
char * text2Find = new char[textlen];
|
char * text2Find = new char[textlen];
|
||||||
pHighlightView->getSelectedText(text2Find, textlen, false); //do not expand selection (false)
|
pHighlightView->getSelectedText(text2Find, textlen, false); //do not expand selection (false)
|
||||||
|
|
||||||
// save target locations for other search functions
|
|
||||||
auto originalStartPos = pHighlightView->execute(SCI_GETTARGETSTART);
|
|
||||||
auto originalEndPos = pHighlightView->execute(SCI_GETTARGETEND);
|
|
||||||
|
|
||||||
// Get the range of text visible and highlight everything in it
|
|
||||||
auto firstLine = static_cast<int>(pHighlightView->execute(SCI_GETFIRSTVISIBLELINE));
|
|
||||||
auto nbLineOnScreen = pHighlightView->execute(SCI_LINESONSCREEN);
|
|
||||||
auto nrLines = min(nbLineOnScreen, MAXLINEHIGHLIGHT ) + 1;
|
|
||||||
auto lastLine = firstLine + nrLines;
|
|
||||||
int startPos = 0;
|
|
||||||
int endPos = 0;
|
|
||||||
auto currentLine = firstLine;
|
|
||||||
int prevDocLineChecked = -1; //invalid start
|
|
||||||
|
|
||||||
FindOption fo;
|
|
||||||
fo._isMatchCase = isCaseSensentive;
|
|
||||||
fo._isWholeWord = isWordOnly;
|
|
||||||
|
|
||||||
const TCHAR * searchText = NULL;
|
|
||||||
|
|
||||||
WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance();
|
WcharMbcsConvertor *wmc = WcharMbcsConvertor::getInstance();
|
||||||
UINT cp = static_cast<UINT>(pHighlightView->execute(SCI_GETCODEPAGE));
|
UINT cp = static_cast<UINT>(pHighlightView->execute(SCI_GETCODEPAGE));
|
||||||
const TCHAR * text2FindW = wmc->char2wchar(text2Find, cp);
|
const TCHAR * text2FindW = wmc->char2wchar(text2Find, cp);
|
||||||
searchText = text2FindW;
|
|
||||||
|
|
||||||
for(; currentLine < lastLine; ++currentLine)
|
highlightViewWithWord(pHighlightView, text2FindW);
|
||||||
|
|
||||||
|
if (nppGUI._smartHiliteOnAnotherView && unfocusView && unfocusView->isVisible()
|
||||||
|
&& unfocusView->getCurrentBufferID() != pHighlightView->getCurrentBufferID())
|
||||||
{
|
{
|
||||||
int docLine = static_cast<int>(pHighlightView->execute(SCI_DOCLINEFROMVISIBLE, currentLine));
|
// Clear marks
|
||||||
if (docLine == prevDocLineChecked)
|
unfocusView->clearIndicator(SCE_UNIVERSAL_FOUND_STYLE_SMART);
|
||||||
continue; //still on same line (wordwrap)
|
highlightViewWithWord(unfocusView, text2FindW);
|
||||||
prevDocLineChecked = docLine;
|
|
||||||
startPos = static_cast<int>(pHighlightView->execute(SCI_POSITIONFROMLINE, docLine));
|
|
||||||
endPos = static_cast<int>(pHighlightView->execute(SCI_POSITIONFROMLINE, docLine + 1));
|
|
||||||
FindReplaceInfo frInfo;
|
|
||||||
frInfo._txt2find = searchText;
|
|
||||||
frInfo._startRange = startPos;
|
|
||||||
frInfo._endRange = endPos;
|
|
||||||
if (endPos == -1)
|
|
||||||
{ //past EOF
|
|
||||||
frInfo._endRange = pHighlightView->getCurrentDocLen() - 1;
|
|
||||||
_pFRDlg->processRange(ProcessMarkAll_2, frInfo, NULL, &fo);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_pFRDlg->processRange(ProcessMarkAll_2, frInfo, NULL, &fo);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// restore the original targets to avoid conflicts with the search/replace functions
|
|
||||||
pHighlightView->execute(SCI_SETTARGETRANGE, originalStartPos, originalEndPos);
|
|
||||||
|
|
||||||
delete[] text2Find;
|
delete[] text2Find;
|
||||||
}
|
}
|
||||||
|
@ -28,13 +28,17 @@
|
|||||||
#ifndef SMARTHIGHLIGHTER_H
|
#ifndef SMARTHIGHLIGHTER_H
|
||||||
#define SMARTHIGHLIGHTER_H
|
#define SMARTHIGHLIGHTER_H
|
||||||
|
|
||||||
|
#include "Common.h"
|
||||||
|
|
||||||
class ScintillaEditView;
|
class ScintillaEditView;
|
||||||
class FindReplaceDlg;
|
class FindReplaceDlg;
|
||||||
|
|
||||||
class SmartHighlighter {
|
class SmartHighlighter {
|
||||||
public:
|
public:
|
||||||
explicit SmartHighlighter(FindReplaceDlg * pFRDlg);
|
explicit SmartHighlighter(FindReplaceDlg * pFRDlg);
|
||||||
void highlightView(ScintillaEditView * pHighlightView);
|
void highlightView(ScintillaEditView * pHighlightView, ScintillaEditView * unfocusView);
|
||||||
|
void highlightViewWithWord(ScintillaEditView * pHighlightView, const generic_string & word2Hilite);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FindReplaceDlg * _pFRDlg;
|
FindReplaceDlg * _pFRDlg;
|
||||||
};
|
};
|
||||||
|
@ -229,11 +229,12 @@ IDD_PREFERENCE_HILITE_BOX DIALOGEX 0, 0, 455, 185
|
|||||||
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
|
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
|
||||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
GROUPBOX "Smart Highlighting",IDC_SMARTHILITING_STATIC,147,21,155,67,BS_CENTER
|
GROUPBOX "Smart Highlighting",IDC_SMARTHILITING_STATIC,147,21,155,81,BS_CENTER
|
||||||
CONTROL "Enable",IDC_CHECK_ENABLSMARTHILITE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,31,142,10
|
CONTROL "Enable",IDC_CHECK_ENABLSMARTHILITE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,31,142,10
|
||||||
CONTROL "Match case",IDC_CHECK_SMARTHILITECASESENSITIVE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,45,142,10
|
CONTROL "Match case",IDC_CHECK_SMARTHILITECASESENSITIVE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,45,142,10
|
||||||
CONTROL "Match whole word only",IDC_CHECK_SMARTHILITEWHOLEWORDONLY, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,58,142,10
|
CONTROL "Match whole word only",IDC_CHECK_SMARTHILITEWHOLEWORDONLY, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,58,142,10
|
||||||
CONTROL "Use Find dialog settings",IDC_CHECK_SMARTHILITEUSEFINDSETTINGS, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,72,142,10
|
CONTROL "Use Find dialog settings",IDC_CHECK_SMARTHILITEUSEFINDSETTINGS, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,72,142,10
|
||||||
|
CONTROL "Highlight another view",IDC_CHECK_SMARTHILITEANOTHERRVIEW, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,86,142,10
|
||||||
|
|
||||||
GROUPBOX "Highlight Matching Tags",IDC_TAGMATCHEDHILITE_STATIC,147,110,155,55,BS_CENTER
|
GROUPBOX "Highlight Matching Tags",IDC_TAGMATCHEDHILITE_STATIC,147,110,155,55,BS_CENTER
|
||||||
CONTROL "Enable",IDC_CHECK_ENABLTAGSMATCHHILITE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,120,140,10
|
CONTROL "Enable",IDC_CHECK_ENABLTAGSMATCHHILITE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,155,120,140,10
|
||||||
|
@ -1920,6 +1920,7 @@ INT_PTR CALLBACK Highlighting::run_dlgProc(UINT message, WPARAM wParam, LPARAM/*
|
|||||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_SMARTHILITECASESENSITIVE, BM_SETCHECK, nppGUI._smartHiliteCaseSensitive, 0);
|
::SendDlgItemMessage(_hSelf, IDC_CHECK_SMARTHILITECASESENSITIVE, BM_SETCHECK, nppGUI._smartHiliteCaseSensitive, 0);
|
||||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_SMARTHILITEWHOLEWORDONLY, BM_SETCHECK, nppGUI._smartHiliteWordOnly, 0);
|
::SendDlgItemMessage(_hSelf, IDC_CHECK_SMARTHILITEWHOLEWORDONLY, BM_SETCHECK, nppGUI._smartHiliteWordOnly, 0);
|
||||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_SMARTHILITEUSEFINDSETTINGS, BM_SETCHECK, nppGUI._smartHiliteUseFindSettings, 0);
|
::SendDlgItemMessage(_hSelf, IDC_CHECK_SMARTHILITEUSEFINDSETTINGS, BM_SETCHECK, nppGUI._smartHiliteUseFindSettings, 0);
|
||||||
|
::SendDlgItemMessage(_hSelf, IDC_CHECK_SMARTHILITEANOTHERRVIEW, BM_SETCHECK, nppGUI._smartHiliteOnAnotherView, 0);
|
||||||
|
|
||||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLTAGSMATCHHILITE, BM_SETCHECK, nppGUI._enableTagsMatchHilite, 0);
|
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLTAGSMATCHHILITE, BM_SETCHECK, nppGUI._enableTagsMatchHilite, 0);
|
||||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLTAGATTRHILITE, BM_SETCHECK, nppGUI._enableTagAttrsHilite, 0);
|
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLTAGATTRHILITE, BM_SETCHECK, nppGUI._enableTagAttrsHilite, 0);
|
||||||
@ -1931,6 +1932,7 @@ INT_PTR CALLBACK Highlighting::run_dlgProc(UINT message, WPARAM wParam, LPARAM/*
|
|||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITECASESENSITIVE), nppGUI._enableSmartHilite);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITECASESENSITIVE), nppGUI._enableSmartHilite);
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEWHOLEWORDONLY), nppGUI._enableSmartHilite);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEWHOLEWORDONLY), nppGUI._enableSmartHilite);
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEUSEFINDSETTINGS), nppGUI._enableSmartHilite);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEUSEFINDSETTINGS), nppGUI._enableSmartHilite);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEANOTHERRVIEW), nppGUI._enableSmartHilite);
|
||||||
|
|
||||||
ETDTProc enableDlgTheme = reinterpret_cast<ETDTProc>(pNppParam->getEnableThemeDlgTexture());
|
ETDTProc enableDlgTheme = reinterpret_cast<ETDTProc>(pNppParam->getEnableThemeDlgTexture());
|
||||||
if (enableDlgTheme)
|
if (enableDlgTheme)
|
||||||
@ -1954,6 +1956,7 @@ INT_PTR CALLBACK Highlighting::run_dlgProc(UINT message, WPARAM wParam, LPARAM/*
|
|||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITECASESENSITIVE), nppGUI._enableSmartHilite);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITECASESENSITIVE), nppGUI._enableSmartHilite);
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEWHOLEWORDONLY), nppGUI._enableSmartHilite);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEWHOLEWORDONLY), nppGUI._enableSmartHilite);
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEUSEFINDSETTINGS), nppGUI._enableSmartHilite);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEUSEFINDSETTINGS), nppGUI._enableSmartHilite);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_SMARTHILITEANOTHERRVIEW), nppGUI._enableSmartHilite);
|
||||||
HWND grandParent = ::GetParent(_hParent);
|
HWND grandParent = ::GetParent(_hParent);
|
||||||
::SendMessage(grandParent, NPPM_INTERNAL_CLEARINDICATOR, 0, 0);
|
::SendMessage(grandParent, NPPM_INTERNAL_CLEARINDICATOR, 0, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -1997,6 +2000,14 @@ INT_PTR CALLBACK Highlighting::run_dlgProc(UINT message, WPARAM wParam, LPARAM/*
|
|||||||
::SendMessage(grandParent, NPPM_INTERNAL_CLEARINDICATOR, 0, 0);
|
::SendMessage(grandParent, NPPM_INTERNAL_CLEARINDICATOR, 0, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
case IDC_CHECK_SMARTHILITEANOTHERRVIEW:
|
||||||
|
{
|
||||||
|
nppGUI._smartHiliteOnAnotherView = isCheckedOrNot(IDC_CHECK_SMARTHILITEANOTHERRVIEW);
|
||||||
|
|
||||||
|
HWND grandParent = ::GetParent(_hParent);
|
||||||
|
::SendMessage(grandParent, NPPM_INTERNAL_CLEARINDICATOR, 0, 0);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
case IDC_CHECK_ENABLTAGSMATCHHILITE:
|
case IDC_CHECK_ENABLTAGSMATCHHILITE:
|
||||||
{
|
{
|
||||||
|
@ -186,6 +186,7 @@
|
|||||||
#define IDC_WORKSPACEFILEEXT_STATIC (IDD_PREFERENCE_SETTING_BOX + 37)
|
#define IDC_WORKSPACEFILEEXT_STATIC (IDD_PREFERENCE_SETTING_BOX + 37)
|
||||||
#define IDC_CHECK_SMARTHILITEWHOLEWORDONLY (IDD_PREFERENCE_SETTING_BOX + 38)
|
#define IDC_CHECK_SMARTHILITEWHOLEWORDONLY (IDD_PREFERENCE_SETTING_BOX + 38)
|
||||||
#define IDC_CHECK_SMARTHILITEUSEFINDSETTINGS (IDD_PREFERENCE_SETTING_BOX + 39)
|
#define IDC_CHECK_SMARTHILITEUSEFINDSETTINGS (IDD_PREFERENCE_SETTING_BOX + 39)
|
||||||
|
#define IDC_CHECK_SMARTHILITEANOTHERRVIEW (IDD_PREFERENCE_SETTING_BOX + 40)
|
||||||
|
|
||||||
//-- xFileEditViewHistoryParameterGUI: Additional Checkbox for enabling the history for restoring the edit view per file.
|
//-- xFileEditViewHistoryParameterGUI: Additional Checkbox for enabling the history for restoring the edit view per file.
|
||||||
#define IDC_CHECK_REMEMBEREDITVIEWPERFILE (IDD_PREFERENCE_SETTING_BOX + 41)
|
#define IDC_CHECK_REMEMBEREDITVIEWPERFILE (IDD_PREFERENCE_SETTING_BOX + 41)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user