diff options
Diffstat (limited to 'lexlib/Accessor.h')
| -rw-r--r-- | lexlib/Accessor.h | 86 | 
1 files changed, 21 insertions, 65 deletions
| diff --git a/lexlib/Accessor.h b/lexlib/Accessor.h index d9db9c7bf..2f28c1acd 100644 --- a/lexlib/Accessor.h +++ b/lexlib/Accessor.h @@ -1,79 +1,35 @@  // Scintilla source code edit control  /** @file Accessor.h - ** Rapid easy access to contents of a Scintilla. + ** Interfaces between Scintilla and lexers.   **/ -// Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org> +// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>  // The License.txt file describes the conditions under which this software may be distributed. +#ifndef ACCESSOR_H +#define ACCESSOR_H + +#ifdef SCI_NAMESPACE +namespace Scintilla { +#endif +  enum { wsSpace = 1, wsTab = 2, wsSpaceTab = 4, wsInconsistent=8};  class Accessor; +class WordList; +class PropSetSimple;  typedef bool (*PFNIsCommentLeader)(Accessor &styler, int pos, int len); -/** - * Interface to data in a Scintilla. - */ -class Accessor { -protected: -	enum {extremePosition=0x7FFFFFFF}; -	/** @a bufferSize is a trade off between time taken to copy the characters -	 * and retrieval overhead. -	 * @a slopSize positions the buffer before the desired position -	 * in case there is some backtracking. */ -	enum {bufferSize=4000, slopSize=bufferSize/8}; -	char buf[bufferSize+1]; -	int startPos; -	int endPos; -	int codePage;	 - -	virtual bool InternalIsLeadByte(char ch)=0; -	virtual void Fill(int position)=0; - +class Accessor : public LexAccessor {  public: -	Accessor() : startPos(extremePosition), endPos(0), codePage(0) {} -	virtual ~Accessor() {} -	char operator[](int position) { -		if (position < startPos || position >= endPos) { -			Fill(position); -		} -		return buf[position - startPos]; -	} -	/** Safe version of operator[], returning a defined value for invalid position. */ -	char SafeGetCharAt(int position, char chDefault=' ') { -		if (position < startPos || position >= endPos) { -			Fill(position); -			if (position < startPos || position >= endPos) { -				// Position is outside range of document  -				return chDefault; -			} -		} -		return buf[position - startPos]; -	} -	bool IsLeadByte(char ch) { -		return codePage && InternalIsLeadByte(ch); -	} -	void SetCodePage(int codePage_) { codePage = codePage_; } +	PropSetSimple *pprops; +	Accessor(IDocument *pAccess_, PropSetSimple *pprops_); +	int GetPropertyInt(const char *, int defaultValue=0); +	int IndentAmount(int line, int *flags, PFNIsCommentLeader pfnIsCommentLeader = 0); +}; -	virtual bool Match(int pos, const char *s)=0; -	virtual char StyleAt(int position)=0; -	virtual int GetLine(int position)=0; -	virtual int LineStart(int line)=0; -	virtual int LevelAt(int line)=0; -	virtual int Length()=0; -	virtual void Flush()=0; -	virtual int GetLineState(int line)=0; -	virtual int SetLineState(int line, int state)=0; -	virtual int GetPropertyInt(const char *key, int defaultValue=0)=0; -	virtual char *GetProperties()=0; +#ifdef SCI_NAMESPACE +} +#endif -	// Style setting -	virtual void StartAt(unsigned int start, char chMask=31)=0; -	virtual void SetFlags(char chFlags_, char chWhile_)=0; -	virtual unsigned int GetStartSegment()=0; -	virtual void StartSegment(unsigned int pos)=0; -	virtual void ColourTo(unsigned int pos, int chAttr)=0; -	virtual void SetLevel(int line, int level)=0; -	virtual int IndentAmount(int line, int *flags, PFNIsCommentLeader pfnIsCommentLeader = 0)=0; -	virtual void IndicatorFill(int start, int end, int indicator, int value)=0; -}; +#endif | 
