diff options
Diffstat (limited to 'src/Document.cxx')
| -rw-r--r-- | src/Document.cxx | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/src/Document.cxx b/src/Document.cxx index f3d8557ac..e53663f3e 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -119,6 +119,7 @@ Document::Document(int options) :  	decorations = DecorationListCreate(IsLarge());  	cb.SetPerLine(this); +	cb.SetUTF8Substance(SC_CP_UTF8 == dbcsCodePage);  }  Document::~Document() { @@ -194,6 +195,7 @@ bool Document::SetDBCSCodePage(int dbcsCodePage_) {  		dbcsCodePage = dbcsCodePage_;  		SetCaseFolder(nullptr);  		cb.SetLineEndTypes(lineEndBitSet & LineEndTypesSupported()); +		cb.SetUTF8Substance(SC_CP_UTF8 == dbcsCodePage);  		return true;  	} else {  		return false; @@ -420,6 +422,14 @@ Sci::Position Document::VCHomePosition(Sci::Position position) const {  		return startText;  } +Sci::Position Document::IndexLineStart(Sci::Line line, int lineCharacterIndex) const { +	return cb.IndexLineStart(line, lineCharacterIndex); +} + +Sci::Line Document::LineFromPositionIndex(Sci::Position pos, int lineCharacterIndex) const { +	return cb.LineFromPositionIndex(pos, lineCharacterIndex); +} +  int SCI_METHOD Document::SetLevel(Sci_Position line, int level) {  	const int prev = Levels()->SetLevel(static_cast<Sci::Line>(line), level, LinesTotal());  	if (prev != level) { @@ -2105,6 +2115,18 @@ const char *Document::SubstituteByPosition(const char *text, Sci::Position *leng  		return 0;  } +int Document::LineCharacterIndex() const { +	return cb.LineCharacterIndex(); +} + +void Document::AllocateLineCharacterIndex(int lineCharacterIndex) { +	return cb.AllocateLineCharacterIndex(lineCharacterIndex); +} + +void Document::ReleaseLineCharacterIndex(int lineCharacterIndex) { +	return cb.ReleaseLineCharacterIndex(lineCharacterIndex); +} +  Sci::Line Document::LinesTotal() const noexcept {  	return cb.Lines();  } | 
