Jump to content

Language Definition für Notepad++


Manuel Rühl
Go to solution Solved by Manuel Rühl,

Recommended Posts

  • Solution
Johanna Becker
This post was recognized by Johanna Becker!

"Lieber Manuel, den Helpful-Badge bekommst Du für Deine tolle Hilfe fürs Teilen Deiner Erweiterung bei Notepad++ und weil wir Dich als sehr hilfsbereiten Citizen Development-Hero wahrnehmen. Du bist immer mit Rat und Tat für die Community da.Danke für Deine Unterstützung!"

Manuel Rühl was awarded the badge 'Helpful' and 15 points.

Hallo zusammen,

In der Formel-Fuchs-Masterclass wurde ja kurz angerissen, dass der Formeleditor ein wenig unübersichtlich ist
und man auch Notepad++ nutzen kann. Da fehlt dann aber der Syntax-Check.

Ich habe mich der Sache angenommen und eine rudimentäre Sprachdefinition gemacht.

Notepad++ findet Ihr hier:

Downloads | Notepad++ (notepad-plus-plus.org)

Dann nur noch die XML runterladen und über das Menü "Sprachen > benutzerdefinierte Sprache > eigene Sprache definieren > importieren (und aktivieren!)

Fühlt Euch frei, die Definition weiter anzupassen und natürlich dann wieder hochzuladen.

Schöne Grüße

Manuel

image.thumb.png.87994f67ed10e87cdc1a9e78cf3918c5.png

XML zum Rauskopieren:

