IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Platform Discussion :

[Plug-in] Editeur et fonctionnalités de base


Sujet :

Eclipse Platform

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Points : 100
    Points
    100
    Par défaut [Plug-in] Editeur et fonctionnalités de base
    Bonjour,

    j'ai commencé à développer un éditeur. J'arrive à faire pas mal de truc (Outline, completion, syntax coloring,...). Mon problème est qu'il y a certaines fonctionnalités de base qui ne sont pas présentes. Je pense notamment à la recherche (Ctrl+F), le déplacement à une ligne précise (Ctrl+L),... Tout les éléments du menu Edit son grisés. Je pensais que ces fonctionnalités étaient présentes en utilisant la classe TextEditor.
    J'ai également remarqué de la touche Supp ne marchait pas.
    Quelqu'un peut-il me donner plus de détails sur le fonctionnement des éditeurs ?

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    je travaille aussi sur un éditeur et je n'ai malheureusement pas de réponse
    à te donner pour l'instant
    Je réponds juste pour te demander s'il est possible de récupérer les sources
    de ton éditeur car cela m'intéresse, je n'ai pas trouvé de bon tutorial
    pour m'aider!

    Ou peut-être en as-tu trouvé un que tu pourrais m'indiquer???

    Merci d'avance

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Points : 100
    Points
    100
    Par défaut
    tu cherches à récupérer le contenu de l'éditeur ou le fichier ouvert par l'éditeur ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    En fait j'ai déjà commencé à créer un éditeur pour un type de fichier
    particulier à l'aide d'un petit tutorial. Il comprend la coloration syntaxique.

    A terme, j'aimerais un éditeur avec la complétion automatique et d'autres
    fonctionnalités comme des signaux d'erreurs etc. J'ai donc cherché des
    exemples ou des tutoriaux mais sans succés!
    En lisant ton post, je me suis dit que peut-être tu me permettrais de
    jeter un oeil sur les sources de ton éditeur pour comprendre comment ça marche!


    Cela pourrait me faire gagner pas mal de temps et avoir un bon exemple,
    pour moi c'est l'idéal!

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    C'est étrange tout de même ton problème!

    Je ne sais pas où tu en es mais mes éditeurs répondent correctement
    aux Ctrl+F et autres Ctrl+L...
    Pourtant je n'ai rien fait de particulier! Du coup je ne sais pas trop ce
    que je peux t'envoyer pour t'aider

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    Je vais déjà t'indiquer toutes les classes qui définissent mon éditeur :

    1. L'éditeur qui étend la classe TextEditor
    2. Une classe de configuration qui étend la classe SourceViewerConfiguration
    3. Un PartitionScanner qui étend la classe RuleBasedPartitionScanner
    4. Un Scanner qui étend la classe RuleBasedScanner
    5. Un DocumentProvider qui étend la classe FileDocumentProvider
    6. Une classe TextAttributeProvider pour gérer les couleurs

  7. #7
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 129
    Points : 160
    Points
    160
    Par défaut
    Voila un extrait de la javadoc JDK Eclipse ca poura t'aider

    Pour info je viens moi aussi de lancer le developpement d'un plugin pour le langage ADA sous eclipse.

    Je suis un epu empetré (et je n'ai pas forcement le temps) mais ca avance. Ce qu'il faut aussi remarquer c'est des source de ptits plugins c'est assez rare a trouver. Pour faire le mien j'ai du me plonger dans les source d'un gros plugin pour python ce qui n'est pas facile.

    J'aimerais que vous prenez l'initiative de publier vos sources pour l'entraide. Par exemple comment vous faite pour parser les sources et construire l'outliner .... j'ai trouvé plus ou moins une solution mais j'ai l'impression que ce n'est pas tres optimal.

    Moi mes sources sont chez sourceforge et le nom du projet c'est IDEADA.

    Pour d'autres questions je suis dispo. Et merci de publier les sources ca permet aux autres d'apprendre surtout les débutant comme moi.



    Key bindings

    The association between a command and the key combinations that should invoke the command is called a key binding. Plug-ins can define key bindings along with commands in the org.eclipse.ui.bindings extension point.

    ...
    <key
    sequence="Ctrl+S"
    commandId="org.eclipse.ui.file.save"
    schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
    </key>
    ...

    There is our friend org.eclipse.ui.file.save. Recall our hypothetical action definition:

    <extension point = "org.eclipse.ui.actionSets">
    <actionSet id="com.example.actions.actionSet"
    label="Example Actions"
    visible="true">
    <action id="com.example.actions.action1"
    menubarPath="additions"
    label="Example Save Action"
    class="org.example.actions.ExampleActionDelegate"
    definitionID="org.eclipse.ui.file.save">
    </action>
    ...
    </actionSet>
    </extension>

    The sequence attribute for a key binding defines the key combination that is used to invoke a command. So, it follows that when our example action set is active, our save action will be invoked when the user chooses Ctrl+S.

    Likewise, when the workbench SaveAction is active, the same key combination will invoke it instead, since the workbench uses the same command id for its SaveAction.

    To complete the example, we need to understand what the configuration is all about.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    Mouaip c'est vrai, faudrait publier les sources!

    Ceci dit, en ce qui me concerne pour le moment, mon éditeur ne contient
    pas beaucoup plus que ce que j'ai trouvé là :
    http://beuss.developpez.com/tutoriel.../editor/bases/

    En gros, ça se limite à la coloration syntaxique et à du surlignement, c'est tout!
    Donc de mon point de vue c'est très incomplet, d'où mon intervention dans
    cette discution...

    Mais dès que les choses auront avancé et que j'aurai qqch qui marche
    bien comme il faut, je publierai tout ça avec plaisir oui

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Points : 100
    Points
    100
    Par défaut
    alors à la demande générale, je publie mes sources !
    Ma classe qui étend TextEditor :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    package fr.tomtom.stellentcomponentwizard.editors.includes;
     
    import org.eclipse.core.resources.IFile;
    import org.eclipse.core.runtime.CoreException;
    import org.eclipse.jface.action.IAction;
    import org.eclipse.jface.text.FindReplaceDocumentAdapter;
    import org.eclipse.jface.text.IDocument;
    import org.eclipse.ui.IEditorInput;
    import org.eclipse.ui.IFileEditorInput;
    import org.eclipse.ui.editors.text.TextEditor;
    import org.eclipse.ui.texteditor.ContentAssistAction;
    import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
    import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
     
    import fr.tomtom.stellentcomponentwizard.editors.ColorManager;
    import fr.tomtom.stellentcomponentwizard.editors.includes.outline.IncludesOutlinePage;
    import fr.tomtom.stellentcomponentwizard.i18n.Messages;
     
    /**
     * Classe principale de l'éditeur des includes
     * @author tom
     *
     */
    public class IncludesEditor extends TextEditor {
     
        private IncludesOutlinePage overviewOutlinePage = null;
        private IEditorInput input;
        private ColorManager colorManager;
        private FindReplaceDocumentAdapter fFindReplaceDocumentAdapter;
     
        /**
         * Constructeur par defaut
         *
         */
    	public IncludesEditor() {
    		super();
    		colorManager = new ColorManager();
    		setSourceViewerConfiguration(new IncludesViewerConfiguration(colorManager));
    		setDocumentProvider(new IncludesDocumentProvider());
    	}   
     
    	protected void doSetInput(IEditorInput newInput) throws CoreException {
    		super.doSetInput(newInput);
    		this.input = newInput;
     
    		if (overviewOutlinePage != null) {
    		    overviewOutlinePage.setInput(input);
    		}
     
    		validateAndMark();
    	}
     
    	/**
             * Renvoie l'objet du type demande associe a l'editeur
             */
        public Object getAdapter(Class type) {
            if (type == IContentOutlinePage.class) {
            	// un objet de type IContentOutlinePage (Outline) associe a cet editeur est demande
                return getOverviewOutlinePage();
            } else {
            	// pas d'autres types associes a cet editeur -> renvoie le l'objet par defaut de ce type (heritage de TextEditor)
                return super.getAdapter(type);
            }
        }
     
    	/**
             * Returns the find/replace document adapter.
             * 
             * @return the find/replace document adapter.
             */
    	private FindReplaceDocumentAdapter getFindReplaceDocumentAdapter() {
    		if (fFindReplaceDocumentAdapter == null) {
    			IDocument doc = getDocumentProvider().getDocument(getEditorInput());
    			fFindReplaceDocumentAdapter= new FindReplaceDocumentAdapter(doc);
    		}
    		return fFindReplaceDocumentAdapter;
    	}
     
        /**
         * Renvoie une reference a l'objet associe a la vue Outline associee a cet editeur
         * @return
         */
        private IncludesOutlinePage getOverviewOutlinePage() {
            if (null == overviewOutlinePage ){
                // initialisation en passant une reference � l'editeur
                overviewOutlinePage = new IncludesOutlinePage(this);
                // si l'�diteur contient d�j� quelque chose, on le passe au ContentOutlinePage
    			if (getEditorInput() != null) {
    			    overviewOutlinePage.setInput(getEditorInput());
    			}
            }
            return overviewOutlinePage;
        }
     
     
        /**
         * Ex�cut�e lorsque le fichier �dit� est sauvegard�
         */ 
    	protected void editorSaved() {
    		super.editorSaved();
     
    		// mise � jour de la vue Outline
    		if (overviewOutlinePage != null) {
    		    overviewOutlinePage.update();
    		}
     
    		// validation du contenu de l'�diteur
    		validateAndMark();
    	}
     
    	/**
             * Parse le contenu de l'�diteur pour validation et marquage des erreurs
             *
             */
    	protected void validateAndMark() {
    		try	{
    			//IDocument document = getInputDocument();
    			//String text = document.get();
     
    			//MarkingErrorHandler markingErrorHandler = new MarkingErrorHandler(getInputFile(), document);
    			//markingErrorHandler.removeExistingMarkers();
     
    			// TODO Parsing du doc � l'aide des classes HtmlParser ou IdocParser (ou HtmlIncludeParser)
     
    		} catch (Exception e) {
    			//e.printStackTrace();
    		}
    	}
     
    	/**
             * Renvoie une r�f�rence au document ouvert par l'�diteur
             * @return
             */
    	protected IDocument getInputDocument() {
    		IDocument document = getDocumentProvider().getDocument(input);
    		return document;
    	}	
     
    	/**
             * Renvoie une r�f�rence au fichier ouvert par l'éditeur
             * @return
             */
    	protected IFile getInputFile() {
    		IFileEditorInput ife = (IFileEditorInput) input;
    		IFile file = ife.getFile();
    		return file;
    	}	
     
    	/**
             * M�thode permettant de cr�er des actions que peut faire
             * l'utilisateur sur l'�diteur
             */
    	protected void createActions() {
     
    		// Action pour afficher la compl�tion automatique
    		// (avec ce code, la compl�tion automatique s'affiche bien quand on fait Ctrl+Space, mais je ne comprends pas pourquoi...)
    		IAction action = new ContentAssistAction(Messages.getResourceBundle(), "ContentAssistProposal.", this); //$NON-NLS-1$
    		// surcharge de l'action existante CONTENT_ASSIST_PROPOSALS (si elle d�j� d�finie)
    		action.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
    		setAction("idocCompletion", action); //$NON-NLS-1$
    		//setActionActivationCode("completionIdoc", 'r', -1, SWT.CTRL);
    		markAsStateDependentAction("idocCompletion", true); //$NON-NLS-1$
    		//PlatformUI.getWorkbench().getHelpSystem().setHelp(action, helpContextId);
    	}	
     
    	/**
             * Ex�cut�e � la fermeture de l'�diteur
             */
    	public void dispose() {
    		colorManager.dispose();
    		super.dispose();
    	}
     
    }
    Ma classe qui étend SourceViewerConfiguration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    package fr.tomtom.stellentcomponentwizard.editors.includes;
     
    import org.eclipse.jface.text.IDocument;
    import org.eclipse.jface.text.ITextDoubleClickStrategy;
    import org.eclipse.jface.text.contentassist.ContentAssistant;
    import org.eclipse.jface.text.contentassist.IContentAssistant;
    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.Token;
    import org.eclipse.jface.text.source.ISourceViewer;
    import org.eclipse.jface.text.source.SourceViewerConfiguration;
     
    import fr.tomtom.stellentcomponentwizard.editors.ColorManager;
    import fr.tomtom.stellentcomponentwizard.editors.NonRuleBasedDamagerRepairer;
    import fr.tomtom.stellentcomponentwizard.editors.includes.completion.IdocCompletionProcessor;
    import fr.tomtom.stellentcomponentwizard.editors.includes.scanners.IIncludesPartitions;
    import fr.tomtom.stellentcomponentwizard.editors.includes.util.IncludesTextAttributeProvider;
    import fr.tomtom.stellentcomponentwizard.editors.scanners.html.HtmlScanner;
    import fr.tomtom.stellentcomponentwizard.editors.scanners.idoc.IdocScanner;
    import fr.tomtom.stellentcomponentwizard.preferences.PreferenceConstants;
     
    public class IncludesViewerConfiguration extends SourceViewerConfiguration {
     
    	private IncludesDoubleClickStrategy doubleClickStrategy;
    	private IdocScanner idocScanner;
    	private HtmlScanner scanner;
    	private ColorManager colorManager;
     
    	/**
             * Constructor
             * Create new instance of StringsViewerConfiguration
             */
    	public IncludesViewerConfiguration() {
    		// Must have empty constructor to createExecutableExtension
    		super();
    	}	
     
    	/**
             * Constructeur
             * @param colorManager
             */
    	public IncludesViewerConfiguration(ColorManager colorManager) {
    		this.colorManager = colorManager;
    	}	
     
     
    	/**
             * Configure l'auto-completion
             */
    	public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
     
    		ContentAssistant assistant = new ContentAssistant();
    		assistant.setContentAssistProcessor(new IdocCompletionProcessor(idocScanner), IIncludesPartitions.INCLUDE_IDOC_SCRIPT);
    		//assistant.setDocumentPartitioning(IIncludesPartitions.INCLUDE_IDOC_SCRIPT);
     
    		assistant.enableAutoActivation(PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_COMPLETION_AUTOACTIVATION_ENABLED));
    		assistant.setAutoActivationDelay(PreferenceConstants.getPreferenceStore().getInt(PreferenceConstants.EDITOR_COMPLETION_AUTOACTIVATION_DELAY));
    		assistant.setProposalPopupOrientation(IContentAssistant.CONTEXT_INFO_BELOW);
    		assistant.setContextInformationPopupOrientation(IContentAssistant.CONTEXT_INFO_BELOW);
     
    		return assistant;
    	}	
     
    	public ITextDoubleClickStrategy getDoubleClickStrategy(ISourceViewer sourceViewer, String contentType) {
    		if (doubleClickStrategy == null) {
    			doubleClickStrategy = new IncludesDoubleClickStrategy();
    		}
    		return doubleClickStrategy;
    	}	 
     
    	/**
             * Configure le scanner HTML utilisé
             * @return
             */
    	protected HtmlScanner getHtmlScanner() {
    		if (scanner == null) {
    			scanner = new HtmlScanner(colorManager);
    			scanner.setDefaultReturnToken(
    					new Token(IncludesTextAttributeProvider.getInstance().getAttribute(IncludesTextAttributeProvider.DEFAULT_ATTRIBUTE)));
    		}
    		return scanner;
    	}
     
    	/**
             * Configure le scanner iDoc utilis�
             * @return
             */
    	protected IdocScanner getIdocScanner() {
    		if (idocScanner == null) {
    		    idocScanner = new IdocScanner(colorManager);
    		    idocScanner.setDefaultReturnToken(
    				new Token(IncludesTextAttributeProvider.getInstance().getAttribute(IncludesTextAttributeProvider.IDOC_DEFAULT_ATTRIBUTE)));
    		}
    		return idocScanner;
    	}
     
    	/**
             * Renvoie le reconciler utilis� (damagers + repairers pour chaque type de partitions)
             */
    	public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
    		PresentationReconciler reconciler = new PresentationReconciler();
     
    		// Damager et repairer pour la partition de type IDocument.DEFAULT_CONTENT_TYPE
    		DefaultDamagerRepairer drDefault = new DefaultDamagerRepairer(getHtmlScanner());
    		reconciler.setDamager(drDefault, IDocument.DEFAULT_CONTENT_TYPE);
    		reconciler.setRepairer(drDefault, IDocument.DEFAULT_CONTENT_TYPE);		
     
    		// Damager et repairer pour la partition de type IIncludesPartitions.INCLUDE_IDOC_SCRIPT
    		DefaultDamagerRepairer drIdoc =	new DefaultDamagerRepairer(getIdocScanner());
    		reconciler.setDamager(drIdoc, IIncludesPartitions.INCLUDE_IDOC_SCRIPT);
    		reconciler.setRepairer(drIdoc, IIncludesPartitions.INCLUDE_IDOC_SCRIPT);
     
     
    		// Damager et repairer pour la partition de type IStringsPartitions.INCLUDE_START_INCLUDE
    		NonRuleBasedDamagerRepairer ndr = new NonRuleBasedDamagerRepairer(IncludesTextAttributeProvider.getInstance().getAttribute(IncludesTextAttributeProvider.INCLUDE_START_ATTRIBUTE));
    		reconciler.setDamager(ndr, IIncludesPartitions.INCLUDE_START_INCLUDE);
    		reconciler.setRepairer(ndr, IIncludesPartitions.INCLUDE_START_INCLUDE);
     
    		// Damager et repairer pour la partition de type IStringsPartitions.INCLUDE_END_INCLUDE
    		ndr = new NonRuleBasedDamagerRepairer(IncludesTextAttributeProvider.getInstance().getAttribute(IncludesTextAttributeProvider.INCLUDE_END_ATTRIBUTE));
    		reconciler.setDamager(ndr, IIncludesPartitions.INCLUDE_END_INCLUDE);
    		reconciler.setRepairer(ndr, IIncludesPartitions.INCLUDE_END_INCLUDE);	
     
    		return reconciler;
    	}	
     
    }
    Ma classe qui étend FileDocumentProvider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package fr.tomtom.stellentcomponentwizard.editors.includes;
     
    import org.eclipse.core.runtime.CoreException;
    import org.eclipse.jface.text.IDocument;
    import org.eclipse.jface.text.IDocumentPartitioner;
    import org.eclipse.jface.text.rules.FastPartitioner;
    import org.eclipse.ui.editors.text.FileDocumentProvider;
     
    import fr.tomtom.stellentcomponentwizard.editors.includes.scanners.IncludesPartitionsScanner;
     
    public class IncludesDocumentProvider extends FileDocumentProvider {
     
    	protected IDocument createDocument(Object element) throws CoreException {
    		IDocument document = super.createDocument(element);
    		if (document != null) {
                /*
    			IDocumentPartitioner partitioner =
    				new IncludesPartitioner(
    					new StringsPartitionsScanner(),
    					new String[] {
    					    StringsPartitionsScanner.HTMLINCLUDE_DEFAULT,
    					    StringsPartitionsScanner.HTMLINCLUDE_START_INCLUDE,
    					    StringsPartitionsScanner.HTMLINCLUDE_END_INCLUDE,
    					    StringsPartitionsScanner.HTMLINCLUDE_IDOC_SCRIPT,
    						StringsPartitionsScanner.HTMLINCLUDE_COMMENT });
                */
                IDocumentPartitioner partitioner =
                    new FastPartitioner(
                        new IncludesPartitionsScanner(),
                            IncludesPartitionsScanner.getConfiguredContentTypes());            
    			partitioner.connect(document);
    			document.setDocumentPartitioner(partitioner);
    		}
    		return document;
    	}
    }
    Si vous avez besoin d'autres classes, à votre disposition !

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Points : 100
    Points
    100
    Par défaut
    ça y est j'ai trouvé. C'est tout bête, j'oubliais le super.createActions(); dans ma méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    	/**
             * M�thode permettant de cr�er des actions que peut faire
             * l'utilisateur sur l'�diteur
             */
    	protected void createActions() {
     
    		// Action pour afficher la compl�tion automatique
    		// (avec ce code, la compl�tion automatique s'affiche bien quand on fait Ctrl+Space, mais je ne comprends pas pourquoi...)
    		IAction action = new ContentAssistAction(Messages.getResourceBundle(), "ContentAssistProposal.", this); //$NON-NLS-1$
    		// surcharge de l'action existante CONTENT_ASSIST_PROPOSALS (si elle d�j� d�finie)
    		action.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
    		setAction("idocCompletion", action); //$NON-NLS-1$
    		//setActionActivationCode("completionIdoc", 'r', -1, SWT.CTRL);
    		markAsStateDependentAction("idocCompletion", true); //$NON-NLS-1$
    		//PlatformUI.getWorkbench().getHelpSystem().setHelp(action, helpContextId);
    	}
    Du coup ça remplaçait toutes les actions par défaut définie dans la classe TextEditor. Maintenant tout est OK !

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/11/2010, 01h01
  2. Réponses: 1
    Dernier message: 29/10/2009, 15h48
  3. Editeur de "fichiers" de base de registre
    Par alejandro dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 13/03/2009, 09h08
  4. [Plug-In] Editeur
    Par bourbaki2003 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 15/02/2005, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo