NotePad++ 사용자 정의 언어는 조건문을 표시하지 않습니다.

NotePad++ 사용자 정의 언어는 조건문을 표시하지 않습니다.

NotePad+에서 Powerbuilder용 사용자 정의 언어를 다운로드했습니다. 강조 표시에 조건문이 표시되지 않는다는 점을 제외하면 모든 것이 잘 작동합니다. XML을 살펴봤지만 강조표시되어야 하므로 잘못된 점을 발견하지 못했습니다.

여기에 대략적인 내용이 무엇인지에 대한 아이디어가 있습니까? NotePad++에서 어떻게 보이는지 보여주는 스크린샷은 다음과 같습니다.

조건부_문_사용자 정의_랭

PowerBuilder.xml <- 사용자 정의 언어

<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>

답변1

XML의 Folder+에서 제거를 시도했다는 귀하의 의견을 알고 있습니다 if. 하지만 UDL 대화 상자를 사용하여 설정을 변경하면 해당 항목 if코드 1 스타일로 접기그게 범인이에요:

  • UDL 정의가 있으므로 표시된 내용과 유사합니다.
  • 그런 다음스타일러~을 위한코드 1 스타일로 접기, Chooseif및 는 end접기 색상을 따릅니다.
  • 그런 다음에서 제거 if하면코드 1 스타일로 접기, if분홍빛에서 파란색으로 변경됩니다.

"접기"와 "키워드"로 나열된 단어가 있는 경우 UDL 어휘 분석기는 "키워드" 강조 표시를 수행하기 전에 "접기"를 찾고 한 번 중지하기 때문에 "접기" 스타일의 서식을 적용합니다. 그것을 발견합니다.

elseif(또한 "중간" 섹션에 추가하는 것이 좋습니다.코드 1 스타일로 접기if, 키워드가 아닌 접기로 남겨두면 .)

관련 정보