mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
Added a toolbar button that only appears when the pde editor is active. Using it to help write the compiler code. Also added the Processing libs, though I doubt we need all of the ones I've added. Will remove unnecessary ones later.
This commit is contained in:
@@ -3,5 +3,12 @@
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="lib" path="libs/ant-launcher.jar"/>
|
||||
<classpathentry kind="lib" path="libs/antlr.jar"/>
|
||||
<classpathentry kind="lib" path="libs/ant.jar"/>
|
||||
<classpathentry kind="lib" path="libs/core.jar"/>
|
||||
<classpathentry kind="lib" path="libs/ecj.jar"/>
|
||||
<classpathentry kind="lib" path="libs/jna.jar"/>
|
||||
<classpathentry kind="lib" path="libs/pde.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
||||
@@ -8,6 +8,6 @@ Require-Bundle: org.eclipse.core.runtime,
|
||||
org.eclipse.ui,
|
||||
org.eclipse.jface.text,
|
||||
org.eclipse.ui.editors
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||
Import-Package: org.eclipse.ui.views.contentoutline
|
||||
Bundle-ActivationPolicy: lazy
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?eclipse version="3.4"?>
|
||||
<plugin>
|
||||
|
||||
<extension
|
||||
point="org.eclipse.ui.editors">
|
||||
<editor
|
||||
class="org.processing.editor.ProcessingEditor"
|
||||
contributorClass="org.eclipse.ui.texteditor.BasicTextEditorActionContributor"
|
||||
default="true"
|
||||
extensions="pde"
|
||||
icon="icons/processing.gif"
|
||||
@@ -30,5 +28,21 @@
|
||||
class="org.eclipse.ui.texteditor.ResourceMarkerAnnotationModelFactory">
|
||||
</factory>
|
||||
</extension>
|
||||
|
||||
<extension
|
||||
id="Processing.EditorSpecificActions"
|
||||
name="Processing Buttons"
|
||||
point="org.eclipse.ui.editorActions">
|
||||
<editorContribution
|
||||
id="org.processing.actions.ToolbarButtons"
|
||||
targetID="org.processing.editor.ProcessingEditor">
|
||||
<action
|
||||
class="org.processing.actions.RunButton"
|
||||
icon="icons/processing.gif"
|
||||
id="org.processing.actions.Run"
|
||||
label="Run Sketch"
|
||||
toolbarPath="Normal/additions"
|
||||
tooltip="Run Sketch">
|
||||
</action>
|
||||
</editorContribution>
|
||||
</extension>
|
||||
</plugin>
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
package org.processing.actions;
|
||||
|
||||
import org.eclipse.jface.action.IAction;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.ui.IEditorActionDelegate;
|
||||
import org.eclipse.ui.IEditorInput;
|
||||
import org.eclipse.ui.IEditorPart;
|
||||
import org.eclipse.ui.texteditor.IDocumentProvider;
|
||||
import org.eclipse.ui.texteditor.ITextEditor;
|
||||
import org.processing.editor.ProcessingLog;
|
||||
|
||||
import processing.app.preproc.*; // get the preprocessor stuff
|
||||
|
||||
/**
|
||||
* Right now this just does some hello world test stuff.
|
||||
* Soon it will run the preprocessor only.
|
||||
* Eventually it will function like the run button in the PDE.
|
||||
*
|
||||
* @author lonnen
|
||||
*
|
||||
*/
|
||||
public class RunButton implements IEditorActionDelegate {
|
||||
String editorContents = null;
|
||||
|
||||
/** Main logic for the button */
|
||||
public void run(IAction action) {
|
||||
ProcessingLog.logInfo("Someone hit the toolbar button!");
|
||||
// get the program as a string
|
||||
//System.out.println(editorContents);// SUCCESS!!
|
||||
// dump to the preprocessor
|
||||
// do something with the results
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies this action delegate that the selection in the workbench has changed.
|
||||
*
|
||||
* We're required to implement this, but right now it does nothing.
|
||||
*/
|
||||
public void selectionChanged(IAction action, ISelection selection) {
|
||||
// ignore. we don't care about the selection, but we have to implement this
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieved the editor contents when a new editor is set.
|
||||
* This is messy but this is how we get the editor contents from
|
||||
* the IEditorActionDelegate. When the preprocessor is implemented
|
||||
* as a proper builder it will be able to retrieve an up-to-date
|
||||
* copy of the editor contents.
|
||||
*/
|
||||
public void setActiveEditor(IAction action, IEditorPart targetEditor) {
|
||||
if (targetEditor instanceof ITextEditor) {
|
||||
IDocumentProvider provider= ((ITextEditor) targetEditor).getDocumentProvider();
|
||||
IEditorInput input= targetEditor.getEditorInput();
|
||||
IDocument document= provider.getDocument(input);
|
||||
editorContents = document.get();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+3
-1
@@ -11,7 +11,9 @@
|
||||
package org.processing.editor;
|
||||
|
||||
|
||||
import org.eclipse.jface.text.*;
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.IRegion;
|
||||
import org.eclipse.jface.text.source.IAnnotationHover;
|
||||
import org.eclipse.jface.text.source.ISourceViewer;
|
||||
|
||||
|
||||
+13
-2
@@ -15,8 +15,19 @@ import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.jface.text.*;
|
||||
import org.eclipse.jface.viewers.*;
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.BadPositionCategoryException;
|
||||
import org.eclipse.jface.text.DefaultPositionUpdater;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.IPositionUpdater;
|
||||
import org.eclipse.jface.text.Position;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||
import org.eclipse.jface.viewers.LabelProvider;
|
||||
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.ui.texteditor.IDocumentProvider;
|
||||
|
||||
-1
@@ -1,7 +1,6 @@
|
||||
package org.processing.editor;
|
||||
|
||||
import org.eclipse.core.filebuffers.IDocumentSetupParticipant;
|
||||
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.IDocumentExtension3;
|
||||
import org.eclipse.jface.text.IDocumentPartitioner;
|
||||
|
||||
@@ -15,20 +15,14 @@ import java.util.ResourceBundle;
|
||||
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
|
||||
import org.eclipse.jface.action.IAction;
|
||||
import org.eclipse.jface.action.IMenuManager;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.ITextSelection;
|
||||
import org.eclipse.jface.text.ITextViewerExtension5;
|
||||
import org.eclipse.jface.text.Position;
|
||||
import org.eclipse.jface.text.Region;
|
||||
//import org.eclipse.jface.text.source.IAnnotationAccess;
|
||||
import org.eclipse.jface.text.source.IAnnotationModel;
|
||||
import org.eclipse.jface.text.source.ISourceViewer;
|
||||
import org.eclipse.jface.text.source.IVerticalRuler;
|
||||
@@ -36,16 +30,14 @@ import org.eclipse.jface.text.source.projection.ProjectionAnnotation;
|
||||
import org.eclipse.jface.text.source.projection.ProjectionAnnotationModel;
|
||||
import org.eclipse.jface.text.source.projection.ProjectionSupport;
|
||||
import org.eclipse.jface.text.source.projection.ProjectionViewer;
|
||||
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.ui.IEditorInput;
|
||||
import org.eclipse.ui.editors.text.TextEditor;
|
||||
//import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess;
|
||||
import org.eclipse.ui.texteditor.ITextEditor;
|
||||
import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
|
||||
import org.eclipse.ui.texteditor.TextEditorAction;
|
||||
import org.eclipse.ui.texteditor.TextOperationAction;
|
||||
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
|
||||
//import org.eclipse.ui.texteditor.SourceViewerDecorationSupport; // error checking annotations
|
||||
|
||||
/**
|
||||
* Sets up a Processing specific text editor.
|
||||
|
||||
@@ -16,13 +16,12 @@ import java.net.URL;
|
||||
|
||||
import org.eclipse.core.runtime.FileLocator;
|
||||
import org.eclipse.jface.text.rules.RuleBasedScanner;
|
||||
import org.processing.editor.javadoc.JavaDocScanner;
|
||||
import org.processing.editor.language.ProcessingCodeScanner;
|
||||
import org.processing.editor.util.ProcessingColorProvider;
|
||||
|
||||
import org.eclipse.ui.plugin.AbstractUIPlugin;
|
||||
import org.osgi.framework.Bundle;
|
||||
import org.osgi.framework.BundleContext;
|
||||
import org.processing.editor.javadoc.JavaDocScanner;
|
||||
import org.processing.editor.language.ProcessingCodeScanner;
|
||||
import org.processing.editor.util.ProcessingColorProvider;
|
||||
|
||||
/**
|
||||
* Processing editor plug-in class.
|
||||
|
||||
+10
-1
@@ -13,7 +13,16 @@ package org.processing.editor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.jface.text.rules.*;
|
||||
import org.eclipse.jface.text.rules.EndOfLineRule;
|
||||
import org.eclipse.jface.text.rules.ICharacterScanner;
|
||||
import org.eclipse.jface.text.rules.IPredicateRule;
|
||||
import org.eclipse.jface.text.rules.IToken;
|
||||
import org.eclipse.jface.text.rules.IWordDetector;
|
||||
import org.eclipse.jface.text.rules.MultiLineRule;
|
||||
import org.eclipse.jface.text.rules.RuleBasedPartitionScanner;
|
||||
import org.eclipse.jface.text.rules.SingleLineRule;
|
||||
import org.eclipse.jface.text.rules.Token;
|
||||
import org.eclipse.jface.text.rules.WordRule;
|
||||
|
||||
/**
|
||||
* Processing uses Java comments, so we use the same scanner. The class name is
|
||||
|
||||
+1
-6
@@ -10,8 +10,6 @@
|
||||
*******************************************************************************/
|
||||
package org.processing.editor;
|
||||
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
|
||||
import org.eclipse.jface.text.DefaultIndentLineAutoEditStrategy;
|
||||
import org.eclipse.jface.text.IAutoEditStrategy;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
@@ -28,10 +26,7 @@ import org.eclipse.jface.text.rules.Token;
|
||||
import org.eclipse.jface.text.source.IAnnotationHover;
|
||||
import org.eclipse.jface.text.source.ISourceViewer;
|
||||
import org.eclipse.jface.text.source.SourceViewerConfiguration;
|
||||
|
||||
//TODO implement completion properly for Processing
|
||||
//Removing JavaDoc support from sketches, but leave in code
|
||||
//import org.processing.editor.javadoc.JavaDocCompletionProcessor;
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
import org.processing.editor.language.ProcessingAutoIndentStrategy;
|
||||
import org.processing.editor.language.ProcessingCompletionProcessor;
|
||||
import org.processing.editor.language.ProcessingDoubleClickSelector;
|
||||
|
||||
@@ -11,7 +11,11 @@
|
||||
package org.processing.editor;
|
||||
|
||||
|
||||
import org.eclipse.jface.text.*;
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.IRegion;
|
||||
import org.eclipse.jface.text.ITextHover;
|
||||
import org.eclipse.jface.text.ITextViewer;
|
||||
import org.eclipse.jface.text.Region;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
|
||||
/**
|
||||
|
||||
+5
-1
@@ -12,7 +12,11 @@ package org.processing.editor.javadoc;
|
||||
|
||||
|
||||
import org.eclipse.jface.text.ITextViewer;
|
||||
import org.eclipse.jface.text.contentassist.*;
|
||||
import org.eclipse.jface.text.contentassist.CompletionProposal;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformation;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformationValidator;
|
||||
|
||||
/**
|
||||
* Example Java doc completion processor. Should work for Processing unmodified. Do we even use Javadoc?
|
||||
|
||||
@@ -14,7 +14,14 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.jface.text.TextAttribute;
|
||||
import org.eclipse.jface.text.rules.*;
|
||||
import org.eclipse.jface.text.rules.IRule;
|
||||
import org.eclipse.jface.text.rules.IToken;
|
||||
import org.eclipse.jface.text.rules.IWordDetector;
|
||||
import org.eclipse.jface.text.rules.RuleBasedScanner;
|
||||
import org.eclipse.jface.text.rules.SingleLineRule;
|
||||
import org.eclipse.jface.text.rules.Token;
|
||||
import org.eclipse.jface.text.rules.WhitespaceRule;
|
||||
import org.eclipse.jface.text.rules.WordRule;
|
||||
import org.processing.editor.util.ProcessingColorProvider;
|
||||
import org.processing.editor.util.ProcessingWhitespaceDetector;
|
||||
|
||||
|
||||
+11
-2
@@ -21,9 +21,18 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.jface.text.TextAttribute;
|
||||
import org.eclipse.jface.text.rules.*;
|
||||
import org.eclipse.jface.text.rules.EndOfLineRule;
|
||||
import org.eclipse.jface.text.rules.IRule;
|
||||
import org.eclipse.jface.text.rules.IToken;
|
||||
import org.eclipse.jface.text.rules.RuleBasedScanner;
|
||||
import org.eclipse.jface.text.rules.SingleLineRule;
|
||||
import org.eclipse.jface.text.rules.Token;
|
||||
import org.eclipse.jface.text.rules.WhitespaceRule;
|
||||
import org.eclipse.jface.text.rules.WordRule;
|
||||
import org.processing.editor.ProcessingEditorPlugin;
|
||||
import org.processing.editor.util.*;
|
||||
import org.processing.editor.util.ProcessingColorProvider;
|
||||
import org.processing.editor.util.ProcessingWhitespaceDetector;
|
||||
import org.processing.editor.util.ProcessingWordDetector;
|
||||
|
||||
/**
|
||||
* A Processing code scanner.
|
||||
|
||||
+7
-1
@@ -15,7 +15,13 @@ import java.text.MessageFormat;
|
||||
|
||||
import org.eclipse.jface.text.ITextViewer;
|
||||
import org.eclipse.jface.text.TextPresentation;
|
||||
import org.eclipse.jface.text.contentassist.*;
|
||||
import org.eclipse.jface.text.contentassist.CompletionProposal;
|
||||
import org.eclipse.jface.text.contentassist.ContextInformation;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformation;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformationPresenter;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformationValidator;
|
||||
|
||||
/**
|
||||
* Example Java completion processor. Should work unmodified for Processing.
|
||||
|
||||
+3
-1
@@ -11,7 +11,9 @@
|
||||
package org.processing.editor.util;
|
||||
|
||||
|
||||
import java.util.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.swt.graphics.Color;
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
|
||||
Reference in New Issue
Block a user