~efargaspro/+junk/codeblocks-16.01-release

« back to all changes in this revision

Viewing changes to src/sdk/wxscintilla/src/scintilla/include/ILexer.h

  • Committer: damienlmoore at gmail
  • Date: 2016-02-02 02:43:22 UTC
  • Revision ID: damienlmoore@gmail.com-20160202024322-yql5qmtbwdyamdwd
Code::BlocksĀ 16.01

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Scintilla source code edit control
 
2
/** @file ILexer.h
 
3
 ** Interface between Scintilla and lexers.
 
4
 **/
 
5
// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>
 
6
// The License.txt file describes the conditions under which this software may be distributed.
 
7
 
 
8
#ifndef ILEXER_H
 
9
#define ILEXER_H
 
10
 
 
11
#ifdef SCI_NAMESPACE
 
12
namespace Scintilla {
 
13
#endif
 
14
 
 
15
#ifdef _WIN32
 
16
        #define SCI_METHOD __stdcall
 
17
#else
 
18
        #define SCI_METHOD
 
19
#endif
 
20
 
 
21
enum { dvOriginal=0, dvLineEnd=1 };
 
22
 
 
23
class IDocument {
 
24
public:
 
25
        virtual int SCI_METHOD Version() const = 0;
 
26
        virtual void SCI_METHOD SetErrorStatus(int status) = 0;
 
27
        virtual int SCI_METHOD Length() const = 0;
 
28
        virtual void SCI_METHOD GetCharRange(char *buffer, int position, int lengthRetrieve) const = 0;
 
29
        virtual char SCI_METHOD StyleAt(int position) const = 0;
 
30
        virtual int SCI_METHOD LineFromPosition(int position) const = 0;
 
31
        virtual int SCI_METHOD LineStart(int line) const = 0;
 
32
        virtual int SCI_METHOD GetLevel(int line) const = 0;
 
33
        virtual int SCI_METHOD SetLevel(int line, int level) = 0;
 
34
        virtual int SCI_METHOD GetLineState(int line) const = 0;
 
35
        virtual int SCI_METHOD SetLineState(int line, int state) = 0;
 
36
        virtual void SCI_METHOD StartStyling(int position, char mask) = 0;
 
37
        virtual bool SCI_METHOD SetStyleFor(int length, char style) = 0;
 
38
        virtual bool SCI_METHOD SetStyles(int length, const char *styles) = 0;
 
39
        virtual void SCI_METHOD DecorationSetCurrentIndicator(int indicator) = 0;
 
40
        virtual void SCI_METHOD DecorationFillRange(int position, int value, int fillLength) = 0;
 
41
        virtual void SCI_METHOD ChangeLexerState(int start, int end) = 0;
 
42
        virtual int SCI_METHOD CodePage() const = 0;
 
43
        virtual bool SCI_METHOD IsDBCSLeadByte(char ch) const = 0;
 
44
        virtual const char * SCI_METHOD BufferPointer() = 0;
 
45
        virtual int SCI_METHOD GetLineIndentation(int line) = 0;
 
46
/* C::B begin */
 
47
        virtual ~IDocument(){}
 
48
/* C::B end */
 
49
};
 
50
 
 
51
class IDocumentWithLineEnd : public IDocument {
 
52
public:
 
53
        virtual int SCI_METHOD LineEnd(int line) const = 0;
 
54
        virtual int SCI_METHOD GetRelativePosition(int positionStart, int characterOffset) const = 0;
 
55
        virtual int SCI_METHOD GetCharacterAndWidth(int position, int *pWidth) const = 0;
 
56
};
 
57
 
 
58
enum { lvOriginal=0, lvSubStyles=1 };
 
59
 
 
60
class ILexer {
 
61
public:
 
62
/* C::B begin */
 
63
        virtual ~ILexer() {}
 
64
/* C::B end */
 
65
        virtual int SCI_METHOD Version() const = 0;
 
66
        virtual void SCI_METHOD Release() = 0;
 
67
        virtual const char * SCI_METHOD PropertyNames() = 0;
 
68
        virtual int SCI_METHOD PropertyType(const char *name) = 0;
 
69
        virtual const char * SCI_METHOD DescribeProperty(const char *name) = 0;
 
70
        virtual int SCI_METHOD PropertySet(const char *key, const char *val) = 0;
 
71
        virtual const char * SCI_METHOD DescribeWordListSets() = 0;
 
72
        virtual int SCI_METHOD WordListSet(int n, const char *wl) = 0;
 
73
        virtual void SCI_METHOD Lex(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) = 0;
 
74
        virtual void SCI_METHOD Fold(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) = 0;
 
75
        virtual void * SCI_METHOD PrivateCall(int operation, void *pointer) = 0;
 
76
};
 
77
 
 
78
class ILexerWithSubStyles : public ILexer {
 
79
public:
 
80
        virtual int SCI_METHOD LineEndTypesSupported() = 0;
 
81
        virtual int SCI_METHOD AllocateSubStyles(int styleBase, int numberStyles) = 0;
 
82
        virtual int SCI_METHOD SubStylesStart(int styleBase) = 0;
 
83
        virtual int SCI_METHOD SubStylesLength(int styleBase) = 0;
 
84
        virtual int SCI_METHOD StyleFromSubStyle(int subStyle) = 0;
 
85
        virtual int SCI_METHOD PrimaryStyleFromStyle(int style) = 0;
 
86
        virtual void SCI_METHOD FreeSubStyles() = 0;
 
87
        virtual void SCI_METHOD SetIdentifiers(int style, const char *identifiers) = 0;
 
88
        virtual int SCI_METHOD DistanceToSecondaryStyles() = 0;
 
89
        virtual const char * SCI_METHOD GetSubStyleBases() = 0;
 
90
};
 
91
 
 
92
class ILoader {
 
93
public:
 
94
        virtual int SCI_METHOD Release() = 0;
 
95
        // Returns a status code from SC_STATUS_*
 
96
        virtual int SCI_METHOD AddData(char *data, int length) = 0;
 
97
        virtual void * SCI_METHOD ConvertToDocument() = 0;
 
98
/* C::B begin */
 
99
        virtual ~ILoader(){}
 
100
/* C::B end */
 
101
};
 
102
 
 
103
#ifdef SCI_NAMESPACE
 
104
}
 
105
#endif
 
106
 
 
107
#endif