ultimatepp/uppsrc/CodeEditor/PythonSyntax.h
cxl d765ba04b2 Python highlighting #1352
git-svn-id: svn://ultimatepp.org/upp/trunk@9294 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2015-12-17 12:24:48 +00:00

37 lines
1 KiB
C++

class PythonSyntax : public EditorSyntax {
private:
struct Identation {
enum Type {
Tab = 0,
Space,
None
};
};
public:
PythonSyntax();
virtual void Highlight(const wchar *start, const wchar *end, HighlightOutput& hls,
CodeEditor *editor, int line, int pos);
virtual void IndentInsert(CodeEditor& e, int chr, int count);
private:
bool IsSeparator(const wchar* c);
bool IsKeyword(const WString& w);
bool IsSpecialVar(const WString& w);
bool IsNumber(const WString& w);
void InitKeywords();
void LoadSyntax(const char* keywordsArray[], const char* specialVarsArray[]);
bool LineHasColon(const WString& line);
int CalculateLineIndetations(const WString& line, Identation::Type type);
int CalculateSpaceIndetationSize(CodeEditor& editor);
Identation::Type FindIdentationType(CodeEditor& editor, const WString& line);
char GetIdentationByType(Identation::Type type);
private:
Index<String> keywords;
Index<String> specialVars;
};