aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2017-06-22 16:38:26 +1000
committerNeil <nyamatongwe@gmail.com>2017-06-22 16:38:26 +1000
commitcac2920096062453ed19e5697146cd1b42ba088d (patch)
tree4de045a6b3dc4bc82f40964607f52fd0949a3ab0
parentd1be79eee1940dc99389deefd9d3ae766c3035e3 (diff)
downloadscintilla-mirror-cac2920096062453ed19e5697146cd1b42ba088d.tar.gz
Update IDocument for version 4. Drop IDocumentWithLineEnd interface to just have
IDocument but with all the methods from IDocumentWithLineEnd. This removes version checking (for now). Use dvRelease4 ID. Drop mask argument to StartStyling.
-rw-r--r--include/ILexer.h8
-rw-r--r--lexers/LexEDIFACT.cxx4
-rw-r--r--lexlib/LexAccessor.h21
-rw-r--r--lexlib/StyleContext.h2
-rw-r--r--qt/ScintillaEdit/ScintillaDocument.cpp4
-rw-r--r--qt/ScintillaEdit/ScintillaDocument.h2
-rw-r--r--src/Document.cxx4
-rw-r--r--src/Document.h6
-rw-r--r--src/Editor.cxx6
9 files changed, 20 insertions, 37 deletions
diff --git a/include/ILexer.h b/include/ILexer.h
index f01029178..5680acb4e 100644
--- a/include/ILexer.h
+++ b/include/ILexer.h
@@ -20,7 +20,7 @@ namespace Scintilla {
#define SCI_METHOD
#endif
-enum { dvOriginal=0, dvLineEnd=1 };
+enum { dvRelease4=2 };
class IDocument {
public:
@@ -35,7 +35,7 @@ public:
virtual int SCI_METHOD SetLevel(Sci_Position line, int level) = 0;
virtual int SCI_METHOD GetLineState(Sci_Position line) const = 0;
virtual int SCI_METHOD SetLineState(Sci_Position line, int state) = 0;
- virtual void SCI_METHOD StartStyling(Sci_Position position, char mask) = 0;
+ virtual void SCI_METHOD StartStyling(Sci_Position position) = 0;
virtual bool SCI_METHOD SetStyleFor(Sci_Position length, char style) = 0;
virtual bool SCI_METHOD SetStyles(Sci_Position length, const char *styles) = 0;
virtual void SCI_METHOD DecorationSetCurrentIndicator(int indicator) = 0;
@@ -45,10 +45,6 @@ public:
virtual bool SCI_METHOD IsDBCSLeadByte(char ch) const = 0;
virtual const char * SCI_METHOD BufferPointer() = 0;
virtual int SCI_METHOD GetLineIndentation(Sci_Position line) = 0;
-};
-
-class IDocumentWithLineEnd : public IDocument {
-public:
virtual Sci_Position SCI_METHOD LineEnd(Sci_Position line) const = 0;
virtual Sci_Position SCI_METHOD GetRelativePosition(Sci_Position positionStart, Sci_Position characterOffset) const = 0;
virtual int SCI_METHOD GetCharacterAndWidth(Sci_Position position, Sci_Position *pWidth) const = 0;
diff --git a/lexers/LexEDIFACT.cxx b/lexers/LexEDIFACT.cxx
index 63805b04e..c21351bf5 100644
--- a/lexers/LexEDIFACT.cxx
+++ b/lexers/LexEDIFACT.cxx
@@ -125,7 +125,7 @@ void LexerEDIFACT::Lex(Sci_PositionU startPos, Sci_Position lengthDoc, int, IDoc
// Style buffer, so we're not issuing loads of notifications
LexAccessor styler (pAccess);
- pAccess->StartStyling(posCurrent, '\377');
+ pAccess->StartStyling(posCurrent);
styler.StartSegment(posCurrent);
Sci_Position posSegmentStart = -1;
@@ -188,7 +188,7 @@ void LexerEDIFACT::Lex(Sci_PositionU startPos, Sci_Position lengthDoc, int, IDoc
if (posSegmentStart == -1)
return;
- pAccess->StartStyling(posSegmentStart, -1);
+ pAccess->StartStyling(posSegmentStart);
pAccess->SetStyleFor(posFinish - posSegmentStart, SCE_EDI_BADSEGMENT);
}
diff --git a/lexlib/LexAccessor.h b/lexlib/LexAccessor.h
index 064a17581..0cf6e8ce0 100644
--- a/lexlib/LexAccessor.h
+++ b/lexlib/LexAccessor.h
@@ -79,11 +79,8 @@ public:
}
return buf[position - startPos];
}
- IDocumentWithLineEnd *MultiByteAccess() const {
- if (documentVersion >= dvLineEnd) {
- return static_cast<IDocumentWithLineEnd *>(pAccess);
- }
- return 0;
+ IDocument *MultiByteAccess() const {
+ return pAccess;
}
/** Safe version of operator[], returning a defined value for invalid position. */
char SafeGetCharAt(Sci_Position position, char chDefault=' ') {
@@ -120,17 +117,7 @@ public:
return pAccess->LineStart(line);
}
Sci_Position LineEnd(Sci_Position line) {
- if (documentVersion >= dvLineEnd) {
- return (static_cast<IDocumentWithLineEnd *>(pAccess))->LineEnd(line);
- } else {
- // Old interface means only '\r', '\n' and '\r\n' line ends.
- Sci_Position startNext = pAccess->LineStart(line+1);
- const char chLineEnd = SafeGetCharAt(startNext-1);
- if (chLineEnd == '\n' && (SafeGetCharAt(startNext-2) == '\r'))
- return startNext - 2;
- else
- return startNext - 1;
- }
+ return pAccess->LineEnd(line);
}
int LevelAt(Sci_Position line) const {
return pAccess->GetLevel(line);
@@ -153,7 +140,7 @@ public:
}
// Style setting
void StartAt(Sci_PositionU start) {
- pAccess->StartStyling(start, '\377');
+ pAccess->StartStyling(start);
startPosStyling = start;
}
Sci_PositionU GetStartSegment() const {
diff --git a/lexlib/StyleContext.h b/lexlib/StyleContext.h
index a536822e2..abfc07318 100644
--- a/lexlib/StyleContext.h
+++ b/lexlib/StyleContext.h
@@ -18,7 +18,7 @@ namespace Scintilla {
// syntactically significant. UTF-8 avoids this as all trail bytes are >= 0x80
class StyleContext {
LexAccessor &styler;
- IDocumentWithLineEnd *multiByteAccess;
+ IDocument *multiByteAccess;
Sci_PositionU endPos;
Sci_PositionU lengthDocument;
diff --git a/qt/ScintillaEdit/ScintillaDocument.cpp b/qt/ScintillaEdit/ScintillaDocument.cpp
index 076292c95..b7b6d8239 100644
--- a/qt/ScintillaEdit/ScintillaDocument.cpp
+++ b/qt/ScintillaEdit/ScintillaDocument.cpp
@@ -217,8 +217,8 @@ int ScintillaDocument::lines_total() {
return (static_cast<Document *>(pdoc))->LinesTotal();
}
-void ScintillaDocument::start_styling(int position, char flags) {
- (static_cast<Document *>(pdoc))->StartStyling(position, flags);
+void ScintillaDocument::start_styling(int position) {
+ (static_cast<Document *>(pdoc))->StartStyling(position);
}
bool ScintillaDocument::set_style_for(int length, char style) {
diff --git a/qt/ScintillaEdit/ScintillaDocument.h b/qt/ScintillaEdit/ScintillaDocument.h
index 510127f94..ddb246d6c 100644
--- a/qt/ScintillaEdit/ScintillaDocument.h
+++ b/qt/ScintillaEdit/ScintillaDocument.h
@@ -63,7 +63,7 @@ public:
int line_end_position(int pos);
int length();
int lines_total();
- void start_styling(int position, char flags);
+ void start_styling(int position);
bool set_style_for(int length, char style);
int get_end_styled();
void ensure_styled_to(int position);
diff --git a/src/Document.cxx b/src/Document.cxx
index ac4322e1b..209060e5e 100644
--- a/src/Document.cxx
+++ b/src/Document.cxx
@@ -2033,8 +2033,8 @@ int Document::GetCharsOfClass(CharClassify::cc characterClass, unsigned char *bu
return charClass.GetCharsOfClass(characterClass, buffer);
}
-void SCI_METHOD Document::StartStyling(Sci_Position position, char) {
- endStyled = position;
+void SCI_METHOD Document::StartStyling(Sci_Position position) {
+ endStyled = static_cast<Sci::Position>(position);
}
bool SCI_METHOD Document::SetStyleFor(Sci_Position length, char style) {
diff --git a/src/Document.h b/src/Document.h
index fd72c56c6..520755ae3 100644
--- a/src/Document.h
+++ b/src/Document.h
@@ -195,7 +195,7 @@ struct RegexError : public std::runtime_error {
/**
*/
-class Document : PerLine, public IDocumentWithLineEnd, public ILoader {
+class Document : PerLine, public IDocument, public ILoader {
public:
/** Used to pair watcher pointer with user data. */
@@ -286,7 +286,7 @@ public:
virtual void RemoveLine(Sci::Line line);
int SCI_METHOD Version() const {
- return dvLineEnd;
+ return dvRelease4;
}
void SCI_METHOD SetErrorStatus(int status);
@@ -412,7 +412,7 @@ public:
void SetDefaultCharClasses(bool includeWordClass);
void SetCharClasses(const unsigned char *chars, CharClassify::cc newCharClass);
int GetCharsOfClass(CharClassify::cc characterClass, unsigned char *buffer) const;
- void SCI_METHOD StartStyling(Sci_Position position, char mask);
+ void SCI_METHOD StartStyling(Sci_Position position);
bool SCI_METHOD SetStyleFor(Sci_Position length, char style);
bool SCI_METHOD SetStyles(Sci_Position length, const char *styles);
Sci::Position GetEndStyled() const { return endStyled; }
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 5a200e952..bf81bb8ea 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -2105,7 +2105,7 @@ void Editor::ClearAll() {
void Editor::ClearDocumentStyle() {
pdoc->decorations.DeleteLexerDecorations();
- pdoc->StartStyling(0, '\377');
+ pdoc->StartStyling(0);
pdoc->SetStyleFor(pdoc->Length(), 0);
cs.ShowAll();
SetAnnotationHeights(0, pdoc->LinesTotal());
@@ -5549,7 +5549,7 @@ void Editor::AddStyledText(char *buffer, Sci::Position appendLength) {
for (i = 0; i < textLength; i++) {
text[i] = buffer[i*2+1];
}
- pdoc->StartStyling(CurrentPosition(), static_cast<unsigned char>(0xff));
+ pdoc->StartStyling(CurrentPosition());
pdoc->SetStyles(textLength, text.c_str());
SetEmptySelection(sel.MainCaret() + lengthInserted);
}
@@ -6390,7 +6390,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
return pdoc->GetLineEndTypesActive();
case SCI_STARTSTYLING:
- pdoc->StartStyling(static_cast<int>(wParam), static_cast<char>(lParam));
+ pdoc->StartStyling(static_cast<int>(wParam));
break;
case SCI_SETSTYLING: