NotePad++ User Defined Lang zeigt keine bedingten Anweisungen an

NotePad++ User Defined Lang zeigt keine bedingten Anweisungen an

Ich habe eine benutzerdefinierte Sprache für Powerbuilder in NotePad+ heruntergeladen. Alles funktioniert damit einwandfrei, außer dass bedingte Anweisungen nicht hervorgehoben werden. Ich habe mir das XML angesehen, aber nichts Falsches gefunden, da es hervorgehoben werden sollte.

Irgendwelche Ideen, was hier nicht ganz stimmen könnte? Hier ist der Screenshot, wie es in NotePad++ aussieht:

conditional_statement_userdefined_lang

PowerBuilder.xml <- Benutzerdefinierte Sprache

<NotepadPlus>
    <UserLang name="PowerBuilder" ext="srw sru srs srm">
        <Settings>
            <Global caseIgnored="yes"/>
            <TreatAsSymbol comment="yes" commentLine="yes"/>
            <Prefix words1="no" words2="no" words3="no" words4="no"/>
        </Settings>
            <KeywordLists>
                <Keywords name="Delimiters">"00"00</Keywords>
                <Keywords name="Folder+">if choose subroutine type</Keywords>
                <Keywords name="Folder-">end</Keywords>
                <Keywords name="Operators">( ) . ;</Keywords>
                <Keywords name="Comment">1/* 2*/ 0//</Keywords>
                <Keywords name="Words1">
                alias and autoinstantiate call case catch choose close commit connect constant continue create cursor declare delete describe descriptor destory disconnect do dynamic else elseif end enumerated event execute exit external false fetch finally first for forward from function global goto halt if immediate indirect insert into intrinsic is last library loop namespace native next not of on open or parent post prepare prior private privateread privatewrite procedure protected protectedread protectedwrite prototypes public readonly ref return rollback rpcfunc select selectblob shared static step subroutine super system systemread systemwrite then this throw throws to trigger true try type until update updateblob using variables while with within xor _debug
                </Keywords>
                <Keywords name="Words2">
                any Blob Boolean Byte Char Character Date DateTime Decimal Dec Double Integer Int Long LongLong Real String Time UnsignedInteger UnsignedInt UInt UnsignedLong ULong
                </Keywords>
                <Keywords name="Words3">this parent super</Keywords>
                <Keywords name="Words4"/>
            </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="KEYWORD1" styleID="5" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1"/>
            <WordsStyle name="KEYWORD2" styleID="6" fgColor="800080" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="KEYWORD3" styleID="7" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1"/>
            <WordsStyle name="KEYWORD4" styleID="8" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="NUMBER" styleID="4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="OPERATOR" styleID="10" fgColor="000000" bgColor="FFFFFF" fontName="@Arial Unicode MS" fontStyle="0"/>
            <WordsStyle name="DELIMINER1" styleID="14" fgColor="959595" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="DELIMINER2" styleID="15" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
            <WordsStyle name="DELIMINER3" styleID="16" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
        </Styles>
    </UserLang>
</NotepadPlus>

Antwort1

Ich weiß, dass Sie in Ihrem Kommentar sagten, Sie hätten versucht, ifaus Ordner+ in der XML zu entfernen... aber wenn ich den UDL-Dialog verwende, um die Einstellungen zu ändern, wird bestätigt, dass es ifsich in derFalten im Code 1-Stildas ist der Übeltäter:

  • Da Sie die UDL-Definition hatten, sehe ich etwas Ähnliches wie das, was Sie gezeigt haben:
  • Ändere ich dann dieStylerfürFalten im Code 1-Stil, die Chooseund ifund endfolgen der Faltfarbe:
  • Entferne ich dann das ifausFalten im Code 1-Stil, die ifVeränderungen von rosa nach blau.

Wenn Sie ein Wort sowohl als „Folding“ als auch als „Keyword“ aufgelistet haben, wird die Formatierung im „Folding“-Stil angewendet, da der UDL-Lexer nach „Folding“ sucht, bevor er die „Keyword“-Hervorhebung durchführt, und anhält, sobald er es gefunden hat.

(Ich würde auch empfehlen, elseifden Abschnitt „Mitte“ vonFalten im Code 1-Stil, wenn Sie das ifals Faltung statt als Schlüsselwort belassen.)

verwandte Informationen