work save
This commit is contained in:
parent
eb827f019d
commit
b8c1e937bf
|
@ -166,4 +166,5 @@ extern const QChar SynSoftBreakGlyph;
|
||||||
#define SYNS_ExporterFormatTeX "TeX"
|
#define SYNS_ExporterFormatTeX "TeX"
|
||||||
|
|
||||||
#define SYN_HIGHLIGHTER_CPP "SynCppHighlighter"
|
#define SYN_HIGHLIGHTER_CPP "SynCppHighlighter"
|
||||||
|
#define SYN_HIGHLIGHTER_ASM "SynASMHighlighter"
|
||||||
#endif // CONSTANTS_H
|
#endif // CONSTANTS_H
|
||||||
|
|
|
@ -35,26 +35,22 @@ const QSet<QString> SynEditASMHighlighter::Keywords {
|
||||||
"wait","wbinvd","xadd","xchg","xlat","xlatb","xor"
|
"wait","wbinvd","xadd","xchg","xlat","xlatb","xor"
|
||||||
};
|
};
|
||||||
|
|
||||||
SynEditASMHighlighter::SynEditASMHighlighter()
|
|
||||||
|
|
||||||
|
void SynEditASMHighlighter::CommentProc()
|
||||||
{
|
{
|
||||||
mCommentAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrComment);
|
mTokenID = TokenKind::Comment;
|
||||||
mCommentAttribute->setStyles(SynFontStyle::fsItalic);
|
do {
|
||||||
addAttribute(mCommentAttribute);
|
mRun++;
|
||||||
mIdentifierAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrIdentifier);
|
} while (! (mLine[mRun]==0 || mLine[mRun] == '\r' || mLine[mRun]=='\n'));
|
||||||
addAttribute(mIdentifierAttribute);
|
}
|
||||||
mKeywordAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrReservedWord);
|
|
||||||
mKeywordAttribute->setStyles(SynFontStyle::fsBold);
|
|
||||||
addAttribute(mKeywordAttribute);
|
|
||||||
mNumberAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrNumber);
|
|
||||||
addAttribute(mNumberAttribute);
|
|
||||||
mWhitespaceAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrSpace);
|
|
||||||
addAttribute(mWhitespaceAttribute);
|
|
||||||
mStringAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrString);
|
|
||||||
addAttribute(mStringAttribute);
|
|
||||||
mSymbolAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrSymbol);
|
|
||||||
addAttribute(mSymbolAttribute);
|
|
||||||
|
|
||||||
|
|
||||||
|
void SynEditASMHighlighter::CRProc()
|
||||||
|
{
|
||||||
|
mTokenID = TokenKind::Space;
|
||||||
|
mRun++;
|
||||||
|
if (mLine[mRun] == 10)
|
||||||
|
mRun++;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SynEditASMHighlighter::eol() const
|
bool SynEditASMHighlighter::eol() const
|
||||||
|
@ -188,3 +184,22 @@ void SynEditASMHighlighter::next()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SynEditASMHighlighter::setLine(const QString &newLine, int lineNumber)
|
||||||
|
{
|
||||||
|
mLineString = newLine;
|
||||||
|
mLine = mLineString.data();
|
||||||
|
mLineNumber = lineNumber;
|
||||||
|
mRun = 0;
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
|
||||||
|
SynHighlighterClass SynEditASMHighlighter::getClass() const
|
||||||
|
{
|
||||||
|
return SynHighlighterClass::CppHighlighter;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SynEditASMHighlighter::getName() const
|
||||||
|
{
|
||||||
|
return SYN_HIGHLIGHTER_CPP;
|
||||||
|
}
|
||||||
|
|
|
@ -18,7 +18,25 @@ class SynEditASMHighlighter : public SynHighlighter
|
||||||
Unknown
|
Unknown
|
||||||
};
|
};
|
||||||
public:
|
public:
|
||||||
explicit SynEditASMHighlighter();
|
explicit SynEditASMHighlighter()
|
||||||
|
{
|
||||||
|
mCommentAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrComment);
|
||||||
|
mCommentAttribute->setStyles(SynFontStyle::fsItalic);
|
||||||
|
addAttribute(mCommentAttribute);
|
||||||
|
mIdentifierAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrIdentifier);
|
||||||
|
addAttribute(mIdentifierAttribute);
|
||||||
|
mKeywordAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrReservedWord);
|
||||||
|
mKeywordAttribute->setStyles(SynFontStyle::fsBold);
|
||||||
|
addAttribute(mKeywordAttribute);
|
||||||
|
mNumberAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrNumber);
|
||||||
|
addAttribute(mNumberAttribute);
|
||||||
|
mWhitespaceAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrSpace);
|
||||||
|
addAttribute(mWhitespaceAttribute);
|
||||||
|
mStringAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrString);
|
||||||
|
addAttribute(mStringAttribute);
|
||||||
|
mSymbolAttribute = std::make_shared<SynHighlighterAttribute>(SYNS_AttrSymbol);
|
||||||
|
addAttribute(mSymbolAttribute);
|
||||||
|
}
|
||||||
|
|
||||||
static const QSet<QString> Keywords;
|
static const QSet<QString> Keywords;
|
||||||
private:
|
private:
|
||||||
|
@ -32,21 +50,28 @@ private:
|
||||||
SynTokenKind mTokenID;
|
SynTokenKind mTokenID;
|
||||||
PSynHighlighterAttribute mNumberAttribute;
|
PSynHighlighterAttribute mNumberAttribute;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void CommentProc();
|
||||||
|
void CRProc();
|
||||||
|
|
||||||
// SynHighlighter interface
|
// SynHighlighter interface
|
||||||
public:
|
public:
|
||||||
bool eol() const override;
|
bool eol() const override;
|
||||||
|
|
||||||
// SynHighlighter interface
|
|
||||||
public:
|
|
||||||
QString languageName() override;
|
QString languageName() override;
|
||||||
|
|
||||||
// SynHighlighter interface
|
|
||||||
public:
|
|
||||||
SynHighlighterLanguage language() override;
|
SynHighlighterLanguage language() override;
|
||||||
|
QString getToken() const override;
|
||||||
|
PSynHighlighterAttribute getTokenAttribute() const override;
|
||||||
|
SynTokenKind getTokenKind() override;
|
||||||
|
SynHighlighterTokenType getTokenType() override;
|
||||||
|
int getTokenPos() override;
|
||||||
|
void next() override;
|
||||||
|
void setLine(const QString &newLine, int lineNumber) override;
|
||||||
|
|
||||||
// SynHighlighter interface
|
// SynHighlighter interface
|
||||||
public:
|
public:
|
||||||
QString getToken() const override;
|
SynHighlighterClass getClass() const override;
|
||||||
|
QString getName() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SYNEDITASMHIGHLIGHTER_H
|
#endif // SYNEDITASMHIGHLIGHTER_H
|
||||||
|
|
|
@ -26,6 +26,7 @@ enum class SynHighlighterTokenType {
|
||||||
enum class SynHighlighterClass {
|
enum class SynHighlighterClass {
|
||||||
Composition,
|
Composition,
|
||||||
CppHighlighter,
|
CppHighlighter,
|
||||||
|
AsmHighlighter
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class SynHighlighterLanguage {
|
enum class SynHighlighterLanguage {
|
||||||
|
|
Loading…
Reference in New Issue