[BUG_FIXED] Fix Lexer SearchResult syntax highlighting bug.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@656 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
6da146a4ec
commit
f602782337
@ -512,7 +512,7 @@ void Finder::GotoFoundLine()
|
|||||||
|
|
||||||
// Then we colourise the double clicked line
|
// Then we colourise the double clicked line
|
||||||
setFinderStyle();
|
setFinderStyle();
|
||||||
_scintView.execute(SCI_SETLEXER, SCLEX_NULL); // yniq - this line causes a bug!!! (last line suddenly belongs to file header level (?) instead of having level=0x400)
|
//_scintView.execute(SCI_SETLEXER, SCLEX_NULL); // yniq - this line causes a bug!!! (last line suddenly belongs to file header level (?) instead of having level=0x400)
|
||||||
// later it affects DeleteResult and gotoNextFoundResult (assertions)
|
// later it affects DeleteResult and gotoNextFoundResult (assertions)
|
||||||
// fixed by calling setFinderStyle() in DeleteResult()
|
// fixed by calling setFinderStyle() in DeleteResult()
|
||||||
_scintView.execute(SCI_STYLESETEOLFILLED, SCE_SEARCHRESULT_HIGHLIGHT_LINE, true);
|
_scintView.execute(SCI_STYLESETEOLFILLED, SCE_SEARCHRESULT_HIGHLIGHT_LINE, true);
|
||||||
@ -1676,7 +1676,7 @@ void FindReplaceDlg::replaceAllInOpenedDocs()
|
|||||||
|
|
||||||
void FindReplaceDlg::findAllIn(InWhat op)
|
void FindReplaceDlg::findAllIn(InWhat op)
|
||||||
{
|
{
|
||||||
//HANDLE hEvent = ::OpenEvent(EVENT_ALL_ACCESS, FALSE, TEXT("findInFilesEvent"));
|
bool doSetMarkingStruct = false;
|
||||||
if (!_pFinder)
|
if (!_pFinder)
|
||||||
{
|
{
|
||||||
_pFinder = new Finder();
|
_pFinder = new Finder();
|
||||||
@ -1711,11 +1711,6 @@ void FindReplaceDlg::findAllIn(InWhat op)
|
|||||||
_pFinder->_scintView.showMargin(ScintillaEditView::_SC_MARGE_FOLDER, true);
|
_pFinder->_scintView.showMargin(ScintillaEditView::_SC_MARGE_FOLDER, true);
|
||||||
//_pFinder->_scintView.execute(SCI_SETEOLMODE, SC_EOL_CRLF); // yniq - needed?
|
//_pFinder->_scintView.execute(SCI_SETEOLMODE, SC_EOL_CRLF); // yniq - needed?
|
||||||
|
|
||||||
// Send the address of _MarkingsStruct to the lexer
|
|
||||||
char ptrword[sizeof(void*)*2+1];
|
|
||||||
sprintf(ptrword, "%p", &_pFinder->_MarkingsStruct);
|
|
||||||
_pFinder->_scintView.execute(SCI_SETKEYWORDS, 0, (LPARAM) ptrword);
|
|
||||||
|
|
||||||
// get the width of FindDlg
|
// get the width of FindDlg
|
||||||
RECT findRect;
|
RECT findRect;
|
||||||
::GetWindowRect(_pFinder->getHSelf(), &findRect);
|
::GetWindowRect(_pFinder->getHSelf(), &findRect);
|
||||||
@ -1726,8 +1721,18 @@ void FindReplaceDlg::findAllIn(InWhat op)
|
|||||||
|
|
||||||
_pFinder->_scintView.display();
|
_pFinder->_scintView.display();
|
||||||
_pFinder->display();
|
_pFinder->display();
|
||||||
|
doSetMarkingStruct = true;
|
||||||
}
|
}
|
||||||
_pFinder->setFinderStyle();
|
_pFinder->setFinderStyle();
|
||||||
|
|
||||||
|
if (doSetMarkingStruct)
|
||||||
|
{
|
||||||
|
// Send the address of _MarkingsStruct to the lexer
|
||||||
|
char ptrword[sizeof(void*)*2+1];
|
||||||
|
sprintf(ptrword, "%p", &_pFinder->_MarkingsStruct);
|
||||||
|
//_pFinder->_scintView.execute(SCI_SETKEYWORDS, 0, (LPARAM) ptrword);
|
||||||
|
_pFinder->_scintView.execute(SCI_SETPROPERTY, (WPARAM)"@MarkingsStruct", (LPARAM)ptrword);
|
||||||
|
}
|
||||||
|
|
||||||
::SendMessage(_pFinder->getHSelf(), WM_SIZE, 0, 0);
|
::SendMessage(_pFinder->getHSelf(), WM_SIZE, 0, 0);
|
||||||
|
|
||||||
@ -2266,7 +2271,7 @@ void Finder::openAll()
|
|||||||
|
|
||||||
void Finder::beginNewFilesSearch()
|
void Finder::beginNewFilesSearch()
|
||||||
{
|
{
|
||||||
_scintView.execute(SCI_SETLEXER, SCLEX_NULL);
|
//_scintView.execute(SCI_SETLEXER, SCLEX_NULL);
|
||||||
|
|
||||||
_scintView.execute(SCI_SETCURRENTPOS, 0);
|
_scintView.execute(SCI_SETCURRENTPOS, 0);
|
||||||
_pMainFoundInfos = _pMainFoundInfos == &_foundInfos1 ? &_foundInfos2 : &_foundInfos1;
|
_pMainFoundInfos = _pMainFoundInfos == &_foundInfos1 ? &_foundInfos2 : &_foundInfos1;
|
||||||
|
@ -110,12 +110,12 @@
|
|||||||
#define SCLEX_POWERPRO 95
|
#define SCLEX_POWERPRO 95
|
||||||
#define SCLEX_NIMROD 96
|
#define SCLEX_NIMROD 96
|
||||||
#define SCLEX_SML 97
|
#define SCLEX_SML 97
|
||||||
#define SCLEX_MARKDOWN 198
|
#define SCLEX_MARKDOWN 98
|
||||||
#define SCLEX_TXT2TAGS 199
|
#define SCLEX_TXT2TAGS 99
|
||||||
|
|
||||||
#define SCLEX_SEARCHRESULT 98
|
#define SCLEX_SEARCHRESULT 150
|
||||||
#define SCLEX_OBJC 99
|
#define SCLEX_OBJC 151
|
||||||
#define SCLEX_USER 100
|
#define SCLEX_USER 152
|
||||||
|
|
||||||
|
|
||||||
#define SCLEX_AUTOMATIC 1000
|
#define SCLEX_AUTOMATIC 1000
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
#include "ILexer.h"
|
#include "ILexer.h"
|
||||||
#include "LexAccessor.h"
|
#include "LexAccessor.h"
|
||||||
|
#include "PropSetSimple.h"
|
||||||
#include "Accessor.h"
|
#include "Accessor.h"
|
||||||
#include "WordList.h"
|
#include "WordList.h"
|
||||||
#include "Scintilla.h"
|
#include "Scintilla.h"
|
||||||
@ -103,8 +104,12 @@ static void ColouriseSearchResultDoc(unsigned int startPos, int length, int, Wor
|
|||||||
unsigned int linePos = 0;
|
unsigned int linePos = 0;
|
||||||
unsigned int startLine = startPos;
|
unsigned int startLine = startPos;
|
||||||
|
|
||||||
|
const char *addrMarkingsStruct = (styler.pprops)->Get("@MarkingsStruct");
|
||||||
|
if (!addrMarkingsStruct || !addrMarkingsStruct[0])
|
||||||
|
return;
|
||||||
|
|
||||||
SearchResultMarkings* pMarkings = NULL;
|
SearchResultMarkings* pMarkings = NULL;
|
||||||
sscanf(keywordlists[0]->words[0], "%p", &pMarkings);
|
sscanf(addrMarkingsStruct, "%p", &pMarkings);
|
||||||
PLATFORM_ASSERT(pMarkings);
|
PLATFORM_ASSERT(pMarkings);
|
||||||
|
|
||||||
for (unsigned int i = startPos; i < startPos + length; i++) {
|
for (unsigned int i = startPos; i < startPos + length; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user