far2l
far2l copied to clipboard
UserHrdPath not working in colorer
trafficstars
Tried to add custom .hrd color scheme for colorer via config.ini:
[Settings]
UserHrdPath=~/.config/far2l/plugins/colorer/def_dark.hrd
def_dark.hrd:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hrd PUBLIC "-//Cail Lomecb//DTD Colorer HRD take5//EN"
"http://colorer.sf.net/2003/hrd.dtd">
<hrd xmlns="http://colorer.sf.net/2003/hrd">
<assign name="def:Text" fore="#B" back="#8"/>
<assign name="def:HorzCross" fore="#B" back="#0"/>
<assign name="def:VertCross" fore="#b" back="#0"/>
<assign name="def:Syntax"/>
<assign name="def:Number" fore="#A"/>
<assign name="def:NumberSuffix" fore="#2"/>
<assign name="def:String" fore="#E"/>
<assign name="def:StringContent" fore="#3"/>
<assign name="def:StringEdge" fore="#6"/>
<assign name="def:Character" fore="#E"/>
<assign name="def:CharacterContent" fore="#E"/>
<assign name="def:Comment" fore="#3"/>
<assign name="def:CommentContent" fore="#7"/>
<assign name="def:CommentEdge" fore="#3"/>
<assign name="def:CommentDoc" fore="#7"/>
<assign name="def:CommentDocContent" fore="#3"/>
<assign name="def:CommentDocEdge" fore="#3"/>
<assign name="def:Symbol" fore="#F"/>
<assign name="def:SymbolStrong" fore="#E"/>
<assign name="def:Prefix" fore="#F"/>
<assign name="def:PrefixStrong" fore="#E"/>
<assign name="def:Operator" fore="#F"/>
<assign name="def:Keyword" fore="#F"/>
<assign name="def:TypeKeyword" fore="#E"/>
<assign name="def:Function"/>
<assign name="def:Register" fore="#E"/>
<assign name="def:Constant" fore="#B"/>
<assign name="def:BooleanConstant" fore="#B"/>
<assign name="def:Var" fore="#B"/>
<assign name="def:VarStrong" fore="#A"/>
<assign name="def:Identifier" fore="#B"/>
<assign name="def:Directive" fore="#A"/>
<assign name="def:DirectiveInternal" fore="#2"/>
<assign name="def:Parameter" fore="#A"/>
<assign name="def:ParameterStrong" fore="#D"/>
<assign name="def:ParameterUnknown" fore="#B"/>
<assign name="def:Tag" fore="#7"/>
<assign name="def:OpenTag" fore="#F"/>
<assign name="def:CloseTag" fore="#F"/>
<assign name="def:Label" fore="#D"/>
<assign name="def:LabelStrong" fore="#1" back="#F"/>
<assign name="def:Insertion" fore="#B" back="#0"/>
<assign name="def:Error" fore="#0" back="#4"/>
<assign name="def:ErrorText" fore="#D"/>
<assign name="def:TODO" fore="#0" back="#6"/>
<assign name="def:Debug" fore="#0" back="#6"/>
<assign name="def:URI" fore="#C"/>
<assign name="def:EMail" fore="#E"/>
<assign name="def:Date" fore="#E"/>
<assign name="def:Time" fore="#A"/>
<assign name="def:PairStart" fore="#C"/>
<assign name="def:PairEnd" fore="#C"/>
<assign name="def:PairStrongStart" fore="#E" back="#0"/>
<assign name="def:PairStrongEnd" fore="#E" back="#0"/>
</hrd>
— nothing happens. Color scheme is still from colorer's catalog
try real path instead of ~
try real path instead of ~
Just the same. Also, ~ is working in UserHrcPath. Moreover, if you specify a wrong path in UserHrcPath, far2l complains. But if in UserHrdPath — it does not. Does it even read it?
Seems like FarEditorSet::LoadUserHrd actually does nothing :-/
void FarEditorSet::LoadUserHrd(const String *filename, ParserFactory *pf)
{
(void)filename;
(void)pf;
// В текущем API Colorer метод ParserFactory::parseHRDSetsChild() изменил
// назначение; весь разбор HDR сосредоточен в приватной части CatalogParser.
#if 0
if (filename && filename->length()){
DocumentBuilder docbuilder;
Document *xmlDocument;
InputSource *dfis = InputSource::newInstance(filename);
xmlDocument = docbuilder.parse(dfis);
Node *types = xmlDocument->getDocumentElement();
if (*types->getNodeName() != "hrd-sets"){
docbuilder.free(xmlDocument);
throw Exception(SString("main '<hrd-sets>' block not found"));
}
for (Node *elem = types->getFirstChild(); elem; elem = elem->getNextSibling()){
if (elem->getNodeType() == Node::ELEMENT_NODE && *elem->getNodeName() == "hrd"){
pf->parseHRDSetsChild(elem);
}
};
docbuilder.free(xmlDocument);
}
#endif // if 0
}