diff options
Diffstat (limited to 'src/Document.h')
| -rw-r--r-- | src/Document.h | 36 | 
1 files changed, 22 insertions, 14 deletions
| diff --git a/src/Document.h b/src/Document.h index d31465f62..c0a0bb808 100644 --- a/src/Document.h +++ b/src/Document.h @@ -238,6 +238,18 @@ private:  public: +	struct CharacterExtracted { +		unsigned int character; +		unsigned int widthBytes; +		CharacterExtracted(unsigned int character_, unsigned int widthBytes_) : +			character(character_), widthBytes(widthBytes_) { +		} +		// For DBCS characters turn 2 bytes into an int +		static CharacterExtracted DBCS(unsigned char lead, unsigned char trail) { +			return CharacterExtracted((lead << 8) | trail, 2); +		} +	}; +  	LexInterface *pli;  	int eolMode; @@ -284,6 +296,8 @@ public:  	int MovePositionOutsideChar(int pos, int moveDir, bool checkLineEnd=true) const;  	int NextPosition(int pos, int moveDir) const;  	bool NextCharacter(int &pos, int moveDir) const;	// Returns true if pos changed +	Document::CharacterExtracted CharacterAfter(int position) const; +	Document::CharacterExtracted CharacterBefore(int position) const;  	Sci_Position SCI_METHOD GetRelativePosition(Sci_Position positionStart, Sci_Position characterOffset) const;  	int GetRelativePositionUTF16(int positionStart, int characterOffset) const;  	int SCI_METHOD GetCharacterAndWidth(Sci_Position position, Sci_Position *pWidth) const; @@ -373,19 +387,12 @@ public:  	void GetHighlightDelimiters(HighlightDelimiter &hDelimiter, int line, int lastLine);  	void Indent(bool forwards); -	int ExtendWordSelect(int pos, int delta, bool onlyWordCharacters=false); -	int NextWordStart(int pos, int delta); -	int NextWordEnd(int pos, int delta); +	int ExtendWordSelect(int pos, int delta, bool onlyWordCharacters=false) const; +	int NextWordStart(int pos, int delta) const; +	int NextWordEnd(int pos, int delta) const;  	Sci_Position SCI_METHOD Length() const { return cb.Length(); }  	void Allocate(int newSize) { cb.Allocate(newSize); } -	struct CharacterExtracted { -		unsigned int character; -		unsigned int widthBytes; -		CharacterExtracted(unsigned int character_, unsigned int widthBytes_) : -			character(character_), widthBytes(widthBytes_) { -		} -	};  	CharacterExtracted ExtractCharacter(int position) const;  	bool IsWordStartAt(int pos) const; @@ -437,10 +444,11 @@ public:  	bool AddWatcher(DocWatcher *watcher, void *userData);  	bool RemoveWatcher(DocWatcher *watcher, void *userData); -	CharClassify::cc WordCharClass(unsigned char ch) const; -	bool IsWordPartSeparator(char ch) const; -	int WordPartLeft(int pos); -	int WordPartRight(int pos); +	bool IsASCIIWordByte(unsigned char ch) const; +	CharClassify::cc WordCharacterClass(unsigned int ch) const; +	bool IsWordPartSeparator(unsigned int ch) const; +	int WordPartLeft(int pos) const; +	int WordPartRight(int pos) const;  	int ExtendStyleRange(int pos, int delta, bool singleLine = false);  	bool IsWhiteLine(int line) const;  	int ParaUp(int pos) const; | 
