far2l icon indicating copy to clipboard operation
far2l copied to clipboard

UserHrdPath not working in colorer

Open unxed opened this issue 3 years ago • 3 comments
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

unxed avatar Jan 22 '22 09:01 unxed

try real path instead of ~

elfmz avatar Jan 22 '22 10:01 elfmz

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?

unxed avatar Jan 22 '22 10:01 unxed

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
}

unxed avatar Jan 22 '22 12:01 unxed