+ Rispondi
Risultati da 1 a 8 su 8
  1. #1

    Iscritto dal
    13/12/2011
    Località
    Salento!
    Messaggi
    6,858

    Notepad++ - Estendere linguaggio

    In notepad++ è possibile creare un Userlang partendo da uno esistente (in particolare la sintassi C) ?

  2. #2
    I'm all out of bubblegum
    Iscritto dal
    01/07/2011
    Località
    R'lyeh
    Messaggi
    5,196
    Usa Vim... oh wait.

    Non usa dei file di properties per ogni linguaggio? Scite è così, ad esempio.

  3. #3

    Iscritto dal
    27/09/2011
    Messaggi
    2,095
    Ti vuoi fare il parser per il lolcode?

  4. #4

    Iscritto dal
    13/12/2011
    Località
    Salento!
    Messaggi
    6,858
    Quote Originariamente inviato da GByTe Visualizza il messaggio
    Usa Vim... oh wait.

    Non usa dei file di properties per ogni linguaggio? Scite è così, ad esempio.
    Si posso fare un linguaggio personalizzato. Ma non volevo reinventare l'acqua calda e quindi volevo partire dal properties del C aggiungendo colorazione ad alcune keyword senza pastrocciare il default. Se vim c'è per winzoz senza passare da cygwin e si può fare passo a VIM.

    Quote Originariamente inviato da Matteo92 Visualizza il messaggio
    Ti vuoi fare il parser per il lolcode?
    Circa

  5. #5

    Iscritto dal
    26/05/2011
    Località
    Lugano, Svizzera
    Messaggi
    21,499
    Notepad++? Eccomi

    Forse si può fare così, Language > Define your language

    Senza cambiare niente, "save as" e gli dai il nome che desideri.

    Export, e salvi l'xml sul desktop. Il linguaggio puoi già cancellarlo col pulsante remove.

    Apri l'xml in notepad++ () insieme a langs.model.xml e stylers.model.xml

    Con le due cose vedi come funziona tutto.


    Cioè, esistono delle classi di keyword come vedi in langs.model.xml o delle keyword singole come le mette nell'xml appena creato.
    Poi esiste lo stile per ciascuna keyword, oppure per le classi di keyword come vedi in stylers.model.xml.

    Puoi guardare con dei copia/incolla del linguaggio base (facendo attenzione agli id eccetera) cosa funziona e cosa no, importandolo in Notepad++


    Ci sarebbe un'altra strada, ovvero andare a modificare direttamente gli xml globali ma anche se aggiungi due nuove sezioni (copia/incolla esempio del C e poi lo modifichi), non so se compare nei menù di selezione del linguaggio insieme a quelli default.
    Forse sì, fai un bel test e facci sapere
    Verità #10 | Viva l'unto, reale o presunto

  6. #6

    Iscritto dal
    13/12/2011
    Località
    Salento!
    Messaggi
    6,858
    Quote Originariamente inviato da MainThink Visualizza il messaggio
    Notepad++? Eccomi

    Forse si può fare così, Language > Define your language

    Senza cambiare niente, "save as" e gli dai il nome che desideri.

    Export, e salvi l'xml sul desktop. Il linguaggio puoi già cancellarlo col pulsante remove.

    Apri l'xml in notepad++ () insieme a langs.model.xml e stylers.model.xml

    Con le due cose vedi come funziona tutto.


    Cioè, esistono delle classi di keyword come vedi in langs.model.xml o delle keyword singole come le mette nell'xml appena creato.
    Poi esiste lo stile per ciascuna keyword, oppure per le classi di keyword come vedi in stylers.model.xml.

    Puoi guardare con dei copia/incolla del linguaggio base (facendo attenzione agli id eccetera) cosa funziona e cosa no, importandolo in Notepad++


    Ci sarebbe un'altra strada, ovvero andare a modificare direttamente gli xml globali ma anche se aggiungi due nuove sezioni (copia/incolla esempio del C e poi lo modifichi), non so se compare nei menù di selezione del linguaggio insieme a quelli default.
    Forse sì, fai un bel test e facci sapere
    si avevo cercato.
    trovato questo: c:\Program Files (x86)\Notepad++\stylers.model.xml
    Spoiler: Codice xml

    Codice PHP:
    <LexerType name="c" desc="C" ext="">
                <
    WordsStyle name="PREPROCESSOR" styleID="9" fgColor="804000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="INSTRUCTION WORD" styleID="5" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" keywordClass="instre1" />
                <
    WordsStyle name="TYPE WORD" styleID="16" fgColor="8000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="type1" />
                <
    WordsStyle name="NUMBER" styleID="4" fgColor="FF8000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="STRING" styleID="6" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="CHARACTER" styleID="7" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="OPERATOR" styleID="10" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
                <
    WordsStyle name="VERBATIM" styleID="13" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="REGEX" styleID="14" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
                <
    WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="COMMENT DOC" styleID="3" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="COMMENT LINE DOC" styleID="15" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="COMMENT DOC KEYWORD" styleID="17" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
                <
    WordsStyle name="COMMENT DOC KEYWORD ERROR" styleID="18" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
            </
    LexerType

    che contiene gli stili per i gruppi. A me serviva partire dalle keywords del C ed aggiungerne.
    poi ho copiato da C:\Program Files (x86)\Notepad++\langs.model.xml
    Spoiler: Codice xml

    Codice PHP:
    <Language name="c" ext="c" commentLine="//" commentStart="/*" commentEnd="*/">
                <
    Keywords name="instre1">if else switch case default break goto return for while do continue typedef sizeof NULL</Keywords>
                <
    Keywords name="type1">void struct union enum char short int long double float signed unsigned const static extern auto register volatile</Keywords>
            </
    Language

    ottenendo
    Spoiler: risultato
    Codice PHP:
    <NotepadPlus>
        <
    UserLang name="script C" ext="sct">
            <
    Settings>
                <Global 
    caseIgnored="no" />
                <
    TreatAsSymbol comment="no" commentLine="yes" />
                <
    Prefix words1="yes" words2="no" words3="no" words4="yes" />
            </
    Settings>
            <
    KeywordLists>
                <
    Keywords name="instre1">if else switch case default break goto return for while do continue typedef sizeof NULL</Keywords>
                <
    Keywords name="type1">void struct union enum char short int long double float signed unsigned const static extern auto register volatile</Keywords>
            </
    KeywordLists>
            <
    Styles>
                <
    WordsStyle name="PREPROCESSOR" styleID="9" fgColor="804000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="INSTRUCTION WORD" styleID="5" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" keywordClass="instre1" />
                <
    WordsStyle name="TYPE WORD" styleID="16" fgColor="8000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="type1" />
                <
    WordsStyle name="NUMBER" styleID="4" fgColor="FF8000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="STRING" styleID="6" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="CHARACTER" styleID="7" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="OPERATOR" styleID="10" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
                <
    WordsStyle name="VERBATIM" styleID="13" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="REGEX" styleID="14" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
                <
    WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="COMMENT DOC" styleID="3" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="COMMENT LINE DOC" styleID="15" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                <
    WordsStyle name="COMMENT DOC KEYWORD" styleID="17" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
                <
    WordsStyle name="COMMENT DOC KEYWORD ERROR" styleID="18" fgColor="008080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
            </
    Styles>
        </
    UserLang>
    </
    NotepadPlus

    ma non ho ottenuto ciò che volevo (non fà nulla)
    Pace, me lo farò a mano

  7. #7

    Iscritto dal
    26/05/2011
    Località
    Lugano, Svizzera
    Messaggi
    21,499
    Hai per caso provato ad aggiungere le sezioni corrispondenti direttamente ai due xml del programma, invece di fare uno userlang?

    Magari notepad++ è abbastanza nerd da popolare il menù dei linguaggi a seconda di quello che trova nei file?
    Verità #10 | Viva l'unto, reale o presunto

  8. #8

    Iscritto dal
    13/12/2011
    Località
    Salento!
    Messaggi
    6,858
    Quote Originariamente inviato da MainThink Visualizza il messaggio
    Hai per caso provato ad aggiungere le sezioni corrispondenti direttamente ai due xml del programma, invece di fare uno userlang?

    Magari notepad++ è abbastanza nerd da popolare il menù dei linguaggi a seconda di quello che trova nei file?
    no, potrei provare.
    Ma poi dovendo utilizzare in 20 persone questo user lang non vorrei ci fossero casini con le versioni di notepad++ diverse. E non tutti hanno accesso a system


 

Autorizzazioni

  • Non puoi iniziare nuove discussioni
  • Non puoi rispondere alle discussioni
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
Powered by vBulletin™ Version 4.1.5
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved
SEO by vBSEO ©2011, Crawlability, Inc.
Fuso orario: UTC +1, sono le 07:24.