<NotepadPlus>
    <UserLang name="smapOne_v7" ext="txt" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="yes" allowFoldOfComments="yes" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
            <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Comments">00// 01 02 03 04</Keywords>
            <Keywords name="Numbers, prefix1"></Keywords>
            <Keywords name="Numbers, prefix2">P</Keywords>
            <Keywords name="Numbers, extras1">D T H M S W Y</Keywords>
            <Keywords name="Numbers, extras2"></Keywords>
            <Keywords name="Numbers, suffix1"></Keywords>
            <Keywords name="Numbers, suffix2"></Keywords>
            <Keywords name="Numbers, range"></Keywords>
            <Keywords name="Operators1">( ) ,#</Keywords>
            <Keywords name="Operators2"></Keywords>
            <Keywords name="Folders in code1, open"></Keywords>
            <Keywords name="Folders in code1, middle"></Keywords>
            <Keywords name="Folders in code1, close"></Keywords>
            <Keywords name="Folders in code2, open"></Keywords>
            <Keywords name="Folders in code2, middle"></Keywords>
            <Keywords name="Folders in code2, close"></Keywords>
            <Keywords name="Folders in comment, open"></Keywords>
            <Keywords name="Folders in comment, middle"></Keywords>
            <Keywords name="Folders in comment, close"></Keywords>
            <Keywords name="Keywords1">MIN MAX ADD SUM SUB MUL PROD DIV AVG ROUND ROUNDUP ROUNDDOWN MROUND MROUNDUP MROUNDDOWN SUB_DATE SUB_PERIOD MUL_PERIOD TOTALDAYS TOTALHOURS TOTALMINUTES TOTALSECONDS DAYS HOURS MINUTES SECONDS CONTAINS STARTSWITH ENDSWITH TEXTPOS MATCH REPLACE LENGTH CONCAT JOIN SUBTEXT LEFT RIGHT EQUALS NOTEQUALS LESSTHAN LESSTHANOREQUAL GREATERTHAN GREATERTHANOREQUAL EMPTY NOTEMPTY AND OR NOT IF TEXT ADD_PERIOD SUB_PERIOD UPPERCASE LOWERCASE CAPITALIZE</Keywords>
            <Keywords name="Keywords2">\n</Keywords>
            <Keywords name="Keywords3">true false</Keywords>
            <Keywords name="Keywords4">#Max #Value</Keywords>
            <Keywords name="Keywords5"></Keywords>
            <Keywords name="Keywords6"></Keywords>
            <Keywords name="Keywords7"></Keywords>
            <Keywords name="Keywords8"></Keywords>
            <Keywords name="Delimiters">00&quot; 00&apos; 01 02&quot; 02&apos; 03{{ 04 05}} 06{ 07 08} 09[ 10 11] 12#Valu 13 14e 15#Ma 16 17x 18 19 20 21 22 23</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="COMMENTS" fgColor="008000" bgColor="FFFFFF" fontName="&#x64A1;&#xE50D;&#x1B00;&#x8000;rightWidth" fontStyle="0" nesting="0" />
            <WordsStyle name="LINE COMMENTS" fgColor="999999" bgColor="FFFFFF" fontName="no" fontStyle="0" nesting="0" />
            <WordsStyle name="NUMBERS" fgColor="39923A" bgColor="FFFFFF" fontName="no" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS1" fgColor="0C6CA6" bgColor="FFFFFF" fontName="no" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS2" fgColor="DD0000" bgColor="FFFFFF" fontName="aligned" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS3" fgColor="39923A" bgColor="FFFFFF" fontName="&#x0430;&#x2D50;&#x0250;" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS4" fgColor="00FF00" bgColor="FFFFFF" fontName="&#x4EB5;&#xE531;&#x1100;&#x8000;delimiterSelectionOnEntireDocument" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS5" fgColor="808080" bgColor="FFFFFF" fontName="&#x0002;" fontStyle="3" nesting="0" />
            <WordsStyle name="KEYWORDS6" fgColor="808080" bgColor="FFFFFF" fontName="&#x1D70;&#x2DFB;&#x0250;" fontStyle="3" nesting="0" />
            <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontName="&#x58C0;&#x322C;&#x0250;" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontName="&#xDB80;&#xC016;&#x7FFF;" fontStyle="0" nesting="0" />
            <WordsStyle name="OPERATORS" fgColor="333333" bgColor="FFFFFF" fontName="&#x0768;&#xC015;&#x7FFF;" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE1" fgColor="FF00FF" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE2" fgColor="0000FF" bgColor="FFFFFF" fontName="&#x4200;5&#x7F00;" fontStyle="1" nesting="0" />
            <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="&#xB680;&#x2DFF;&#x0250;" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS1" fgColor="BB0000" bgColor="FFFFFF" fontName="&#xEF9A;&#xE4E5;&#x0C00;&#x8000;&#x0009;" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS2" fgColor="CC710B" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS3" fgColor="CC710B" bgColor="FFFFFF" fontName="&#x3900;3&#x7F00;" fontStyle="0" nesting="56" />
            <WordsStyle name="DELIMITERS4" fgColor="CC710B" bgColor="FFFFFF" fontName="no" fontStyle="1" nesting="0" />
            <WordsStyle name="DELIMITERS5" fgColor="CC710B" bgColor="FFFFFF" fontName="no" fontStyle="1" nesting="0" />
            <WordsStyle name="DELIMITERS6" fgColor="CC710B" bgColor="FFFFFF" fontName="0" fontStyle="1" nesting="0" />
            <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="&#x78B0;&#x321A;&#x0250;" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="MISC" fontStyle="0" nesting="0" />
        </Styles>
    </UserLang>
</NotepadPlus>
 

Der Inhalt der Textfile zum Testen:

//Farbcodes:

//Formeln:            12/108/166
//Text:                187/0/0
//Zahlen:            57/146/58
//runde Klammern:    51/51/51
//Bausteine:        204/113/11
//\n                221/0/0
//Kommentare:        153/153/153
//Zeitraum            14/149/124

//Formeln:

