📄 synuniformatnativexml18.pas
字号:
{
@abstract(Provides Old Format 1.8 highlighters import)
@authors(Vitalik [just_vitalik@yahoo.com])
@created(2005)
@lastmod(2006-07-23)
}
{$IFNDEF QSynUniFormatNativeXml18}
unit SynUniFormatNativeXml18;
{$ENDIF}
{$I SynUniHighlighter.inc}
interface
uses
{$IFDEF SYN_CLX}
QClasses,
QGraphics,
QSynUniFormat,
QSynUniClasses,
QSynUniRules,
QSynUniHighlighter
{$ELSE}
Classes,
Graphics,
{$IFDEF SYN_COMPILER_6_UP}
Variants,
{$ENDIF}
SynUniFormat,
SynUniFormatNativeXml,
SynUniClasses,
SynUniRules,
SynUniHighlighter,
{$ENDIF}
SysUtils,
{XMLIntf; } // DW
SimpleXML;
type
TSynUniFormatNativeXml18 = class(TSynUniFormatNativeXml)
class function ImportInfo(AInfo: TSynInfo; ANode: IXMLNode): Boolean; override;
class function ExportInfo(AInfo: TSynInfo; ANode: IXMLNode): Boolean; override;
class function ImportEditorProperties(AEditorProperties: TEditorProperties; ANode: IXMLNode): Boolean; override;
class function ExportEditorProperties(AEditorProperties: TEditorProperties; ANode: IXMLNode): Boolean; override;
class function ImportAttributes(Attributes: TSynAttributes; ANode: IXMLNode): Boolean; overload; override;
class function ExportAttributes(Attributes: TSynAttributes; ANode: IXMLNode): Boolean; overload; override;
class function ImportAttributes(Attributes: TSynAttributes; AString: string): Boolean; overload;
class function ExportAttributes(Attributes: TSynAttributes; var AString: string): Boolean; overload;
class function ImportSchemes(ASchemes: TSynUniSchemes; ANode: IXMLNode): Boolean; override;
class function ExportSchemes(ASchemes: TSynUniSchemes; ANode: IXMLNode): Boolean; override;
class function ImportToken(AToken: TSynMultiToken; ANode: IXMLNode; Kind: string = ''): Boolean;
class function ExportToken(AToken: TSynMultiToken; ANode: IXMLNode; Kind: string = ''): Boolean;
class function ImportKeyList(AKeyList: TSynKeyList; ANode: IXMLNode): Boolean; override;
class function ExportKeyList(AKeyList: TSynKeyList; ANode: IXMLNode): Boolean; override;
class function ImportSet(ASet: TSynSet; ANode: IXMLNode): Boolean; override;
class function ExportSet(ASet: TSynSet; ANode: IXMLNode): Boolean; override;
class function ImportRange(ARange: TSynRange; ANode: IXMLNode): Boolean; override;
class function ExportRange(ARange: TSynRange; ANode: IXMLNode): Boolean; override;
class function ImportHighlighter(SynUniSyn: TSynUniSyn; ANode: IXMLNode): Boolean; override;
class function ExportHighlighter(SynUniSyn: TSynUniSyn; ANode: IXMLNode): Boolean; override;
class function ImportFromStream(AObject: TObject; AStream: TStream): Boolean; override;
class function ExportToStream(AObject: TObject; AStream: TStream): Boolean; override;
class function ImportFromFile(AObject: TObject; AFileName: string): Boolean; override;
class function ExportToFile(AObject: TObject; AFileName: string): Boolean; override;
end;
implementation
//----------------------------------------------------------------------------
class function TSynUniFormatNativeXml18.ImportInfo(AInfo: TSynInfo; ANode: IXMLNode): Boolean;
var
i: Integer;
begin
with ANode, AInfo do
begin
with EnsureChild('General'), General do
begin
Name := GetVarAttr('Name','');
Extensions := GetVarAttr('Extensions','');
end;
with EnsureChild('Author'), Author do
begin
Name := GetVarAttr('Name','');
Email := GetVarAttr('Email','');
Web := GetVarAttr('Web','');
Copyright := GetVarAttr('Copyright','');
Company := GetVarAttr('Company','');
Remark := GetVarAttr('Remark','');
end;
with EnsureChild('Version'), General do
begin
Version := StrToInt(GetVarAttr('Version',''));
Revision := StrToInt(GetVarAttr('Revision',''));
GetVarAttr('Date','');
end;
with EnsureChild('Sample'), General do
for i := 0 to ChildNodes.Count-1 do
Sample := Sample + ChildNodes[i].Text + #13#10;
with EnsureChild('History'), General do
for i := 0 to ChildNodes.Count-1 do
History := History + ChildNodes[i].Text + #13#10;
end;
Result := True;
end;
//----------------------------------------------------------------------------
class function TSynUniFormatNativeXml18.ExportInfo(AInfo: TSynInfo; ANode: IXMLNode): Boolean;
var
i: Integer;
Buffer: TStringList;
Node: IXMLNode;
begin
with AInfo, ANode do
begin
with General, AppendElement('General') do
begin
SetVarAttr('Name', Name);
SetVarAttr('Extensions', Extensions);
end;
with Author, AppendElement('Author') do
begin
SetVarAttr('Name', Name);
SetVarAttr('Email', Email);
SetVarAttr('Web', Web);
SetVarAttr('Copyright', Copyright);
SetVarAttr('Company', Company);
SetVarAttr('Remark', Remark);
end;
with General, AppendElement('Version') do
begin
SetVarAttr('Version', Version);
SetVarAttr('Revision', Revision);
end;
Buffer := TStringList.Create();
with General, AppendElement('History') do
begin
Text := #13#10;
Buffer.Text := History;
for i := 0 to Buffer.Count-1 do
begin
Node := AppendElement('H');
Node.Text := Buffer[i];
end;
end;
with General, AppendElement('Sample') do
begin
Text := ' ';
Buffer.Text := Sample;
for i := 0 to Buffer.Count-1 do
begin
Node := AppendElement('S');
Node.Text := Buffer[i];
end;
end;
FreeAndNil(Buffer);
end;
Result := True;
end;
//----------------------------------------------------------------------------
class function TSynUniFormatNativeXml18.ImportEditorProperties(AEditorProperties:
TEditorProperties; ANode: IXMLNode): Boolean;
begin
// 纛痨囹 礤 镱滗屦骅忄弪
Result := True;
end;
//----------------------------------------------------------------------------
class function TSynUniFormatNativeXml18.ExportEditorProperties(AEditorProperties:
TEditorProperties; ANode: IXMLNode): Boolean;
begin
// 纛痨囹 礤 镱滗屦骅忄弪
Result := True;
end;
//----------------------------------------------------------------------------
class function TSynUniFormatNativeXml18.ImportAttributes(Attributes: TSynAttributes;
AString: string): Boolean;
begin
with Attributes do
begin
ParentForeground := False; // 腕骓
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -