Oma editori eclipseen

vaikea kysymys

Jos haluaa tehdä oman editorinäkymän eclipseen, joka näyttää tietyt sanat eri värisinä, niin osaisiko joku heittää tällaisen plug-inin koodin ja sitten vielä miten se pitää asentaa eclipseen?

3

512

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • if-else

      Alla esimerkki koodi yksinkertaisesta editori plug-in:sta jossa "moikka", "hei" ja "terve" sanat tulevat erillä värillä.


      Ohje: Plug-In tekeminen ja testaaminen
      ===========================================

      - Lataa "Eclipse for RCP/Plug-in Developers" ja asenna/pura se. (Osoite: http://www.eclipse.org/downloads/)
      - Kun tuon purkaa, niin kannattaa katsoa ettei pura vanhan Eclipsen päällä
      - Käynnistä "Eclipse for RCP/Plug-in Developers"
      - Sulje "Wellcome" -ikkuna
      - Valitse: "Window" -> "Open Perspectice" -> "Other" -> "Plug-in Development"
      - Paina "OK" painiketta
      - Valitese: "File" -> "New" -> "Project" -> "Plug-in Development" -> "Plug-in project"
      - Paina "Next" painiketta
      - Kirjoita "Project name:" kohtaan: "com.esimerkit.omat"
      - Paina "Next" painiketta ja sen jälkeen "Finish" painiketta
      - Mene editor ikkunan "Extensions" välilehdelle ja paina "Add" -painiketta
      - Valitse extension pointiksi valinnasta "org.eclipse.ui.editors" ja mallipohjaksi "Editor"
      - Paina "Next" painiketta
      - Kirjoita "Editor Class Name" kohtaan: "OmaEditori"
      - Kirjoita "Editor name" kohtaan: "Oma Editori"
      - Kirjoita "File Extension" kohtaa: "oma"
      - Paina "Finnish" paniketta
      - Avaa nyt Package Explorein kautta OmaEditori.java tiedosto (löytyy com.esimerkit.omat.editors -paketista)
      - Korvaa "OmaEditori.java" tiedoston sisältö viestin alapuolella olevalla koodilla
      - Poista Package Explorerin kautta "com.esimerkit.omat.editors" paketista muut kuin "OmaEditori.java" -tiedosto
      - Tallenna "OmaEditori.java" ja muut muutokset: File -> Save
      - Avaa "OmaEditori.java" -tiedosto ja painaa "Play" nappia testataksi Plug-In extensionin toiminta
      - Nyt aukeaa uusi Eclipse, tee siihen projekti ja lisää projektiin tiedosto jonka pääte on .oma. (Esim. koe.oma)
      - Kirjoita kyseiseen tiedostoon teksti "moikka vaan miten menee, hei hei vaan"
      - Jos sanat "moikka" ja "hei" tulivat erillä värillä plug-in toimii
      - Plugin toiminnan huomaa myös siitä Koe.oma tiedoston editori ikkunan otsikkosta


      Asennus site:n laatiminen (lisenssi tietojen lisäys, jne.) ja asentaminen, yms.
      ====================================================================================

      - Valitese: "Help" -> "Welcome" -> "Tutorials" -> "Create an Eclipse plug-in"
      - Ilmestyy opas jossa vaiheittain opastetaan eri asioihin



      --- KOODI ALKAA ---


      package com.esimerkit.omat.editors;


      import org.eclipse.swt.graphics.Color;
      import org.eclipse.swt.graphics.RGB;
      import org.eclipse.swt.widgets.Display;
      import org.eclipse.ui.editors.text.FileDocumentProvider;
      import org.eclipse.ui.editors.text.TextEditor;


      import org.eclipse.jface.text.IDocument;
      import org.eclipse.jface.text.TextAttribute;
      import org.eclipse.jface.text.presentation.IPresentationReconciler;
      import org.eclipse.jface.text.presentation.PresentationReconciler;
      import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
      import org.eclipse.jface.text.rules.IRule;
      import org.eclipse.jface.text.rules.IWordDetector;
      import org.eclipse.jface.text.rules.RuleBasedScanner;
      import org.eclipse.jface.text.rules.Token;
      import org.eclipse.jface.text.rules.WordRule;
      import org.eclipse.jface.text.source.ISourceViewer;
      import org.eclipse.jface.text.source.SourceViewerConfiguration;


      public class OmaEditori extends TextEditor {
         final private static String[] SANAT = { "moikka", "hei", "terve" };
         final private static RGB VARI = new RGB(0, 255, 0);
         private Color vari;

         
         public OmaEditori() {
            super();
            vari = new Color(Display.getCurrent(), VARI);
            setSourceViewerConfiguration(new OmaConfiguration(vari, SANAT));
            setDocumentProvider(new OmaDocumentProvider());
         }
         
         
         public void dispose() {
            vari.dispose();
            super.dispose();
         }
      }


      class OmaConfiguration extends SourceViewerConfiguration {
         private RuleBasedScanner omaSkanneri;
         
         
         public OmaConfiguration(Color vari, String[] sanat) {
            omaSkanneri = new RuleBasedScanner();
            
            WordRule sananSääntö = new WordRule(new IWordDetector() {
               public boolean isWordPart(char c) {
                  return Character.isLetterOrDigit(c);
               }
               
               public boolean isWordStart(char c) {
                  return Character.isLetterOrDigit(c);
               }            
            });
            
            for (String sana : sanat)
               sananSääntö.addWord(sana, new Token(new TextAttribute(vari)));
            
            omaSkanneri.setRules(new IRule[] { sananSääntö });      
         }
         
         
         public IPresentationReconciler getPresentationReconciler(
               ISourceViewer sourceViewer)
         {
            PresentationReconciler ruudulleSovittaja = new PresentationReconciler();
            DefaultDamagerRepairer dr = new DefaultDamagerRepairer(omaSkanneri);
            
            ruudulleSovittaja.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
            ruudulleSovittaja.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
            
            return ruudulleSovittaja;
         }
      }


      class OmaDocumentProvider extends FileDocumentProvider {
      }


      --- KOODI LOPPUU ---

    • -_.:._-

      Jos tarkoituksena on saada aikaan oma editori jossa on oma värikorostus niin
      se on aika helppoa Lazaruksella jota voi helposti jakaa myös kavereille (ei vaadi javaa eikä muita kirjastoja). Lazaruksessa on valmiit komponentit editorin tekemiseen
      ja onhan Lazaruksen editori tehty niillä. Tuollaisen peruseditoriin tarvittava Pascal -taito on vähäinen jos osaat jo jonkun muun ohjelmointikielen.

      Jos mielenkiinto heräsi niin parempi alue tästä on keskustella Delphi -alueella.

      • miten sen lazarus-editorin

        voi integroida eclipseen.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Vain vasemmistolaiset rakennemuutokset pelastavat Suomen

      Kansaa on ankeutettu viimeiset 30+ vuotta porvarillisella minäminä-talouspolitiikalla, jossa tavalliselta kansalta on ot
      Maailman menoa
      20
      3375
    2. Persut huutaa taas: "kato! muslimi!"

      Persut on lyhyessä ajassa ajaneet läpi kaksi työntekijöiden oikeuksien heikennystä, joita se on aiemmin vastustanut. Pe
      Maailman menoa
      11
      2798
    3. Menen nyt koisimaan

      Ja en ehkä palaa tänne. Asia on nyt loppuunkäsitelty ja totuus tuli ilmi
      Ikävä
      28
      2454
    4. Olisiko sinulla

      Jonossa vaihtoehtoja, ehkä
      Ikävä
      42
      1847
    5. Pieni galluppi

      Mitäs lahjaa odotat joulupukilta.
      Ikävä
      51
      1709
    6. onko kaivattusi

      vaarallinen? :D
      Ikävä
      41
      1441
    7. KL: Mari Hynynen avoimena - Jouni-rakkaan ja Joel-pojan välit ovat nämä!

      Mari Hynynen (ent. Perankoski) on naimisissa Jouni Hynysen kanssa. Marilla on edellisestä liitosta yksi lapsi, Joel Vola
      Suomalaiset julkkikset
      10
      1438
    8. Haluaisin rakastaa sinua

      Ja olla sinulle se oikea... Rakastan sinua 💗💗💗
      Ikävä
      9
      1431
    9. Oletko uhriutuja?

      vaikka itse olet rääkännyt toista ja aiheuttanut ties mitä toiselle.
      Tunteet
      52
      1315
    10. Missikohu edustaa nykyajan monimuotoisuutta

      Puolesta vai vastaan, saako esittää pilkkaavasti jonkun toisen ihmisen syntyperäisiä ominaisuuksia? Kadulla vastaan tule
      Sinkut
      262
      1135
    Aihe