MIN MAX ADD SUM SUB MUL PROD DIV AVG ROUND ROUNDUP ROUNDDOWN MROUND MROUNDUP MROUNDDOWN
SUB_DATE SUB_PERIOD MUL_PERIOD TOTALDAYS TOTALHOURS TOTALMINUTES TOTALSECONDS DAYS HOURS
MINUTES SECONDS CONTAINS STARTSWITH ENDSWITH TEXTPOS MATCH REPLACE LENGTH CONCAT JOIN
SUBTEXT LEFT RIGHT EQUALS NOTEQUALS LESSTHAN LESSTHANOREQUAL GREATERTHAN GREATERTHANOREQUAL
EMPTY NOTEMPTY AND OR NOT IF TEXT ADD_PERIOD SUB_PERIOD UPPERCASE LOWERCASE CAPITALIZE

//Bausteine
{{brick}}
{brick}
{Inventar[Objektname]}
{Rating#Max}
{Rating#Value}

//Hervorhebung von \n
\n

//Boolean
true false null

//Zahlen
1 2 3 4 5 999
1234.12
1233,44

//Text
"Text"

//Beispiele
PROD({Anzahl}, 3)
PROD({Teilepreis}, {Anzahl}, 1.19) 
PROD({Teilepreis}, {Anzahl}, {Rabatt}, {Steuersatz}) 
CONCAT({ReportTyp}," an ", {Inventar[Objektname]}," (",{Inventar[Objektnummer]}, ")")

MIN(P1DT2H5M10S, PT1H) 
MIN(P1DT10S, {pausendauer}) // Gibt den kleineren der Werte der beiden Zeitraumergebnis-Bausteine zurück

CONTAINS({Codescan}, "-") // Prüft, ob der Wert des Bausteins 'Codescan' das Zeichen "-" enthält
CONTAINS({Bauteil}, "Schraube") // Prüft, ob im Wert des Bausteins 'Bauteil' der Text "Schraube" vorkommt

smapOne_v7.xml smapOne_v7.txt

Edited by Manuel Rühl
v7: Änderungen Release v.1.22 (Rating#Max und Rating#Value)
  • Like 9
  • Thanks 12
Link to comment
Share on other sites

  • 2 weeks later...

So, Version 5 ist hochgeladen.

Anpassungen:

  • true/false werden gehighlighted.
  • Referenzen auf einen DSAB in fett.
  • Die Sprache heißt jetzt smapOne und nicht mehr SmapOne. Tztztz, Wie konnte ich DAS nur übersehen? Aber ist jetzt geändert und die Marketingabteilung ist hoffentlich nun auch wieder "smappy". 😉

Danke an @Christian Meixner für die Anmerkungen!

  • Like 2
  • Haha 3
  • Thanks 1
Link to comment
Share on other sites

vor 3 Stunden schrieb Manuel Rühl:

Die Sprache heißt jetzt smapOne und nicht mehr SmapOne. Tztztz, Wie konnte ich DAS nur übersehen?

Vielen Dank, mein Inner Monk kann sich wieder schlafen legen 😄

zen yoga GIF by Mod Sun

 

Aber nochmal, Scherz beiseite: Echt super hilfreiche Sache. Tausend Dank dafür!

Link to comment
Share on other sites

  • 3 weeks later...

Entwickler von Notepad++ ignoriert offensichtlich Sicherheitslücken | heise online

image.png.07645cffd92bf403415be592042d0e2e.png

"Wie eine konkrete Attacke aussehen könnte, führen die Forscher derzeit nicht aus. In jedem Fall muss ein Opfer eine präparierte Datei öffnen."

Da ich ein Fan von No-Code bin, habt Ihr aber wahrscheinlich nichts zu befürchten von meiner Language-Definition. 😛

Edited by Manuel Rühl
  • Like 1
  • Haha 5
Link to comment
Share on other sites

  • 2 weeks later...

Es gibt ein Update von Notepad++ mit dem die Sicherheitslücken wohl geschlossen werden:

Download Notepad++ v8.5.7 (Vulnerability fixes) | Notepad++ (notepad-plus-plus.org)

Ich musste den Installer aber manuell herunterladen, die Updatebenachrichtigung innerhalb des Programms wollte heute Morgen nur die 8.5.6 installieren.

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

  • 6 months later...

Aber klar doch @David Susami

//Farbcodes:

//Formeln:            12/108/166
//Text:                187/0/0
//Zahlen:            57/146/58
//runde Klammern:    51/51/51
//Bausteine:        204/113/11
//\n                221/0/0
//Kommentare:        153/153/153
//Zeitraum            14/149/124

//Formeln:

MIN MAX ADD SUM SUB MUL PROD DIV AVG ROUND ROUNDUP ROUNDDOWN MROUND MROUNDUP MROUNDDOWN
SUB_DATE SUB_PERIOD MUL_PERIOD TOTALDAYS TOTALHOURS TOTALMINUTES TOTALSECONDS DAYS HOURS
MINUTES SECONDS CONTAINS STARTSWITH ENDSWITH TEXTPOS MATCH REPLACE LENGTH CONCAT JOIN
SUBTEXT LEFT RIGHT EQUALS NOTEQUALS LESSTHAN LESSTHANOREQUAL GREATERTHAN GREATERTHANOREQUAL
EMPTY NOTEMPTY AND OR NOT IF TEXT ADD_PERIOD SUB_PERIOD UPPERCASE LOWERCASE CAPITALIZE

//Bausteine
{{brick}}
{brick}
{Inventar[Objektname]}

//Hervorhebung von \n
\n

//Boolean
true false null

//Zahlen
1 2 3 4 5 999
1234.12
1233,44

//Text
"Text"

//Beispiele
PROD({Anzahl}, 3)
PROD({Teilepreis}, {Anzahl}, 1.19) 
PROD({Teilepreis}, {Anzahl}, {Rabatt}, {Steuersatz}) 
CONCAT({ReportTyp}," an ", {Inventar[Objektname]}," (",{Inventar[Objektnummer]}, ")")

MIN(P1DT2H5M10S, PT1H) 
MIN(P1DT10S, {pausendauer}) // Gibt den kleineren der Werte der beiden Zeitraumergebnis-Bausteine zurück

CONTAINS({Codescan}, "-") // Prüft, ob der Wert des Bausteins 'Codescan' das Zeichen "-" enthält
CONTAINS({Bauteil}, "Schraube") // Prüft, ob im Wert des Bausteins 'Bauteil' der Text "Schraube" vorkommt

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Und hier die XML:

<NotepadPlus>
    <UserLang name="smapOne" ext="txt" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="yes" allowFoldOfComments="yes" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
            <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Comments">00// 01 02 03 04</Keywords>
            <Keywords name="Numbers, prefix1"></Keywords>
            <Keywords name="Numbers, prefix2">P</Keywords>
            <Keywords name="Numbers, extras1">D T H M S W Y</Keywords>
            <Keywords name="Numbers, extras2"></Keywords>
            <Keywords name="Numbers, suffix1"></Keywords>
            <Keywords name="Numbers, suffix2"></Keywords>
            <Keywords name="Numbers, range"></Keywords>
            <Keywords name="Operators1">( ) ,</Keywords>
            <Keywords name="Operators2"></Keywords>
            <Keywords name="Folders in code1, open"></Keywords>
            <Keywords name="Folders in code1, middle"></Keywords>
            <Keywords name="Folders in code1, close"></Keywords>
            <Keywords name="Folders in code2, open"></Keywords>
            <Keywords name="Folders in code2, middle"></Keywords>
            <Keywords name="Folders in code2, close"></Keywords>
            <Keywords name="Folders in comment, open"></Keywords>
            <Keywords name="Folders in comment, middle"></Keywords>
            <Keywords name="Folders in comment, close"></Keywords>
            <Keywords name="Keywords1">MIN MAX ADD SUM SUB MUL PROD DIV AVG ROUND ROUNDUP ROUNDDOWN MROUND MROUNDUP MROUNDDOWN SUB_DATE SUB_PERIOD MUL_PERIOD TOTALDAYS TOTALHOURS TOTALMINUTES TOTALSECONDS DAYS HOURS MINUTES SECONDS CONTAINS STARTSWITH ENDSWITH TEXTPOS MATCH REPLACE LENGTH CONCAT JOIN SUBTEXT LEFT RIGHT EQUALS NOTEQUALS LESSTHAN LESSTHANOREQUAL GREATERTHAN GREATERTHANOREQUAL EMPTY NOTEMPTY AND OR NOT IF TEXT ADD_PERIOD SUB_PERIOD UPPERCASE LOWERCASE CAPITALIZE</Keywords>
            <Keywords name="Keywords2">\n</Keywords>
            <Keywords name="Keywords3">true false</Keywords>
            <Keywords name="Keywords4"></Keywords>
            <Keywords name="Keywords5"></Keywords>
            <Keywords name="Keywords6"></Keywords>
            <Keywords name="Keywords7"></Keywords>
            <Keywords name="Keywords8"></Keywords>
            <Keywords name="Delimiters">00&quot; 00&apos; 01 02&quot; 02&apos; 03{{ 04 05}} 06{ 07 08} 09[ 10 11] 12 13 14 15 16 17 18 19 20 21 22 23</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="COMMENTS" fgColor="008000" bgColor="FFFFFF" fontName="&#x64A1;&#xE50D;&#x1B00;&#x8000;rightWidth" fontStyle="0" nesting="0" />
            <WordsStyle name="LINE COMMENTS" fgColor="999999" bgColor="FFFFFF" fontName="no" fontStyle="0" nesting="0" />
            <WordsStyle name="NUMBERS" fgColor="39923A" bgColor="FFFFFF" fontName="no" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS1" fgColor="0C6CA6" bgColor="FFFFFF" fontName="no" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS2" fgColor="DD0000" bgColor="FFFFFF" fontName="aligned" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS3" fgColor="39923A" bgColor="FFFFFF" fontName="&#x0430;&#x2D50;&#x0250;" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS4" fgColor="0000FF" bgColor="FFFFFF" fontName="&#x4EB5;&#xE531;&#x1100;&#x8000;delimiterSelectionOnEntireDocument" fontStyle="3" nesting="0" />
            <WordsStyle name="KEYWORDS5" fgColor="808080" bgColor="FFFFFF" fontName="&#x0002;" fontStyle="3" nesting="0" />
            <WordsStyle name="KEYWORDS6" fgColor="808080" bgColor="FFFFFF" fontName="&#x1D70;&#x2DFB;&#x0250;" fontStyle="3" nesting="0" />
            <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontName="&#x58C0;&#x322C;&#x0250;" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontName="&#xDB80;&#xC016;&#x7FFF;" fontStyle="0" nesting="0" />
            <WordsStyle name="OPERATORS" fgColor="333333" bgColor="FFFFFF" fontName="&#x0768;&#xC015;&#x7FFF;" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE1" fgColor="FF00FF" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE2" fgColor="0000FF" bgColor="FFFFFF" fontName="&#x4200;5&#x7F00;" fontStyle="1" nesting="0" />
            <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="&#xB680;&#x2DFF;&#x0250;" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS1" fgColor="BB0000" bgColor="FFFFFF" fontName="&#xEF9A;&#xE4E5;&#x0C00;&#x8000;&#x0009;" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS2" fgColor="CC710B" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS3" fgColor="CC710B" bgColor="FFFFFF" fontName="&#x3900;3&#x7F00;" fontStyle="0" nesting="24" />
            <WordsStyle name="DELIMITERS4" fgColor="CC710B" bgColor="FFFFFF" fontName="no" fontStyle="1" nesting="0" />
            <WordsStyle name="DELIMITERS5" fgColor="0080FF" bgColor="FFFFFF" fontName="no" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="0" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="&#x78B0;&#x321A;&#x0250;" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="MISC" fontStyle="0" nesting="0" />
        </Styles>
    </UserLang>
</NotepadPlus>
 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...